OSDN Git Service

70f131d3586879361b584174ea6dd119427056ca
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
2
3         PR middle-end/40316
4         * recog.c (peep2_reinit_state): New function.
5         (peephole2_init_state): Use it at the end of a basic block and also
6         when seeing a RTX_FRAME_RELATED_P insn.
7
8 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
9
10         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
11         fixuns_truncrfdi2): New.
12         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
13         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
14         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
15         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
16         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
17         *recip_approx): Remove.
18         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
19         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
20         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
21         move to div.md.
22         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
23         setf_exp_rf): New.
24
25 2009-06-01  Ian Lance Taylor  <iant@google.com>
26
27         * attribs.c (register_attribute): Use CONST_CAST.
28         * collect2.c (main): Use CONST_CAST2.
29         (scan_prog_file): Likewise.
30         * gcc.c (process_command, main): Likewise.
31         * toplev.c (toplev_main): Likewise.
32
33         * c-typeck.c (handle_warn_cast_qual): New static function,
34         partially broken out of build_c_cast.
35         (build_c_cast): Call handle_warn_cast_qual.
36         * doc/invoke.texi (Warning Options): Document new effect of
37         -Wcast-qual.
38
39 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
40
41         * diagnostic.c (diagnostic_build_prefix): Always print columns.
42         (diagnostic_report_current_module): Print columns.
43         * common.opt (flag_show_column): Enable by default.
44
45 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
46
47         * alias.c (find_base_term): Check for NULL term before returning.
48
49 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
50
51         Revert due to PR40320:
52         
53         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
54         * calls.c (emit_library_call_value_1): Don't force_operand for move
55         and push insns.
56
57 2009-06-01  Olivier Hainque  <hainque@adacore.com>
58             Eric Botcazou  <botcazou@adacore.com>
59
60         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
61         to be processed as a bitfield for constructor output purposes.
62         * output.h (initializer_constant_valid_for_bitfield_p): Declare
63         new function.
64         * varasm.c (oc_local_state): New type, output_constructor
65         local state to support communication with helpers.
66         (oc_outer_state): New type, output_constructor outer state of
67         relevance in recursive calls.
68         (output_constructor_array_range): New output_constructor helper,
69         extracted code for an array range element.
70         (output_constructor_regular_field): New output_constructor helper,
71         extracted code for an element that is not a bitfield.
72         (output_constructor_bitfield): New output_constructor helper,
73         extracted code for a bitfield element.  Accept an OUTER state
74         argument for recursive processing.  Recurse on record or array
75         CONSTRUCTOR values, possibly past noop conversions.
76         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
77         VALUE is a valid constant-valued expression for use in a static
78         bit-field initializer.
79         (output_constructor): Rework to use helpers.  Accept and honor an
80         OUTER state argument for recursive calls.  Return total size.  Be
81         prepared for nested constructors initializing bitfields.
82         (output_constant): Feed OUTER in calls to output_constructor.
83
84 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
85
86         * calls.c (emit_library_call_value_1): Don't force_operand for move
87         and push insns.
88
89 2009-06-01  Nick Clifton  <nickc@redhat.com>
90
91         * doc/invoke.texi (IA-64 Options): Fix typo.
92
93 2009-06-01  Ira Rosen  <irar@il.ibm.com>
94
95         PR tree-optimization/39129
96         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
97         printed message.
98         (vect_do_peeling_for_loop_bound): Use 
99         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
100         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
101         (vect_loop_versioning): Likewise.
102         (vect_create_cond_for_alias_checks): Fix indentation.
103         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
104         macros.
105         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
106         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
107         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
108         "control flow in loop".
109         (vect_estimate_min_profitable_iters): Use 
110         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
111         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
112         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
113         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
114         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
115         statement belongs to a group of strided accesses with the exact code 
116         check.
117         (vectorizable_load): Likewise.
118         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
119         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
120
121 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
122
123         * config/freebsd-stdint.h: New file.
124         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
125         Add freebsd-stdint.h to tm_file.
126
127 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
128
129         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
130         (thumb2_extendhidi2): Likewise.
131
132 2009-05-31  Ian Lance Taylor  <iant@google.com>
133
134         * regstat.c (regstat_n_sets_and_refs): Remove duplicate
135         definition.
136
137 2009-05-31  Ian Lance Taylor  <iant@google.com>
138
139         * Makefile.in (except.o): Depend upon gt-except.h, not
140         gt-$(EXCEPT_H).
141         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
142         (ipa-reference.o): Depend upon gt-ipa-reference.h.
143
144 2009-05-31  Jason Merrill  <jason@redhat.com>
145
146         * tree-pretty-print.c (print_call_name): Take the callee, not the
147         call itself.  Make non-static.  Use dump_function_name for
148         functions.
149         (dump_generic_node): Adjust.
150         * diagnostic.h: Declare print_call_name.
151         * gimple-pretty-print.c (dump_gimple_call): Use it.
152
153 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
154
155         * config/sh/sh.md (ashldi3_std): New define_expand.
156         (ashldi3): Use it.
157
158 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
159
160         PR target/40313
161         * config/sh/sh.c: Include debug.h.
162         (sh_expand_epilogue): Emit a blockage insn before the frame
163         pointer adjustment also when dwarf2out_do_frame returns true.
164
165 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
166
167         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
168         (thumb2_extendqidi2): New pattern.
169
170 2009-05-31  Ira Rosen  <irar@il.ibm.com>
171
172         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
173         mark phis for renaming.
174         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
175         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
176         Call mark_sym_for_renaming.
177         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
178         * tree-vect-loop.c (vect_transform_loop): Remove vect_memsyms_to_rename
179         initialization and a call to mark_set_for_renaming.
180
181 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
182
183         PR middle-end/40304
184         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
185         frame related even if !set_cfa && style < 0.
186
187 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
188
189         * config/i386/mingw-tls.c: New file.
190         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add
191         mingw-tls.c file.
192         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define
193         it for targets defining _WIN32 but not __CYGWIN__.
194
195 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
196
197         * configure.ac: Add MPC support.
198         
199         * config.in, configure: Regenerate.     
200
201 2009-05-29  Richard Henderson  <rth@redhat.com>
202
203         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
204         NOTE_INSN_BASIC_BLOCK.
205         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
206         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
207         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
208         to be deleted.
209         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
210         add in_use field.
211         (add_cfi): Disable check redefining cfa away from drap.
212         (lookup_cfa_1): Add remember argument; handle remember/restore.
213         (lookup_cfa): Pass remember argument.
214         (cfa_remember): New.
215         (compute_barrier_args_size_1): Remove sibcall check.
216         (dwarf2out_frame_debug_def_cfa): New.
217         (dwarf2out_frame_debug_adjust_cfa): New.
218         (dwarf2out_frame_debug_cfa_offset): New.
219         (dwarf2out_frame_debug_cfa_register): New.
220         (dwarf2out_frame_debug_cfa_restore): New.
221         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
222         (dwarf2out_begin_epilogue): New.
223         (dwarf2out_frame_debug_restore_state): New.
224         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
225         DW_CFA_restore_state.
226         (output_cfi_directive): Likewise.
227         (convert_cfa_to_fb_loc_list): Likewise.
228         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
229         * dwarf2out.h: Update.
230         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
231         (copy_insn_1): Early out for null.
232         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
233         and dwarf2out_frame_debug_restore_state.
234         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
235         (prologue_insn_hash, epilogue_insn_hash): New.
236         (free_after_compilation): Adjust freeing accordingly.
237         (record_insns): Create hash table if needed; push insns into
238         hash instead of array.
239         (maybe_copy_epilogue_insn): New.
240         (contains): Search hash table instead of array.
241         (sibcall_epilogue_contains): Remove.
242         (thread_prologue_and_epilogue_insns): Split eh_return insns
243         and mark them as epilogues.
244         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
245         scanning in terms of basic blocks.
246         * insn-notes.def (CFA_RESTORE_STATE): New.
247         * jump.c (returnjump_p_1): Accept EH_RETURN.
248         (eh_returnjump_p_1, eh_returnjump_p): New.
249         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
250         CFA_REGISTER, CFA_RESTORE): New.
251         * rtl.def (EH_RETURN): New.
252         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
253
254         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
255         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
256
257         * config/i386/i386.c (gen_push): Update cfa state.
258         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
259         add a CFA_ADJUST_CFA note.
260         (ix86_dwarf_handle_frame_unspec): Remove.
261         (ix86_expand_prologue): Update cfa state.
262         (ix86_emit_restore_reg_using_pop): New.
263         (ix86_emit_restore_regs_using_pop): New.
264         (ix86_emit_leave): New.
265         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
266         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
267         * config/i386/i386.h (struct machine_cfa_state): New.
268         (ix86_cfa_state): New.
269         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
270         (eh_return_internal): Merge from eh_return_<mode>,
271         use eh_return rtx, split w/ epilogue.
272
273 2009-05-29  Ian Lance Taylor  <iant@google.com>
274
275         * builtins.c (validate_gimple_arglist): Don't use va_arg with
276         enum type.
277         * calls.c (emit_library_call_value_1): Likewise.
278
279         * c-typeck.c (c_build_va_arg): New function.
280         * c-tree.h (c_build_va_arg): Declare.
281         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
282         instead of build_va_arg.
283
284 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
285
286         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
287         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
288         (ptr_difference_cost): Use affine combinations to compute it.
289         (difference_cost): Likewise.
290         (get_computation_cost_at): Compute more accurate cost for addresses
291         if the ratio is a multiplier allowed in addresses.
292         For non-addresses, consider that an additional offset or symbol is
293         added only once.
294
295 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
296
297         * config/i386/i386.c (ix86_decompose_address): Avoid useless
298         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
299
300         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
301         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
302         (prefix_rex): For UNIT_MMX don't imply the prefix by default
303         if MODE_DI.
304         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
305         to 1 for TYPE_SSE{IADD1,CVT1}.
306         (prefix_vex_imm8): Removed.
307         (length_vex): Only pass 1 as second argument to
308         ix86_attr_length_vex_default if prefix_extra is 0.
309         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
310         (length): For prefix vex computation use length_immediate
311         attribute instead of prefix_vex_imm8.
312         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
313         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
314         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
315         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
316         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
317         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
318         a space in between the operands.
319         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
320         if one operand is 0xff and the other one si, di, bp or sp.
321         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
322         other one si, di, bp or sp.
323         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
324         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
325         type and mode attributes.
326         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
327         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
328         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
329         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
330         prefix_data16 attribute iff MODE_DF.
331         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
332         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
333         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
334         constm128_operand in length_immediate computation.
335         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
336         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
337         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
338         length_immediate attribute to 1.
339         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
340         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
341         for certain alternatives.
342         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
343         prefix_data16 attribute if MODE_V1DF.
344         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
345         length_immediate to 1.
346         (set_got_rex64, set_rip_rex64): Remove length attribute, set
347         length_address to 4, set mode attribute to MODE_DI.
348         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
349         (fxam<mode>2_i387): Set length attribute to 4.
350         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
351         *prefetch_3dnow_rex): Override length_address attribute.
352         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
353         attributes.
354         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
355         (constm128_operand): Removed.
356         * config/i386/i386.c (memory_address_length): For
357         disp && !index && !base in 64-bit mode account for SIB byte if
358         print_operand_address can't optimize disp32 into disp32(%rip)
359         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
360         for fs: or gs: segment.
361         (ix86_attr_length_immediate_default): When checking if shortform
362         is possible, truncate immediate to the length of the non-shortened
363         immediate.
364         (ix86_attr_length_address_default): Ignore MEM_P operands
365         with X constraint.
366         (ix86_attr_length_vex_default): Only check for DImode on
367         GENERAL_REG_P operands.
368         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
369         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
370         (sse_cvttps2pi): Clear prefix_rep attribute.
371         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
372         attribute.
373         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
374         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
375         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
376         iff operand 2 is const_int_operand.
377         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
378         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
379         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
380         instead of vex.
381         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
382         prefix_data16.
383         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
384         prefix_data16 attribute for movlpd and movhpd instructions.
385         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
386         length_immediate for shufpd instruction.
387         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
388         (avx_cmpp<avxmodesuffixf2c><mode>3,
389         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
390         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
391         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
392         *vec_dupv4sf_avx, *vec_dupv4sf): Set
393         length_immediate attribute to 1.
394         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
395         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
396         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
397         prefix_data16 attribute for the first alternative to 1.
398         (*avx_loadlps): Override length_immediate for the first alternative.
399         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
400         attributes for second alternative.
401         (*vec_concatv2sf_sse4_1): Override length_immediate and
402         prefix_data16 attributes for second alternative.
403         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
404         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
405         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
406         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
407         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
408         prefix_data16 and length_immediate to 1.
409         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
410         to 1.
411         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
412         prefix_extra attribute for variants that don't have 0f prefix
413         alone.
414         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
415         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
416         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
417         *sse4_1_pextrd): Set length_immediate to 1.
418         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
419         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
420         to 1.
421         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
422         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
423         length_immediate to 1 for second alternative.
424         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
425         prefix_extra and length_immediate attributes for the first
426         alternative.
427         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
428         first alternative.
429         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
430         to 1 for the first and third alternative.
431         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
432         alternative.
433         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
434         attribute.
435         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
436         attribute to 0.
437         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
438         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
439         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
440         *avx_psign<mode>3): Set prefix_extra attribute to 1.
441         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
442         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
443         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
444         ssse3_psign<mode>3): Override prefix_rex attribute.
445         (*avx_palignrti): Override prefix_extra and length_immediate
446         to 1.
447         (ssse3_palignrti): Override length_immediate to 1.
448         (ssse3_palignrdi): Override length_immediate to 1, override
449         prefix_rex attribute.
450         (abs<mode>2): Override prefix_rep to 0, override prefix_rex
451         attribute.
452         (sse4a_extrqi): Override length_immediate to 2.
453         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
454         (sse4a_insertq): Override prefix_data16 to 0.
455         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
456         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
457         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
458         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
459         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
460         and length_immediate to 1.
461         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
462         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
463         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
464         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
465         and length_immediate to 1.
466         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
467         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
468         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
469         avx_ptest256): Override prefix_extra to 1.
470         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
471         Override prefix_data16 and length_immediate to 1.
472         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
473         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
474         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
475         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
476         prefix_data16 to 0 and prefix_extra to 2.
477         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
478         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
479         attribute.
480         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
481         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
482         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
483         and prefix_extra to 2.
484         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
485         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
486         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
487         avx_vpermilvar<mode>3,
488         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
489         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
490         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
491         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
492         Override prefix_extra to 1.
493         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
494         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
495         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
496         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
497         prefix_extra and length_immediate to 1.
498         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
499         modrm to 0.
500         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
501         to 1 for the first alternative.
502         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
503         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
504         cases.
505         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
506         *movv2sf_internal_avx, *movv2sf_internal): Override
507         prefix_rep attribute for certain alternatives.
508         (*mov<mode>_internal): Override prefix_rep or prefix_data16
509         attributes for certain alternatives.
510         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
511         attributes for certain alternatives.
512         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
513         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
514         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
515         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
516         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
517         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
518         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
519         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
520         length_immediate to 1 if operand 2 is const_int_operand.
521         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
522         *vec_extractv2si_1): Set length_immediate
523         attribute to 1.
524         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
525         using old 3DNOW insn rather than SSE/3DNOW_A.
526         (mmx_emms, mmx_femms): Clear modrm attribute.
527
528 2009-05-29  Martin Jambor  <mjambor@suse.cz>
529
530         * tree-sra.c:  New implementation of SRA.
531
532         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
533         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
534         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
535         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
536         (SRA_MAX_STRUCTURE_COUNT): Removed.
537         (SRA_FIELD_STRUCTURE_RATIO): Removed.
538         * doc/invoke.texi (sra-max-structure-size): Removed.
539         (sra-field-structure-ratio): Removed.
540
541 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
542
543         PR middle-end/40291
544         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
545         before expansion.
546
547 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
548
549         PR rtl-optimization/40101
550         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
551         seqno.  Adjust comment.
552         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
553         inserting bookkeeping before a jump, the jump is not scheduled.
554         When no positive seqno found, provide a value.  Add comment.
555
556 2009-05-29  Richard Guenther  <rguenther@suse.de>
557
558         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
559         short-cutting on the first component.
560
561 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
562
563         PR middle-end/39958
564         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
565         for trees other than decls/types.
566
567 2009-05-29  Richard Guenther  <rguenther@suse.de>
568
569         * tree-ssa-operands.c (get_expr_operands): Do not handle
570         INDIRECT_REFs in the handled-component case.  Remove
571         unused get_ref_base_and_extent case.
572         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
573         tree_low_cst and host_integerp where possible.
574         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
575         codes for equivalence.
576         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
577
578 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
579
580         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
581         to tmake_file for i[34567]86-*-cygwin*. 
582
583 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
584
585         PR target/40017
586         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
587         (altivec_categorize_keyword, init_vector_keywords,
588         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
589         similar to bool.
590
591 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
592
593         * tree.c (handle_dll_attribute): Check if node is
594         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
595
596 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
597
598         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
599         component.
600         (thumb2_zero_extendqidi2): Likewise.
601
602 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
603
604         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
605         instead of gen_movrt.
606         * config/sh/sh.md (movrt): Remove.
607
608 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
609
610         * doc/invoke.texi (IA-64 Options)
611         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
612         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
613         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
614         -msched-prefer-non-control-spec-insns,
615         -msched-stop-bits-after-every-cycle,
616         -msched-count-spec-in-critical-path,
617         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
618         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns
619         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
620         and -msched-spec-verbose.
621
622 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
623
624         * config/arm/lib1funcs.asm (__clear_cache): Define if
625         L_clear_cache.
626         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
627         error if used.
628         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
629
630 2009-05-28  Richard Guenther  <rguenther@suse.de>
631
632         * tree-ssa-alias.c (ao_ref_init): New function.
633         (ao_ref_base): Likewise.
634         (ao_ref_base_alias_set): Likewise.
635         (ao_ref_alias_set): Likewise.
636         (refs_may_alias_p_1): Change signature.
637         (refs_may_alias_p): Adjust.
638         (refs_anti_dependent_p): Likewise.
639         (refs_output_dependent_p): Likewise.
640         (call_may_clobber_ref_p_1): Change signature.
641         (call_may_clobber_ref_p): Adjust.
642         (stmt_may_clobber_ref_p_1): New function split out from ...
643         (stmt_may_clobber_ref_p): ... here.
644         (maybe_skip_until): Adjust signature.
645         (get_continuation_for_phi): Likewise.
646         (walk_non_aliased_vuses): Likewise.
647         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
648         (ao_ref_init): Declare.
649         (ao_ref_base): Likewise.
650         (ao_ref_alias_set): Likewise.
651         (stmt_may_clobber_ref_p_1): Likewise.
652         (walk_non_aliased_vuses): Adjust.
653         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
654         (get_ref_from_reference_ops): remove.
655         (vn_reference_lookup_2): Adjust signature.
656         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
657         (vn_reference_lookup_pieces): Adjust signature, do not re-build
658         trees.
659         (vn_reference_lookup): Adjust.
660         (vn_reference_insert): Likewise.
661         (vn_reference_insert_pieces): Adjust signature.
662         (visit_reference_op_call): Adjust.
663         * tree-ssa-pre.c (get_expr_type): Simplify.
664         (phi_translate_1): Adjust.
665         (compute_avail): Likewise.
666         (translate_vuse_through_block): Do not re-build trees.
667         (value_dies_in_block_x): Likewise.
668         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
669         fields.
670         (vn_reference_lookup_pieces): Adjust declaration.
671         (vn_reference_insert_pieces): Likewise.
672
673 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
674
675         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
676         with checking disabled.
677
678 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
679
680         PR target/37216
681
682         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
683         macro definition for support of three-operand format aligned
684         .comm directive in assembler on cygwin/pe/mingw target OS.
685         * configure:  Regenerate.
686         * config.h:  Regenerate.
687
688         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
689         aligned form of .comm directive if -mpe-aligned-commons is in effect.
690         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
691
692         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
693         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
694
695 2009-05-28  Ira Rosen  <irar@il.ibm.com>
696
697         PR tree-optimization/40254
698         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
699         in analysis of basic blocks.
700
701 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
702
703         PR middle-end/33699
704         * target.h (struct gcc_target): Fix indentation.  Add
705         const_anchor.
706         * target-def.h (TARGET_CONST_ANCHOR): New macro.
707         (TARGET_INITIALIZER): Use it.
708         * cse.c (CHEAPER): Move it up to the other macros.
709         (insert): Rename this ...
710         (insert_with_costs): ... to this.  Add cost parameters.  Update
711         function comment.
712         (insert): New function.  Call insert_with_costs.
713         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
714         find_reg_offset_for_const, try_const_anchors): New functions.
715         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
716         when using a const-anchor.  Call insert_const_anchors.
717         * config/mips/mips.c (mips_set_mips16_mode): Set
718         targetm.const_anchor.
719         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
720
721 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
722
723         * tree-inline.c (remap_decls): Enable nonlocalized variables
724         when not optimizing.
725
726 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
727
728         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
729         Simplify other tests involving optimize.
730
731 2009-05-27  Tom Tromey  <tromey@redhat.com>
732
733         * unwind-dw2.c (_Unwind_DebugHook): New function.
734         (uw_install_context): Call _Unwind_DebugHook.
735
736 2009-05-27  Tom Tromey  <tromey@redhat.com>
737
738         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
739
740 2009-05-27  Ian Lance Taylor  <iant@google.com>
741
742         * Makefile.in (LINKER, LINKER_FLAGS): Define.
743         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
744         (ALL_LINKERFLAGS): Define.
745         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
746         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
747         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
748         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
749         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
750         $(LINKER_FOR_BUILD).
751         (build/gcov-iov$(build_exeext)): Likewise.
752
753 2009-05-27  Julian Brown  <julian@codesourcery.com>
754
755         * gcse.c (target.h): Include.
756         (can_assign_to_reg_without_clobbers_p): Check that the target allows
757         copy of argument to a pseudo register.
758
759 2009-05-27  Diego Novillo  <dnovillo@google.com>
760
761         * tree-ssa-live.c (dump_scope_block): Document arguments.
762         (dump_scope_blocks): Document.
763         (debug_scope_blocks): New.
764         * tree-flow.h (debug_scope_blocks): Declare.
765
766 2009-05-21  Denis Chertykov  <denisc@overta.ru>
767
768         * doc/contrib.texi (Contributors): add myself to the list.
769
770 2009-05-27  Olivier Hainque  <hainque@adacore.com>
771
772         * expr.c (target_align): New function.  Alignment the TARGET of an
773         assignment may be assume to have.
774         (highest_pow2_factor_for_target): Use it instead of relying on
775         immediate tree attributes of TARGET, not necessarily honored when
776         intermediate bitfields are involved.
777         
778 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
779
780         PR target/40266
781         * config/i386/driver-i386.c (host_detect_local_cpu): Support
782         AVX, SSE4, AES, PCLMUL and POPCNT.
783
784 2009-05-27  Diego Novillo  <dnovillo@google.com>
785
786         * tree-pretty-print.c (dump_location): New.
787         (dump_generic_node): Call it.
788         Factor code to handle BLOCK nodes ...
789         (dump_block_node): ... here.
790
791 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
792
793         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h with
794         it.
795         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
796         included.
797         * gcc-plugin.h: Include config.h and system.h.
798         (IN_GCC): Define if not defined.
799
800 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
801
802         PR middle-end/40249
803         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
804         with -fno-inline.
805
806 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
807
808         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
809         applicable.
810         * config/m32r/m32r.h: Ditto.
811         * config/m32r/m32r.md: Ditto.
812         * config/m32r/predicates.md: Ditto.
813
814 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
815
816         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
817
818 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
819
820         * doc/plugins.texi
821         (Loading plugins): typo.
822         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
823         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
824         (Interacting with the GCC Garbage Collector): Added new section.
825         (Giving information about a plugin): Added new section for
826         PLUGIN_INFO.
827         * ggc.h (ggc_register_root_tab): Added declaration.
828         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
829         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
830         (register_callback): Improved comment in declaration.
831         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for
832         vectors.
833         (extra_root_vec) Added static variable for dynamic roots
834         registration.
835         (ggc_register_root_tab) Added new routine.
836         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
837         PLUGIN_GGC_MARKING event.
838         * ggc-zone.c: Include plugin.h.
839         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
840         * ggc-page.c: Include plugin.h.
841         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
842         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
843         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
844         (register_callback): check lack of callbacks for
845         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
846         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
847         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
848         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
849         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
850         dependency on plugin.h.
851         (plugin.o): Added dependency on ggc.h...
852
853 2009-05-26  Richard Guenther  <rguenther@suse.de>
854
855         PR middle-end/40248
856         Revert
857         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
858         with mismatched comparison modes.
859
860         * expr.c (expand_expr_real_1): Expand the operand of a
861         VIEW_CONVERT_EXPR in its natural mode.
862
863 2009-05-26  Ian Lance Taylor  <iant@google.com>
864
865         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
866         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
867         (ALL_COMPILERFLAGS): Define.
868         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
869         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
870         (collect2$(exeext), collect2.o): Likewise.
871         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
872         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
873         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
874         (libbackend.o, intl.o, cppdefault.o): Likewise.
875         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
876         (build/%.o): Use $(COMPILER_FOR_BUILD).
877         (build/gen%$(build_exeext)): Likewise.
878         (build/gcov-iov$(build_exeext)): LIkewise.
879         * config/t-darwin (darwin.o): Use $(COMPILER).
880         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
881         * config/t-sol2 (sol2-c.o): Likewise.
882         (sol2.o): Likewise.
883         * config/t-vxworks (vxworks.o): Likewise.
884         * config/x-darwin (host-darwin.o): Likewise.
885         * config/x-hpux (host-hpux.o): Likewise.
886         * config/x-linux (host-linux.o): Likewise.
887         * config/x-solaris (host-solaris.o): Likewise.
888         * config/alpha/x-alpha (driver-alpha.o): Likewise.
889         * config/arm/t-arm (arm-c.o): Likewise.
890         * config/arm/t-pe (pe.o): Likewise.
891         * config/arm/t-wince-pe (pe.o): Likewise.
892         * config/i386/t-cygming (winnt.o): Likewise.
893         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
894         * config/i386/t-cygwin (cygwin1.o): Likewise.
895         (cygwin2.o): Likewise.
896         * config/i386/t-i386 (i386-c.o): Likewise.
897         * config/i386/t-interix (winnt.o): Likewise.
898         * config/i386/t-netware (netware.o): Likewise.
899         * config/i386/t-nwld (nwld.o): Likewise.
900         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
901         * config/i386/x-i386 (driver-i386.o): Likewise.
902         * config/i386/x-cygwin (host-cygwin.o): Likewise.
903         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
904         * config/ia64/t-ia64 (ia64-c.o): Likewise.
905         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
906         * config/mips/x-native (driver-native.o): Likewise.
907         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
908         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
909         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
910         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
911         * config/score/t-score-elf (score7.o): Likewise.
912         (score3.o): Likewise.
913         * config/sh/t-sh (sh-c.o): Likewise.
914         * config/sh/t-symbian (sh-c.o): Likewise.
915         (symbian.o): Likewise.
916         * config/spu/t-spu-elf (spu-c.o): Likewise.
917         * config/v850/t-v850 (v850-c.o): Likewise.
918         * config/v850/t-v850e (v850-c.o): Likewise.
919
920 2009-05-26  Richard Guenther  <rguenther@suse.de>
921
922         PR tree-optimization/40122
923         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
924         VECTOR_CSTs if possible.
925         (fold_gimple_assign): Likewise.
926
927 2009-05-26  Richard Guenther  <rguenther@suse.de>
928
929         PR middle-end/40252
930         * fold-const.c (fold_binary): Use the correct types for building
931         rotates.
932
933 2009-05-26  Richard Guenther  <rguenther@suse.de>
934
935         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
936         redundant calls to merge_alias_info.
937         (bump_vector_ptr): Likewise.
938         * tree-ssa-copy.c (merge_alias_info): Remove.
939         (replace_exp_1): Remove call to merge_alias_info.
940         (propagate_tree_value): Likewise.
941         (fini_copy_prop): Propagate points-to info.
942         * tree-flow.h (merge_alias_info): Remove.
943
944 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
945
946         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
947
948 2009-05-25  Jan Hubicka  <jh@suse.cz>
949
950         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
951         * cgraph.h (struct inline_summary): New filed self_wize,
952         size_inlining_benefit, self_time and time_inlining_benefit.
953         (struct cgraph_global_info): Replace insns by time ans size fields.
954         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
955         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
956         (ipcp_update_callgraph): Do not touch function bodies.
957         * ipa-inline.c: Include except.h
958         (MAX_TIME): New constant.
959         (overall_insns): Remove.
960         (leaf_node_p): New.
961         (overall_size, max_benefit): New static variables.
962         (cgraph_estimate_time_after_inlining): New function.
963         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
964         (cgraph_clone_inlined_nodes): Update size.
965         (cgraph_mark_inline_edge): Update size.
966         (cgraph_estimate_growth): Use size info.
967         (cgraph_check_inline_limits): Check size.
968         (cgraph_default_inline_p): Likewise.
969         (cgraph_edge_badness): Compute badness based on benefit and size cost.
970         (cgraph_decide_recursive_inlining): Check size.
971         (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
972         times.
973         (cgraph_decide_inlining): Likewise.
974         (cgraph_decide_inlining_incrementally): Likewise; honor
975         PARAM_EARLY_INLINING_INSNS.
976         (likely_eliminated_by_inlining_p): New predicate.
977         (estimate_function_body_sizes): New function.
978         (compute_inline_parameters): Use it.
979         * except.c (must_not_throw_labels): New function.
980         * except.h (must_not_throw_labels): Declare.
981         * tree-inline.c (init_inline_once): Kill inlining_weigths
982         * tree-ssa-structalias.c: Avoid uninitialized warning.
983         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
984         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
985         (PARAM_INLINE_CALL_COST): Remove.
986         (PARAM_EARLY_INLINING_INSNS): New.
987
988 2009-05-25  Richard Guenther  <rguenther@suse.de>
989
990         PR tree-optimization/36327
991         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
992         callback for reference translation or lookup at the point
993         of may-defs.
994         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
995         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
996         for union COMPONENT_REFs.
997         (vn_reference_lookup_3): New callback.  Lookup from memset
998         and CONSTRUCTOR assignment, translate through struct copies.
999         (vn_reference_lookup_pieces): Make sure to not free the
1000         passed operands array.  Adjust walk_non_aliased_vuses call.
1001         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
1002         make sure we do not leak memory.
1003
1004 2009-05-25  Richard Guenther  <rguenther@suse.de>
1005
1006         * tree-ssa-alias.h (dump_points_to_solution): Declare.
1007         * tree-inline.c (expand_call_inline): Reset the escaped and
1008         callused solutions.
1009         * tree-ssa-structalias.c (pass_build_ealias): New.
1010         * tree-pass.h (pass_build_ealias): Declare.
1011         * passes.c (init_optimization_passes): Add PTA during 
1012         early optimizations.
1013         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
1014         and CALLUSED solutions.
1015         (dump_points_to_solution): New function, split out from ...
1016         (dump_points_to_info_for): ... here.
1017         * tree-parloops.c (parallelize_loops): Reset the escaped and
1018         callused solutions.
1019
1020 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1021
1022         PR bootstrap/40027
1023         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
1024         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
1025
1026 2009-05-25  Ira Rosen  <irar@il.ibm.com>
1027
1028         PR tree-optimization/40238
1029         * tree-vect-stmts.c (vect_init_vector): Insert initialization
1030         statements after basic block's labels.
1031         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
1032         to free the allocated memory.
1033
1034 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
1035
1036         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
1037         return address with a USE.
1038
1039 2009-05-24  Richard Guenther  <rguenther@suse.de>
1040
1041         PR middle-end/40233
1042         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
1043         array type from the main variant of the inner type.
1044
1045 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1046
1047         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
1048         definition to bool (from int) to un-break build.
1049         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
1050
1051 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
1052
1053         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
1054         discard_stmt_changes): Delete.
1055         * tree-ssa-operands.c (scb_stack): Delete.
1056         (init_ssa_operands): Do not initialize it.
1057         (fini_ssa_operands): Do not free it.
1058         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
1059
1060         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
1061         update_stmt, remove the others.  Fix comments.
1062         * tree-dfa.c (optimize_stack_restore): Likewise.
1063         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
1064         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
1065         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1066         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
1067         Likewise.
1068         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1069         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
1070         (dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan.
1071         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
1072         (stmts_to_rescan): Change item type to gimple.
1073         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
1074
1075 2009-05-24  Ira Rosen  <irar@il.ibm.com>
1076
1077         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
1078         * tree-pass.h (pass_slp_vectorize): New pass.
1079         * params.h (SLP_MAX_INSNS_IN_BB): Define.
1080         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
1081         * tree-vectorizer.c (timevar.h): Include.
1082         (user_vect_verbosity_level): Declare.
1083         (vect_location): Fix comment.
1084         (vect_set_verbosity_level): Update user_vect_verbosity_level
1085         instead of vect_verbosity_level.
1086         (vect_set_dump_settings): Add an argument. Ignore user defined
1087         verbosity if dump flags require higher level of verbosity. Print to
1088         stderr only for loop vectorization.
1089         (vectorize_loops): Update call to vect_set_dump_settings.
1090         (execute_vect_slp): New function.
1091         (gate_vect_slp): Likewise.
1092         (struct gimple_opt_pass pass_slp_vectorize): New.
1093         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
1094         access its members.
1095         (vec_info_for_bb): New function.
1096         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
1097         (VECTORIZATION_ENABLED): New macro.
1098         (SLP_ENABLED, SLP_DISABLED): Likewise.
1099         (vect_is_simple_use): Add bb_vec_info argument.
1100         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
1101         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
1102         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
1103         vect_schedule_slp, vect_analyze_slp): Likewise.
1104         (vect_analyze_stmt): Add slp_tree argument.
1105         (find_bb_location): Declare.
1106         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1107         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
1108         (vect_analyze_loop_operations, vect_analyze_loop,
1109         get_initial_def_for_induction, vect_create_epilog_for_reduction,
1110         vect_finalize_reduction, vectorizable_reduction,
1111         vectorizable_live_operation, vect_transform_loop): Likewise.
1112         * tree-data-ref.c (dr_analyze_innermost): Update comment,
1113         skip evolution analysis if analyzing a basic block.
1114         (dr_analyze_indices): Likewise.
1115         (initialize_data_dependence_relation): Skip the test whether the
1116         object is invariant for basic blocks.
1117         (compute_all_dependences): Skip dependence analysis for data
1118         references in basic blocks.
1119         (find_data_references_in_stmt): Don't fail in case of invariant
1120         access in basic block.
1121         (find_data_references_in_bb): New function.
1122         (find_data_references_in_loop): Move code to
1123         find_data_references_in_bb and add a call to it.
1124         (compute_data_dependences_for_bb): New function.
1125         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
1126         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
1127         that STEP is 0.
1128         (vect_analyze_data_ref_dependence): Check for interleaving in case of
1129         unknown dependence in basic block and fail in case of dependence in
1130         basic block.
1131         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
1132         dependence instances from either loop or basic block vectorization
1133         info.
1134         (vect_compute_data_ref_alignment): Check if it is loop vectorization
1135         before calling nested_in_vect_loop_p.
1136         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
1137         dependence instances from either loop or basic block vectorization
1138         info.
1139         (vect_verify_datarefs_alignment): Likewise.
1140         (vect_enhance_data_refs_alignment): Adjust function calls.
1141         (vect_analyze_data_refs_alignment): Likewise.
1142         (vect_analyze_group_access): Fix printing. Skip different checks if
1143         DR_STEP is 0. Keep strided stores either in loop or basic block
1144         vectorization data structure. Fix indentation.
1145         (vect_analyze_data_ref_access): Fix comments, allow zero step in
1146         basic blocks.
1147         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
1148         dependence instances from either loop or basic block vectorization
1149         info.
1150         (vect_analyze_data_refs): Update comment. Call
1151         compute_data_dependences_for_bb to analyze basic blocks.
1152         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
1153         case of loop vectorization. In case of basic block vectorization use
1154         data-ref itself as a base.
1155         (vect_create_data_ref_ptr): In case of basic block vectorization:
1156         don't advance the pointer, add new statements before the current
1157         statement.  Adjust function calls.
1158         (vect_supportable_dr_alignment): Support only aligned accesses in
1159         basic block vectorization.
1160         * common.opt (ftree-slp-vectorize): New flag.
1161         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
1162         (vect_pattern_recog_1): Likewise.
1163         * tree-vect-stmts.c (process_use): Likewise.
1164         (vect_init_vector): Add new statements in the beginning of the basic
1165         block in case of basic block SLP.
1166         (vect_get_vec_def_for_operand): Adjust function calls.
1167         (vect_finish_stmt_generation): Likewise.
1168         (vectorizable_call): Add assert that it is loop vectorization, adjust
1169         function calls.
1170         (vectorizable_conversion, vectorizable_assignment): Likewise.
1171         (vectorizable_operation): In case of basic block SLP, take
1172         vectorization factor from statement's type and skip the relevance
1173         check. Adjust function calls.
1174         (vectorizable_type_demotion): Add assert that it is loop
1175         vectorization, adjust function calls.
1176         (vectorizable_type_promotion): Likewise.
1177         (vectorizable_store): Check for outer loop only in case of loop
1178         vectorization. Adjust function calls. For basic blocks, skip the
1179         relevance check and don't advance pointers.
1180         (vectorizable_load): Likewise.
1181         (vectorizable_condition): Add assert that it is loop vectorization,
1182         adjust function calls.
1183         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
1184         that it is not reduction, get vector type, call only supported
1185         functions, skip loop specific parts.
1186         (vect_transform_stmt): Check for outer loop only in case of loop
1187         vectorization.
1188         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
1189         (vect_is_simple_use): Fix comment, add new argument, fix conditions
1190         for external definition.
1191         * passes.c (pass_slp_vectorize): New pass.
1192         * tree-vect-slp.c (find_bb_location): New function.
1193         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
1194         check for patterns only in loops.
1195         (vect_build_slp_tree): Add argument, adjust function calls, fail in
1196         case of multiple types in basic block SLP.
1197         (vect_mark_slp_stmts_relevant): New function.
1198         (vect_supported_load_permutation_p): Fix comment.
1199         (vect_analyze_slp_instance): Add argument. In case of basic block
1200         SLP, take vectorization factor from statement's type, check that
1201         unrolling factor is 1. Adjust function call. Save SLP instance in
1202         either loop or basic block vectorization structure. Return FALSE,
1203         if SLP failed.
1204         (vect_analyze_slp): Add argument. Get strided stores groups from
1205         either loop or basic block vectorization structure. Return FALSE
1206         if basic block SLP failed.
1207         (new_bb_vec_info): New function.
1208         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1209         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1210         (vect_schedule_slp): Add argument. Get SLP instances from either
1211         loop or basic block vectorization structure. Set vectorization factor
1212         to be 1 for basic block SLP.
1213         (vect_slp_transform_bb): New function.
1214         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1215
1216 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
1217
1218         * final.c (shorten_branches): Do not align labels for jump tables.
1219         (final_scan_insn): Use JUMP_TABLE_DATA_P.
1220
1221 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1222
1223         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1224         Remove outdated reference to flow.c and fix nits.
1225         * doc/gccint.texi: Tweak RTL description.
1226         * doc/rtl.texi: Likewise.
1227
1228 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
1229
1230         * config/avr/avr.c: Change my email address.
1231         * config/avr/avr.h: Likewise.
1232         * config/avr/avr.md: Likewise.
1233         * config/avr/avr-protos.h: Likewise.
1234         * config/avr/libgcc.S: Likewise.
1235
1236 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1237
1238         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
1239         (spu_split_load, spu_split_store): Change return type to int.
1240         (spu_split_convert): Declare.
1241         * config/spu/predicates.md (spu_mem_operand): Remove.
1242         (spu_mov_operand): Update.
1243         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
1244         * config/spu/spu.c (regno_aligned_for_load): Remove.
1245         (reg_aligned_for_addr, spu_expand_load): Define.
1246         (spu_expand_extv): Reimplement and handle MEM.
1247         (spu_expand_insv): Handle MEM.
1248         (spu_sched_reorder): Handle insn's with length 0.
1249         (spu_legitimate_address_p): Reimplement.
1250         (store_with_one_insn_p): Return TRUE for any mode with size
1251         larger than 16 bytes.
1252         (address_needs_split): Define.
1253         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
1254         operands.
1255         (spu_convert_move): Define.
1256         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
1257         (spu_split_store): Change all MEM's to TImode.
1258         (spu_init_expanders): Preallocate registers that correspond to
1259         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
1260         mark_reg_pointer.
1261         (spu_split_convert): Define.
1262         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
1263         (_move<mode>, _movdi, _movti): Update predicate and condition.
1264         (load, store): Change to define_split.
1265         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
1266         extend<mode>ti2.
1267         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
1268         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
1269         define_insn_and_split of lshr<mode>3.
1270         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
1271         (<v>ashr<mode>3_imm): Define.
1272         (extv, extzv, insv): Allow MEM operands.
1273         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
1274         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
1275         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
1276         (_spu_convert2): Change to define_insn_and_split and remove the
1277         corresponding define_peephole2.
1278         (stack_protect_set, stack_protect_test, stack_protect_test_si):
1279         Change predicates to memory_operand.
1280
1281 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
1282
1283         * config/arm/thumb2.md: Add 16-bit multiply instructions.
1284
1285 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1286
1287         PR tree-optimization/40219
1288         * tree.c (iterative_hash_expr): Make sure the builtin function is
1289         a normal builtin function and not a front end or back end builtin
1290         before indexing into the built_in_decls array.
1291
1292 2009-05-22  Richard Guenther  <rguenther@suse.de>
1293
1294         PR middle-end/38964
1295         * alias.c (write_dependence_p): Do not use TBAA for answering
1296         anti-dependence or output-dependence.
1297         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
1298         (emit_pointer_definition): Remove.
1299         (emit_alias_warning): Likewise.
1300         (find_what_var_points_to): Remove TBAA pruning code.
1301         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
1302         violations.
1303         (compute_points_to_sets): Remove code computing the set of
1304         dereferenced pointers.
1305         * tree-data-ref.c (dr_may_alias_p): Properly use the split
1306         oracle for querying anti and output dependencies.
1307         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
1308         if TBAA may be applied.
1309         (refs_anti_dependent_p): New function.
1310         (refs_output_dependent_p): Likewise.
1311         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
1312         (refs_output_dependent_p): Likewise.
1313         * doc/tree-ssa.texi (Memory model): New section.
1314         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1315         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1316         * cfgexpand.c (expand_gimple_basic_block): Do not handle
1317         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
1318         * expr.c (expand_expr_real_1): Likewise.
1319         * gimple-low.c (lower_stmt): Likewise.
1320         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
1321         (dump_gimple_cdt): Remove.
1322         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1323         (gimple_size): Likewise.
1324         (walk_gimple_op): Likewise.
1325         (is_gimple_stmt): Likewise.
1326         (walk_stmt_load_store_addr_ops): Likewise.
1327         (gimple_build_cdt): Remove.
1328         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1329         * gimple.h (gimple_cdt_new_type): Remove.
1330         (gimple_cdt_new_type_ptr): Likewise.
1331         (gimple_cdt_set_new_type): Likewise.
1332         (gimple_cdt_location): Likewise.
1333         (gimple_cdt_location_ptr): Likewise.
1334         (gimple_cdt_set_location): Likewise.
1335         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1336         * tree-cfg.c (remove_useless_stmts_1): Do not handle
1337         GIMPLE_CHANGE_DYNAMIC_TYPE.
1338         (verify_types_in_gimple_stmt): Likewise.
1339         * tree-inline.c (estimate_num_insns): Likewise.
1340         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
1341         (copy_decl_to_var): Likewise.
1342         (copy_result_decl_to_var): Likewise.
1343         * tree-pretty-print.c (dump_generic_node): Do not handle
1344         CHANGE_DYNAMIC_TYPE_EXPR.
1345         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1346         * tree-ssa-operands.c (get_expr_operands): Likewise.
1347         * tree-ssa-structalias.c (struct variable_info): Remove
1348         no_tbaa_pruning member.
1349         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
1350         (unify_nodes): Do not copy it.
1351         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1352         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
1353         (set_uids_in_ptset): Do not check it.
1354         (find_what_var_points_to): Likewise.
1355         (compute_tbaa_pruning): Remove.
1356         (compute_points_to_sets): Do not call it.
1357         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1358         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1359         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
1360         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
1361         (DECL_NO_TBAA_P): Likewise.
1362         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
1363         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
1364         (expand_omp_atomic_pipeline): Do not set it.
1365         * print-tree.c (print_node): Do not dump it.
1366         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1367         redundant check.
1368
1369 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
1370
1371         PR target/39856
1372         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
1373         for clobber.
1374
1375 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
1376
1377         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
1378         non-external.
1379
1380 2009-05-22  Ben Elliston  <bje@au.ibm.com>
1381
1382         * Makefile.in (bversion.h, s-bversion): New targets.
1383         (TOPLEV_H): Add bversion.h.
1384         * toplev.h: Include "bversion.h".
1385         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
1386         the __format__ attribute only if compiling with the same version
1387         of GCC as the sources (the "build version").
1388
1389 2009-05-22  Ben Elliston  <bje@au.ibm.com>
1390
1391         * c-format.c (handle_format_attribute): Fix comment typo.
1392
1393 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
1394
1395         PR target/37846
1396         * config/ia64/ia64.opt (mfused-madd): New.
1397         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
1398         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
1399         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
1400         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
1401         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
1402         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
1403         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
1404         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
1405         instruction if !TARGET_FUSED_MADD.
1406         (fpma, fpms): Remove colon from name.
1407
1408 2009-05-22  Richard Guenther  <rguenther@suse.de>
1409
1410         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
1411         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
1412         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
1413         TARGET_MEM_REF.
1414         (create_expression_by_pieces): Only convert if necessary.
1415         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
1416         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
1417
1418 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
1419
1420         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
1421         regular pattern from a template and rename it ...
1422         (*extzv_truncsi_exts): ... to this.
1423
1424 2009-05-21  Richard Guenther  <rguenther@suse.de>
1425
1426         * cgraph.h (struct cgraph_node): Remove inline_decl member.
1427         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
1428         (cgraph_default_inline_p): Likewise.
1429         (cgraph_decide_inlining_incrementally): Likewise.
1430
1431 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1432             Uros Bizjak  <ubizjak@gmail.com>
1433
1434         * config/i386/cpuid.h (bit_MOVBE): New.
1435
1436         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1437
1438         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
1439         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
1440         (ix86_handle_option): Handle OPT_mmovbe.
1441         (ix86_target_string): Add -mmovbe.
1442         (pta_flags): Add PTA_MOVBE.
1443         (processor_alias_table): Add PTA_MOVBE to "atom".
1444         (override_options): Handle PTA_MOVBE.
1445
1446         * config/i386/i386.h (TARGET_MOVBE): New.
1447
1448         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
1449         (*bswapsi_movbe): New.
1450         (*bswapdi_movbe): Likewise.
1451         (bswapdi2): Renamed to ...
1452         (*bswapdi_1): This.
1453         (bswapdi2): New expander.
1454
1455         * config/i386/i386.opt (mmovbe): New.
1456
1457         * doc/invoke.texi: Document -mmovbe.
1458
1459 2009-05-21  Taras Glek  <tglek@mozilla.com>
1460
1461         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
1462         * gcc-plugin.h (plugin_init): Updated signature.
1463         * gcc-plugin.h (plugin_name_args): Moved to this header.
1464         * doc/plugins.texi (plugin_init): Updated documention to reflect
1465         API change.
1466         * doc/plugins.texi (plugin_name_args): Added to documention.
1467
1468 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
1469
1470         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
1471         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
1472
1473 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
1474
1475         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
1476         JUMP_TABLE_DATA_P predicates where applicable.
1477         * config/i386/predicates.md: Ditto.
1478         * config/i386/sse.md: Ditto.
1479
1480 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
1481
1482         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
1483         operand2 -128 override length_immediate attribute to 1.
1484         * config/i386/predicates.md (constm128_operand): New predicate.
1485
1486         * config/i386/i386.c (memory_address_length): Handle %r12
1487         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
1488         also check REGNO.
1489         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
1490         mode look through optional ZERO_EXTEND and SUBREG.
1491         * config/i386/i386.md (R12_REG): New define_constant.
1492         (prefix_data16): For sse unit set also for MODE_TI insns.
1493         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
1494         insns set if operand 1 is ext_QIreg_operand.
1495         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
1496         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
1497         immediate.
1498         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
1499         mode from MODE_DI to MODE_SI.
1500         (movdi_1_rex64): Override modrm and length_immediate attributes
1501         only for movabs (TYPE_IMOV, alternative 2).
1502         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
1503         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1504         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1505         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1506         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
1507         prefix_rex attribute if DImode.
1508         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
1509         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1510         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
1511         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
1512         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
1513         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
1514         Likewise.  For TYPE_IMOV clear length_immediate attribute.
1515         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
1516         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
1517         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
1518         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1519         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
1520         or one operand TYPE_ISHIFT.
1521         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
1522         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
1523         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
1524         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
1525         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
1526         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
1527         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
1528         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
1529         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
1530         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
1531         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
1532         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
1533         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
1534         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
1535         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
1536         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
1537         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
1538         set mode attribute, don't override length attribute.
1539         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
1540         to 1.
1541         (return_internal_long): Set length attribute to 2 instead of 1.
1542         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
1543         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
1544         prefix_rex attribute.
1545         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
1546         New predicates.
1547         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
1548
1549 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1550
1551         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
1552
1553 2009-05-20  Ian Lance Taylor  <iant@google.com>
1554
1555         * tree.c (build_tree_list_vec_stat): New function.
1556         (ctor_to_vec): New function.
1557         (build_nt_call_vec): New function.
1558         (build_call_array): Change args to be a const pointer.
1559         (build_call_vec): New function.
1560         * tree.h (build_nt_call_vec): Declare.
1561         (build_tree_list_vec_stat): Declare.
1562         (build_tree_list_vec): Define.
1563         (build_call_array): Update declaration.
1564         (build_call_vec): Declare.
1565         (ctor_to_vec): Declare.
1566         * c-common.c (tree_vector_cache): New static variable.
1567         (make_tree_vector): New function.
1568         (release_tree_vector): New function.
1569         (make_tree_vector_single): New function.
1570         (make_tree_vector_copy): New function.
1571         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
1572         (make_tree_vector_single, make_tree_vector_copy): Declare.
1573         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
1574         (c_parser_expr_list): Don't manage cache here, instead call
1575         make_tree_vector.
1576         (c_parser_release_expr_list): Remove static function.
1577         (c_parser_vec_to_tree_list): Remove static function.
1578         (c_parser_attributes): Call build_tree_list_vec instead of
1579         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
1580         c_parser_release_expr_list.
1581         (c_parser_postfix_expression_after_primary): Likewise.
1582         (c_parser_objc_keywordexpr): Likewise.
1583
1584 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1585
1586         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
1587         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
1588         TARGET_CONVERT_TO_TYPE.
1589         * hooks.c (hook_tree_const_tree_null): Define.
1590         * hooks.h (hook_tree_const_tree_null): Declare.
1591         * target.h (struct gcc_target):  Add invalid_parameter_type,
1592         invalid_return_type, promoted_type, and convert_to_type fields.
1593         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
1594         (TARGET_INVALID_RETURN_TYPE): Define.
1595         (TARGET_PROMOTED_TYPE): Define.
1596         (TARGET_CONVERT_TO_TYPE): Define.
1597         (TARGET_INITIALIZER): Update for new fields.
1598         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
1599         (grokparms): Check targetm.invalid_parameter_type.
1600         * c-typeck.c (default_conversion): Check targetm.promoted_type.
1601         * c-convert.c (convert): Check targetm.convert_to_type.
1602
1603 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
1604
1605         * config/mips/mips.md (*extenddi_truncate<mode>,
1606         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
1607         defintions.
1608         (*extendhi_truncateqi): New define_insn_and_sptit.
1609
1610 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
1611
1612         PR middle-end/40204
1613         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
1614         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
1615
1616 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
1617
1618         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
1619         the operand of VIEW_CONVERT_EXPR.
1620
1621 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1622
1623         * config/i386/driver-i386.c (host_detect_local_cpu): Check
1624         extended family and model for Intel processors.  Support Intel
1625         Atom.
1626
1627 2009-05-20  Olivier Hainque  <hainque@adacore.com>
1628
1629         * gstab.h (stab_code_type): Define, to be used instead of the
1630         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
1631         notice.
1632         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
1633         occurrences by stab_code_type.
1634         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
1635
1636 2009-05-20  Martin Jambor  <mjambor@suse.cz>
1637
1638         * tree-flow.h (insert_edge_copies_seq): Undeclare.
1639         (sra_insert_before): Likewise.
1640         (sra_insert_after): Likewise.
1641         (sra_init_cache): Likewise.
1642         (sra_type_can_be_decomposed_p): Likewise.
1643         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
1644         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
1645         (sra_insert_before): Likewise.
1646         (sra_insert_after): Likewise.
1647         (sra_init_cache): Likewise.
1648         (insert_edge_copies_seq): Made static and moved upwards.
1649
1650         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
1651         case.
1652
1653         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
1654
1655         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
1656         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
1657         simple copies.
1658
1659 2009-05-20  Richard Guenther  <rguenther@suse.de>
1660
1661         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1662         with mismatched comparison modes.
1663
1664 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1665
1666         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
1667         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
1668         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
1669         with shifts for Thumb2.
1670         (orsi_notsi): New for orn.
1671         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
1672         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
1673         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
1674         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
1675         Don't invert remainder for IOR.
1676         
1677 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
1678
1679         PR tree-optimization/40087
1680         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
1681         number_of_iterations_ne): Rename never_infinite argument.
1682         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
1683         number_of_iterations_le): Handle pointer-type ivs when
1684         exit_must_be_taken is false.
1685         (number_of_iterations_cond):  Do not always assume that
1686         exit_must_be_taken if the control variable is a pointer.
1687
1688 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1689
1690         * c-typeck.c (build_binary_op): Allow % on integal vectors.
1691         * doc/extend.texi (Vector Extension): Document that % is allowed too.
1692
1693 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1694
1695         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
1696         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
1697
1698 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1699
1700         PR c/40172
1701         * c.opt (Wlogical-op): Disabled by default.
1702         * c-opt (c_common_post_options): Do not enable Wlogical-op with
1703         Wextra.
1704         * doc/invoke.texi (Wlogical-op): Likewise.
1705         
1706 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1707
1708         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
1709         into CASE_CONVERT.
1710         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
1711         Propagate the type of the first operand.
1712         <ASSERT_EXPR>: Simplify.
1713         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
1714         Rewrite using the RHS code as discriminant.
1715         <NOP_EXPR>: Turn into CASE_CONVERT.
1716         <PLUS_EXPR>: Propagate the type of the first operand.
1717
1718 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
1719
1720         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
1721         (ia64_dconst_0_375): New.
1722         * config/ia64/ia64.c (ia64_override_options): Remove
1723         -minline-sqrt-min-latency warning.
1724         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
1725         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
1726         * config/ia64/ia64.md (*sqrt_approx): Remove.
1727         (sqrtsf2): Remove #if 0.
1728         (sqrtsf2_internal_thr): Rewrite and move to div.md.
1729         (sqrtdf): Remove assert.
1730         (sqrtdf2_internal_thr): Rewrite and move to div.md.
1731         (sqrtxf2): Remove #if 0.
1732         (sqrtxf2_internal_thr): Rewrite and move to div.md.
1733         * div.md (sqrt_approx_rf): New.
1734         (sqrtsf2_internal_thr): New implementation.
1735         (sqrtsf2_internal_lat): New.
1736         (sqrtdf2_internal_thr: New implementation.
1737         (sqrtxf2_internal): New implementation.
1738
1739 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
1740             Hans-Peter Nilsson  <hp@axis.com>
1741
1742         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
1743         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
1744         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
1745         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
1746         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
1747         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
1748         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
1749         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
1750         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
1751         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
1752         * c-common.c: ...from here.
1753
1754 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1755
1756         * c-common.c (warn_logical_operator): Remove unnecessary
1757         conditionals.
1758
1759 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1760
1761         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
1762
1763 2009-05-19  Ben Elliston  <bje@au.ibm.com>
1764
1765         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
1766         assignments with memcpy calls.
1767         (add_fdes): Likewise.
1768         (binary_search_unencoded_fdes): Likewise.
1769         (linear_search_fdes): Eliminate type puns.
1770         
1771 2009-05-19  Richard Guenther  <rguenther@suse.de>
1772
1773         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
1774         not falsely claim to have propagated into all uses.
1775
1776 2009-05-19  Ben Elliston  <bje@au.ibm.com>
1777
1778         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
1779         version to v3.0.
1780
1781 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1782
1783         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
1784         * config/sh/sh.c (sh_legitimate_address_p): Make static.
1785         (TARGET_LEGITIMATE_ADDRESS_P): New.
1786         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1787         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
1788         
1789 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
1790
1791         PR debug/40109
1792         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
1793         child of the containing namespace's DIE.
1794
1795 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
1796
1797         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
1798         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
1799         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
1800         extend patterns.
1801
1802 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
1803
1804         PR target/39942
1805         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
1806         gen_align with gen_pad.
1807         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
1808         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
1809
1810         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
1811         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
1812
1813         * config/i386/i386.md (align): Renamed to ...
1814         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
1815         ASM_OUTPUT_MAX_SKIP_PAD.
1816
1817 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
1818
1819         * config.gcc: Fix variable syntax.
1820
1821         PR target/39531
1822         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
1823         before calling exact_log2.
1824         (output_iorsi3): Likewise.
1825         (output_xorsi3): Likewise.
1826
1827 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1828
1829         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
1830         for the none zero constant operand except for EQ and NE
1831         comprisons even when the first operand is R0.
1832
1833 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
1834
1835         * config/s390/2064.md: Remove trailing whitespaces.
1836         * config/s390/2084.md: Likewise.
1837         * config/s390/constraints.md: Likewise.
1838         * config/s390/fixdfdi.h: Likewise.
1839         * config/s390/libgcc-glibc.ver: Likewise.
1840         * config/s390/s390-modes.def: Likewise.
1841         * config/s390/s390-protos.h: Likewise.
1842         * config/s390/s390.c: Likewise.
1843         * config/s390/s390.h: Likewise.
1844         * config/s390/s390.md: Likewise.
1845         * config/s390/tpf-unwind.h: Likewise.
1846
1847 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
1848
1849         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
1850
1851 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
1852
1853         M68K TLS support.
1854         * configure.ac (m68k-*-*): Check if binutils support TLS.
1855         * configure: Regenerate.
1856         * config/m68k/predicates.md (symbolic_operand): Extend comment.
1857         * config/m68k/constraints.md (Cu): New constraint.
1858         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
1859         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
1860         (movsi): Handle TLS symbols.
1861         (addsi3_5200): Handle XTLS symbols, indent.
1862         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
1863         (m68k_tls_reference_p): Declare.
1864         (m68k_legitimize_address): Declare.
1865         (m68k_unwrap_symbol): Declare.
1866         * config/m68k/m68k.opt (mxtls): New option.
1867         * config/m68k/m68k.c (ggc.h): Include.
1868         (m68k_output_dwarf_dtprel): Implement hook.
1869         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
1870         (m68k_expand_prologue): Load GOT pointer when function needs it.
1871         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
1872         (m68k_legitimate_constant_address_p): Same.
1873         (m68k_decompose_address): Handle TLS references.
1874         (m68k_get_gp): New static function.
1875         (enum m68k_reloc): New contants.
1876         (TLS_RELOC_P): New macro.
1877         (m68k_wrap_symbol): New static function.
1878         (m68k_unwrap_symbol): New function.
1879         (m68k_final_prescan_insn_1): New static function.
1880         (m68k_final_prescan_insn): New function.
1881         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
1882         functions.
1883         (legitimize_pic_address): Handle TLS references..
1884         (m68k_tls_get_addr, m68k_get_tls_get_addr)
1885         (m68k_libcall_value_in_a0_p)
1886         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
1887         (m68k_call_m68k_read_tp): Helper variables and functions for ...
1888         (m68k_legitimize_tls_address): Handle TLS references.
1889         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
1890         New functions.
1891         (m68k_legitimize_address): Handle TLS symbols.
1892         (m68k_get_reloc_decoration): New static function.
1893         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
1894         UNSPEC_RELOC32.
1895         (m68k_output_dwarf_dtprel): Implement hook.
1896         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
1897         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
1898         m68k_call_* routines.
1899         (sched_attr_op_type): Handle TLS symbols.
1900         (gt-m68k.h): Include.
1901         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
1902         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
1903
1904 2009-05-18  Martin Jambor  <mjambor@suse.cz>
1905
1906         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
1907         (visit_store_addr_for_mod_analysis): New function.
1908         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
1909         (determine_cst_member_ptr): Use gimple_assign_single_p.
1910         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
1911         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
1912         operands.  Don't check number of operands of a NOP_EXPR.
1913
1914 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
1915
1916         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
1917
1918 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1919
1920         PR c/40172
1921         * c-common.c (warn_logical_operator): Don't warn if one of
1922         expression isn't always true or false.
1923
1924 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
1925
1926         * config/i386/biarch32.h: New file.
1927         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
1928
1929 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
1930
1931         * config/mips/mips.md (*zero_extend<mode>_trunchi,
1932         *zero_extend<mode>_truncqi): Merge these into ...
1933         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
1934         Name the pattern following this as *zero_extendhi_truncqi.
1935
1936 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
1937
1938         PR middle-end/39301
1939         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
1940         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
1941         (output_info): Make field HOST_WIDEST_INT.
1942         (print_statistics): Use HOST_WIDEST_INT_PRINT.
1943         (dump_bitmat_statistics): Same.
1944
1945 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
1946
1947         * config.gcc (use_gcc_stdint):  Set to wrap.
1948         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1949         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1950         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1951         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1952         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1953         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1954         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1955         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1956
1957 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
1958
1959         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
1960         tune_64.
1961         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
1962         Move definitions earlier.
1963         (OPT_ARCH64, OPT_ARCH32): Define.
1964         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
1965         and tune_64.
1966
1967 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
1968
1969         PR target/40153
1970         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
1971         implies.
1972
1973 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
1974
1975         * arm.md (movdi2): Copy non-reg values to DImode registers.
1976
1977 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
1978
1979         PR target/39942
1980         * final.c (label_to_max_skip): New function.
1981         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
1982         CODE_LABEL_NUMBER <= max_labelno.
1983         * output.h (label_to_max_skip): New prototype.
1984         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
1985         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
1986         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
1987         Handle CODE_LABELs with >= 16 byte alignment or with
1988         max_skip == (1 << align) - 1.
1989         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
1990         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
1991
1992         PR target/39942
1993         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
1994         .p2align 3 if MAX_SKIP is smaller than 7.
1995         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1996
1997 2009-05-15  Ian Lance Taylor  <iant@google.com>
1998
1999         * alias.c (struct alias_set_entry_d): Rename from struct
2000         alias_set_entry.  Change all uses.
2001         * except.c (struct call_site_record_d): Rename from struct
2002         call_site_record.  Change all uses.
2003         * except.h (struct eh_region_d): Rename from struct eh_region.
2004         Change all uses.
2005         * gcse.c (struct hash_table_d): Rename from struct hash_table.
2006         Change all uses.
2007         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
2008         ivtype_map_elt.  Change all uses.
2009         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
2010         Change all uses.
2011         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
2012         * graphite.h (struct name_tree_d): Rename from struct name_tree.
2013         Change all uses.
2014         (struct sese_d): Rename from struct sese.  Change all uses.
2015         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
2016         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
2017         * optabs.h (struct optab_d): Rename from struct optab.  Change all
2018         uses.
2019         (struct convert_optab_d): Rename from struct convert_optab.
2020         Change all uses.
2021         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
2022         ipa_opt_pass.  Change all uses.
2023         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
2024         all uses.
2025
2026         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
2027         defined as a typedef.
2028         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
2029         defined as a tag.
2030
2031 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2032
2033         PR 16302
2034         * fold-const.c (make_range,build_range_check,merge_ranges): Move
2035         declaration to...
2036         (merge_ranges): Returns bool. 
2037         * tree.h (make_range): .. to here.
2038         (build_range_check): Likewise.
2039         (merge_ranges): Likewise. Renamed from merge_ranges.
2040         * c-typeck.c (parser_build_binary_op): Update calls to
2041         warn_logical_operator.
2042         * c-common.c (warn_logical_operator): Add new warning.
2043         * c-common.h (warn_logical_operator): Update declaration.
2044         
2045 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2046
2047         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
2048         
2049 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2050
2051         * doc/install.texi: Document MPC requirements, flags etc.
2052
2053         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
2054         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
2055         Evaluate constant arguments.
2056         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
2057         (fold_builtin_1): Likewise, also evaluate constant arguments.
2058         Remove superfluous break.
2059         (do_mpc_ckconv): New.
2060         * real.h: Include mpc.h.
2061         * toplev.c (print_version): Output MPC version info if available.
2062
2063 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
2064
2065         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
2066
2067 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2068
2069         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
2070         only once.
2071
2072 2009-05-15  Jan Hubicka  <jh@suse.cz>
2073
2074         * doc/invoke.texi (max-early-inliner-iterations): New flag.
2075         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
2076         (try_inline): Fix return value.
2077         (cgraph_decide_inlining_incrementally): Honor new value.
2078         (cgraph_early_inlining): Handle indirect inlining.
2079         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
2080
2081 2009-05-15  Jan Hubicka  <jh@suse.cz>
2082
2083         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2084         * cgraphunit.c (cgraph_finalize_function): Set it.
2085         (cgraph_expand_function): Use it.
2086
2087 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
2088
2089         * real.c (encode_ieee_half): Define.
2090         (decode_ieee_half): Define.
2091         (ieee_half_format): Define.
2092         (arm_half_format): Define.
2093         * real.h (ieee_half_format): Declare.
2094         (arm_half_format): Declare.
2095
2096 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
2097
2098         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
2099         swapped, and reversed optabs exist before trying to use them.
2100
2101 2009-05-15  Paul Brook  <paul@codesourcery.com>
2102             Sandra Loosemore  <sandra@codesourcery.com>
2103
2104         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
2105         loads.  Allow PRE_DEC.
2106         (output_move_neon): Handle PRE_DEC.
2107         (arm_print_operand): Add 'A' for neon structure loads.
2108         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
2109         * config/arm/neon.md (neon_mov): Update comment.
2110         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
2111         calls.
2112         (Um): New constraint.
2113
2114 2009-05-15  Jan Hubicka  <jh@suse.cz>
2115
2116         Revert the following patch until testsuite fallout is fixed:
2117         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2118         * cgraph.h (struct inline_summary): New filed self_wize,
2119         size_inlining_benefit, self_time and time_inlining_benefit.
2120         (struct cgraph_global_info): Replace insns by time ans size fields.
2121         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2122         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2123         (ipcp_update_callgraph): Do not touch function bodies.
2124         * ipa-inline.c: Include except.h
2125         (MAX_TIME): New constant.
2126         (overall_insns): Remove
2127         (overall_size, max_benefit): New static variables.
2128         (cgraph_estimate_time_after_inlining): New function.
2129         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2130         (cgraph_clone_inlined_nodes): Update size.
2131         (cgraph_mark_inline_edge): Update size.
2132         (cgraph_estimate_growth): Use size info.
2133         (cgraph_check_inline_limits): Check size.
2134         (cgraph_default_inline_p): Likewise.
2135         (cgraph_edge_badness): Compute badness based on benefit and size cost.
2136         (cgraph_decide_recursive_inlining): Check size.
2137         (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
2138         times.
2139         (cgraph_decide_inlining): Likewise.
2140         (cgraph_decide_inlining_incrementally): Likewise; honor
2141         PARAM_EARLY_INLINING_INSNS.
2142         (likely_eliminated_by_inlining_p): New predicate.
2143         (estimate_function_body_sizes): New function.
2144         (compute_inline_parameters): Use it.
2145         * except.c (must_not_throw_labels): New function.
2146         * except.h (must_not_throw_labels): Declare.
2147         * tree-inline.c (init_inline_once): Kill inlining_weigths
2148         * tree-ssa-structalias.c: Avoid uninitialized warning.
2149         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2150         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2151         (PARAM_INLINE_CALL_COST): Remove.
2152         (PARAM_EARLY_INLINING_INSNS): New.
2153
2154 2009-05-15  Richard Guenther  <rguenther@suse.de>
2155
2156         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
2157         not TODO_update_ssa.
2158
2159 2009-05-15  Richard Guenther  <rguenther@suse.de>
2160
2161         PR tree-optimization/39999
2162         * gimple.h (gimple_expr_type): Use the expression type looking
2163         through useless conversions.
2164         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
2165         (vn_nary_op_insert_stmt): Likewise.
2166         (simplify_binary_expression): Likewise.
2167
2168 2009-05-15  Richard Guenther  <rguenther@suse.de>
2169
2170         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2171         New options, enabled by default.
2172         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2173         Document.
2174         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
2175         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
2176         * tree-ssa-structalias.c (gate_tree_pta): New function.
2177         (pass_build_alias): Use it.
2178
2179 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
2180
2181         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2182         recurse on an invariant address if a conversion from a pointer
2183         type to a wider integer type is involved.
2184
2185 2009-05-15  Jan Hubicka  <jh@suse.cz>
2186
2187         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2188         * cgraph.h (struct inline_summary): New filed self_wize,
2189         size_inlining_benefit, self_time and time_inlining_benefit.
2190         (struct cgraph_global_info): Replace insns by time ans size fields.
2191         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2192         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2193         (ipcp_update_callgraph): Do not touch function bodies.
2194         * ipa-inline.c: Include except.h
2195         (MAX_TIME): New constant.
2196         (overall_insns): Remove
2197         (overall_size, max_benefit): New static variables.
2198         (cgraph_estimate_time_after_inlining): New function.
2199         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2200         (cgraph_clone_inlined_nodes): Update size.
2201         (cgraph_mark_inline_edge): Update size.
2202         (cgraph_estimate_growth): Use size info.
2203         (cgraph_check_inline_limits): Check size.
2204         (cgraph_default_inline_p): Likewise.
2205         (cgraph_edge_badness): Compute badness based on benefit and size cost.
2206         (cgraph_decide_recursive_inlining): Check size.
2207         (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
2208         times.
2209         (cgraph_decide_inlining): Likewise.
2210         (cgraph_decide_inlining_incrementally): Likewise; honor
2211         PARAM_EARLY_INLINING_INSNS.
2212         (likely_eliminated_by_inlining_p): New predicate.
2213         (estimate_function_body_sizes): New function.
2214         (compute_inline_parameters): Use it.
2215         * except.c (must_not_throw_labels): New function.
2216         * except.h (must_not_throw_labels): Declare.
2217         * tree-inline.c (init_inline_once): Kill inlining_weigths
2218         * tree-ssa-structalias.c: Avoid uninitialized warning.
2219         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2220         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2221         (PARAM_INLINE_CALL_COST): Remove.
2222         (PARAM_EARLY_INLINING_INSNS): New.
2223         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2224         (inline-call-cost): Remove.
2225         (early-inlining-insns): New.
2226
2227 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2228
2229         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
2230         for bounds.
2231         (print_int_cst_bounds_in_octal_p): Likewise.
2232         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
2233         with subtypes.
2234         * dwarf2out.c (base_type_die): Likewise.
2235         (is_subrange_type): Delete.
2236         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
2237         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
2238         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
2239         the destination type is boolean.
2240         (build_range_check): Do not special-case subtypes.
2241         (fold_sign_changed_comparison): Likewise.
2242         (fold_unary): Likewise.
2243         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
2244         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
2245         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
2246         * tree.c (subrange_type_for_debug_p): New predicate based on the former
2247         is_subrange_type.
2248         * tree.h (subrange_type_for_debug_p): Declare.
2249         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
2250         (convert_affine_scev): Remove call to above function.
2251         (chrec_convert_aggressive): Likewise.
2252         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
2253         false for conversions involving subtypes.
2254         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
2255         (vrp_val_min): Likewise.
2256         (needs_overflow_infinity): Likewise.
2257         (extract_range_from_unary_expr): Likewise.
2258
2259 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
2260
2261         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2262         * config/frv/frv.c: Likewise.
2263         * config/s390/s390.c: Likewise.
2264         * config/sparc/sparc.h: Likewise.
2265         * config/i386/i386.h: Likewise.
2266         * config/i386/i386.c: Likewise.
2267         * config/crx/crx.c: Likewise.
2268         * config/m68hc11/m68hc11.h: Likewise.
2269         * config/iq2000/iq2000.c: Likewise.
2270         * config/mn10300/mn10300.h: Likewise.
2271         * config/mn10300/mn10300.c: Likewise.
2272         * config/m68k/m68k.c: Likewise.
2273         * config/rs6000/rs6000.c: Likewise.
2274         * config/rs6000/xcoff.h: Likewise.
2275         * config/rs6000/linux64.h: Likewise.
2276         * config/rs6000/sysv4.h: Likewise.
2277         * config/score/score3.c: Likewise.
2278         * config/score/score7.c: Likewise.
2279         * config/score/score.c: Likewise.
2280         * config/arm/arm.md: Likewise.
2281         * config/mips/mips.c: Likewise.
2282         * config/mips/mips.md: Likewise.
2283         * config/bfin/bfin.h: Likewise.
2284         * config/pa/pa.c: Likewise.
2285         * config/pa/constraints.md: Likewise.
2286
2287         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
2288         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
2289         * config/pdp11/pdp11.h: Use memory_address_p instead.
2290
2291 2009-05-14  Ian Lance Taylor  <iant@google.com>
2292
2293         * passes.c (finish_optimization_passes): Change i to int.
2294         * plugin.c (plugins_active_p): Change event to int.
2295         (dump_active_plugins): Likewise.
2296         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
2297         Add cast.
2298         * tree.c (tree_range_check_failed): Change c to unsigned int.
2299         (omp_clause_range_check_failed): Likewise.
2300         (build_common_builtin_nodes): Change mode to int.  Add cast.
2301         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
2302         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
2303
2304         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
2305         ++ or -- with a variable of enum type.
2306
2307 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
2308
2309         PR driver/40144
2310         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
2311
2312 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
2313
2314         * store-motion.c: Do not include params.h
2315         * Makefile.in: Fix dependencies for various files.
2316
2317 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
2318
2319         * auto-inc-dec.c: Fix pass description, remove apparent
2320         accidental duplication.
2321
2322 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2323
2324         PR middle-end/40147
2325         * ipa-utils.h (memory_identifier_string): Moved to ...
2326         * tree.h (memory_identifier_string): Here.  Add GTY(()).
2327
2328 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
2329
2330         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
2331         in the former documentation of...
2332         (GO_IF_LEGITIMATE_ADDRESS): ... this.
2333         * ira-conflicts.c (get_dup_num): Use address_operand.
2334         * targhooks.c (default_legitimate_address_p): New.
2335         * targhooks.h (default_legitimate_address_p): New.
2336         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
2337         Call hook.
2338         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
2339         * target.h (struct target): Add legitimate_address_p.
2340         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
2341         (TARGET_INITIALIZER): Include it.
2342
2343         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2344         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
2345         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
2346         (TARGET_LEGITIMATE_ADDRESS_P): New.
2347
2348         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2349         (REG_OK_STRICT_P): Delete.
2350         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
2351         (frv_legitimate_address_p_1): ... this.
2352         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
2353         (frv_legitimate_address_p_1): ... the renamed old
2354         frv_legitimate_address_p.
2355         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
2356         (TARGET_LEGITIMATE_ADDRESS_P): New.
2357
2358         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2359         * config/s390/s390-protos.h (legitimate_address_p): Remove.
2360         * config/s390/s390.c (legitimate_address_p): Rename to...
2361         (s390_legitimate_address_p): ... this, make static.
2362         (legitimize_address): Adjust call.
2363         (TARGET_LEGITIMATE_ADDRESS_P): New.
2364         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
2365
2366         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2367         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
2368         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
2369         (TARGET_LEGITIMATE_ADDRESS_P): New.
2370
2371         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2372         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
2373         * config/spu/spu.c (spu_legitimate_address): Rename to...
2374         (spu_legitimate_address_p): ... this, make static.
2375         (TARGET_LEGITIMATE_ADDRESS_P): New.
2376
2377         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2378         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
2379         * config/sparc/sparc.c (legitimate_address_p): Rename to...
2380         (sparc_legitimate_address_p): ... this, make static and return bool.
2381         (legitimize_address): Adjust call.
2382         (TARGET_LEGITIMATE_ADDRESS_P): New.
2383
2384         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2385         * config/i386/i386-protos.h (legitimate_address_p): Remove.
2386         * config/i386/i386.c (legitimate_address_p): Rename to...
2387         (ix86_legitimate_address_p): ... this, make static.
2388         (constant_address_p): Move after it, adjust call.
2389         (TARGET_LEGITIMATE_ADDRESS_P): New.
2390
2391         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2392         * config/avr/avr-protos.h (legitimate_address_p): Remove.
2393         * config/avr/avr.c (legitimate_address_p): Rename to...
2394         (avr_legitimate_address_p): ... this, make static.
2395         (legitimize_address): Adjust call.
2396         (TARGET_LEGITIMATE_ADDRESS_P): New.
2397
2398         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2399         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
2400         * config/crx/crx.c (crx_legitimate_address_p): Make static.
2401         (TARGET_LEGITIMATE_ADDRESS_P): New.
2402
2403         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2404         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
2405         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
2406         (TARGET_LEGITIMATE_ADDRESS_P): New.
2407
2408         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2409         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
2410         Remove.
2411         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
2412         Make static.
2413         (TARGET_LEGITIMATE_ADDRESS_P): New.
2414
2415         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2416         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
2417         Remove.
2418         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
2419         Rename to...
2420         (m68hc11_legitimate_address_p): ... this, make static.
2421         (go_if_legitimate_address_internal): Rename to...
2422         (m68hc11_legitimate_address_p_1): ... this.
2423         (legitimize_address): Adjust call.
2424         (TARGET_LEGITIMATE_ADDRESS_P): New.
2425
2426         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2427         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
2428         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
2429         (TARGET_LEGITIMATE_ADDRESS_P): New.
2430
2431         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2432         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
2433         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
2434         (mn10300_legitimate_address_p): ... this, make static.
2435         (TARGET_LEGITIMATE_ADDRESS_P): New.
2436
2437         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2438         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
2439         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
2440         (TARGET_LEGITIMATE_ADDRESS_P): New.
2441
2442         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2443         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
2444         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
2445         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2446         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
2447         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
2448         (rs6000_legitimate_address_p): ... this, make static.
2449         (TARGET_LEGITIMATE_ADDRESS_P): New.
2450         (REG_MODE_OK_FOR_BASE_P): Delete.
2451         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
2452
2453         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2454         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
2455         Delete.
2456         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
2457         static, adjust types.
2458         (TARGET_LEGITIMATE_ADDRESS_P): New.
2459
2460         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2461         * config/score/score.c (score_address_p): Rename to...
2462         (score_legitimate_address_p): ... this.
2463         (TARGET_LEGITIMATE_ADDRESS_P): New.
2464         * config/score/score3.c (score3_address_p): Rename to...
2465         (score3_legitimate_address_p): ... this.
2466         * config/score/score7.c (score7_address_p): Rename to...
2467         (score7_legitimate_address_p): ... this.
2468
2469         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
2470         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
2471         GO_IF_LEGITIMATE_ADDRESS): Delete.
2472         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
2473         thumb2_legitimate_address_p): Delete.
2474         (arm_legitimate_address_p): Rename to...
2475         (arm_legitimate_address_outer_p): ... this.
2476         * config/arm/constraints.md ("Uq"): Adjust call.
2477         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
2478         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
2479         (arm_legitimate_address_outer_p): ... this.
2480         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
2481         (TARGET_LEGITIMATE_ADDRESS_P): New.
2482
2483         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2484         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
2485         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
2486         (TARGET_LEGITIMATE_ADDRESS_P): New.
2487
2488         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2489         * config/vax/vax-protos.h (legitimate_address_p): Remove.
2490         * config/vax/vax.c (legitimate_address_p): Rename to...
2491         (vax_legitimate_address_p): ... this, make static.
2492         (TARGET_LEGITIMATE_ADDRESS_P): New.
2493
2494         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2495         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
2496         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
2497         (TARGET_LEGITIMATE_ADDRESS_P): New.
2498
2499         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2500         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
2501         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
2502         (mmix_legitimate_address_p): ... this, make static.
2503         (TARGET_LEGITIMATE_ADDRESS_P): New.
2504
2505         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2506         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
2507         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
2508         (TARGET_LEGITIMATE_ADDRESS_P): New.
2509
2510 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
2511
2512         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
2513         of MODE_COMPLEX_INT.
2514
2515 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2516
2517         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
2518         LCT_NORMAL in function call.
2519         * mips-tdump.c (print_file_desc): Add cast to enum type.
2520         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
2521         (mark_stabs): Add casts to enum types.
2522         (parse_stabs_common): Add casts to enum types.
2523
2524 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
2525
2526         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
2527         Check for invalid values of LETTER.
2528
2529 2009-05-13  Taras Glek  <tglek@mozilla.com>
2530
2531         * attribs.c (register_attribute): moved out attribute registration into
2532         register_attribute.
2533         * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
2534         * gcc-plugin.h: Added forward decl for register_attribute.
2535         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
2536         * plugin.c (register_callback, invoke_plugin_callbacks): Added
2537         PLUGIN_ATTRIBUTES boilerplate.
2538
2539 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
2540
2541         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
2542         values even in sentinel and empty entries.
2543         (ms_printf_flag_specs):  Likewise.
2544         (ms_scanf_flag_specs):  Likewise.
2545         (ms_strftime_flag_specs):  Likewise.
2546         (ms_print_char_table):  Likewise.
2547         (ms_scan_char_table):  Likewise.
2548         (ms_time_char_table):  Likewise.
2549
2550 2009-05-13  Doug Kwan  <dougkwan@google.com>
2551
2552         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
2553
2554 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
2555
2556         * config/mips/mips.md (store): Add attributes for QI and HI.
2557         Update comment.
2558         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
2559         (truncdi<mode>2): ... this new pattern.
2560
2561 2009-05-13  Brad Hards  <bradh@kde.org>
2562
2563         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
2564
2565 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
2566             Ben Elliston <bje@au.ibm.com>
2567
2568         PR middle-end/40035
2569         * dse.c (check_mem_read_rtx): Guard against width == -1.
2570
2571 2009-05-13  Michael Matz  <matz@suse.de>
2572
2573         PR middle-end/39976
2574         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
2575         (trivially_conflicts_p): New function.
2576         (insert_backedge_copies): Use it.
2577
2578 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
2579
2580         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
2581         (handle_stdc_pragma): Use new enum constant names.
2582         (handle_pragma_float_const_decimal64): Ditto.
2583
2584 2009-05-13  Ian Lance Taylor  <iant@google.com>
2585
2586         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
2587         tree.def.
2588
2589 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
2590
2591         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
2592         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
2593         multilibs.
2594         * config/m68k/m68k.h (FL_UCLINUX): Define.
2595
2596 2009-05-13  Jan Hubicka  <jh@suse.cz>
2597
2598         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
2599
2600 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2601
2602         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
2603         unless -fschedule-insns is specified.
2604
2605 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2606
2607         PR target/39561
2608         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
2609         TARGET_EXPAND_CBRANCHDI4.
2610         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
2611         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
2612         (cmpeqdi): Fix comment.
2613
2614 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2615
2616         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
2617         (sh_legitimate_address_p): Likewise.
2618         * config/sh/sh.c (sh_legitimate_index_p): New.
2619         (sh_legitimate_address_p): Likewise.
2620         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
2621         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
2622         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
2623         (MAYBE_BASE_REGISTER_RTX_P): New macro.
2624         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
2625         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
2626         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
2627         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
2628         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
2629
2630 2009-05-12  Jan Hubicka  <jh@suse.cz>
2631
2632         * tree-inline.c (estimate_operator_cost): Add operands;
2633         when division happens by constant, it is cheap.
2634         (estimate_num_insns): Loads and stores are not having cost of 0;
2635         EH magic stuff is cheap; when computing runtime cost of switch,
2636         use log2 base of amount of its cases; builtin_expect has cost of 0;
2637         compute cost for moving return value of call.
2638         (init_inline_once): Initialize time_based flags.
2639         * tree-inline.h (eni_weights_d): Add time_based flag.
2640
2641 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
2642
2643         * df-core.c: Update head documentation.
2644
2645 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2646
2647         PR bootstrap/40118
2648         * rs6000.c (rs6000_generate_compare): Use op1b instead of
2649         shadowing exisiting variable op1.
2650
2651 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
2652
2653         PR target/37179
2654         * config/i386/driver-i386.c (processor_signatures): New enum.
2655         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
2656         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
2657         processor signature to detect geode processor.
2658
2659 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
2660
2661         Revert:
2662
2663         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
2664
2665         * optabs.c (prepare_cmp_insn): Temporarily disable test that
2666         causes spurious differences between trunk and cond-optab branch.
2667
2668 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
2669
2670         * dojump.c (compare_from_rtx): Delete.
2671         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
2672         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
2673         if the comparison does not satisfy the predicate; test predicates for
2674         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
2675         further if one existing pattern fails.
2676         * expr.h (compare_from_rtx): Delete.
2677         (prepare_operand): Declare it.
2678         * optabs.c: Change "lib call" to "libcall" throughout.
2679         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
2680         HAVE_conditional_trap, emit_cmp_insn): Delete.
2681         (can_compare_p): Delete cmp_optab case.
2682         (prepare_float_lib_cmp): Return an rtx and a machine mode.
2683         Accept other parameters by value.
2684         (prepare_operand): Make non-static.
2685         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
2686         other parameters by value.  Try to widen operands here based on
2687         an optab_methods argument and looking at cbranch_optab.
2688         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
2689         loop.  Use cbranch_optab directly.
2690         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
2691         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
2692         assertion.
2693         (emit_conditional_move, emit_conditional_add): Inline what's needed
2694         of compare_from_rtx, using new prepare_cmp_insn for the rest.
2695         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
2696         with COMPARE.  Move cmov_optab and cstore_optab above
2697         with cbranch_optab, move cmp_optab down with ucmp_optab,
2698         remove tst_otpab.  Do not initialize trap_rtx.
2699         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
2700         for trap code.  Do not check HAVE_conditional_trap.  Use
2701         prepare_cmp_insn.  Accept no predicate for operand 3.
2702         * optabs.h (OTI_cmp): Mark as used only for libcalls.
2703         (OTI_ctrap, ctrap_optab): New.
2704         (tst_optab): Delete.
2705         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
2706         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
2707         with lookup of ctrap_optab.
2708         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
2709         setcc_gen_code): Delete.
2710         (ctrap_optab): New.
2711
2712         * combine.c (combine_simplify_rtx, simplify_set): Do not
2713         special case comparing against zero for cc0 machines.
2714         * simplify-rtx.c (simplify_binary_operation_1): Never remove
2715         COMPARE on cc0 machines.
2716         (simplify_relational_operation): Return a new expression when
2717         a COMPARE could be removed.
2718         * final.c (final_scan_insn): Compare cc_status values
2719         against LHS of a (compare FOO (const_int 0)) cc0 source.
2720         Also check if cc_status.value is the full compare.
2721
2722         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
2723         (cstoreMM4): Document.
2724         (conditional_trap): Document ctrapMM4 instead.
2725         (sync_compare_and_swapMM): Refer to cbranchcc4.
2726         (Dependent Patterns): Eliminate obsolete information referring to
2727         the old jump optimization phase.
2728         (Canonicalization): Include cbranchcc4 case, omit canonicalization
2729         of compares with 0 on cc0 machines.
2730         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
2731         avoiding references to cc0.  Remove text about storing operands
2732         in cmpMM.
2733         * doc/tm.texi (Condition Codes): Include blurb on different
2734         condition code representations, separate into subsections for
2735         CC0, MODE_CC and conditional execution.
2736
2737         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
2738         alpha_emit_setcc): Accept operands and a machine mode.
2739         * config/alpha/alpha.c (alpha_emit_conditional_branch):
2740         Get code/op0/op1 from operands, use machine mode argument
2741         instead of alpha_compare.fp_p.  Emit the branch here.
2742         (alpha_emit_setcc): Likewise, and return boolean.
2743         (alpha_emit_conditional_move): Likewise.  Assert that
2744         cmp_op_mode == cmp_mode, and simplify accordingly.
2745         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
2746         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
2747         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
2748         Delete.
2749         (stack probe test): Use cbranchdi4.
2750         * config/alpha/predicates.md (alpha_cbranch_operator): New.
2751
2752         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
2753         * config/arc/arc.h (movsicc, movsfcc): Use it.
2754         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
2755         (cbranchsi4, cstoresi4): New.
2756         (cmpsi, bCC and sCC expanders): Remove. 
2757
2758         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
2759         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
2760         * config/arm/predicates.md (arm_comparison_operator): Only include
2761         floating-point operators if there is a hardware floating-point unit.
2762         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
2763         deferring to cbranch_cc and cstore_cc respectively.
2764         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
2765         cbranch_cc, cstore_cc): New.
2766         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
2767         arm_compare_op1.
2768         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
2769
2770         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
2771         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
2772         as an argument.
2773         (adjust_insn_length): Adjust calls.
2774         (avr_reorg): Handle (compare (foo) (const_int 0)).
2775         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
2776         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
2777         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
2778         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
2779         (bCC): Remove.
2780         (cbranchqi4, cbranchhi4, cbranchsi4): New.
2781         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
2782
2783         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
2784         (cbranchsi4, cstorebi4, cstoresi4): New.
2785         (movbisi): This insn is duplicate, split it to zero_extend.
2786         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
2787         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
2788         (bfin_optimize_loop): Use cbranch expander.
2789         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
2790         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
2791         (bfin_bimode_comparison_operator): ... this.
2792         (bfin_direct_comparison_operator): New.
2793  
2794         * config/cris/cris.c (cris_normal_notice_update_cc): Look
2795         inside (compare FOO (const_int 0)).
2796         (cris_rtx_costs): Handle ZERO_EXTRACT.
2797         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
2798         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
2799         (*tstdi_v32): Delete.
2800         (*cmpdi_non_v32): Add M alternative for operand 1.
2801         (cmpsi, cmp<mode>): Make private.
2802         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
2803         with COMPARE.
2804         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
2805
2806         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
2807         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
2808         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
2809         (cc_reg_operand): New.
2810         (any_cond): Delete.
2811         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
2812         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
2813         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
2814         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
2815         crx_expand_scond): Delete.
2816
2817         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
2818         (cbranchsi4): New.
2819         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
2820         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
2821
2822         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
2823         cstoresi4, cstoresf4, cstoredf4): New.
2824         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
2825         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2826         Receive the entire operands array.
2827         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
2828         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
2829         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2830         Get test/op0/op1 from the operands array.
2831         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
2832
2833         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
2834         (h8300_expand_store): New.
2835         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
2836         (const_int 0)).
2837         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
2838         (h8300_expand_store): New.
2839         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
2840         or do not try to produce (set (cc0) REG).
2841         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
2842         change a compare into a move to a scratch register.  Disable some
2843         peepholes when comparing with zero.
2844         (tstsi, tsthi, tstsi, cmpqi): Make private.
2845         (cmphi): Delete.
2846         (bCC, sCC): Delete.
2847         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
2848         cstoresi4): New.
2849
2850         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
2851         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
2852         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
2853         (ix86_emit_i387_log1p): Use cbranchxf2.
2854         (ix86_expand_setcc): Return void.
2855         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
2856         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
2857         cmp<MODEF>, cmpcc): Remove.
2858         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
2859         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
2860         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
2861         (sCC and bCC expanders): Remove.
2862         (stack_protect_test): Use cbranchcc4.
2863
2864         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
2865         Delete.
2866         (ia64_expand_compare): Accept three rtx by reference and return void.
2867         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
2868         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
2869         from *expr.  Update *expr with the BImode comparison to do.
2870         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
2871         cmptf, bCC, sCC, conditional_trap): Delete.
2872         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
2873         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
2874         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
2875         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
2876         * config/ia64/predicates.md (ia64_cbranch_operator): New.
2877
2878         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
2879         type of last argument.
2880         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
2881         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
2882         use machine mode argument instead of branch_type.  Remove dead
2883         code for floating-point comparisons.
2884         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
2885         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
2886         Remove.
2887         (cbranchsi4, cstoresi4): New.
2888         * config/iq2000/predicates.md (reg_or_const_operand): New.
2889
2890         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
2891         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
2892         (b<code>_op): Rewrite to...
2893         (bcc_op): ... this, using match_operator.
2894         (s<code>_op): Rewrite to...
2895         (scc_op): ... this, using match_operator.
2896         (s<code>_24_op): Rewrite to...
2897         (scc_op_24): ... this, using match_operator.
2898         (s<code>_<mode>): Rewrite to...
2899         (cstore<mode>4): ... this, using match_operator.
2900         (s<code>_<mode>_24): Rewrite to...
2901         (cstore<mode>4_24): ... this, using match_operator.
2902         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
2903         m32c_unpend_compare, m32c_expand_scc): Delete.
2904         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
2905         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
2906         (m32c_expand_movcc): Change NE to EQ if necessary.
2907         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
2908
2909         * config/m32r/m32r-protos.h (gen_cond_store): New.
2910         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
2911         (gen_cond_store): New, from sCC patterns.
2912         (m32r_expand_block_move): Use cbranchsi4.
2913         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
2914         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
2915         (cbranchsi4, cstoresi4): New.
2916         
2917         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
2918         Delete.
2919         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
2920         (m68hc11_notice_update_cc): Look into a compare with 0.
2921         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
2922         Delete.
2923         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
2924         cmphi, cmpqi, bCC): Delete.
2925         (cbranchsi4, cbranchhi4, cbranchqi4): New.
2926         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
2927         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
2928         sets with COMPARE.
2929
2930         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
2931         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
2932         * config/m68k/constraints.md (H): New.
2933         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
2934         the define_insn below.
2935         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
2936         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
2937         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
2938         patterns): Wrap RHS with COMPARE.
2939         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
2940         (*cmpdi_internal): Name this pattern.
2941         (cmpdi): Change to define_insn.
2942         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
2943         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
2944         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
2945         predicate.
2946         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
2947         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
2948         (conditional_trap): Change to...
2949         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
2950         (*conditional_trap): Use the ordered_comparison_operator and
2951         const1_operand predicates.
2952         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
2953         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
2954         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
2955         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
2956
2957         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
2958         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
2959         (mcore_gen_compare): New. 
2960         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
2961         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
2962         (mcore_gen_compare): ... this.
2963         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
2964         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
2965         (stack probe pattern): Use cbranchsi4.
2966
2967         * config/mips/predicates.md (mips_cstore_operator): New.
2968         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
2969         * config/mips/mips.md (any_cond): Delete.
2970         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
2971         always succeed.
2972         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
2973         fixuns_truncsfdi2): Use cbranch patterns.
2974         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
2975         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
2976         Adjust call to mips_expand_conditional_branch.
2977         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
2978         cstore<GPR:mode>4.
2979         * config/mips/mips-protos.h (mips_expand_conditional_branch,
2980         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
2981         * config/mips/mips.c (cmp_operands): Delete.
2982         (mips_emit_compare): Get comparison operands from *op0/*op1.
2983         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
2984         that it succeeds.  Use op0/op1 instead of cmp_operands.
2985         (mips_expand_conditional_branch, mips_expand_conditional_move,
2986         mips_expand_conditional_trap): Likewise.
2987         (mips_block_move_loop): Use cbranch patterns. 
2988         * config/mips/mips.h (cmp_operands): Delete.
2989
2990         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
2991         (mmix_gen_compare_reg): Just return a register in the right CC mode.
2992         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
2993         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
2994         (*cmpcc_folded): Rename to...
2995         (*cmpdi_folded): this.
2996         (*cmpcc): Rename to...
2997         (*cmps): ... this.
2998         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
2999         (bCC): Remove.
3000         (cbranchdi4): New.
3001         (cbranchdf4): New.  Handle invalid comparisons here.
3002         * config/mmix/predicates.md (float_comparison_operator): New.
3003
3004         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
3005         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
3006         * config/mn10300/mn10300.md (tst): Delete.
3007         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
3008         Name these patterns and wrap RHS in a compare.
3009         (*cmpsi): Make this pattern private.  Include tst.
3010         (*cmpsf): Make this pattern private.
3011         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
3012         (compare with zero peepholes): Likewise.
3013         (bCC): Remove.
3014         (cbranchsi4, cbranchsf4): New.
3015         (casesi): Use cbranchsi4.
3016
3017         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
3018         hppa_branch_type): Delete.
3019         (return_addr_rtx): Use cbranchsi4.
3020         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
3021         Emit CCFPmode comparison here.
3022         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
3023         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
3024         hppa_branch_type): Delete.
3025         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
3026         (movsicc, movdicc): Remove references to hppa_compare_op0,
3027         hppa_compare_op1 and compare_from_rtx.
3028         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
3029         (casesi): Use cbranchsi4.
3030
3031         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
3032         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
3033         * config/pdp11/pdp11.md (register_or_const0_operand): New.
3034         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
3035         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
3036         (bCC): Delete.
3037         (cbranchdf4, cbranchhi4, cbranchqi4): New.
3038         (*branch, *branch_inverted): New.
3039
3040         * config/picochip/picochip.md (cbranchhi4): Use
3041         ordered_comparison_operator.
3042         (cmphi, bCC): Remove.
3043
3044         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
3045         (trap_comparison_operator): Delete.
3046         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
3047         rs6000_emit_cbranch): Accept mode and operands.
3048         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
3049         rs6000_compare_fp_p): Delete.   
3050         (rs6000_generate_compare): Accept mode and comparison.  Extract code
3051         and op0/op1 from there.  Replace references to rs6000_compare_op0
3052         and rs6000_compare_op1.
3053         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
3054         extract result from passed operands.
3055         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
3056         extract loc from passed operands.
3057         (rs6000_emit_cmove): Likewise.
3058         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
3059         rs6000_compare_fp_p): Delete.
3060         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
3061         (cbranch<GPR>4, cbranch<FP>4): New.
3062         (cstore<mode>4): New.  Consolidate here all choices about when to use
3063         portable or specialized sCC sequences.
3064         (stack_protect_test): Use cbranchsi4.
3065         (conditional_trap): Replace with ctrap<GPR>4.
3066         (conditional trap insn): Replace trap_comparison_operator with
3067         ordered_comparison_operator. 
3068
3069         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
3070         (s390_emit_prologue): Use ctrap.
3071         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
3072         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
3073         New predicates replacing...
3074         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
3075         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
3076         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
3077         (add<mode>cc): Do not use s390_compare_op0/op1.
3078         (s<code>): Change to...
3079         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
3080         (seq): Change to...
3081         (cstorecc4): ... this.  Handle EQ or NE equally.
3082         (*sne): Un-privatize for use in cstorecc4.
3083         (b<code>): Change to...
3084         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
3085         (conditional_trap): Replace with...
3086         (ctrap<GPR>4, ctrap<FP>4): ... these.
3087         (stack_protect): Use cbranchcc4.
3088
3089         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
3090         * config/score/score-protos.h (score_gen_cmp): Delete.
3091         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
3092         (score_block_move-loop): Use cbranchsi4.
3093         * config/score/score.md (cbranchsi4): New.
3094         (cmpsi, bCC): Delete.
3095         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
3096         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3097         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
3098         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3099         * config/score/score3.h (score3_gen_cmp): Delete.
3100         * config/score/score7.h (score7_gen_cmp): Delete.
3101
3102         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
3103         (sh_emit_scc_to_t): ... this.  Return void.
3104         (from_compare): Rename to...
3105         (sh_emit_compare_and_branch): ... this.
3106         (sh_emit_compare_and_set): New.
3107         (sh_expand_t_scc): Accept operands.
3108         * config/sh/predicates.md (sh_float_comparison_operator): New.
3109         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
3110         (prepare_scc_operands): Rename to...
3111         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
3112         arguments.
3113         (sh_emit_cheap_store_flag): New.
3114         (sh_emit_set_t_insn): New.
3115         (from_compare): Rename to...
3116         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
3117         handling of TARGET_SH2E floating point to avoid recursive call.
3118         Generate branch here.
3119         (sh_emit_compare_and_set): New.
3120         (sh_expand_t_scc): Get op0/op1 from arguments.
3121         (sh_emit_cheap_store_flag): New.
3122         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
3123         cases.
3124         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
3125         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
3126         (movsicc, movdicc): Do nothing when it recreated operands from
3127         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
3128         prepare_scc_operands (now sh_emit_scc_to_t).
3129         (udivdi3): Use cstoresi4.
3130         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
3131         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
3132         (cbranchint4_media, cbranchfp4_media): New.
3133         (casesi): Use cbranchdi4.
3134         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
3135         Delete.
3136         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
3137         (movnegt): Remove second operand.
3138         (cbranchsf4, cbranchdf4): New.
3139         (stack_protect): Use cbranchdi4/cbranchsi4.
3140
3141         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
3142         (gen_compare_reg): Accept comparison, extract part of it to...
3143         (gen_compare_reg_1): ... this. 
3144         (gen_compare_operator): Delete.
3145         (gen_v9_scc): Accept separate destination, comparison code and arms.
3146         Do not use sparc_compare_op0/sparc_compare_op1.
3147         (emit_scc_insn, emit_conditional_branch_insn): New.
3148         (emit_v9_brxx): Make static.  Remove useless assertion.
3149         (sparc_emit_float_lib_cmp): Return RTL instead of calling
3150         emit_cmp_insn.
3151         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
3152         * config/sparc/sparc-protos.h (gen_compare_reg,
3153         sparc_emit_float_lib_cmp): Adjust prototype.
3154         (emit_scc_insn, emit_conditional_branch_insn): New.
3155         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
3156         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
3157         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
3158         iterators to the top.
3159         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
3160         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
3161         snedi_special_trunc): Delete.
3162         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
3163         and snedi_special_trunc.
3164         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
3165         cbranchdi4, cbranch<F:mode>4): New.
3166         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
3167         here.  Use gen_compare_reg instead of gen_compare_operator.
3168         (conditional_trap): Replace with...
3169         (ctrapsi4, ctrapdi4): ... this.
3170         (stack_protect_test): Use cbranchcc4.
3171
3172         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
3173         argument to rtx.
3174         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
3175         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
3176         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
3177         from operands[0] or operands[3] depending on is_set.
3178         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
3179         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
3180         cmpdf, bCC), sCC: Remove.
3181         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
3182         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
3183         cstoredf4): New.
3184         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
3185         spu_emit_branch_or_set.
3186
3187         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
3188         Add two arguments.
3189         * config/stormy16/stormy16.h (xstormy16_compare_op0,
3190         xstormy16_compare_op1): Delete.
3191         * config/stormy16/stormy16.c (xstormy16_compare_op0,
3192         xstormy16_compare_op1): Delete. 
3193         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
3194         Adjust calls.
3195         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3196         (cmphi, cmpsi, bCC): Remove.
3197
3198         * config/v850/v850.md (tstsi, cmpsi): Fold into...
3199         (*cmpsi): ... this one.
3200         (cbranchsi4, cstoresi4): New.
3201         (bCC expanders): Delete.
3202         (sCC insns): Fold into...
3203         (*setcc): ... this one.
3204         (casesi): Do not use gen_cmpsi and gen_bgtu. 
3205         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3206         (movsicc): Simplify.
3207         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3208
3209         * config/vax/vax-protos.h (cond_name): New.
3210         (vax_output_conditional_branch): Remove.
3211         * config/vax/vax.c (cond_name): New.
3212         (vax_output_conditional_branch): Remove.
3213         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3214         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3215         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
3216         (bit<VAXint>): Wrap source with (compare).
3217         (b<code> and following unnamed pattern): Rename to *branch and
3218         *branch_reversed.  Change macroization to match_operator.
3219         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3220
3221         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3222         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3223         Change last argument to machine_mode.
3224         (xtensa_expand_scc): Add machine_mode argument.
3225         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3226         (gen_conditional_move, xtensa_expand_conditional_branch,
3227         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3228         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3229         Adjust operand numbers.
3230         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3231         Delete.
3232         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3233         (cmpsi, cmpsf, b<code>, s<code>): Delete.
3234         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
3235
3236 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
3237
3238         * optabs.c (prepare_cmp_insn): Temporarily disable test that
3239         causes spurious differences between trunk and cond-optab branch.
3240
3241 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
3242
3243         PR target/37137
3244         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
3245
3246 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
3247
3248         * tree.c (iterative_hash_pointer): Delete.
3249         (iterative_hash_expr): Short-circuit handling of NULL pointer.
3250         Hash UIDs and versions of SSA names.  Don't special-case built-in
3251         function declarations.
3252
3253 2009-05-11  Ian Lance Taylor  <iant@google.com>
3254
3255         PR bootstrap/40103
3256         * graphite.c: Force -Wc++-compat to only be a warning before
3257         #including "cloog/cloog.h".
3258
3259 2009-05-11  Martin Jambor  <mjambor@suse.cz>
3260
3261         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
3262         
3263 2009-05-11  Jan Hubicka  <jh@suse.cz>
3264
3265         * tree-ssa-loop-ivcanon.c: Include target.h
3266         (struct loop_size): new structure.
3267         (constant_after_peeling): New predicate.
3268         (tree_estimate_loop_size): New function.
3269         (estimated_unrolled_size): Rewrite for new estimates.
3270         (try_unroll_loop_completely): Use new estimates.
3271         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
3272
3273 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3274
3275         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
3276         libcpp interface change.
3277         (spu_macro_to_expand): Likewise.
3278
3279 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
3280
3281         PR tree-optimization/40026
3282         * gimplify.c (gimplify_init_constructor): Change initial conditional
3283         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
3284         optimize_compound_literals_in_ctor.
3285
3286 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
3287
3288         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
3289         New devices.
3290         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
3291
3292 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
3293
3294         * tree-vect-data-refs.c (vect_analyze_group_access): Use
3295         HOST_WIDE_INT for gap.
3296
3297 2009-05-11  Ira Rosen  <irar@il.ibm.com>
3298
3299         PR tree-optimization/40074
3300         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
3301         account in group size and step comparison.
3302
3303 2009-05-11  Richard Guenther  <rguenther@suse.de>
3304
3305         * passes.c (init_optimization_passes): Strip now incorrect comment.
3306         (execute_function_todo): Do not set PROP_alias.
3307         * tree-pass.h (PROP_alias): Remove.
3308         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
3309         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
3310         * tree-nrv.c (pass_return_slot): Likewise.
3311         * tree-object-size.c (pass_object_sizes): Likewise.
3312         * tree-ssa-dom.c (pass_dominator): Likewise.
3313         (pass_phi_only_cprop): Likewise.
3314         * tree-ssa-dse.c (pass_dse): Likewise.
3315         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
3316         (pass_cselim): Likewise.
3317         * tree-ssa-pre.c (pass_pre): Likewise.
3318         (pass_fre): Likewise.
3319         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
3320         * tree-ssa-sink.c (pass_sink_code): Likewise.
3321         * tree-stdarg.c (pass_stdarg): Likewise.
3322         * tree-tailcall.c (pass_tail_calls): Likewise.
3323         * tree-vrp.c (pass_vrp): Likewise.
3324
3325 2009-05-10  Ian Lance Taylor  <iant@google.com>
3326
3327         * basic-block.h (enum profile_status): Break out of struct
3328         control_flow_graph.
3329         * cgraph.h (struct inline_summary): Break out of struct
3330         cgraph_local_info.
3331         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
3332         of struct cgraph_order_sort.
3333         * combine.c (enum undo_kind): New enum, broken out of struct undo.
3334         * cse.c (struct branch_path): Break out of struct
3335         cse_basic_block_data.
3336         * except.h (enum eh_region_type): Break out of struct eh_region.
3337         * gcc.c (enum add_del): Break out of struct modify_target.
3338         * genrecog.c (enum decision_type): Break out of struct decision_test.
3339         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
3340         ggc_pch_data.
3341         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
3342         * regmove.c (enum match_use): New enum, broken out of struct match.
3343         * sched-int.h (enum post_call_group): New enum, broken out of
3344         struct deps.
3345         (struct deps_reg): Break out of struct deps.
3346         * target.h (struct asm_int_op): Break out of struct gcc_target.
3347         * tree-eh.c (struct goto_queue_node): Break out of struct
3348         leh_tf_state.
3349         * tree-inline.h (enum copy_body_cge_which): Break out of
3350         copy_body_data.
3351         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
3352
3353         * c-decl.c (in_struct, struct_types): New static variables.
3354         (pushtag): Add loc parameter.  Change all callers.
3355         (lookup_tag): Add ploc parameter.  Change all callers.
3356         (check_compound_literal_type): New function.
3357         (parser_xref_tag): Add loc parameter.  Change all callers.  If
3358         -Wc++-compat, warn about struct/union/enum types defined within a
3359         struct or union.
3360         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
3361         and loc parameters.  Change all callers.  Change error calls to
3362         error_at, using loc.  For a redefinition, if the location of the
3363         original definition is known, report it.  Set in_struct and
3364         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
3365         (finish_struct): Add new parameters enclosing_in_struct and
3366         enclosing_struct_types.  Change all callers.  Set
3367         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
3368         in the struct.  If in a struct, add this struct to struct_types.
3369         (start_enum): Add loc parameter.  Change all callers.  Use
3370         error_at for errors, using loc.  For a redefinition, if the
3371         location of the original definition is known, report it.  If in a
3372         struct, add this enum type to struct_types.  If -Wc++-compat warn
3373         if in sizeof, typeof, or alignof.
3374         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
3375         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
3376         (c_parser_enum_specifier): Get enum location for start_enum.
3377         (c_parser_struct_or_union_specifier): Get struct location for
3378         start_struct.  Save in_struct and struct_types status between
3379         start_struct and finish_struct.
3380         (c_parser_cast_expression): Get location of cast.
3381         (c_parser_alignof_expression): Get location of type.
3382         (c_parser_postfix_expression): Likewise.
3383         (c_parser_postfix_expression_after_paren_type): Add type_loc
3384         parameter.  Change all callers.  Call check_compound_literal_type.
3385         Use type_loc for error about variable size type.
3386         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
3387         of an enum constant from an enum type defined in a struct or union.
3388         (c_cast_expr): Add loc parameter.  Change all callers.  If
3389         -Wc++-compat, warn about defining a type in a cast.
3390         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
3391         (start_enum, start_struct, finish_struct): Update declarations.
3392         (parser_xref_tag, c_cast_expr): Update declarations.
3393         (check_compound_literal_type): Declare.
3394
3395 2009-05-11  Ben Elliston  <bje@au.ibm.com>
3396
3397         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
3398         for recent libcpp interface change.
3399         (rs6000_macro_to_expand): Likewise.
3400
3401 2009-05-10  Michael Matz  <matz@suse.de>
3402
3403         PR target/40031
3404         * config/arm/arm.c (require_pic_register): Emit on entry edge,
3405         not at entry of function.
3406
3407 2009-05-10  Richard Guenther  <rguenther@suse.de>
3408
3409         PR tree-optimization/40081
3410         Revert
3411         * tree-sra.c (instantiate_element): Instantiate scalar replacements
3412         using the main variant of the element type.  Do not fiddle with
3413         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3414
3415         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
3416         structs with volatile fields.
3417
3418 2009-05-10  Jan Hubicka  <jh@suse.cz>
3419
3420         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
3421         (estimate_move_cost): Assert that it does not get called for
3422         VOID_TYPE_P.
3423         (estimate_num_insns): Skip VOID types in argument handling.
3424         (optimize_inline_calls): Delete unreachable blocks and verify that
3425         callgraph is valid.
3426
3427 2009-05-10  Jan Hubicka  <jh@suse.cz>
3428
3429         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
3430         * cgraph.c (cgraph_mark_address_taken_node): New function.
3431         (dump_cgraph_node): Dump new flag.
3432         * cgraph.h (struct cgraph_node): Add address_taken.
3433         (cgraph_mark_address_taken_node): New function.
3434         * ipa.c (cgraph_postorder): Prioritize functions with address taken
3435         since new direct calls can be born.
3436
3437 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
3438
3439         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
3440         tok->val.node.node.
3441
3442 2009-05-10  Jan Hubicka  <jh@suse.cz>
3443
3444         PR middle-end/40084
3445         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
3446         argument; rewrite.
3447         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
3448         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
3449         * tree-inline.c (copy_bb): Set frequency correctly.
3450         (fold_marked_statements): Update call to
3451         cgraph_update_edges_for_call_stmt.
3452
3453 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
3454
3455         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
3456         identifiers in diagnostics.
3457         * config/arm/arm.c (arm_handle_fndecl_attribute,
3458         arm_handle_isr_attribute): Likewise.
3459         * config/avr/avr.c (avr_handle_progmem_attribute,
3460         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
3461         * config/bfin/bfin.c (handle_int_attribute,
3462         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
3463         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
3464         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
3465         Likewise.
3466         * config/darwin.c (darwin_handle_kext_attribute,
3467         darwin_handle_weak_import_attribute): Likewise.
3468         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
3469         h8300_handle_eightbit_data_attribute,
3470         h8300_handle_tiny_data_attribute): Likewise.
3471         * config/i386/i386.c (ix86_handle_cconv_attribute,
3472         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
3473         * config/i386/winnt.c (ix86_handle_shared_attribute,
3474         ix86_handle_selectany_attribute): Likewise.
3475         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
3476         * config/m32c/m32c.c (function_vector_handler): Likewise.
3477         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
3478         m68hc11_handle_fntype_attribute): Likewise.
3479         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
3480         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
3481         * config/mips/mips.c (mips_insert_attributes,
3482         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
3483         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
3484         rs6000_handle_struct_attribute): Likewise.
3485         * config/sh/sh.c (sh_insert_attributes,
3486         sh_handle_resbank_handler_attribute,
3487         sh_handle_interrupt_handler_attribute,
3488         sh2a_handle_function_vector_handler_attribute,
3489         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3490         Likewise.
3491         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
3492         * config/spu/spu.c (spu_handle_fndecl_attribute,
3493         spu_handle_vector_attribute): Likewise.
3494         * config/stormy16/stormy16.c
3495         (xstormy16_handle_interrupt_attribute): Likewise.
3496         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
3497         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
3498
3499 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
3500
3501         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
3502         (pp_translate_identifiers): New.
3503         (pp_identifier): Only conditionally translate identifier to locale
3504         character set.
3505         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
3506         (pp_base_tree_identifier): Only conditionally translate identifier
3507         to locale character set.
3508         * c-pretty-print.c (M_): Define.
3509         (pp_c_type_specifier, pp_c_primary_expression): Mark English
3510         fragments for conditional translation with M_.
3511         * tree-pretty-print.c (maybe_init_pretty_print): Disable
3512         identifier translation.
3513
3514 2009-05-10  Richard Guenther  <rguenther@suse.de>
3515
3516         PR tree-optimization/40081
3517         * tree-sra.c (instantiate_element): Instantiate scalar replacements
3518         using the main variant of the element type.  Do not fiddle with
3519         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3520
3521 2009-05-09  Jan Hubicka  <jh@suse.cz>
3522
3523         PR middle-end/40080
3524         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
3525         indirect calls; verify cgraph afterwards.
3526
3527 2009-05-09  Jan Hubicka  <jh@suse.cz>
3528
3529         PR bootstrap/40082
3530         * ipa.c (update_inlined_to_pointer): New function.
3531         (cgraph_remove_unreachable_nodes): Use it.
3532
3533 2009-05-09  Jan Hubicka  <jh@suse.cz>
3534
3535         * tree-eh.c (struct leh_state): Remove prev_try.
3536         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
3537         not track prev_try.
3538         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
3539         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
3540         remove_eh_handler_and_replace, foreach_reachable_handler,
3541         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
3542         * except.h (struct eh_region): Remove eh_region_u_cleanup.
3543         (gen_eh_region_cleanup): Update prototype.
3544
3545 2009-05-09  Jan Hubicka  <jh@suse.cz>
3546
3547         PR middle-end/40043
3548         * except.c (copy_eh_region): Always set prev_try.
3549         (redirect_eh_edge_to_label): Find outer try.
3550         (foreach_reachable_handler): When looking for prev try
3551         handle case where previous try is not going to be taken.
3552
3553 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
3554
3555         PR tree-optimization/40049
3556         * tree-vect-stmts.c (vectorizable_operation): If the machine has
3557         only vector/vector shifts, convert the type of the constant to the
3558         appropriate type to avoid building incorrect trees, which
3559         eventually have problems with garbage collection.
3560
3561 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
3562
3563         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
3564         -1 for complex floating-point types if honoring signed zeros.
3565
3566 2009-05-08  Jan Hubicka  <jh@suse.cz>
3567
3568         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
3569         argument; handle correctly when profile is absent.
3570         (build_cgraph_edges): Update.
3571         (rebuild_cgraph_edges): Update.
3572         * cgraph.c: Do not include varray.h.
3573         (cgraph_set_call_stmt_including_clones): New function.
3574         (cgraph_create_edge_including_clones): Likewise
3575         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
3576         (cgraph_update_edges_for_call_stmt): Handle clones.
3577         (cgraph_remove_node): Handle clone tree.
3578         (cgraph_remove_node_and_inline_clones): New function.
3579         (dump_cgraph_node): Dump clone tree.
3580         (cgraph_clone_node): Handle clone tree.
3581         (clone_function_name): Bring here from tree-inline.c.
3582         (cgraph_create_virtual_clone): New function.
3583         * cgraph.h (ipa_replace_map): Move here from ipa.h.
3584         (cgraph_clone_info): New function.
3585         (strut cgraph_node): Add clone_info and new clone tree pointers.
3586         (cgraph_remove_node_and_inline_clones,
3587         cgraph_set_call_stmt_including_clones,
3588         cgraph_create_edge_including_clones,
3589         cgraph_create_virtual_clone): Declare.
3590         (cgraph_function_versioning): Use VEC argument.
3591         (compute_call_stmt_bb_frequency): Update prototype.
3592         (cgraph_materialize_all_clones): New function.
3593         * ipa-cp.c (ipcp_update_cloned_node): Remove.
3594         (ipcp_create_replace_map): Update to VECtors.
3595         (ipcp_update_callgraph): Use virtual clones.
3596         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
3597         (ipcp_update_profiling): Do not update local profiling.
3598         (ipcp_insert_stage): Use VECtors and virtual clones.
3599         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
3600         (clone_of_p): New function.
3601         (cgraph_preserve_function_body_p): Use clone tree.
3602         (cgraph_optimize): Materialize clones.
3603         (cgraph_function_versioning): Update for VECtors.
3604         (save_inline_function_body): Use clone tree.
3605         (cgraph_materialize_clone): New function.
3606         (cgraph_materialize_all_clones): Likewise.
3607         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
3608         * ipa.c: Include gimple.h.
3609         (cgraph_remove_unreachable_nodes): Use clone tree.
3610         * ipa-prop.c (ipa_note_param_call): Update call to
3611         compute_call_stmt_bb_frequencycall.
3612         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
3613         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
3614         (copy_bb): Handle updating of clone tree; add new edge when new call
3615         appears.
3616         (expand_call_inline): Be strict about every call having edge.
3617         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
3618         (delete_unreachable_blocks_update_callgraph): New function.
3619         (tree_function_versioning): Use VECtors; always remove unreachable
3620         blocks and fold conditionals.
3621         * tree-inline.h: Do not include varray.h.
3622         (tree_function_versioning): Remove.
3623         * Makefile.in (GTFILES): Remove tree-inline.c
3624         * passes.c (do_per_function): Do only functions having body.
3625         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
3626         tree.
3627
3628 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
3629             Andrew Morrow  <acm@google.com>
3630
3631         PR c/36892
3632         * c-common.c (c_common_attribute_table): Permit deprecated
3633         attribute to take an optional argument.
3634         (handle_deprecated_attribute): If the optional argument to
3635         __attribute__((deprecated)) is not a string ignore the attribute
3636         and emit a warning.
3637
3638         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
3639         * c-typeck.c (build_component_ref): Likewise.
3640         (build_external_ref): Likewise.
3641
3642         * toplev.c (warn_deprecated_use): Add an attribute argument.
3643         Emit the message associated with __attribute__((deprecated)).
3644
3645         * toplev.h (warn_deprecated_use): Updated.
3646
3647         * doc/extend.texi: Document new optional parameter to
3648         __attribute__((deprecated))
3649
3650 2009-05-08  Michael Eager <eager@eagercon.com>
3651
3652         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
3653         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
3654
3655 2009-05-08  Richard Guenther  <rguenther@suse.de>
3656
3657         PR tree-optimization/40062
3658         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
3659         Avoid exponential behavior.
3660
3661 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
3662
3663         PR rtl-optimization/33928
3664         PR 26854
3665         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
3666         process_uses, build_single_def_use_links): New.
3667         (update_df): Update use_def_ref.
3668         (forward_propagate_into): Use get_def_for_use instead of use-def
3669         chains.
3670         (fwprop_init): Call build_single_def_use_links and let it initialize
3671         dataflow.
3672         (fwprop_done): Free use_def_ref.
3673         (fwprop_addr): Eliminate duplicate call to df_set_flags.
3674         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
3675         df_rd_simulate_one_insn): New.
3676         (df_rd_bb_local_compute_process_def): Update head comment.
3677         (df_chain_create_bb): Use the new RD simulation functions.
3678         * df.h (df_rd_simulate_artificial_defs_at_top, 
3679         df_rd_simulate_one_insn): New.
3680         * opts.c (decode_options): Enable fwprop at -O1.
3681         * doc/invoke.texi (-fforward-propagate): Document this.
3682
3683 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
3684
3685         PR c/24581
3686         * c-typeck.c (build_binary_op): Handle arithmetic between one real
3687         and one complex operand specially.
3688         * tree-complex.c (some_nonzerop): Do not identify a real value as
3689         zero if flag_signed_zeros.
3690
3691 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
3692
3693         PR rtl-optimization/33928
3694         * loop-invariant.c (record_use): Fix && vs. || mishap.
3695
3696 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
3697
3698         PR rtl-optimization/33928
3699         * loop-invariant.c (struct use): Add addr_use_p.
3700         (struct def): Add n_addr_uses.
3701         (struct invariant): Add cheap_address.
3702         (create_new_invariant): Set cheap_address.
3703         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
3704         (record_uses): Pass df_ref to record_use.
3705         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
3706         used only as such.
3707
3708 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
3709
3710         * config/sh/sh.c: Do not include c-pragma.h.
3711
3712 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3713
3714         * config/spu/spu.c: Remove include of c-common.h.
3715
3716 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
3717
3718         PR c/39037
3719         * c-common.h (mark_valid_location_for_stdc_pragma,
3720         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
3721         clear_float_const_decimal64, float_const_decimal64_p): New.
3722         * c.opt (Wunsuffixed-float-constants): New.
3723         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
3724         unsuffixed float constant, handle new warning.
3725         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
3726         * c-decl.c (c_scope): New flag float_const_decimal64.
3727         (set_float_const_decimal64, clear_float_const_decimal64,
3728         float_const_decimal64_p): New.
3729         (push_scope): Set new flag.
3730         * c-parser.c (c_parser_translation_unit): Mark when it's valid
3731         to use STDC pragmas.
3732         (c_parser_external_declaration): Ditto.
3733         (c_parser_compound_statement_nostart): Ditto.
3734         * c-pragma.c (valid_location_for_stdc_pragma,
3735         mark_valid_location_for_stdc_pragma,
3736         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
3737         handle_pragma_float_const_decimal64): New.
3738         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
3739         * cp/semantics.c (valid_location_for_stdc_pragma_p,
3740         set_float_const_decimal64, clear_float_const_decimal64,
3741         float_const_decimal64_p): New dummy functions.
3742         * doc/extend.texi (Decimal Float): Remove statement that the
3743         pragma, and suffix for double constants, are not supported.
3744         * doc/invoke.texi (Warning Options): List new option.
3745         (-Wunsuffixed-float-constants): New.
3746
3747 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
3748
3749         * config/i386/i386.c: Do not include c-common.h.
3750
3751 2009-05-07  Mark Heffernan  <meheff@google.com>
3752
3753         * doc/invoke.texi (Debugging Options): Document change of debugging
3754         dump location.
3755         * opts.c (decode_options): Make dump_base_name relative to
3756         aux_base_name directory.
3757
3758 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
3759
3760         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
3761         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
3762
3763 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
3764
3765         * Makefile.in (install-plugin): Simplify a bit.
3766
3767 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
3768
3769         * Makefile.in (OBJS-common): Add regcprop.o.
3770         (regcprop.o): New.
3771         * timevar.def (TV_CPROP_REGISTERS): New.
3772         * regrename.c (regrename_optimize): Return 0.
3773         (rest_of_handle_regrename): Delete.
3774         (pass_rename_registers): Point to regrename_optimize.
3775         (struct value_data_entry, struct value_data, 
3776         kill_value_one_regno, kill_value_regno, kill_value,
3777         set_value_regno, init_value_data, kill_clobbered_value,
3778         kill_set_value, kill_autoinc_value, copy_value,
3779         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
3780         replace_oldest_value_reg, replace_oldest_value_addr,
3781         replace_oldest_value_mem, copyprop_hardreg_forward_1,
3782         debug_value_data, validate_value_data): Move...
3783         * regcprop.c: ... here.
3784         (rest_of_handle_cprop): Delete.
3785         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
3786
3787 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
3788
3789         PR middle-end/40057
3790         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
3791         GEN_INT for 1 << bitnum.
3792         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
3793         build_int_cst_type.
3794
3795 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
3796
3797         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
3798         Remove wrong description of "nand" operation.
3799
3800 2009-05-06  Richard Guenther  <rguenther@suse.de>
3801             Adam Nemet  <anemet@caviumnetworks.com>
3802
3803         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
3804         comment.  Add that if LHS is not a gimple register, then RHS1 has
3805         to be a single object (GIMPLE_SINGLE_RHS).
3806
3807 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
3808
3809         * expr.c (get_def_for_expr): Move it up in the file.
3810         (store_field): When expanding a bit-field store, look at the
3811         defining gimple stmt for the masking conversion.
3812
3813 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
3814
3815         PR middle-end/39986
3816         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
3817         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
3818         32-bit memcpy into long.
3819
3820 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
3821
3822         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
3823         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
3824         new_reg_loc_descr.
3825         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
3826         instead of appending DW_OP_deref*.
3827
3828 2009-05-06  Michael Matz  <matz@suse.de>
3829
3830         PR middle-end/40021
3831         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
3832         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
3833
3834 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
3835
3836         * Makefile.in (install-plugin): Fix srcdir handling.
3837
3838 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
3839
3840         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
3841         when processing for not_regs_needed bitmap.
3842         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
3843         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
3844         handling it for rhs. 
3845
3846 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3847
3848         * config/i386/i386.md (unnamed inc/dec peephole): Use
3849         optimize_insn_for_size_p instead of optimize_size.
3850         * config/i386/predicates.md (incdec_operand): Likewise.
3851         (aligned_operand): Likewise.
3852         * config/i386/sse.md (divv8sf3): Likewise.
3853         (sqrtv8sf2): Likewise.
3854
3855 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3856
3857         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
3858
3859         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
3860
3861 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3862
3863         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
3864         ssemodesuffixf2c with avxmodesuffixf2c.
3865
3866 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
3867
3868         PR c/40032
3869         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
3870
3871 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
3872
3873         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
3874         (struct tree_base): Adjust spacing for 8 bit boundaries.
3875         (struct tree_decl_common): Add decl_by_reference_flag bit.
3876         (DECL_BY_REFERENCE): Adjust.
3877         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
3878         print DECL_BY_REFERENCE bit.
3879         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
3880         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
3881         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
3882         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
3883         unconditionally.
3884
3885         PR middle-end/39666
3886         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
3887         range of the type, but default label is missing, add it with one
3888         of the existing labels instead of adding a new label for it.
3889
3890 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
3891
3892         * dwarf.h: Remove.
3893
3894 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
3895
3896         * Makefile.in (enable_plugin, plugin_includedir): New.
3897         (install): Depend on install-plugin.
3898         (PLUGIN_HEADERS): New.
3899         (install-plugin): New.
3900         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
3901
3902 2009-05-05  Richard Guenther  <rguenther@suse.de>
3903
3904         PR tree-optimization/40022
3905         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
3906         the only vuse.
3907         (phivn_valid_p): Fix tuplification error, simplify.
3908         (phiprop_insert_phi): Add dumps.
3909         (propagate_with_phi): Simplify.
3910
3911 2009-05-05  Richard Guenther  <rguenther@suse.de>
3912
3913         PR middle-end/40023
3914         * builtins.c (gimplify_va_arg_expr): Properly build the address.
3915
3916 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
3917
3918         * tree.h (strip_float_extensions): Remove duplicate declaration.
3919         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
3920         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
3921         block_ultimate_origin): Rearrange the declarations line to match the
3922         comment that indicates the .c file which the functions are defined.
3923         (dwarf2out_*, set_decl_rtl): Add comment.
3924         (get_base_address): Adjust comment.
3925         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
3926         declarations line and add comment.
3927         (is_builtin_name): Add blank after function name, for clarity.
3928
3929 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
3930
3931         * attribs.c (decl_attributes): Use %qE for identifiers in
3932         diagnostics.
3933         * cgraphunit.c (verify_cgraph_node): Translate function names to
3934         locale character set in diagnostics.
3935         * coverage.c (get_coverage_counts): Use %qE for identifiers in
3936         diagnostics.
3937         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
3938         Document that functions are named in UTF-8.
3939         * expr.c (expand_expr_real_1): Translate function names to locale
3940         character set in diagnostics.
3941         * gimplify.c (omp_notice_variable, omp_is_private,
3942         gimplify_scan_omp_clauses): Use %qE for identifiers in
3943         diagnostics.
3944         * langhooks.c (lhd_print_error_function): Translate function names
3945         to locale character set.
3946         * langhooks.h (decl_printable_name): Document that return value is
3947         in internal character set.
3948         * stmt.c: Include pretty-print.h
3949         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
3950         diagnostics.
3951         (resolve_operand_name_1): Translate named operand name to locale
3952         character set.
3953         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
3954         diagnostics.
3955         * toplev.c (announce_function): Translate function names to locale
3956         character set.
3957         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
3958         (default_tree_printer): Use pp_identifier or translate identifiers
3959         to locale character set.  Mark "<anonymous>" for translation.
3960         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
3961         for identifiers in diagnostics.
3962         * tree.c (handle_dll_attribute): Use %qE for identifiers in
3963         diagnostics.
3964         * varasm.c (output_constructor): Use %qE for identifiers in
3965         diagnostics.
3966
3967 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
3968
3969         * configure.ac: use ` ` instead of $()
3970         * configure: Regenerate.
3971
3972 2009-05-05  Ben Elliston  <bje@au.ibm.com>
3973
3974         * config/pa/linux-atomic.c: Eliminate conditional include of
3975         errno.h on non-LP64 systems to simplify build requirements.
3976
3977 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
3978
3979         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
3980         diagnostics.
3981         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
3982         and pass value to identifier_to_locale.
3983         (warn_variable_length_array): Make name a tree.
3984         (grokdeclarator): Separate diagnostic texts for named and unnamed
3985         declarators.  Use %qE for named declarators.
3986         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
3987         diagnostics.
3988         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
3989         identifiers in diagnostics.
3990         * c-typeck.c (push_member_name, start_init): Pass identifiers to
3991         identifier_to_locale.  Mark "anonymous" strings for translation.
3992
3993 2009-05-04  Michael Eager <eager@eagercon.com>
3994
3995         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
3996         address for DImode/DFmode only if double-precision FP regs.
3997
3998 2009-05-04  Michael Eager <eager@eagercon.com>
3999
4000         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
4001         TARGET_SINGLE_FLOAT check.
4002
4003 2009-05-04  Michael Eager <eager@eagercon.com>
4004
4005         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
4006
4007 2009-05-04  Michael Eager <eager@eagercon.com>
4008
4009         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
4010         * config/rs6000/t-xilinx: New
4011
4012 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
4013
4014         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
4015         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
4016         * gcc/explow.c (memory_address): Use target hook.
4017         * gcc/targhooks.c (default_legitimize_address): New.
4018         * gcc/targhooks.h (default_legitimize_address): New.
4019         * gcc/target.h (legitimize_address): New.
4020         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
4021         (TARGET_INITIALIZER): Include it.
4022         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
4023
4024         * config/bfin/bfin-protos.h (legitimize_address): Remove.
4025         * config/bfin/bfin.c (legitimize_address): Remove.
4026         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
4027         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
4028         Remove.
4029         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
4030         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
4031
4032         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
4033         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
4034         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
4035         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
4036         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
4037         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
4038         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
4039         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
4040         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
4041         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
4042         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
4043         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
4044         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
4045         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
4046         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
4047         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
4048         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
4049         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
4050         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
4051         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
4052         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
4053         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
4054         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
4055
4056         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
4057         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
4058         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
4059         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
4060         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
4061         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
4062         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
4063         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
4064         (thumb_legitimize_address): Delete.
4065         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
4066         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
4067         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
4068         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
4069         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
4070         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
4071         Delete.
4072         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
4073         Delete.
4074
4075         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
4076         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
4077         * config/m32r/m32r.c (m32r_legitimize_address): New.
4078         * config/m68k/m68k.c (m68k_legitimize_address): New.
4079         * config/score/score.c (score_legitimize_address): Standardize.
4080         * config/score/score3.c (score3_legitimize_address): Standardize.
4081         * config/score/score3.h (score3_legitimize_address): Adjust.
4082         * config/score/score7.c (score7_legitimize_address): Standardize.
4083         * config/score/score7.h (score7_legitimize_address): Adjust.
4084         * config/sh/sh.c (sh_legitimize_address): New.
4085         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
4086
4087         * gcc/config/s390/s390.c (legitimize_address): Rename to...
4088         (s390_legitimize_address): ... this.
4089         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
4090         (sparc_legitimize_address): ... this.
4091         * gcc/config/i386/i386.c (legitimize_address): Rename to...
4092         (ix86_legitimize_address): ... this.
4093         * gcc/config/avr/avr.c (legitimize_address): Rename to...
4094         (avr_legitimize_address): ... this.
4095         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
4096         (mn10300_legitimize_address): ... this.
4097         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
4098         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
4099         (alpha_expand_mov): Adjust call.
4100
4101         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
4102         * config/spu/spu.c (spu_legitimize_address): Likewise.
4103         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
4104         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
4105
4106 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
4107
4108         * intl.c (locale_encoding, locale_utf8): New.
4109         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
4110         * intl.h (locale_encoding, locale_utf8): Declare.
4111         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
4112         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
4113         New.
4114         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
4115         argument.
4116         (pp_tree_identifier): Define to call pp_base_tree_identifier.
4117         (pp_base_tree_identifier): Declare as function.
4118         (identifier_to_locale): Declare.
4119         * Makefile.in (pretty-print.o): Update dependencies.
4120         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
4121
4122 2009-05-04  Richard Guenther  <rguenther@suse.de>
4123
4124         PR middle-end/40015
4125         * builtins.c (fold_builtin_memory_op): Do not decay to element
4126         type if the size matches the whole array.
4127
4128 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
4129
4130         * expmed.c (synth_mult): When trying out a shift, pass the result
4131         of a signed shift.
4132
4133 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
4134
4135         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
4136         (shiftsub1_cost): New.
4137         (init_expmed): Compute shiftsub1_cost.
4138         (synth_mult): Optimize multiplications by constants of the form
4139         -(2^^m-1) for some constant positive integer m.
4140
4141 2009-05-03  Richard Guenther  <rguenther@suse.de>
4142
4143         PR c/39983
4144         * c-typeck.c (array_to_pointer_conversion): Do not built
4145         ADDR_EXPRs of arrays of pointer-to-element type.
4146         * c-gimplify.c (c_gimplify_expr): Revert change fixing
4147         up wrong ADDR_EXPRs after-the-fact.
4148         * c-common.c (strict_aliasing_warning): Strip pointer
4149         conversions for obtaining the original type.
4150         * builtins.c (fold_builtin_memset): Handle array types.
4151         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
4152         and array types
4153
4154 2009-05-03  Richard Guenther  <rguenther@suse.de>
4155
4156         PR middle-end/23329
4157         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
4158         Do not lose casts from array types with unknown extent to array
4159         types with known extent.
4160         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
4161         alias set compatibility.
4162
4163 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4164
4165         * flags.h (extra_warnings): Delete.
4166         * toplev.c (process_options): Handle Wuninitialized here.
4167         * opts.c (extra_warnings): Delete.
4168         (set_Wextra): Delete.
4169         (common_handle_option): -Wextra can be handled automatically.
4170         * c-opts.c (c_common_handle_option): Delete obsolete code.
4171         (c_common_post_options): Simplify comment.
4172         * common.opt (W): Add Var.
4173         (Wextra): Add Var.
4174         (Wuninitialized): Initialize to -1.
4175
4176 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
4177             Richard Guenther  <rguenther@suse.de>
4178
4179         * expr.c (get_def_for_expr): New function.
4180         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
4181         SSA rather than trees.
4182         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
4183         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
4184         
4185 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
4186
4187         * c-common.c (reswords): Add _Imaginary.
4188         * c-common.c (enum rid): Add RID_IMAGINARY.
4189
4190 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
4191
4192         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
4193         Patch by Richard Guenther.
4194
4195 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
4196
4197         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4198         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4199         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4200         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4201         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4202         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4203         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4204         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4205         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4206         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4207         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4208         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4209         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4210         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4211         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4212         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4213         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4214         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4215
4216 2009-05-02  Richard Guenther  <rguenther@suse.de>
4217
4218         PR tree-optimization/39940
4219         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4220         doing so.
4221
4222 2009-05-02  Richard Guenther  <rguenther@suse.de>
4223
4224         PR middle-end/40001
4225         * tree-ssa.c (execute_update_addresses_taken): Properly check
4226         if we can mark a variable DECL_GIMPLE_REG_P.
4227         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4228         back to the end of the function.
4229         (is_gimple_reg_type): Remove complex type special casing.
4230         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4231         if not optimizing.
4232
4233 2009-05-02  Ben Elliston  <bje@au.ibm.com>
4234
4235         * doc/collect2.texi (Collect2): Document search path behaviour
4236         when configured with --with-ld.
4237
4238 2009-05-02  Jan Hubicka  <jh@suse.cz>
4239
4240         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
4241         parameter; update callers.
4242         (coalesce_cost_edge): EH edges are costier because they needs
4243         splitting even if not critical and even more costier when there are
4244         multiple EH predecestors.
4245
4246 2009-05-02  Jan Hubicka  <jh@suse.cz>
4247
4248         * except.c (remove_eh_handler_and_replace): Handle updating after
4249         removing TRY blocks.
4250
4251 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
4252
4253         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4254
4255 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
4256
4257         * varasm.c: Do not include c-pragma.h.
4258         * attribs.c: Do not incude c-common.h.
4259
4260 2009-05-01  Michael Matz  <matz@suse.de>
4261
4262         * calls.c (initialize_argument_information): Handle SSA names like
4263         decls with a non MEM_P DECL_RTL.
4264
4265 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
4266
4267         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
4268         * ipa-utils.c: Likewise.
4269         * ipa-type-escape.c: Likewise.
4270         * cgraphunit.c Do not include c-common.h.
4271         * ipa-pure-const.c: Likewise.
4272         * tree-if-conv.c: Likewise.
4273         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
4274         * ipa-struct-reorg.c: Likewise.
4275         * tree-nomudflap.c: Likewise.
4276         * tree-ssa-structalias.c: Likewise.
4277
4278 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
4279
4280         * store-motion.c: Many cleanups to make this pass a first-class
4281         citizen instead of an appendix to gcse load motion.  Add TODO list
4282         to make this pass faster/cleaner/better.
4283
4284         (struct ls_expr): Post gcse.c-split cleanups.
4285         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
4286         "stores" field to "avail_stores".
4287         (pre_ldst_mems): Rename to store_motion_mems.
4288         (pre_ldst_table): Rename to store_motion_mems_table.
4289         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
4290         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
4291         (ldst_entry): Rename to st_expr_entry, update users.
4292         (free_ldst_entry): Rename to free_st_expr_entry, update users.
4293         (free_ldst_mems): Rename to free_store_motion_mems, update users.
4294         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
4295         update caller.
4296         (first_ls_expr): Rename to first_st_expr, update users.
4297         (next_ls_expr): Rename to next_st_expr, update users.
4298         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
4299         fields properly for store motion instead of names inherited from load
4300         motion in gcse.c.
4301         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
4302         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
4303         are done with it.
4304
4305         (ae_kill): Rename to st_kill, update users.
4306         (ae_gen): Rename to st_avloc, update users.
4307         (transp): Rename to st_transp, update users.
4308         (pre_insert_map): Rename to st_insert_map, update users.
4309         (pre_delete_map): Rename to st_delete_map, update users.
4310         (insert_store, build_store_vectors, free_store_memory,
4311         one_store_motion_pass): Update for abovementioned changes.
4312
4313         (gcse_subst_count, gcse_create_count): Remove.
4314         (one_store_motion_pass): New statistics counters "n_stores_deleted"
4315         and "n_stores_created", local variables.
4316
4317         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
4318         use for_each_rtx.
4319
4320         (regvec, compute_store_table_current_insn): Remove.
4321         (reg_set_info, reg_clear_last_set): Remove.
4322         (compute_store_table): Use DF caches instead of local dataflow
4323         solvers.
4324
4325 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
4326
4327         * c-objc-common.c (c_tree_printer): Print identifiers with
4328         pp_identifier, not pp_string.  Mark "({anonymous})" for
4329         translation.
4330         * c-pretty-print.c (pp_c_ws_string): New.
4331         (pp_c_cv_qualifier, pp_c_type_specifier,
4332         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
4333         pp_c_storage_class_specifier, pp_c_function_specifier,
4334         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
4335         pp_c_primary_expression, pp_c_postfix_expression,
4336         pp_c_unary_expression, pp_c_shift_expression,
4337         pp_c_relational_expression, pp_c_equality_expression,
4338         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
4339         use pp_string and pp_c_ws_string in place of pp_identifier and
4340         pp_c_identifier for non-identifiers.  Mark English strings for
4341         translation.
4342         * c-pretty-print.h (pp_c_ws_string): Declare.
4343
4344 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
4345             Roland McGrath <roland@redhat.com>
4346
4347         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
4348         (ENABLE_LD_BUILDID): New configuration option.
4349         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
4350         (LINK_BUILDID_SPEC): New macro.
4351         (init_spec): If defined, prepend it between LINK_EH_SPEC and
4352         link_spec.
4353         * doc/install.texi: Document --enable-linker-build-id option.
4354         * configure: Rebuild.
4355         * config.in: Rebuild.
4356
4357 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
4358
4359         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
4360         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
4361         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
4362         MIPS_GP_SAVE_AREA_SIZE.
4363         * config/mips/mips.c (struct mips_frame_info): Update comment
4364         before arg_pointer_offset and hard_frame_pointer_offset.
4365         (mips_compute_frame_info): Update diagram before function: to
4366         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
4367         indicate the position of frame_pointer_rtx with -fstack-protector and
4368         to show args_size.  Don't allocate cprestore area for leaf functions
4369         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
4370         cprestore_size.
4371         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
4372
4373 2009-04-30  Michael Matz  <matz@suse.de>
4374
4375         PR tree-optimization/39955
4376         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
4377
4378 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
4379
4380         * ira.c (setup_cover_and_important_classes):  Use safe macro
4381         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
4382         directly.
4383         * genpreds.c (write_tm_preds_h):  Output suitable definition of
4384         REG_CLASS_FOR_CONSTRAINT.
4385
4386 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
4387
4388         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
4389         instead of an int.
4390         * bitmap.c (bitmap_descriptor): Likewise.
4391         * ggc-common.c (loc_descriptor): Likewise.
4392         * varray.c (varray_descriptor): Likewise.
4393         * vec.c (vec_descriptor): Likewise.
4394
4395 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
4396
4397         * Makefile.in (dce.o): Add $(EXCEPT_H).
4398         * dce.c: Include except.h and delete redundant vector definitions.
4399         (deletable_insn_p): Return false for non-call insns that can throw
4400         if DF is running.
4401
4402 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4403
4404         * gcse.c (ae_gen): Remove.
4405         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
4406         and make non-static function to make it available in store-motion.c.
4407         Update call sites with search-and-replace.
4408         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
4409         extract_mentioned_regs, extract_mentioned_regs_helper,
4410         find_moveable_store, compute_store_table, load_kills_store, find_loads,
4411         store_killed_in_insn, store_killed_after, store_killed_before,
4412         build_store_vectors, insert_insn_start_basic_block, insert-store,
4413         remove_reachable_equiv_notes, replace_store_insn, delete_store,
4414         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
4415         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
4416         * store-motion.c: ...new file.  Also copy data structures from gcse.c
4417         and clean up to remove parts not used by store motion.
4418         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
4419         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
4420
4421 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4422
4423         PR target/38571
4424         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
4425         when optimizing for size.
4426
4427 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
4428
4429         * gcse.c (gcse_constant_p): Fix typo in last change.
4430
4431 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
4432
4433         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
4434
4435 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
4436
4437         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
4438
4439 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
4440
4441         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
4442         CONST_HIGH_PART result.
4443
4444 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
4445
4446         * config/avr/avr.c (initial_elimination_offset): Rename to
4447         avr_initial_elimination_offset.
4448         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
4449         change return type to bool.
4450         (avr_can_eliminate): New function.
4451         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
4452         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
4453         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
4454         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
4455         avr_initial_elimination_offset.
4456         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
4457         (avr_initial_elimination_offset): Define.
4458
4459 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
4460             Steven Bosscher  <steven@gcc.gnu.org>
4461
4462         PR rtl-optimization/39938
4463         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
4464         * cfgrtl.c: Include insn-attr.h.
4465         (rest_of_pass_free_cfg): New function.
4466         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
4467         * resource.c (init_resource_info): Remove call to df_analyze.
4468
4469 2009-04-29  Richard Guenther  <rguenther@suse.de>
4470
4471         PR target/39943
4472         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
4473         allow conversion to signed integers.
4474
4475 2009-04-29  Richard Guenther  <rguenther@suse.de>
4476
4477         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
4478         shifts of floating point vectors if the shift amount is
4479         a constant multiple of the element size.
4480
4481 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4482             Michael Matz  <matz@suse.de>
4483
4484         PR middle-end/39927
4485         PR bootstrap/39929
4486         * tree-outof-ssa.c (emit_partition_copy): New function.
4487         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4488         insert_part_to_rtx_on_edge): Perform the partition base var
4489         copy using emit_partition_copy.
4490         (insert_value_copy_on_edge): Convert constants to the right mode.
4491         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
4492         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
4493
4494 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4495
4496         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
4497         scan backwards to try to find a constant to initialize it.
4498
4499         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
4500         insn before the loop_end instruction, don't look past labels.
4501
4502 2009-04-29  Richard Guenther  <rguenther@suse.de>
4503
4504         PR middle-end/39937
4505         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
4506         loose type conversions.
4507         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
4508         stmts only if there are no uses of its definition.
4509
4510 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4511
4512         * config/bfin/bfin.h (splitting_loops): Declare.
4513         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
4514         Reorder bit definitions to be ascending.
4515         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
4516         * config/bfin/bfin.c (splitting_loops): New variable.
4517         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
4518         (struct loop_info): Remove members INIT and LOOP_INIT.
4519         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
4520         the LSETUP sequence.  Allow LC to be loaded from any register, but
4521         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
4522         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
4523         set to 1.
4524         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
4525         of reload_completed.
4526
4527         From Jie Zhang:
4528         * config/bfin/bfin.md (movsi_insn): Refine constraints.
4529
4530 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
4531
4532         * Makefile.in (PLUGIN_VERSION_H): New.
4533         (OBJS-common): Remove plugin-version.o.
4534         (plugin.o): Depend on (PLUGIN_VERSION_H).
4535         (plugin-version.o): Remove.
4536         * configure: Regenerate
4537         * configure.ac: Create plugin-version.h.
4538         * gcc-plugin.h (plugin_gcc_version): Remove.
4539         (plugin_default_version_check): Change signature.
4540         * plugin-version.c: Remove.
4541         * plugin.c: Include plugin-version.h.
4542         (str_plugin_gcc_version_name): Remove.
4543         (try_init_one_plugin): Pass gcc version to plugin_init.
4544         (plugin_default_version_check): Both gcc and plugin versions are now
4545         arguments.
4546
4547 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4548         
4549         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
4550         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
4551         Remove special case testing for last insn of inner loops. Don't fail
4552         if the loop ends with a jump, emit an extra nop instead.
4553
4554         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
4555         DREGS rather than comparing directly.  Remove code that tries to
4556         account for latencies.
4557
4558 2009-04-29  Richard Guenther  <rguenther@suse.de>
4559
4560         PR tree-optimization/39941
4561         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
4562         eliminating an indirect call.
4563
4564 2009-04-29  Richard Guenther  <rguenther@suse.de>
4565
4566         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
4567         parameter.  Allow invariants as base if !require_lvalue.
4568         (verify_gimple_assign_single): Adjust.
4569
4570 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4571
4572         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
4573         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
4574         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
4575         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
4576         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
4577         a VEC_SELECT.
4578         * config/bfin/bfin.c (bfin_expand_builtin,
4579         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
4580
4581 2009-04-28  Richard Guenther  <rguenther@suse.de>
4582
4583         * tree-vect-loop.c (get_initial_def_for_induction): Use
4584         correct types for pointer increment.
4585
4586 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4587
4588         * toplev.c (print_version): Update GMP version string calculation.
4589
4590 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4591
4592         PR rtl-optimization/39938
4593         * resource.c (init_resource_info): Add call to df_analyze.
4594
4595 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
4596
4597         * config/alpha/alpha.md (usegp): Cast the result of
4598         alpha_find_lo_sum_using_gp to enum attr_usegp.
4599         * config/alpha/alpha.c (override_options): Remove end-of-structure
4600         marker element from cpu_table.  Use array size of cpu_table to handle
4601         -mcpu and -mtune options.
4602         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
4603
4604 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
4605
4606         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
4607         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
4608         tune_32 and tune_64.
4609         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4610         support on PowerPC.
4611         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
4612         * config/rs6000/option-defaults.h: ... here.  New file.
4613         (OPT_64, OPT_32): Define.
4614         (MASK_64BIT): Define to 0 if not already defined.
4615         (OPT_ARCH64, OPT_ARCH32): Define.
4616         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
4617         and tune_64.
4618
4619 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4620
4621         * config/arm/arm.c (arm_override_options): Emit error on using
4622         fpa with AAPCS.
4623
4624 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
4625
4626         PR rtl-optimization/39914
4627         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
4628         registers for allocnos created from user-defined variables only
4629         when not optimizing.
4630
4631 2009-04-28  Richard Guenther  <rguenther@suse.de>
4632
4633         PR middle-end/39937
4634         * fold-const.c (fold_binary): Use distribute_real_division only
4635         on float types.
4636
4637 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
4638
4639         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
4640         add hpux-stdint.h to tm_file.
4641         (hppa[12]*-*-hpux11*): Ditto.
4642         (ia64*-*-hpux*): Ditto.
4643         * config/hpux-stdint.h: New.
4644         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
4645         __STDC_EXT__ for all compiles.
4646         * config/pa/pa-hpux.h: Ditto.
4647         * config/pa/pa-hpux10.h: Ditto.
4648         * config/pa/pa-hpux11.h: Ditto.
4649
4650 2009-04-28  Catherine Moore  <clm@codesourcery.com>
4651
4652         * debug.h (set_name): Add comment.
4653
4654 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
4655
4656         PR target/39929
4657         * config/darwin.c (machopic_gen_offset): Check
4658         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
4659         * config/arm/arm.c (require_pic_register): Likewise.
4660
4661 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
4662
4663         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
4664         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
4665         m32c_promote_prototypes): Delete.
4666
4667 2009-04-28  Michael Matz  <matz@suse.de>
4668
4669         PR middle-end/39922
4670         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
4671         constants.
4672
4673 2009-04-28  Richard Guenther  <rguenther@suse.de>
4674
4675         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
4676
4677 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4678
4679         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
4680         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
4681         * config/arm/arm-tune.md: Regenerate.
4682
4683 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
4684
4685         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
4686         block if there are complex incoming edges.
4687         (sel_merge_blocks): Remove useless assert.
4688         (sel_redirect_edge_and_branch): Check that edge was redirected.
4689         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
4690         (sel_find_rgns): Delete declaration.
4691         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
4692         the region when it is not a preheader.
4693
4694 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
4695
4696         PR c/39323
4697         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
4698
4699 2009-04-28  Richard Guenther  <rguenther@suse.de>
4700
4701         * tree.h (SSA_NAME_VALUE): Remove.
4702         (struct tree_ssa_name): Remove value_handle member.
4703         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
4704         array for jump threading.
4705         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
4706         SSA_NAME_VALUEs.
4707         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
4708         * tree-flow.h (threadedge_initialize_values): Declare.
4709         (threadedge_finalize_values): Likewise.
4710         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
4711         (SSA_NAME_VALUE): Define.
4712         (threadedge_initialize_values): New function.
4713         (threadedge_finalize_values): Likewise.
4714         * tree-ssa-dom.c (ssa_name_values): New global variable.
4715         (SSA_NAME_VALUE): Define.
4716         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
4717
4718 2009-04-28  Ira Rosen  <irar@il.ibm.com>
4719
4720         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4721         Use REPORT_VECTORIZED_LOCATIONS instead 
4722         REPORT_VECTORIZED_LOOPS.
4723         * tree-vectorizer.c (vect_verbosity_level): Make static.
4724         (vect_loop_location): Rename to vect_location.
4725         (vect_set_verbosity_level): Update comment.
4726         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
4727         and vect_location.
4728         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
4729         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
4730         instead REPORT_UNVECTORIZED_LOOPS.
4731         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
4732         and vect_loop_def to vect_external_def and vect_internal_def.
4733         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
4734         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
4735         REPORT_UNVECTORIZED_LOCATIONS.
4736         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
4737         and vect_used_in_loop and to vect_unused_in_scope and 
4738         vect_used_in_scope.
4739         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
4740         (vect_verbosity_level): Remove declaration.
4741         (vect_analyze_operations): Likewise.
4742         (vect_analyze_stmt): Declare.
4743         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
4744         REPORT_UNVECTORIZED_LOCATIONS.
4745         (vect_get_loop_niters): Fix indentation.
4746         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
4747         (vect_analyze_loop_operations): New function.
4748         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
4749         vect_analyze_operations.
4750         (vect_is_simple_reduction): Use new names.
4751         (vectorizable_live_operation, vect_transform_loop): Likewise.
4752         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
4753         to specify whether the data references can be a part of interleaving
4754         chain.
4755         (vect_analyze_data_ref_dependence): Use new names.
4756         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
4757         (vect_create_addr_base_for_vector_ref): Remove redundant code.
4758         * tree-vect-patterns.c (widened_name_p): Use new names.
4759         (vect_recog_dot_prod_pattern): Likewise.
4760         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
4761         (process_use, vect_mark_stmts_to_be_vectorized, 
4762         vect_model_simple_cost, vect_model_store_cost,
4763         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
4764         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
4765         vectorizable_operation, vectorizable_type_demotion,
4766         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
4767         vectorizable_condition): Likewise.
4768         (vect_analyze_operations): Split into vect_analyze_loop_operations
4769         and ...
4770         (vect_analyze_stmt): ... new function.
4771         (new_stmt_vec_info): Use new names.
4772         (vect_is_simple_use): Use new names and fix comment.
4773         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
4774         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
4775
4776 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
4777
4778         PR target/39911
4779         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
4780         and integer modes for x87 operands.  Do not ICE for unsupported size,
4781         generate error instead.  Generate error for unsupported operand types.
4782         ['z']: Do not handle HImode memory operands specially.  Warning
4783         for floating-point operands.  Fallthru to 'Z' for unsupported operand
4784         types.  Do not ICE for unsupported size, generate error instead.
4785         (output_387_binary_op): Use %Z to output operands.
4786         (output_fp_compare): Ditto.
4787         (output_387_reg_move): Ditto.
4788
4789 2009-04-28  Ben Elliston  <bje@au.ibm.com>
4790
4791         PR c++/35652
4792         Revert:
4793
4794         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4795
4796         * builtins.c (c_strlen): Do not warn here.
4797         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
4798         * c-common.c (pointer_int_sum): Take an explicit location.
4799         Warn about offsets out of bounds.
4800         * c-common.h (pointer_int_sum): Adjust declaration.
4801
4802 2009-04-27  Ian Lance Taylor  <iant@google.com>
4803
4804         * collect2.c (is_ctor_dtor): Change type of ret field in struct
4805         names to symkind.
4806         * dce.c (run_fast_df_dce): Change type of old_flags to int.
4807         * df-core.c (df_set_flags): Change return type to int.  Change
4808         type of old_flags to int.
4809         (df_clear_flags): Likewise.
4810         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
4811         (df_get_conditional_uses): Likewise.
4812         * df.h (df_set_flags, df_clear_flags): Update declarations.
4813         * dwarf2out.c (struct indirect_string_node): Change type of form
4814         field to enum dwarf_form.
4815         (AT_string_form): Change return type to enum dwarf_form.
4816         * fixed-value.c (fixed_compare): Add cast to enum type.
4817         * fwprop.c (update_df): Change 0 to VOIDmode.
4818         * gensupport.c: Change 0 to UNKNOWN.
4819         * gimple.h (gimple_cond_code): Add cast to enum type.
4820         * haifa-sched.c (reemit_notes): Add cast to enum type.
4821         * hooks.c (hook_int_void_no_regs): Remove function.
4822         * hooks.h (hook_int_void_no_regs): Remove declaration.
4823         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
4824         * predict.c (combine_predictions_for_insn): Add casts to enum type.
4825         * real.c (real_arithmetic): Add cast to enum type.
4826         (real_compare): Likewise.
4827         * target.h (struct gcc_target): Change return type of
4828         branch_target_register_class to enum reg_class.
4829         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
4830         default_branch_target_register_class.
4831         * targhooks.c (default_branch_target_register_class): New function.
4832         * targhooks.h (default_branch_target_register_class): Declare.
4833         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
4834         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
4835         cast to int.
4836         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
4837         ERROR_MARK.
4838         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
4839         vect_uninitialized_def.  Change 0 to ERROR_MARK.
4840         * tree-vect-stmts.c (supportable_widening_operation): Don't
4841         initialize icode1 and icode2.
4842         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
4843         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
4844         and to STD_C89.
4845         (cmn_err_flag_specs): Change 0 to STD_C89.
4846         (cmn_err_char_table): Likewise.
4847         * config/arm/arm.c (get_arm_condition_code): Change type of code
4848         to enum arm_cond_code.
4849         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
4850         (IWMMXT_BUILTIN2): Likewise.
4851         (neon_builtin_type_bits): Don't define typedef.
4852         (neon_builtin_datum): Change type of bits field to int.
4853         (arm_expand_neon_args): Add cast to enum type.
4854         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
4855         TLS_MODEL_NONE.
4856         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
4857         casts to enum type.
4858         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
4859         MIPS_FP_COND_f.
4860         * config/mips/mips.md (jal_macro): Return enum constant.
4861         (single_insn): Likewise.
4862         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
4863         CODE_FOR_nothing.
4864         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4865         casts to enum type.
4866         * config/s390/s390.c (s390_tune_flags): Change type to int.
4867         (s390_arch_flags): Likewise.
4868         (s390_handle_arch_option): Change flags field of struct pta to int.
4869         * config/s390/s390.h (s390_tune_flags): Update declaration.
4870         (s390_arch_flags): Likewise.
4871         * config/sh/sh.c (prepare_move_operands): Compare
4872         tls_symbolic_operand result with enum constant.
4873         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
4874         (sh_expand_prologue): Add cast to enum type.
4875         (sh_expand_epilogue): Likewise.
4876         (tls_symbolic_operand): Change return type to enum tls_model.
4877         (fpscr_set_from_mem): Add cast to enum type.
4878         (legitimize_pic_address): Compare tls_symbolic_operand result with
4879         enum constant.
4880         (sh_target_reg_class): Change return type to enum reg_class.
4881         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
4882         PROCESSOR_xxx.
4883         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
4884         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
4885         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
4886         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
4887         (delayed_branch, tls_call_delay): Likewise.
4888         (eligible_for_sibcall_delay): Likewise.
4889         (eligible_for_return_delay): Likewise. 
4890         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
4891         (spu_expand_builtin_1): Likewise.
4892
4893         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
4894         for all types of conversions.
4895         (output_init_element): Issue -Wc++-compat warning if needed when
4896         initializing a bitfield with enum type.
4897         * c-parser.c (c_parser_expression): Set original_type to
4898         original_type of right hand operand of comman operator.
4899
4900 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4901
4902         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
4903         grammar nits.
4904         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
4905         * doc/cpp.texi (Standard Predefined Macros)
4906         (Implementation-defined behavior): Likewise.
4907         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
4908         * doc/gimple.texi (GIMPLE Exception Handling)
4909         (@code{GIMPLE_ASSIGN}): Likewise.
4910         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
4911         * doc/invoke.texi (Warning Options, Optimize Options)
4912         (AVR Options, Darwin Options): Likewise.
4913         (Optimize Options): Reformulate -fwhole-program description.
4914         * doc/loop.texi (Lambda): Likewise.
4915         * doc/md.texi (Output Template, Define Constraints)
4916         (Standard Names, Insn Splitting): Likewise.
4917         * doc/options.texi (Option properties): Likewise.
4918         * doc/passes.texi (Tree-SSA passes): Likewise.
4919         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
4920         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
4921         (File Names and DBX): Likewise.
4922         * doc/trouble.texi (Incompatibilities): Likewise.
4923
4924 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
4925
4926         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
4927         instruction is correct.
4928
4929 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
4930
4931         Allow non-constant arguments to conversion intrinsics.
4932         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
4933         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
4934         * spu.c (print_operand): Handle 'v' and 'w'.
4935         (exp2_immediate_p, spu_gen_exp2): Define.
4936         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
4937         spu_convtf_1): Update parameter descriptions.
4938         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
4939         * constraints.md ('v', 'w'): New.
4940         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
4941         Remove.
4942         (i2f, I2F): New define_mode_attr.
4943         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
4944         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
4945         fixuns_truncv4sfv4si2):  Update to use mode attribute.
4946         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
4947         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
4948         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
4949         patterns for combine.
4950
4951 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
4952
4953         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
4954         (cprop, hoist, pre, store_motion): New debug counters.
4955         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
4956         is not an RTL pass anymore.
4957         (pass_profiling): Remove extern decl for pass removed in 2005.
4958         (pass_gcse, pass_jump_bypass): Remove.
4959         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
4960         to 0 for clean state.
4961         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
4962         * cse.c (gate_handle_cse_after_global_opts,
4963         rest_of_handle_cse_after_global_opts): New functions.
4964         (pass_cse_after_global_opts): New pass, does local CSE.
4965         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
4966         (TV_CPROP): New timevar.
4967         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
4968         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
4969         (gcse_main, recompute_all_luids): Remove.
4970         (compute_hash_table_work): Call max_reg_num instead of reading
4971         max_gcse_regno.
4972         (cprop_jump): Don't set run_jump_opt_after_gcse.
4973         (constprop_register): Always allow to alter jumps.
4974         (cprop_insn): Likewise.
4975         (do_local_cprop): Likewise.
4976         (local_cprop_pass): Likewise.  Return non-zero if something changed.
4977         (cprop): Remove function, fold interesting bits into one_cprop_pass.
4978         (find_implicit_sets): Add note about missed optimization opportunity.
4979         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
4980         pass_rtl_cprop execute function.
4981         Don't bother tracking the pass number, each pass gets its own dumpfile
4982         now anyway.
4983         Always allow to alter jumpsand bypass jumps.
4984         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
4985         will just find no suitable set.
4986         (pre_edge_insert): Fix dumping, this function is for PRE only.
4987         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
4988         pass_rtl_pre execute function.
4989         (hoist_code): Return non-zero if something changed.  Keep track of
4990         substitutions and insertions for statistics gathering similar to PRE.
4991         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
4992         called from the pass_rtl_hoist execute function.  Show pass statistics.
4993         (compute_store_table): Use max_reg_num directly instead of using the
4994         formerly global max_gcse_regno.
4995         (build_store_vectors): Likewise.
4996         (replace_store_insn): Fix dumping.
4997         (store_motion): Rename to ...
4998         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
4999         pass, called from the pass_rtl_store_motion execute function.  Keep
5000         track of substitutions and insertions for statistics gathering similar
5001         to PRE.
5002         (bypass_jumps): Remove, fold interesting bits into ...
5003         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
5004         from the pass_rtl_cprop execute function.
5005         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
5006         pass_jump_bypass): Remove.
5007         (gate_handle_gcse, rest_of_handle_gcse): Remove.
5008         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
5009         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
5010         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
5011         (gate_rtl_store_motion, execute_rtl_store_motion,
5012         pass_rtl_store_motion): New.
5013         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
5014         make it clear that -fcse-skip-blocks is a no-op for backward compat.
5015         * passes.c (init_optimization_passes): Remove pass_gcse and
5016         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
5017         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
5018         instead of pass_jump_bypass.
5019
5020 2009-04-27  Richard Guenther  <rguenther@suse.de>
5021
5022         PR middle-end/39928
5023         * gimplify.c (gimplify_expr): If we are required to create
5024         a temporary make sure it ends up as register.
5025
5026 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
5027
5028         PR target/39903
5029         * config/i386/i386.c (construct_container): Don't call
5030         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
5031         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
5032
5033 2009-04-27  Michael Matz  <matz@suse.de>
5034
5035         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
5036         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
5037         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
5038         (dump_replaceable_exprs): Take a bitmap.
5039         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
5040         array.
5041         (expand_gimple_basic_block): Likewise.
5042         * tree-ssa-ter.c (struct temp_expr_table_d): Make
5043         replaceable_expressions member a bitmap.
5044         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
5045         (mark_replaceable): Likewise.
5046         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
5047         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
5048
5049 2009-04-27  Richard Guenther  <rguenther@suse.de>
5050
5051         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
5052         (verify_stmts): Dispatch to gimple/type verification code.
5053         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
5054         issue with call argument types.
5055
5056 2009-04-27  Michael Matz  <matz@suse.de>
5057
5058         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
5059         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
5060         to above.
5061
5062 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
5063             Eric Botcazou  <ebotcazou@adacore.com>
5064
5065         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
5066         a label's basic block.
5067         (mark_target_live_regs): Tidy and rework obsolete comments.
5068         Change back DF problem to LIVE.  If a label starts a basic block,
5069         assume that all registers that used to be live then still are.
5070         (init_resource_info): If a label starts a basic block, set its
5071         BLOCK_FOR_INSN accordingly.
5072         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
5073
5074 2009-04-27  Richard Guenther  <rguenther@suse.de>
5075
5076         * tree-flow-inline.h (function_ann): Remove.
5077         (get_function_ann): Likewise.
5078         * tree-dfa.c (create_function_ann): Remove.
5079         * tree-flow.h (struct static_var_ann_d): Remove.
5080         (struct function_ann_d): Likewise.
5081         (union tree_ann_d): Remove fdecl member.
5082         (function_ann_t): Remove.
5083         (function_ann, get_function_ann, create_function_ann): Remove
5084         declarations.
5085
5086 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
5087
5088         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
5089
5090 2009-04-27  Jan Hubicka  <jh@suse.cz>
5091
5092         * ipa-pure-const.c (struct funct_state_d): New fields
5093         state_previously_known, looping_previously_known; remove
5094         state_set_in_source.
5095         (analyze_function): Use new fields.
5096         (propagate): Avoid assumption that state_set_in_source imply
5097         nonlooping.
5098
5099         * tree-ssa-loop-niter.c (finite_loop_p): New function.
5100         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
5101         * cfgloop.h (finite_loop_p): Declare.
5102
5103 2009-04-26  Michael Matz  <matz@suse.de>
5104
5105         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
5106
5107 2009-04-26  Michael Matz  <matz@suse.de>
5108
5109         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
5110         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
5111         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
5112         pass_mark_used_blocks): Remove.
5113         * tree-optimize.c (pass_free_datastructures,
5114         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
5115         * passes.c (init_optimization_passes): Don't call
5116         pass_mark_used_blocks, remove dead code.
5117
5118 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
5119
5120         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
5121         * tree-ssa-live.h (register_ssa_partition): Likewise.
5122
5123 2009-04-26  Michael Matz  <matz@suse.de>
5124
5125         Expand from SSA.
5126         * builtins.c (fold_builtin_next_arg): Handle SSA names.
5127         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
5128         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
5129         SSA names. 
5130         (compare_pairs): Swap cost comparison.
5131         (coalesce_ssa_name): Don't use change_partition_var.
5132         * tree-nrv.c (struct nrv_data): Add modified member.
5133         (finalize_nrv_r): Set it.
5134         (tree_nrv): Use it to update statements.
5135         (pass_nrv): Require PROP_ssa.
5136         * tree-mudflap.c (mf_decl_cache_locals,
5137         mf_build_check_statement_for): Use make_rename_temp.
5138         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
5139         * alias.c (find_base_decl): Handle SSA names.
5140         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
5141         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
5142         * rtl.h (set_reg_attrs_for_parm): Declare.
5143         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
5144         to "optimized", remove unused locals at finish.
5145         (execute_free_datastructures): Make global, call
5146         delete_tree_cfg_annotations.
5147         (execute_free_cfg_annotations): Don't call
5148         delete_tree_cfg_annotations.
5149
5150         * ssaexpand.h: New file.
5151         * expr.c (toplevel): Include ssaexpand.h.
5152         (expand_assignment): Handle SSA names the same as register variables.
5153         (expand_expr_real_1): Expand SSA names.
5154         * cfgexpand.c (toplevel): Include ssaexpand.h.
5155         (SA): New global variable.
5156         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
5157         (SSAVAR): New macro.
5158         (set_rtl): New helper function.
5159         (add_stack_var): Deal with SSA names, use set_rtl.
5160         (expand_one_stack_var_at): Likewise.
5161         (expand_one_stack_var): Deal with SSA names.
5162         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
5163         before unique numbers.
5164         (expand_stack_vars): Use set_rtl.
5165         (expand_one_var): Accept SSA names, add asserts for them, feed them
5166         to above subroutines.
5167         (expand_used_vars): Expand all partitions (without default defs),
5168         then only the local decls (ignoring those expanded already).
5169         (expand_gimple_cond): Remove edges when jumpif() expands an
5170         unconditional jump.
5171         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
5172         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
5173         SSA name.
5174         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
5175         members of SA; deal with PARM_DECL partitions here; expand
5176         all PHI nodes, free tree datastructures and SA.  Commit instructions
5177         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
5178         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
5179         info and statements at start, collect garbage at finish.
5180         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
5181         (VAR_ANN_PARTITION) Remove.
5182         (change_partition_var): Don't declare.
5183         (partition_to_var): Always return SSA names.
5184         (var_to_partition): Only accept SSA names.
5185         (register_ssa_partition): Only check argument.
5186         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
5187         member.
5188         (delete_var_map): Don't free it.
5189         (var_union): Only accept SSA names, simplify.
5190         (partition_view_init): Mark only useful SSA names as used.
5191         (partition_view_fini): Only deal with SSA names.
5192         (change_partition_var): Remove.
5193         (dump_var_map): Use ssa_name instead of partition_to_var member.
5194         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
5195         basic blocks.
5196         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5197         (struct _elim_graph): New member const_dests; nodes member vector of
5198         ints.
5199         (set_location_for_edge): New static helper.
5200         (create_temp): Remove.
5201         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
5202         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
5203         (new_elim_graph): Allocate const_dests member.
5204         (clean_elim_graph): Truncate const_dests member.
5205         (delete_elim_graph): Free const_dests member.
5206         (elim_graph_size): Adapt to new type of nodes member.
5207         (elim_graph_add_node): Likewise.
5208         (eliminate_name): Likewise.
5209         (eliminate_build): Don't take basic block argument, deal only with
5210         partition numbers, not variables.
5211         (get_temp_reg): New static helper.
5212         (elim_create): Use it, deal with RTL temporaries instead of trees.
5213         (eliminate_phi): Adjust all calls to new signature.
5214         (assign_vars, replace_use_variable, replace_def_variable): Remove.
5215         (rewrite_trees): Only do checking.
5216         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5217         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5218         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5219         contains_tree_r, MAX_STMTS_IN_LATCH,
5220         process_single_block_loop_latch, analyze_edges_for_bb,
5221         perform_edge_inserts): Remove.
5222         (expand_phi_nodes): New global function.
5223         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
5224         functions, initialize new parameter, remember partitions having a
5225         default def.
5226         (finish_out_of_ssa): New global function.
5227         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
5228         don't reset in_ssa_p here, don't disable TER when mudflap.
5229         (pass_del_ssa): Remove.
5230         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5231         partition members.
5232         (execute_free_datastructures): Declare.
5233         * Makefile.in (SSAEXPAND_H): New variable.
5234         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5235         * basic-block.h (commit_one_edge_insertion): Declare.
5236         * passes.c (init_optimization_passes): Move pass_nrv and
5237         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
5238         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
5239         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
5240         (redirect_branch_edge): Deal with super block when expanding, split
5241         out jump patching itself into ...
5242         (patch_jump_insn): ... here, new static helper.
5243
5244 2009-04-26  Michael Matz  <matz@suse.de>
5245
5246         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
5247         beyond num_ssa_names.
5248         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5249         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5250
5251 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
5252
5253         PR inline-asm/39543
5254         * fwprop.c (forward_propagate_asm): New function.
5255         (forward_propagate_and_simplify): Propagate also into __asm, if it
5256         doesn't increase the number of referenced registers.
5257
5258         PR c/39889
5259         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
5260
5261 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
5262
5263         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
5264         note_nonlocal_vla_type for nonlocal VLAs.
5265         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
5266         contains_remapped_vars, remap_vla_decls): New functions.
5267         (convert_nonlocal_reference_stmt): If not optimizing, call
5268         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
5269         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
5270         if it wasn't found in var_map.
5271         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
5272         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
5273         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
5274         declare_vars.
5275         * gimplify.c (nonlocal_vlas): New variable.
5276         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
5277         referenced VLAs.
5278         (gimplify_body): Create and destroy nonlocal_vlas.
5279
5280         * dwarf2out.c (loc_descr_plus_const): New function.
5281         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
5282         mem_loc_descriptor, loc_descriptor_from_tree_1,
5283         descr_info_loc, gen_variable_die): Use it.
5284
5285         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
5286         !TREE_STATIC VAR_DECLs.
5287         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
5288         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
5289         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
5290         DECL_BY_REFERENCE is valid.
5291         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
5292         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
5293         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
5294         Copy DECL_BY_REFERENCE.
5295         (struct nesting_copy_body_data): New type.
5296         (nesting_copy_decl): New function.
5297         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
5298         if they have variable length.
5299
5300 2009-04-26  Michael Matz  <matz@suse.de>
5301
5302         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
5303         mark new temporaries for renaming.
5304
5305 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
5306
5307         PR c/39581
5308         * c-decl.c (global_bindings_p): Return negative value.
5309         (c_variable_size): New.  Based on variable_size from
5310         stor-layout.c.
5311         (grokdeclarator): Call c_variable_size not variable_size.
5312
5313 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
5314
5315         * config/i386/i386.c (print_operand) ['z']: Fix typo.
5316
5317 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
5318
5319         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
5320         Redefine it to just use mingw/include.
5321         (ASM_SPEC): Rules for -m32 and -m64.
5322         (LINK_SPEC): Use Likewise.
5323         (SPEC_32): New define.
5324         (SPEC_64): Likewise.
5325         (SUB_LINK_SPEC): Likewise.
5326         (MULTILIB_DEFAULTS): New define.
5327         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
5328         Add multilib options.
5329         (MULTILIB_DIRNAMES): Likewise.
5330         (MULTILIB_OSDIRNAMES): Likewise.
5331         (LIBGCC): Likewise.
5332         (INSTALL_LIBGCC): Likewise.
5333
5334 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
5335
5336         PR c/39556
5337         * c-tree.h (enum c_inline_static_type): New.
5338         (record_inline_static): Declare.
5339         * c-decl.c (struct c_inline_static, c_inline_statics,
5340         record_inline_static, check_inline_statics): New.
5341         (pop_file_scope): Call check_inline_statics.
5342         (start_decl): Call record_inline_static instead of pedwarning
5343         directly for static in inline function.
5344         * c-typeck.c (build_external_ref): Call record_inline_static
5345         instead of pedwarning directly for static referenced in inline
5346         function.
5347
5348 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
5349
5350         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
5351         not new but only being rescanned.
5352         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
5353         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
5354         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
5355         record_set_info, compute_set, grealloc): Remove.
5356         (recompute_all_luids): New function.
5357         (gcse_main): Don't compute sets, and don't do related memory
5358         allocations/free-ing.  If something changed before the end of the
5359         pass, update LUIDs using recompute_all_luids.
5360         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
5361         (free_gcse_mem): Don't free it either.
5362         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
5363         Use the df insn LUIDs.
5364         (load_killed_in_block): Likewise.
5365         (compute_hash_table_work): Don't compute reg_set_in_block.
5366         (compute_transp): Use DF_REG_DEF_CHAINs.
5367         (local_cprop_pass): Don't use compute_sets and related functions.
5368         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
5369         Use get_max_uid() instead of max_cuid.
5370         (insert_insn_end_basic_block, pre_insert_copy_insn,
5371         update_ld_motion_stores): Don't try to
5372         keep reg_set tables up to date.
5373         (pre_insert_copies): Use df insn LUIDs.
5374         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
5375         (reg_set_info): Don't use extra bitmap argument.
5376         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
5377         information to compute regs_set_in_block.
5378         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
5379         (bypass_jumps): Don't use compute_sets and friends.
5380
5381 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5382
5383         PR testsuite/39710
5384         * opts.c (undocumented_msg): Do not leave blank even with
5385         ENABLE_CHECKING.
5386
5387 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
5388
5389         * c-decl.c (build_enumerator): Allow values folding to integer
5390         constants but not integer constant expressions with a pedwarn if
5391         pedantic.
5392
5393 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
5394
5395         PR c/39582
5396         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
5397         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
5398         type is an integer constant.
5399
5400 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
5401
5402         PR target/39897
5403         * config/i386/i386.c (print_operand) ['z']: Revert handling of
5404         HImode operands.
5405
5406 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
5407
5408         PR c/39564
5409         * c-decl.c (grokdeclarator): Diagnose declarations of functions
5410         with variably modified return type and no storage class
5411         specifiers, except for the case of nested functions.  Distinguish
5412         extern declarations of functions with variably modified return
5413         types from those of objects with variably modified types.
5414
5415 2009-04-25  Jan Hubicka  <jh@suse.cz>
5416
5417         * tree.c (list_equal_p): New function.
5418         * tree.h (list_equal_p): Declare.
5419         * coretypes.h (edge_def, edge, const_edge, basic_block_def
5420         basic_block_def, basic_block, const_basic_block): New.
5421         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
5422         (redirect_eh_edge): New function.
5423         (make_eh_edge_update_phi): EH edges are not abnormal.
5424         * except.c: Include tree-flow.h.
5425         (list_match): New function.
5426         (eh_region_replaceable_by_p): New function.
5427         (replace_region): New function.
5428         (hash_type_list): New function.
5429         (hash_eh_region): New function.
5430         (eh_regions_equal_p): New function.
5431         (merge_peers): New function.
5432         (remove_unreachable_regions): Verify EH tree when checking;
5433         merge peers.
5434         (copy_eh_region_1): New function.
5435         (copy_eh_region): New function.
5436         (push_reachable_handler): New function.
5437         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
5438         regions without label but with live RESX.
5439         * except.h (redirect_eh_edge_to_label): New.
5440         * tree-flow.h (redirect_eh_edge): New.
5441         * coretypes.h (edge_def, edge, const_edge, basic_block_def
5442         basic_block_def, basic_block, const_basic_block): Remove.
5443         * Makefile.in (except.o): Add dependency on tree-flow.h
5444         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
5445         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
5446         Remove.
5447
5448 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
5449
5450         PR bootstrap/39645
5451         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
5452         on the destination of memcpy.
5453
5454 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
5455
5456         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5457         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
5458         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
5459
5460 2009-04-25  Jan Hubicka  <jh@suse.cz>
5461
5462         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
5463         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
5464         to be reached by different label than left.
5465         (update_eh_edges): Update comment; remove edge_to_remove if possible
5466         and return true if suceeded.
5467         (cleanup_empty_eh): Accept sharing map; handle shared regions.
5468         (cleanup_eh): Compute sharing map.
5469         * except.c (remove_eh_handler_and_replace): Add argument if we should
5470         update regions.
5471         (remove_unreachable_regions): Update for label sharing.
5472         (label_to_region_map): Likewise.
5473         (get_next_region_sharing_label): New function.
5474         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
5475         prev_try pointers.
5476         (remove_eh_handler): Update.
5477         (remove_eh_region_and_replace_by_outer_of): New function.
5478         * except.h (struct eh_region): Add next_region_sharing_label.
5479         (remove_eh_region_and_replace_by_outer_of,
5480         get_next_region_sharing_label): Declare.
5481         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
5482
5483 2009-04-25  Jan Hubicka  <jh@suse.cz>
5484
5485         * tree-cfg.c (split_critical_edges): Split also edges where we can't
5486         insert code even if they are not critical.
5487
5488 2009-04-25  Jan Hubicka  <jh@suse.cz>
5489
5490         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5491         (gimple_can_remove_branch_p): EH edges won't remove branch by
5492         redirection.
5493         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
5494         updating of non-abnormal EH edges.
5495         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5496         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
5497         (split_critical_edges): Split also edges where emitting code on them
5498         will lead to splitting later.
5499
5500 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
5501             H.J. Lu  <hongjiu.lu@intel.com>
5502
5503         PR target/39590
5504         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
5505         the configured assembler supports fildq and fistpq mnemonics.
5506         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
5507         * configure: Regenerated.
5508         * config.in: Ditto.
5509
5510         * config/i386/i386.c (print_operand): Handle 'Z'.
5511         ['z']: Remove handling of special fild/fist suffixes.
5512         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
5513         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
5514         suffix of fild insn.
5515         (*floatsi<mode>2_vector_mixed): Ditto.
5516         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
5517         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
5518         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5519         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
5520         * config/i386/gas.h (GAS_MNEMONICS): Remove.
5521
5522 2009-04-25  Ben Elliston  <bje@au.ibm.com>
5523  
5524         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
5525         the source of a set operation.
5526
5527 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
5528
5529         * target.h (struct gcc_target): Add case_values_threshold field.
5530         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
5531         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
5532         * targhooks.c (default_case_values_threshold): New function.
5533         * targhooks.h (default_case_values_threshold): Declare function.
5534         * stmt.c (expand_case): Use case_values_threshold target hook.
5535         * expr.h (case_values_threshold): Remove declartation.
5536         * expr.c (case_values_threshold): Remove function.
5537         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
5538
5539         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
5540         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5541         (avr_case_values_threshold): Declare as static.
5542         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
5543
5544         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
5545         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5546         (mn10300_case_values_threshold): New function.
5547
5548 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
5549
5550         * ira.c (setup_cover_and_important_classes): Add enum cast.
5551
5552 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
5553
5554         * genpreds.c (write_enum_constraint_num): Output definition of
5555         CONSTRAINT_NUM_DEFINED_P macro.
5556         * ira.c (setup_cover_and_important_classes): Use
5557         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
5558         
5559 2009-04-24  DJ Delorie  <dj@redhat.com>
5560
5561         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
5562         __SH2A_SINGLE_ONLY__ also.
5563
5564 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
5565
5566         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
5567         (movdf_internal): Ditto.
5568         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
5569         SFmode and DFmode constants.
5570         (ia64_print_operand): Add 'G' format for printing
5571         floating point constants.
5572
5573 2009-04-24  Richard Guenther  <rguenther@suse.de>
5574
5575         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
5576         from unsigned additions.
5577
5578 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
5579
5580         * c-typeck.c (set_init_index): Allow array designators that are
5581         not integer constant expressions with a pedwarn if pedantic.
5582
5583 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
5584
5585         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
5586         zero if no overlap in nonzero bits between the operands.
5587
5588 2009-04-24  Ian Lance Taylor  <iant@google.com>
5589
5590         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
5591         (record_dead_and_set_regs): Likewise.
5592         * df.h (struct df_mw_hardreg): Change flags field to int.
5593         (struct df_base_ref): Likewise.
5594         (struct df): Change changeable_flags field to int.
5595         * df-scan.c (df_defs_record): Change clobber_flags to int.
5596         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
5597         constants rather than #define macros.
5598         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
5599         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
5600         (enum dwarf_calling_convention): Likewise.
5601         (enum dwarf_line_number_x_ops): Likewise.
5602         (enum dwarf_call_frame_info): Likewise.
5603         (enum dwarf_source_language): Likewise.
5604         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
5605         (add_calling_convention_attribute): Likewise.
5606         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
5607         (combine_comparisons): Change compcode to int.  Add cast to enum type.
5608         * genrecog.c (maybe_both_true_2): Change c to int.
5609         (write_switch): Likewise.  Add cast to enum type.
5610         * gimplify.c (gimplify_omp_for): Handle return values from
5611         gimplify_expr using MIN rather than bitwise or.
5612         (gimplify_expr): Add cast to enum type.
5613         * ipa-prop.c (update_jump_functions_after_inlining): Change
5614         IPA_BOTTOM to IPA_JF_UNKNOWN.
5615         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
5616         Add casts to enum type.
5617         (setup_cover_and_important_classes): Change cl to int.  Add casts
5618         to enum type.
5619         (setup_class_translate): Change cl and mode to int.
5620         (ira_init_once): Change mode to int.
5621         (free_register_move_costs): Likewise.
5622         (setup_prohibited_mode_move_regs): Add casts to enum type.
5623         * langhooks.c (add_builtin_function_common): Rework assertion that
5624         value fits bitfield.
5625         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
5626         * omega.c (omega_do_elimination): Avoid math on enum types.
5627         * optabs.c (expand_vec_shift_expr): Remove casts to int.
5628         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
5629         int local to handle integral_argment value.
5630         * regmove.c (try_auto_increment): Change PUT_MODE to
5631         PUT_REG_NOTE_KIND.
5632         * reload.c (push_secondary_reload): Add casts to enum type.
5633         (secondary_reload_class, find_valid_class): Likewise.
5634         * reload1.c (emit_input_reload_insns): Likewise.
5635         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
5636         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
5637         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
5638         constant.
5639         * tree.c (build_common_builtin_nodes): Add casts to enum type.
5640         * tree-complex.c (complex_lattice_t): Typedef to int rather than
5641         enum type.
5642         (expand_complex_libcall): Add casts to enum type.
5643         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
5644         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
5645         with ERROR_MARK, not NUM_TREE_CODES.
5646         (vect_create_epilog_for_reduction): Likewise.
5647         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
5648         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
5649         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
5650         enum machine_mode.
5651         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
5652         vect_unused_in_loop.  Change 0 to loop_vect.
5653         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
5654         * var-tracking.c (get_init_value): Change return type to enum
5655         var_init_status.
5656         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
5657         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
5658         arm_fp_model.
5659         (arm_override_options): Add casts to enum type.
5660         (arm_emit_tls_decoration): Likewise.
5661         * config/i386/i386.c (ix86_function_specific_restore): Add casts
5662         to enum type.
5663         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
5664         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
5665         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
5666         enum type.
5667         * config/s390/s390.c (code_for_builtin_64): Change to array of
5668         enum insn_code.
5669         (code_for_builtin_31): Likewise.
5670         (s390_expand_builtin): Change code_for_builtin to enum insn_code
5671         const *.
5672         * config/sparc/sparc.c (sparc_override_options): Change value
5673         field in struct code_model to enum cmodel.  In initializer change
5674         0 to NULL and add cast to enum type.
5675
5676         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
5677         Change all callers.  Issue a -Wc++-compat warning using
5678         lhs_origtype if necessary.
5679         (convert_for_assignment): Issue -Wc++-compat warnings about
5680         invalid conversions to enum type on assignment.
5681         * c-common.h (build_modify_expr): Update declaration.
5682
5683 2009-04-24  Nick Clifton  <nickc@redhat.com>
5684
5685         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
5686         (function_arg_advance): Likewise.
5687         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
5688         5th alternative.
5689
5690 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
5691
5692         * config/s390/constraints.md ('I', 'J'): Fix condition.
5693
5694 2009-04-24  Diego Novillo  <dnovillo@google.com>
5695
5696         * gengtype-parse.c (parse_error): Add newline after message.
5697
5698 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
5699
5700         * config/i386/sse.md (avxmodesuffixs): Removed.
5701         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
5702         (*avx_pinsr<ssevecsize>): This.
5703
5704 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
5705
5706         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
5707         follow chains of regs with a single definition, and allow expressions
5708         that are function_invariant_p.
5709         (simple_rhs_p): Allow expressions that are function_invariant_p.
5710
5711 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
5712
5713         PR middle-end/39867
5714         * fold-const.c (fold_cond_expr_with_comparison): When folding
5715         > and >= to MAX, make sure the MAX uses the same type as the
5716         comparison's operands.
5717
5718 2009-04-24  Nick Clifton  <nickc@redhat.com>
5719
5720         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
5721         addressing for DImode accesses.
5722         (frv_print_operand_address): Handle PLUS case.
5723         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
5724
5725 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
5726
5727         PR rtl-optimization/39794
5728         * alias.c (canon_true_dependence): Add x_addr argument.
5729         * rtl.h (canon_true_dependence): Adjust prototype.
5730         * cse.c (check_dependence): Adjust canon_true_dependence callers.
5731         * cselib.c (cselib_invalidate_mem): Likewise.
5732         * gcse.c (compute_transp): Likewise.
5733         * dse.c (scan_reads_nospill): Likewise.
5734         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
5735         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
5736         canon_base_addr of the group, plus optional offset.
5737         (struct group_info): Rename canon_base_mem to
5738         canon_base_addr.
5739         (get_group_info): Set canon_base_addr to canon_rtx of base, not
5740         canon_rtx of base_mem.
5741
5742 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
5743
5744         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
5745         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
5746
5747 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5748
5749         * config/spu/spu-builtins.h: Delete file.
5750
5751         * config/spu/spu.h (enum spu_builtin_type): Move here from
5752         spu-builtins.h.
5753         (struct spu_builtin_description): Likewise.  Add GTY marker.
5754         Do not use enum spu_function_code or enum insn_code.
5755         (spu_builtins): Add extern declaration.
5756
5757         * config/spu/spu.c: Do not include "spu-builtins.h".
5758         (enum spu_function_code, enum spu_builtin_type_index,
5759         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
5760         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
5761         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
5762         unsigned_V2DI_type_node): Move here from spu-builtins.h.
5763         (spu_builtin_types): Make static.  Add GTY marker.
5764         (spu_builtins): Add extern declaration with GTY marker.
5765         Include "gt-spu.h".
5766
5767         * config/spu/spu-c.c: Do not include "spu-builtins.h".
5768         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
5769         Check programmatically whether all parameters are scalar.
5770
5771         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
5772
5773 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
5774
5775         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
5776         assignment from the constructor either if the target is volatile.
5777
5778 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
5779
5780         * config/arm/arm.md (insv): Do not share operands[0].
5781
5782 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
5783
5784         * config/vxlib-tls.c (active_tls_threads): Delete.
5785         (delete_hook_installed): New.
5786         (tls_delete_hook): Don't delete the delete hook.
5787         (tls_destructor): Delete it here.
5788         (__gthread_set_specific): Adjust installing the delete hook.
5789         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
5790         __gthread_leave_tsd_dtor_context.
5791
5792 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
5793
5794         * c-format.c (gcc_tdiag_char_table): Add support for %E.
5795
5796 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
5797
5798         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
5799         enum type.
5800         (alpha_rtx_costs): Ditto.
5801         (emit_unlikely_jump): Use add_reg_note.
5802         (emit_frame_store_1): Ditto.
5803         (alpha_expand_prologue): Ditto.
5804         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5805         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
5806
5807 2009-04-23  Nick Clifton  <nickc@redhat.com>
5808
5809         * config/v850/v850.md (epilogue): Remove suppressed code.
5810         (return): Rename to return_simple and remove test of frame size.
5811         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
5812         to gen_return_simple.
5813
5814 2009-04-22  Jing Yu  <jingyu@google.com>
5815
5816         PR testsuite/39781
5817         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5818
5819 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5820
5821         PR C/31499
5822         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
5823         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
5824         value is a VECTOR_CST, the element type is the element type of the
5825         vector.
5826
5827 2009-04-22  DJ Delorie  <dj@redhat.com>
5828
5829         * config/m32c/m32c.h: Update GTY annotations to new syntax.
5830
5831 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
5832
5833         * alias.c (find_base_term): Move around LO_SUM case, so that
5834         CONST falls through into PLUS/MINUS handling.
5835
5836         PR c/39855
5837         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
5838         into 0, use omit_one_operand.
5839
5840 2009-04-23  Ben Elliston  <bje@au.ibm.com>
5841
5842         * config/rs6000/linux-unwind.h (get_regs): Remove type
5843         puns. Change the type of `pc' to an array of unsigned ints and
5844         update all users.  Constify frame24.
5845
5846 2009-04-22  DJ Delorie  <dj@redhat.com>
5847
5848         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
5849         declarations before code.
5850         (current_function_special_page_vector): Likewise.
5851         (m32c_expand_insv): Silence a warning.
5852
5853 2009-04-21  Taras Glek  <tglek@mozilla.com>
5854
5855         * alias.c: Update GTY annotations to new syntax.
5856         * basic-block.h: Likewise.
5857         * bitmap.h: Likewise.
5858         * c-common.h: Likewise.
5859         * c-decl.c: Likewise.
5860         * c-parser.c: Likewise.
5861         * c-pragma.c: Likewise.
5862         * c-tree.h: Likewise.
5863         * cfgloop.h: Likewise.
5864         * cgraph.h: Likewise.
5865         * config/alpha/alpha.c: Likewise.
5866         * config/arm/arm.h: Likewise.
5867         * config/avr/avr.h: Likewise.
5868         * config/bfin/bfin.c: Likewise.
5869         * config/cris/cris.c: Likewise.
5870         * config/darwin.c: Likewise.
5871         * config/frv/frv.c: Likewise.
5872         * config/i386/i386.c: Likewise.
5873         * config/i386/i386.h: Likewise.
5874         * config/i386/winnt.c: Likewise.
5875         * config/ia64/ia64.h: Likewise.
5876         * config/iq2000/iq2000.c: Likewise.
5877         * config/mips/mips.c: Likewise.
5878         * config/mmix/mmix.h: Likewise.
5879         * config/pa/pa.c: Likewise.
5880         * config/pa/pa.h: Likewise.
5881         * config/rs6000/rs6000.c: Likewise.
5882         * config/s390/s390.c: Likewise.
5883         * config/sparc/sparc.c: Likewise.
5884         * config/xtensa/xtensa.c: Likewise.
5885         * cselib.h: Likewise.
5886         * dbxout.c: Likewise.
5887         * dwarf2out.c: Likewise.
5888         * except.c: Likewise.
5889         * except.h: Likewise.
5890         * fixed-value.h: Likewise.
5891         * function.c: Likewise.
5892         * function.h: Likewise.
5893         * gimple.h: Likewise.
5894         * integrate.c: Likewise.
5895         * optabs.c: Likewise.
5896         * output.h: Likewise.
5897         * real.h: Likewise.
5898         * rtl.h: Likewise.
5899         * stringpool.c: Likewise.
5900         * tree-data-ref.c: Likewise.
5901         * tree-flow.h: Likewise.
5902         * tree-scalar-evolution.c: Likewise.
5903         * tree-ssa-address.c: Likewise.
5904         * tree-ssa-alias.h: Likewise.
5905         * tree-ssa-operands.h: Likewise.
5906         * tree.c: Likewise.
5907         * tree.h: Likewise.
5908         * varasm.c: Likewise.
5909         * varray.h: Likewise.
5910         * vec.h: Likewise.
5911         * coretypes.h: Do not define GTY macro if it is already defined.
5912         * doc/gty.texi: Update GTY documentation to new syntax.
5913         * gengtype-lex.l: Enforce attribute-like syntax for GTY
5914         annotations on structs.
5915         * gengtype-parse.c: Likewise.
5916
5917 2009-04-22  Mark Heffernan  <meheff@google.com>
5918
5919         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
5920
5921 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
5922
5923         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
5924         where appropriate.
5925
5926 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
5927
5928         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
5929         the same as a PLUS without a shift.  Increase the cost of a
5930         CONST_INT in MULT.
5931
5932 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5933
5934         * Makefile.in: Update dependencies.
5935         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
5936         * errors.h: Remove bogus comment about compatibility.
5937         (warning): Update declaration.
5938         * genautomata.c: Update all calls to warning.
5939         * gimple.c: Do not include errors.h. Include toplev.h.
5940         * tree-ssa-structalias.c: Do not include errors.h.
5941         * omega.c: Likewise.
5942         * tree-ssa-reassoc.c: Likewise.
5943         * config/spu/spu-c.c: Likewise.
5944         * config/spu/t-spu-elf: Update dependencies.
5945
5946 2009-04-22  Richard Guenther  <rguenther@suse.de>
5947
5948         PR tree-optimization/39824
5949         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
5950         make sure the types are compatible.
5951
5952 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5953
5954         PR c++/14875
5955         * c-common.c (c_parse_error): Take a token_flags parameter.
5956         Use token_type for the token type instead.
5957         Pass token_flags to cpp_type2name.
5958         * c-common.h (c_parse_error): Update declaration.
5959         * c-parser.c (c_parser_error): Pass 0 as token flags.
5960
5961 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
5962
5963         PR rtl-optimization/39580
5964         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
5965         
5966 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5967
5968         * function.c (expand_function_end): Do not emit a jump to the "naked"
5969         return label for fall-through returns.
5970         * except.c (sjlj_emit_function_exit): Always place the call to the
5971         unregister function at the location installed by expand_function_end.
5972
5973 2009-04-22  Richard Guenther  <rguenther@suse.de>
5974
5975         PR tree-optimization/39845
5976         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
5977         (gen_inbound_check): Likewise.
5978
5979 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
5980
5981         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
5982         padding for PPC.
5983         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
5984         * config/vxlib.c (__gthread_once): Add race guard for PPC.
5985
5986 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
5987
5988         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
5989         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
5990         shift counts to avoid out-of-bounds array accesses.
5991
5992 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
5993
5994         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
5995         (Pmode): Move above.
5996
5997 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
5998
5999         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
6000         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
6001         GET_CODE macro.  Use IN_RANGE macro where appropriate.
6002         * config/alpha/alpha.h: Ditto.
6003         * config/alpha/alpha.md: Ditto.
6004         * config/alpha/constraints.md: Ditto.
6005         * config/alpha/predicates.md: Ditto.
6006         
6007 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
6008
6009         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
6010         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6011         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6012         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6013         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6014         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6015         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6016         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6017         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6018         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6019         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6020         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6021         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6022         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6023         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6024         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6025         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6026         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6027         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6028         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6029         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6030         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6031         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6032         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6033         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6034         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6035         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6036
6037 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6038
6039         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
6040         references from comments.
6041         * cfgbuild.c: (count_basic_blocks): Delete.
6042         (find_basic_blocks_1): Delete.
6043         (find_basic_blocks): Delete.
6044         * except.c (finish_eh_generation): Make static.  Move comment from
6045         except.h here.  Remove find_basic_blocks references from comments.
6046         * except.h (finish_eh_generation): Delete.
6047         * basic-block.h (find_basic_blocks): Delete.
6048         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
6049
6050 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
6051
6052         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
6053         (sdbout_parms):  Likewise.
6054
6055 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
6056
6057         * config/sh/sh.c (prepare_cbranch_operands): Use
6058         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
6059         (expand_cbranchdi4): Likewise.
6060         (from_compare): Add cast to enum type.
6061         (expand_cbranchsi4): Use add_reg_note.
6062         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
6063         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
6064         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
6065         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6066         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
6067         instead of CODE_FOR_nothing.
6068         (cbranchdi4): Likewise.  Fix the order of arguments for
6069         gen_rtx_fmt_ee.
6070         (push_fpscr): Use add_reg_note.
6071         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
6072         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
6073         
6074 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
6075
6076         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
6077         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6078         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6079         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
6080         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
6081         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
6082         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
6083         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
6084         config/alpha/x-vms, config/arc/t-arc,
6085         config/arm/README-interworking, config/arm/arm-c.c,
6086         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
6087         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
6088         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
6089         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
6090         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
6091         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
6092         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
6093         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
6094         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
6095         config/cris/t-elfmulti, config/crx/t-crx,
6096         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
6097         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
6098         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
6099         config/h8300/t-h8300, config/i386/athlon.md,
6100         config/i386/darwin-libgcc.10.4.ver,
6101         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
6102         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
6103         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
6104         config/i386/t-linux64, config/i386/t-nwld,
6105         config/i386/t-rtems-i386, config/i386/t-sol2-10,
6106         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
6107         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
6108         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
6109         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
6110         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
6111         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
6112         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
6113         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
6114         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
6115         config/m68k/t-uclinux, config/mcore/t-mcore,
6116         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
6117         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
6118         config/mips/crtn.asm, config/mips/irix-crti.asm,
6119         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
6120         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
6121         config/mips/mips-fixed.md, config/mips/sb1.md,
6122         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
6123         config/mips/t-iris6, config/mips/t-isa3264,
6124         config/mips/t-libgcc-mips16, config/mips/t-linux64,
6125         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
6126         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
6127         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
6128         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
6129         config/mn10300/t-linux, config/mn10300/t-mn10300,
6130         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
6131         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
6132         config/picochip/libgccExtras/clzsi2.asm,
6133         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
6134         config/rs6000/darwin-libgcc.10.4.ver,
6135         config/rs6000/darwin-libgcc.10.5.ver,
6136         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
6137         config/rs6000/t-aix43, config/rs6000/t-aix52,
6138         config/rs6000/t-darwin, config/rs6000/t-fprules,
6139         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
6140         config/rs6000/t-lynx, config/rs6000/t-netbsd,
6141         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
6142         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
6143         config/rs6000/t-rtems, config/rs6000/t-spe,
6144         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
6145         config/score/t-score-elf, config/sh/divcost-analysis,
6146         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
6147         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
6148         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
6149         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
6150         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
6151         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
6152         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
6153         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
6154         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
6155         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
6156         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
6157         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
6158         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
6159         limitx.h, version.c, xcoff.h: Add copyright and license notices.
6160         * config/h8300/genmova.sh: Include copyright and license notices
6161         in generated output.
6162         * config/h8300/mova.md: Regenerate.
6163         * doc/install.texi2html: Include word "Copyright" in copyright
6164         notice and use name "Free Software Foundation, Inc.".
6165         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6166         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6167         ChangeLog-2007, ChangeLog-2008: Correct dates.
6168
6169 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
6170
6171         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
6172         NE_EXPR operations as well.
6173         * c-parser.c (c_parser_condition): Do not set location information on
6174         the condition.
6175         (c_parser_conditional_expression): Likewise.
6176         (c_parser_binary_expression): Set location information on operators.
6177         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
6178         TRUTH_NOT_EXPR has been folded.
6179         * fold-const.c (fold_truth_not_expr): Copy location information from
6180         the incoming expression to the outgoing one.
6181         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
6182         recursive calls on the LHS of the operator but pass that of the
6183         operator to recursive calls on the RHS of the operator.  Set it
6184         on the COND_EXPR.
6185         (shortcut_cond_expr): Set the locus of the operator on the second
6186         COND_EXPR and that of the expression on the first in degenerate cases.
6187         Pass the locus of the expression to calls to shortcut_cond_r.
6188         Set the locus of the 'then' block on the associated jump, if any.
6189         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
6190         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
6191         expression to call to gimplify_boolean_expr.
6192
6193 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
6194
6195         * config.gcc: Add additional configuration for
6196         i686-w64-mingw* and x86_64-w64-mingw* triplet.
6197         * config/i386/mingw-w64.h: New mingw-w64 specific header.
6198         (CPP_SPEC): Redefine for allowing -municode option.
6199         (STARTFILE_SPEC): Likewise.
6200         * config/i386/t-mingw-w64: New.
6201         * config/i386/mingw-w64.opt: New.
6202         (municode): Add new target option.
6203         * doc/invoke.texi (municode): Add documentation for new option.
6204
6205 2009-04-21  Ian Lance Taylor  <iant@google.com>
6206
6207         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6208         Correct test for number of arguments.
6209         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6210
6211 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
6212
6213         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6214         argument of emit_library_call.
6215
6216 2009-04-21  Richard Guenther  <rguenther@suse.de>
6217
6218         PR middle-end/39829
6219         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6220         inside VIEW_CONVERT_EXPRs.
6221
6222 2009-04-21  Martin Jambor  <mjambor@suse.cz>
6223
6224         * tree-switch-conversion.c (build_constructors): Split a long line.
6225         (constructor_contains_same_values_p): New function.
6226         (build_one_array): Create assigns of constants if possible, do not
6227         call mark_sym_for_renaming, call update_stmt.
6228         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6229         make_rename_temp.  Do not call mark_symbols_for_renaming, call
6230         update_stmt.
6231         (gen_def_assigns): Do not call mark_symbols_for_renaming or
6232         find_new_referenced_vars, call update_stmt.
6233         (gen_inbound_check): Use create_tmp_var and create ssa names manually
6234         instead of calling make_rename_temp.  Do not call
6235         find_new_referenced_vars or mark_symbols_for_renaming, call
6236         update_stmt.
6237
6238 2009-04-21  Richard Guenther  <rguenther@suse.de>
6239
6240         PR tree-optimization/39827
6241         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
6242         (tree_ssa_phiprop): Pass the correct array size.
6243
6244 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
6245
6246         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
6247
6248 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6249
6250         PR 16202
6251         * c-typeck.c (lvalue_p): Move declaration ...
6252         * c-common.h (lvalue_p): ... to here.
6253         * c-common.c (candidate_equal_p): New.
6254         (add_tlist): Use it.
6255         (merge_tlist): Use it.
6256         (warn_for_collisions_1): Likewise.
6257         (warning_candidate_p): Accept more candidates.
6258         (verify_tree): A warning candidate can be an expression. Use
6259         candidate_equal_p.
6260
6261 2009-04-21  Ben Elliston  <bje@au.ibm.com>
6262
6263         PR target/5267
6264         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6265         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
6266         options.  Remove -mcall-solaris documentation.
6267
6268 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6269
6270         PR c++/13358
6271         * doc/invoke.texi (-Wlong-long): Update description.
6272         * c-lex (interpret_integer): Only warn if there was no previous
6273         overflow and -Wlong-long is enabled.
6274         * c-decl.c (declspecs_add_type): Drop redundant flags.
6275         * c.opt (Wlong-long): Init to -1.
6276         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
6277         and front-end warn_long_long. Wlong-long only depends on other
6278         flags if it is uninitialized.
6279         * c-parser.c (disable_extension_diagnostics): warn_long_long is
6280         the same for CPP and FE.
6281         (restore_extension_diagnostics): Likewise.
6282
6283 2009-04-20  Ian Lance Taylor  <iant@google.com>
6284
6285         Fix enum conversions which are invalid in C++:
6286         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
6287         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
6288         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
6289         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
6290         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
6291         (dbxout_parms): Likewise.
6292         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
6293         (df_clear_flags): Likewise.
6294         * df-problems.c (df_rd_bb_local_compute_process_def): Change
6295         top_flag parameter to int.
6296         (df_chain_create_bb_process_use): Likewise.
6297         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
6298         Remove cast.
6299         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
6300         (df_ref_create_structure, df_def_record_1): Likewise.
6301         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
6302         (df_notes_rescan): Change 0 to VOIDmode in function call.
6303         (df_get_call_refs, df_insn_refs_collect): Likewise.
6304         (df_bb_regs_collect): Likewise.
6305         (df_entry_block_defs_collect): Likewise.
6306         (df_exit_block_uses_collect): Likewise.
6307         * df.h: Update declarations.
6308         * double-int.c (double_int_divmod): Add cast to enum type.
6309         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
6310         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
6311         (based_loc_descr): Likewise.
6312         (loc_descriptor_from_tree_1): Change first_op and second_op to
6313         enum dwarf_location_atom.  Add cast to enum type.
6314         * expmed.c (init_expmed): Change 0 to SET in function call.
6315         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
6316         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
6317         (do_store_flag): Likewise.
6318         * fixed-value.h (struct fixed_value): Change mode to enum
6319         machine_mode.
6320         * function.c (assign_parms): Change 0 to VOIDmode in function call.
6321         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
6322         function call.
6323         (insert_insn_decl, insert_decl, insert_state): Likewise.
6324         (automata_list_finish): Likewise.
6325         * genrecog.c (process_define_predicate): Add cast to enum type.
6326         * gensupport.c (init_predicate_table): Add cast to enum type.
6327         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
6328         function call.
6329         (gimple_build_call_1, gimple_build_label): Likewise.
6330         (gimple_build_goto, gimple_build_asm_1): Likewise.
6331         (gimple_build_switch_1, gimple_build_cdt): Likewise.
6332         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
6333         (enum fallback): Rename from enum fallback_t.
6334         (fallback_t): Typedef as int.
6335         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
6336         GSI_SAME_STMT in function call.
6337         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
6338         enum type.
6339         (setup_reg_class_relations): Likewise.
6340         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
6341         (setup_prohibited_class_mode_regs): Add cast to enum type.
6342         (setup_prohibited_mode_move_regs): Likewise.
6343         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
6344         (record_address_regs): Change i to enum reg_class.
6345         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
6346         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
6347         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
6348         (GET_MODE_2XWIDER_MODE): Likewise.
6349         (GET_CLASS_NARROWEST_MODE): Likewise.
6350         * omp-low.c (expand_omp_for): Add cast to enum type.
6351         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
6352         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
6353         * postreload.c (reload_cse_simplify_operands): Change rclass local
6354         to enum reg_class.
6355         * predict.c (combine_predictions_for_insn): Change best_predictor
6356         and predictor to enum br_predictor.
6357         (combine_predictions_for_bb): Likewise.
6358         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
6359         use SET_PREDICT_EXPR_OUTCOME.
6360         * real.c (real_arithmetic): Change icode to code in function call.
6361         * reginfo.c (init_move_cost): Add casts to enum type.
6362         (init_reg_sets_1, init_fake_stack_mems): Likewise.
6363         * regmove.c (regclass_compatible_p): Change class0 and class1 to
6364         enum reg_class.
6365         * reload.c (find_valid_class): Add casts to enum type.
6366         (push_reload): Change 0 to NO_REGS in function call.
6367         (find_reloads): Change this_alternative to array of enum
6368         reg_class.  Remove some now-unnecessary casts.
6369         (make_memloc): Change 0 to VOIDmode in function call.
6370         * reload1.c (reload): Change 0 to VOIDmode in function call.
6371         (eliminate_regs_1, elimination_effects): Likewise.
6372         (eliminate_regs_in_insn): Likewise.
6373         (emit_input_reload_insns): Add cast to enum type.
6374         (delete_output_reload): Change 0 to VOIDmode in function call.
6375         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
6376         to enum type in function call.
6377         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
6378         (SET_PREDICT_EXPR_OUTCOME): Define.
6379         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
6380         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
6381         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
6382         (dump_function): Likewise.
6383         * tree-dump.h: Update declarations.
6384         * tree-pass.h: Update declarations.
6385         * varasm.c (assemble_integer): Change mclass to enum mode_class.
6386         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
6387         enum type.
6388         (arm_rtx_costs_1): Correct parenthesization.
6389         (arm_rtx_costs): Add casts to enum type.
6390         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
6391         (vfp_emit_fstmd): Use add_rg_note.
6392         (emit_multi_reg_push, emit_sfm): Likewise.
6393         (thumb_set_frame_pointer): Likewise.
6394         (arm_expand_prologue): Likewise.
6395         (arm_regno_class): Change return type to enum reg_class.
6396         (thumb1_expand_prologue): Use add_reg_note.
6397         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
6398         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
6399         in function call.
6400         * config/arm/gentune.sh: Add cast to enum type.
6401         * config/arm/arm-tune.md: Rebuild.
6402         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
6403         (ix86_split_fp_branch, predict_jump): Likewise.
6404         (ix86_expand_multi_arg_builtin): Change sub_code from enum
6405         insn_code to enum rtx_code.
6406         (ix86_builtin_vectorized_function): Add cast to enum type.
6407         * config/i386/i386.md (truncdfsf2): Change slot to enum
6408         ix86_stack_slot.
6409         (truncxf<mode>2, isinf<mode>2): Likewise.
6410         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
6411         enum type.
6412         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
6413         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
6414         (insert_bundle_state): Change 1 to INSERT in function call.
6415         (ia64_add_bundle_selector_before): Likewise.
6416         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
6417         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
6418         (restore_stack_nonlocal): Likewise.
6419         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
6420         function call.
6421         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
6422         function call.
6423         (mips_rtx_costs): Likewise.
6424         (mips_override_options): Add casts to enum type.
6425         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
6426         in function call.
6427         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
6428         (store_reg, set_reg_plus_d): Likewise.
6429         (hppa_expand_prologue, hppa_profile_hook): Likewise.
6430         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6431         cast to enum type.
6432         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
6433         function call.
6434         (emit_unlikely_jump): Use add_reg_note.
6435         (rs6000_emit_allocate_stack): Likewise.
6436         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
6437         (output_toc): Change 1 to INSERT in function call.
6438         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
6439         (rs6000_initialize_trampoline): Likewise.
6440         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
6441         function call.
6442         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
6443         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
6444         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
6445         (save_gprs): Use add_reg_note.
6446         (s390_emit_prologue): Likewise.
6447         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6448         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
6449         (sparc_fold_builtin): Add cast to enum type.
6450         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
6451         enum insn_code.
6452         (spu_expand_prologue): Use add_reg_note.
6453         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
6454
6455 2009-04-20  Ian Lance Taylor  <iant@google.com>
6456
6457         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
6458         (c_parser_postfix_expression_after_primary): Get VEC for list of
6459         arguments.  Get original types of arguments.  Call
6460         build_function_call_vec.
6461         (cached_expr_list_1, cached_expr_list_2): New static variables.
6462         (c_parser_expr_list): Change return type to VEC *.  Add
6463         p_orig_types parameter.  Change all callers.
6464         (c_parser_release_expr): New static function.
6465         (c_parser_vec_to_tree_list): New static function.
6466         * c-typeck.c (build_function_call): Rewrite to build a VEC and
6467         call build_function_call_vec.
6468         (build_function_call_vec): New function, based on old
6469         build_function_call.
6470         (convert_arguments): Remove nargs and argarray parameters.  Change
6471         values to a VEC.  Add origtypes parameter.
6472         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
6473         (convert_for_assignment): Add origtype parameter.  Change all
6474         callers.  If warn_cxx_compat, check for conversion to an enum
6475         type when calling a function.
6476         (store_init_value): Add origtype parameter.  Change all callers.
6477         (digest_init): Likewise.
6478         (struct init_node): Add origtype field.
6479         (add_pending_init): Add origtype parameter.  Change all callers.
6480         (output_init_element): Likewise.
6481         (output_pending_init_elements): Pass origtype from init_node to
6482         output_init_element.
6483         (process_init_element): Pass origtype from c_expr to
6484         output_init_element.
6485         (c_finish_return): Add origtype parameter.  Change all callers.
6486         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
6487         caller.
6488         (sync_resolve_params): Likewise.
6489         (sync_resolve_return): Change params to first_param.  Change caller.
6490         (resolve_overloaded_builtins): Change params to VEC *.  Change
6491         callers.  Save first parameter around call to build_function_call_vec.
6492         * c-decl.c (finish_decl): Add origtype parameter.  Change all
6493         callers.  Call build_function_call_vec rather than
6494         build_function_call for cleanup.
6495         * c-tree.h: Update declarations.
6496         * c-common.h: Update declarations.
6497         * stub-objc.c (objc_rewrite_function_call): Change parameter from
6498         params to first_param.
6499         * target.h (struct gcc_target): Change resolve_overloaded_builtin
6500         params parameter from tree to void *.
6501         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6502         Change arglist parameter to have type void *, and to be a pointer
6503         to a VEC.
6504         * config/rs6000/rs6000-protos.h
6505         (altivec_resolve_overloaded_builtin): Update declaration.
6506         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
6507         fnargs parameter to have type void *, and to be a pointer to a
6508         VEC.  Call build_function_call_vec instead of
6509         build_function_call.
6510         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
6511
6512 2009-04-20  Joey Ye  <joey.ye@intel.com>
6513             Xuepeng Guo  <xuepeng.guo@intel.com>
6514             H.J. Lu  <hongjiu.lu@intel.com>
6515
6516         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
6517
6518         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
6519         (IX86_LEA_PRIORITY): Likewise.
6520         (distance_non_agu_define): New function.
6521         (distance_agu_use): Likewise.
6522         (ix86_lea_for_add_ok): Likewise.
6523         (ix86_dep_by_shift_count): Likewise.
6524
6525         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
6526         should split for LEA.
6527
6528         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
6529         function.
6530         (ix86_dep_by_shift_count): Likewise.
6531
6532 2009-04-20  Richard Guenther  <rguenther@suse.de>
6533
6534         * expr.c (handled_component_p): Move ...
6535         * tree.h (handled_component_p): ... here.
6536         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
6537         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
6538         and REALPART_EXPR to be in one group.
6539
6540 2009-04-20  Richard Guenther  <rguenther@suse.de>
6541
6542         * basic-block.h (get_all_dominated_blocks): Declare.
6543         * dominance.c (get_all_dominated_blocks): New function.
6544         * tree-cfg.c (get_all_dominated_blocks): Remove.
6545         (remove_edge_and_dominated_blocks): Adjust.
6546         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
6547         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
6548         instead of recursing.
6549
6550 2009-04-20  Doug Kwan  <dougkwan@google.com>
6551
6552         * cgraph.h (cgraph_node_ptr): New type for vector functions.
6553         (struct cgraph_node_set_def): New type.
6554         (cgraph_node_set) New type. Also declare vector functions.
6555         (struct cgraph_node_set_element_def): New type.
6556         (cgraph_node_set_element): Ditto.
6557         (cgraph_node_set_iterator): New iterator type.
6558         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
6559         cgraph_node_set_remove, dump_cgraph_node_set,
6560         debug_cgraph_node_set): New prototypes.
6561         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
6562         cgraph_node_set_size): New inlines.
6563         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
6564         including cgraph.h.
6565         (struct ipa_opt_pass): Add struct cgraph_node_set_def
6566         argument to function 'write_summary'.
6567         * ipa.c: Include ggc.h.
6568         (hash_cgraph_node_set_element,
6569         eq_cgraph_node_set_element, cgraph_node_set_new,
6570         cgraph_node_set_add, cgraph_node_set_remove,
6571         cgraph_node_set_find, dump_cgraph_node_set,
6572         debug_cgraph_node_set): New functions.
6573         * Makefile.in (ipa.o): Add dependency on GGC_H.
6574
6575 2009-04-20  Ira Rosen  <irar@il.ibm.com>
6576
6577         PR tree-optimization/39675
6578         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
6579         check of the return code of vect_schedule_slp. Check that
6580         stmt_vec_info still exists for the statement, before checking its
6581         vectorization type.
6582
6583 2009-04-20  Michael Matz  <matz@suse.de>
6584
6585         * Makefile.in (generated_files): Take out $(simple_generated_c).
6586
6587 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
6588
6589         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
6590         (UINTPTR_TYPE):  Likewise.
6591
6592 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
6593
6594         PR c/37481
6595         * c-typeck.c (digest_init): Check for initializing an array with a
6596         string literal.
6597
6598 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
6599
6600         PR c/19771
6601         * c-semantics.c (pop_stmt_list): Propagate
6602         STATEMENT_LIST_HAS_LABEL to parent statement list.
6603
6604 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
6605
6606         * config/mips/mips.h (mips_tune_attr): New macro.
6607         * config/mips/mips.md (cpu): Use it.
6608
6609 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
6610
6611         PR c/38243
6612         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
6613         declaring a tag.
6614
6615 2009-04-19  Diego Novillo  <dnovillo@google.com>
6616
6617         * toplev.c (compile_file): Move call to coverage_finish ...
6618         * cgraphunit.c (ipa_passes): ... here.
6619         Call cgraph_process_new_functions.
6620         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
6621         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
6622
6623 2009-04-19  Jan Hubicka  <jh@suse.cz>
6624
6625         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
6626         cfun.
6627         (dump_cgraph_node): Dump can throw external flag.
6628         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
6629
6630 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6631
6632         PR c/32061
6633         PR c++/36954
6634         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
6635         * common.opt (Wlogical-op): Move from here...
6636         * c.opt (Wlogical-op): ... to here.
6637         * c-typeck.c (parser_build_binary_op): Update call to
6638         warn_logical_operator.
6639         * c-opts.c (c_common_post_options): Enable warn_logical_op with
6640         extra_warnings.
6641         * c-common.c (warn_logical_op): Update.
6642         * c-common.h (warn_logical_op): Update declaration.
6643
6644 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
6645
6646         * tree.c (protected_set_expr_location): Fix formatting.
6647
6648 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
6649
6650         PR c/27676
6651         * c-typeck.c (readonly_warning): new.
6652         (build_unary_op, build_modify_expr): Use readonly_warning for
6653         storing into something readonly but not const-qualified.
6654
6655 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
6656
6657         PR c/22367
6658         * c-typeck.c (build_unary_op): Check for taking address of
6659         expression of type void.
6660
6661 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
6662
6663         PR c/35210
6664         * c-typeck.c (build_function_call): Check for calling a function
6665         with qualified void return types.  Call require_complete_type when
6666         generating a trap.
6667
6668 2009-04-18  Jan Hubicka  <jh@suse.cz>
6669
6670         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
6671         Set nothrow flag.
6672         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
6673         can_throw_external flag.
6674         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
6675         * ipa-pure-const.c (ignore_edge): New function.
6676         (propagate): Compute order for NOTHROW computation; set NOTHROWs
6677         only over can_throw_external edges.
6678         (local_pure_const): Add nothrow flag.
6679         * ipa-utils.c (searchc): Add ignore_edge callback.
6680         (ipa_utils_reduced_inorder): Add ignore_edge callback.
6681         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
6682         (set_nothrow_function_flags): Update cgraph.
6683         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
6684
6685 2009-04-18  Richard Guenther  <rguenther@suse.de>
6686
6687         PR middle-end/39804
6688         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
6689         (fold_stmt): ... this and ...
6690         (fold_stmt_inplace): ... this.
6691         (fold_stmt_1): Fold references in calls and asms.
6692         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
6693
6694 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
6695
6696         * tree-vrp.c (ssa_name_nonzero_p): Remove.
6697         * tree.h: Remove the prototype for ssa_name_nonzero_p.
6698
6699 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
6700
6701         * tree.c (function_args_count): Remove.
6702         * tree.h: Remove the prototype for function_args_count.
6703
6704 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
6705
6706         * tree-iterator.c (expr_only): Remove.
6707         * tree.h: Remove the prototype for expr_only.
6708
6709 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
6710
6711         * reginfo.c (cannot_change_mode_set_regs): Remove.
6712         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
6713
6714 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
6715
6716         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
6717         whether operands 0 and 1 overlaps.
6718
6719 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6720
6721         PR middle-end/36902
6722         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
6723         pointer. Use warning_at instead of warning.
6724         (search_for_addr_array): Likewise.
6725         (check_array_bounds): Likewise.
6726         (check_all_array_refs): Check that the incoming edge is not in the
6727         list of edges to be removed.
6728         (check_all_array_refs): Avoid the temporal pointer.
6729         (vrp_visit_cond_stmt): Fix typo.
6730         (simplify_switch_using_ranges): Handle the case where the switch
6731         index is an integer constant.
6732
6733 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
6734
6735         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
6736
6737 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
6738
6739         * doc/extend.texi, doc/invoke.texi: Fix typos.
6740
6741 2009-04-17  Cary Coutant  <ccoutant@google.com>
6742
6743         * tree-flow-inline.h (get_lineno): Fix inverted test.
6744
6745 2009-04-17  Diego Novillo  <dnovillo@google.com>
6746
6747         * tree-ssa-pre.c (create_expression_by_pieces): Remove
6748         assertion for AVAIL_OUT.
6749
6750 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
6751
6752         PR target/38627
6753         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
6754         * config/sh/linux-atomic.asm: Likewise.
6755
6756 2009-04-17  Diego Novillo  <dnovillo@google.com>
6757
6758         * except.c (debug_eh_tree): New.
6759         (struct eh_region, struct eh_status): Move ...
6760         * except.h: ... here.
6761         (add_type_for_runtime): Declare extern.
6762         (lookup_type_for_runtime): Likewise.
6763         (debug_eh_tree): Declare.
6764         * Makefile.in (GTFILES): List except.h before except.c
6765
6766 2009-04-17  Diego Novillo  <dnovillo@google.com>
6767
6768         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
6769         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
6770         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
6771         (find_vars_r): ... here.
6772         * tree-flow.h (find_referenced_vars_in): Declare.
6773         * tree-ssa-pre.c (create_expression_by_pieces): Assert
6774         that AVAIL_OUT exists for BLOCK.
6775         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
6776         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
6777         (tree-parloops.o): Likewise.
6778
6779 2009-04-17  Simon Baldwin  <simonb@google.com>
6780
6781         * toplev.c (default_tree_printer): Add handling for %E format.
6782
6783 2009-04-17  Diego Novillo  <dnovillo@google.com>
6784
6785         * tree-pretty-print.c (dump_generic_node): Add break after
6786         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
6787         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
6788         FUNCTION_TYPE together.  Call print_struct_decl when printing
6789         structures and TDF_SLIM is not given.
6790         (print_struct_decl): Fix logic for detecting recursion.
6791
6792 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
6793
6794         PR 31567
6795         * gcc.c (create_at_file): New.
6796         (compile_input_file_p): New.
6797         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
6798         * main.c (main): Update call to toplev_main.
6799         * toplev.c (toplev_main): Change signature. Call expandargv.
6800         * toplev.h (toplev_main): Change signature.
6801
6802 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
6803
6804         * dwarf2out.c (field_byte_offset): Use the type size as the field size
6805         if the latter is not constant.
6806
6807 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
6808
6809         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
6810
6811 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
6812
6813         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
6814         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
6815
6816 2009-04-17  Richard Guenther  <rguenther@suse.de>
6817
6818         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6819         Handle component references view-converting an invariant address.
6820
6821 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
6822
6823         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
6824         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
6825         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
6826         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
6827         Use @deftypevr rather than @deftypevar.
6828
6829 2009-04-17  Richard Guenther  <rguenther@suse.de>
6830
6831         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
6832         (get_prop_source_stmt): Likewise.
6833         (can_propagate_from): Likewise.
6834
6835 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
6836
6837         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
6838         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
6839         (--with-multilib-list): Add default value.
6840         * configure: Regenerate.
6841         * Makefile.in (TM_ENDIAN_CONFIG): Define.
6842         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
6843         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
6844         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
6845         Don't add default cpu to multilib list unnecessarily, but do enable
6846         the relevant compiler option..
6847         Add support for --with-multilib-list=<blank> and
6848         --with-multilib-list=!<somelib> to supress unwanted multilibs.
6849         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
6850         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
6851         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
6852         TM_MULTILIB_CONFIG.
6853         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
6854         (MULTILIB_OSDIRNAMES): New variable.
6855         * config/sh/t-1e: Delete file.
6856         * config/sh/t-mlib-sh1: Delete file.
6857         * config/sh/t-mlib-sh2: Delete file.
6858         * config/sh/t-mlib-sh2a: Delete file.
6859         * config/sh/t-mlib-sh2a-nofpu: Delete file.
6860         * config/sh/t-mlib-sh2a-single: Delete file.
6861         * config/sh/t-mlib-sh2a-single-only: Delete file.
6862         * config/sh/t-mlib-sh2e: Delete file.
6863         * config/sh/t-mlib-sh3e: Delete file.
6864         * config/sh/t-mlib-sh4: Delete file.
6865         * config/sh/t-mlib-sh4-nofpu: Delete file.
6866         * config/sh/t-mlib-sh4-single: Delete file.
6867         * config/sh/t-mlib-sh4-single-only: Delete file.
6868         * config/sh/t-mlib-sh4a: Delete file.
6869         * config/sh/t-mlib-sh4a-nofpu: Delete file.
6870         * config/sh/t-mlib-sh4a-single: Delete file.
6871         * config/sh/t-mlib-sh4a-single-only: Delete file.
6872         * config/sh/t-mlib-sh4al: Delete file.
6873         * config/sh/t-mlib-sh5-32media: Delete file.
6874         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
6875         * config/sh/t-mlib-sh5-64media: Delete file.
6876         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
6877         * config/sh/t-mlib-sh5-compact: Delete file.
6878         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
6879         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
6880         * doc/install.texi (Options specification): Add
6881         --with-multilib-list and --with-endian.
6882
6883 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
6884
6885         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
6886         REVISION_c.
6887         (OBJS-common): Add plugin-version.o.
6888         (plugin-version.o): New.
6889         * gcc-plugin.h (plugin_gcc_version): New.
6890         (plugin_default_version_check): New.
6891         (plugin_init_func, plugin_init): Add version argument.
6892         * plugin-version.c: New.
6893         * plugin.c (str_plugin_gcc_version_name): New.
6894         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
6895         pass it to the init function.
6896         (plugin_default_version_check): New.
6897
6898 2009-04-17  Richard Guenther  <rguenther@suse.de>
6899
6900         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
6901         for decl-vs-decl disambiguation.
6902
6903 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
6904
6905         * config/s390/s390.h (s390_tune_attr): New macro definition.
6906         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
6907
6908 2009-04-17  Richard Guenther  <rguenther@suse.de>
6909
6910         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
6911         (fold_stmt_r): Likewise.
6912         (maybe_fold_reference): New function.
6913         (fold_gimple_assign): Handle cases fold_stmt_r did.
6914         (fold_stmt): Do not use fold_stmt_r.
6915         (fold_stmt_inplace): Likewise.
6916
6917 2009-04-17  Richard Guenther  <rguenther@suse.de>
6918
6919         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
6920         (record_equivalences_from_stmt): Remove useless checks and
6921         simplifications.
6922         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
6923         the type is already suitable.
6924
6925 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
6926
6927         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
6928
6929 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
6930
6931         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
6932         (CMPtype): Define as __gcc_CMPtype.
6933
6934 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
6935
6936         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
6937         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
6938
6939 2009-04-17  Richard Guenther  <rguenther@suse.de>
6940
6941         PR tree-optimization/39746
6942         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
6943         special-casing for builtins and static variable use/def.
6944         (call_may_clobber_ref_p_1): Likewise.
6945
6946 2009-04-16  Ian Lance Taylor  <iant@google.com>
6947
6948         * df.h: Include "timevar.h".
6949         (struct df_problem): Change tv_id field to timevar_id_t.
6950         * tree-pass.h: Include "timevar.h".
6951         (struct opt_pass): Change tv_id field to timevar_id_t.
6952         * timevar.h (timevar_id_t): Define TV_NONE.
6953         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
6954         TV_NONE rather than tv_id != 0.
6955         (execute_one_pass): Likewise.
6956         * Makefile.in (DF_H): Add $(TIMEVAR_H).
6957         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
6958         dependencies to $(TREE_PASS_H).
6959         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
6960         to TV_NONE.
6961         (pass_branch_target_load_optimize2): Likewise.
6962         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
6963         (pass_outof_cfg_layout_mode): Likewise.
6964         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
6965         (pass_rebuild_cgraph_edges): Likewise.
6966         (pass_remove_cgraph_callee_edges): Likewise.
6967         * df-core.c (pass_df_initialize_opt): Likewise.
6968         (pass_df_initialize_no_opt): Likewise.
6969         (pass_df_finish): Likewise.
6970         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
6971         * except.c (pass_set_nothrow_function_flags): Likewise.
6972         (pass_convert_to_eh_region_ranges): Likewise.
6973         * final.c (pass_compute_alignments): Likewise.
6974         * function.c (pass_instantiate_virtual_regs): Likewise.
6975         (pass_init_function): Likewise.
6976         (pass_leaf_regs): Likewise.
6977         (pass_match_asm_constraints): Likewise.
6978         * gimple-low.c (pass_lower_cf): Likewise.
6979         (pass_mark_used_blocks): Likewise.
6980         * init-regs.c (pass_initialize_regs): Likewise.
6981         * integrate.c (pass_initial_value_sets): Likewise.
6982         * ira.c (pass_ira): Likewise.
6983         * jump.c (pass_cleanup_barriers): Likewise.
6984         * omp-low.c (pass_expand_omp): Likewise.
6985         (pass_lower_omp): Likewise.
6986         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
6987         * recog.c (pass_split_all_insns): Likewise.
6988         (pass_split_after_reload): Likewise.
6989         (pass_split_before_regstack): Likewise.
6990         (pass_split_before_sched2): Likewise.
6991         (pass_split_for_shorten_branches): Likewise.
6992         * reginfo.c (pass_reginfo_init): Likewise.
6993         (pass_subregs_of_mode_init): Likewise.
6994         (pass_subregs_of_mode_finish): Likewise.
6995         * passes.c (pass_postreload): Likewise.
6996         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
6997         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
6998         (pass_warn_function_return): Likewise.
6999         (pass_warn_function_noreturn): Likewise.
7000         * tree-complex.c (pass_lower_complex): Likewise.
7001         (pass_lower_complex_O0): Likewise.
7002         * tree-if-conv.c (pass_if_conversion): Likewise.
7003         * tree-into-ssa.c (pass_build_ssa): Likewise.
7004         * tree-mudflap.c (pass_mudflap_1): Likewise.
7005         (pass_mudflap_2): Likewise.
7006         * tree-nomudflap.c (pass_mudflap_1): Likewise.
7007         (pass_mudflap_2): Likewise.
7008         * tree-nrv.c (pass_return_slot): Likewise.
7009         * tree-object-size.c (pass_object_sizes): Likewise.
7010         * tree-optimize.c (pass_all_optimizations): Likewise.
7011         (pass_early_local_passes): Likewise.
7012         (pass_all_early_optimizations): Likewise.
7013         (pass_cleanup_cfg): Likewise.
7014         (pass_cleanup_cfg_post_optimizing): Likewise.
7015         (pass_free_datastructures): Likewise.
7016         (pass_free_cfg_annotations): Likewise.
7017         (pass_fixup_cfg): Likewise.
7018         (pass_init_datastructures): Likewise.
7019         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
7020         (pass_late_warn_uninitialized): Likewise.
7021         (pass_update_address_taken): Likewise.
7022         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
7023         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
7024         (pass_cse_sincos): Likewise.
7025         (pass_convert_to_rsqrt): Likewise.
7026         * tree-ssa-structalias.c (pass_build_alias): Likewise.
7027         * tree-stdarg.c (pass_stdarg): Likewise.
7028         * tree-tailcall.c (pass_tail_recursion): Likewise.
7029         (pass_tail_calls): Likewise.
7030         * tree-vect-generic.c (pass_lower_vector): Likewise.
7031         (pass_lower_vector_ssa): Likewise.
7032         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
7033
7034 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
7035
7036         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
7037         XLR entry.
7038         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
7039         Handle -march=xlr.
7040         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
7041         logical and signext.
7042
7043 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
7044
7045         PR target/39767
7046         * config/sh/predicates.md (arith_operand): Check if the operand
7047         of TRUNCATE is a REG.
7048
7049 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7050
7051         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
7052         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
7053
7054 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7055
7056         * tree-iterator.c (tsi_split_statement_list_after,
7057         tsi_split_statement_list_before): Remove.
7058         * tree-iterator.h: Remove the prototypes for
7059         tsi_split_statement_list_after and tsi_split_statement_list_before.
7060
7061 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7062
7063         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
7064         * tree-ssa-propagate.h: Remove the prototype for
7065         stmt_makes_single_load.
7066
7067 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7068
7069         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
7070         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
7071
7072 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7073
7074         * tree-iterator.c (EXPR_LAST_BODY): Remove.
7075
7076 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7077
7078         * except.c (eh_region_outer_p): Remove.
7079         * except.h: Remove the prototype for eh_region_outer_p.
7080
7081 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7082
7083         * function.c (current_function_assembler_name): Remove.
7084         * function.h: Remove the prototype for
7085         current_function_assembler_name.
7086
7087 2009-04-16  Ian Lance Taylor  <iant@google.com>
7088
7089         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
7090         (add_reg_note): Call alloc_reg_note.
7091         * rtl.h (alloc_reg_note): Declare.
7092         * combine.c (try_combine): Use alloc_reg_note.
7093         (recog_for_combine, move_deaths): Likewise.
7094         (distribute_notes): Use alloc_reg_note and add_reg_note.
7095         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
7096         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
7097         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
7098
7099 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
7100
7101         PR rtl-optimization/39762
7102         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
7103         ira_may_move_out_cost): Add comments about way of their usage.
7104         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
7105
7106         * ira-conflicts.c (process_regs_for_copy): Use function
7107         ira_get_register_move_cost instead of global
7108         ira_register_move_cost.
7109
7110         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
7111         color_pass, move_spill_restore, update_curr_costs): Ditto.
7112
7113         * ira-lives.c (process_single_reg_class_operands): Ditto.
7114
7115         * ira-emit.c (emit_move_list): Ditto.
7116
7117         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
7118         (record_reg_classes): Ditto.  Use functions
7119         ira_get_register_move_cost and ira_get_may_move_cost instead of
7120         global vars ira_register_move_cost, ira_may_move_out_cost and
7121         ira_may_move_in_cost.
7122         (record_address_regs): Don't call ira_init_register_move_cost.
7123         Use function ira_get_may_move_cost instead of global
7124         ira_may_move_in_cost.
7125         (process_bb_node_for_hard_reg_moves): Use function
7126         ira_get_register_move_cost instead of global ira_register_move_cost.
7127         (ira_costs): Don't call ira_init_register_move_cost.
7128
7129 2009-04-16  Richard Guenther  <rguenther@suse.de>
7130
7131         * tree-cfg.c (verify_gimple_assign_binary):
7132         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
7133         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
7134         (create_general_new_stmt): Note that this function is broken.
7135
7136 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
7137
7138         * common.opt (fhelp): Add Var(help_flag).
7139         * gcc-plugin.h (plugin_info): Add help.
7140         * plugin.c (plugin_name_args): Add help.
7141         (register_plugin_info): Set plugin->help.
7142         (print_help_one_plugin): New.
7143         (print_plugins_help): New.
7144         * plugin.h (print_plugins_help): New.
7145         * toplev.c (toplev_main): Call print_plugins_help if needed.
7146
7147 2009-04-16  Richard Guenther  <rguenther@suse.de>
7148
7149         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
7150         (gimple_ior_addresses_taken_1): New function.
7151         (gimple_ior_addresses_taken): Likewise.
7152         * gimple.h (struct gimple_statement_with_ops_base): Remove
7153         addresses_taken member.
7154         (gimple_ior_addresses_taken): Declare.
7155         (gimple_addresses_taken, gimple_addresses_taken_ptr,
7156         gimple_set_addresses_taken): Remove.
7157         * ipa-reference.c (mark_address): New function.
7158         (scan_stmt_for_static_refs): Use it for marking addresses taken.
7159         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
7160         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
7161         (gimple_add_to_addresses_taken): Remove.
7162         (get_tmr_operands): Call mark_address_taken.
7163         (get_asm_expr_operands): Likewise.
7164         (get_expr_operands): Likewise.
7165         (build_ssa_operands): Do not clear the addresses_taken bitmap.
7166         (free_stmt_operands): Do not free it.
7167         * tree-ssa.c (delete_tree_ssa): Likewise.
7168         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
7169
7170 2009-04-16  Richard Guenther  <rguenther@suse.de>
7171
7172         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
7173         (walk_stmt_load_store_ops): Likewise.
7174         * gimple.c (get_base_loadstore): New function.
7175         (walk_stmt_load_store_addr_ops): Likewise.
7176         (walk_stmt_load_store_ops): Likewise.
7177         * ipa-pure-const.c (check_op): Simplify.
7178         (check_load, check_store): New functions.
7179         (check_stmt): Use walk_stmt_load_store_ops.
7180         * ipa-reference.c (mark_load): Adjust signature.
7181         (mark_store): Likewise.
7182         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
7183
7184 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
7185
7186         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
7187         (plugin_info): New.
7188         * opts.c (common_handle_option): Don't call print_version.
7189         * plugin.c (plugin_name_args): Add version.
7190         (register_plugin_info): New.
7191         (register_callback): Handle PLUGIN_INFO.
7192         (try_init_one_plugin): New.
7193         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
7194         if failed to init.
7195         (finalize_one_plugin): New.
7196         (finalize_plugins): New.
7197         (print_one_plugin): New.
7198         (print_plugins_versions): New.
7199         * plugin.h (print_plugins_versions): New.
7200         (finalize_plugins): New.
7201         * toplev.c (compile_file): Don't call initialize_plugins.
7202         (print_version): Call print_plugins_versions.
7203         (toplev_main): Call initialize_plugins. Print version if needed.
7204         Call finalize_plugins.
7205
7206 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
7207
7208         * common.opt (fversion): New.
7209         * gcc.c (print_version): New.
7210         (process_command): Don't print the version. Just set print_version.
7211         (main): Print version. Call subprocesses if print_version and
7212         verbose_flag are set.
7213         * opts.c (common_handle_option): Handle OPT_fversion.
7214
7215 2009-04-16  Richard Guenther  <rguenther@suse.de>
7216             Ira Rosen  <irar@il.ibm.com>
7217
7218         PR tree-optimization/39698
7219         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7220         type of the reduction variable.  Only generate the def if
7221         it is needed.
7222
7223         * omp-low.c (expand_omp_for_generic): When converting to a pointer
7224         make sure to first convert to an integer of the same precision.
7225         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7226         the type of the evolution correctly in computing the new
7227         induction variable base.
7228
7229 2009-04-16  Richard Guenther  <rguenther@suse.de>
7230
7231         PR middle-end/39625
7232         * tree-cfg.c (make_blocks): Split statements with to-be
7233         abnormal SSA names on the lhs.
7234
7235 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
7236
7237         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
7238         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
7239         * c-typeck.c (really_start_incremental_init): Likewise.
7240         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
7241         (TARGET_INITIALIZER): Remove it.
7242         * target.h (struct target): Remove vector_opaque_p.
7243         * tree.c (build_opaque_vector_type): New.
7244         * tree.h (TYPE_VECTOR_OPAQUE): New.
7245         (build_opaque_vector_type): Declare.
7246         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
7247         * config/rs6000/rs6000.c (build_opaque_vector_type,
7248         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
7249         (rs6000_init_builtins): Use build_opaque_vector_type for
7250         opaque_V4SI_type_node.
7251
7252 2009-04-15  Catherine Moore  <clm@codesourcery.com>
7253
7254         * debug.h (set_name):  Declare.
7255         * dwarf2out.c (dwarf2out_set_name): Declare.
7256         (dwarf2_debug_hooks): Add set_name.
7257         (find_AT_string): New.
7258         (add_AT_string): Call find_AT_string.
7259         (dwarf2out_set_name): New.
7260         * cp/decl.c (grokdeclarator): Call set_name.
7261         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
7262         * debug.c (do_nothing_debug_hooks):  Likewise.
7263         * dbxout.c (dbx_debug_hooks): Likewise.
7264         * sdbout.c (sdb_debug_hooks): Likewise.
7265
7266 2009-04-15  Michael Eager  <eager@eagercon.com>
7267
7268         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
7269         reg for single-precision FPU.
7270         * config/rs6000/rs6000.md (movsi_internal1): Only for
7271         !TARGET_SINGLE_FPU.
7272         (movsi_internal1_single): New. Add pattern to move SI values to/from
7273         single-precision FP regs.
7274
7275 2009-04-15  Richard Guenther  <rguenther@suse.de>
7276
7277         * omp-low.c (lower_rec_input_clauses): Build correct address
7278         expressions.
7279         (expand_omp_for_generic): Fix multiplication type.
7280         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
7281         (generate_memset_zero): Fix types.
7282         * tree-profile.c (prepare_instrumented_value): Correctly
7283         widen a pointer.
7284
7285 2009-04-15  Ian Lance Taylor  <iant@google.com>
7286
7287         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
7288         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
7289         for -Wall and for -Wc++-compat.
7290         (c_common_post_options): For C++, set warn_enum_compare if not
7291         already set.
7292         * c-tree.h (struct c_expr): Add field original_type.
7293         (build_external_ref): Update declaration.
7294         * c-parser.c (c_parser_braced_init): Set original_type.
7295         (c_parser_initelt): Likewise.
7296         (c_parser_expr_no_commas): Likewise.
7297         (c_parser_conditional_expression): Likewise.
7298         (c_parser_cast_expression): Likewise.
7299         (c_parser_unary_expression): Likewise.  Pull setting of
7300         original_code to top of function.
7301         (c_parser_sizeof_expression): Set original_type.
7302         (c_parser_alignof_expression): Likewise.
7303         (c_parser_postfix_expression): Likewise.  Pull setting of
7304         original_code to top of function.
7305         (c_parser_postfix_expression_after_paren_type): Set original_type.
7306         (c_parser_postfix_expression_after_primary): Likewise.
7307         (c_parser_expression): Likewise.
7308         * c-typeck.c (build_external_ref): Add type parameter.  Change all
7309         callers.
7310         (c_expr_sizeof_expr): Set original_type field.
7311         (parser_build_unary_op): Likewise.
7312         (parser_build_binary_op): Likewise.  Optionally warn about
7313         comparisons of enums of different types.
7314         (digest_init): Set original_type field.
7315         (really_start_incremental_init): Likewise.
7316         (push_init_level, pop_init_level): Likewise.
7317         * doc/invoke.texi (Warning Options): -Wenum-compare now
7318         supported in C.
7319
7320 2009-04-15  Richard Guenther  <rguenther@suse.de>
7321
7322         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
7323         out a necessary conversion.
7324         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
7325         names we didn't value number.
7326         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
7327
7328 2009-04-15  Richard Guenther  <rguenther@suse.de>
7329
7330         PR tree-optimization/39764
7331         * tree-ssa-ccp.c (get_value): Canonicalize value with
7332         canonicalize_float_value.
7333
7334 2009-04-15  Jan Hubicka  <jh@suse.cz>
7335
7336         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
7337         Wrong version of patch.
7338
7339 2009-04-15  Jan Hubicka  <jh@suse.cz>
7340
7341         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
7342
7343 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
7344
7345         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
7346         our distinct integral and vector types.
7347
7348 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
7349
7350         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
7351         * init.c (build_vtbl_address): Remove call to assemble_external.
7352
7353 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
7354
7355         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
7356         output for other floating point modes.
7357
7358 2009-04-14  Diego Novillo  <dnovillo@google.com>
7359
7360         * diagnostic.c (diagnostic_report_diagnostic): Do not
7361         warn about loaded plugins for DK_ERROR and DK_WARNING.
7362         * c-decl.c (declspecs_add_type): Move call to
7363         invoke_plugin_callbacks ...
7364         * c-parser.c (c_parser_declspecs): ... here.
7365         * plugin.c (dump_active_plugins): Tidy output.
7366
7367 2009-04-14  Diego Novillo  <dnovillo@google.com>
7368             Le-Chun Wu  <lcwu@google.com>
7369
7370         * configure.ac: Add --enable-plugin support.
7371         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
7372         * Makefile.in (PLUGIN_H): Define.
7373         Export ENABLE_PLUGIN and GMPINC to site.exp.
7374         Add PLUGINLIBS to link command.
7375         Add/modify dependencies for plugin.o and files including plugin.h.
7376         (plugin.o): New.
7377         * config.in: Regenerate.
7378
7379         * opts.c (common_handle_option): Handle OPT_fplugin_ and
7380         OPT_fplugin_arg_.
7381
7382 2009-04-14  Le-Chun Wu  <lcwu@google.com>
7383
7384         * tree-pass.h (register_one_dump_file): Add a prototype for
7385         register_one_dump_file.
7386         * toplev.c (compile_file): Call initialize_plugins.
7387         (do_compile): Call invoke_plugin_callbacks.
7388         (toplev_main): Call invoke_plugin_callbacks.
7389         * common.opt: Add -fplugin= and -fplugin-arg-.
7390         * gcc-plugin.h: New public header file for plugins to include.
7391         * plugin.c: New source file.
7392         * plugin.h: New internal header file.
7393         * passes.c (register_one_dump_file): Make it external.
7394
7395         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
7396
7397 2009-04-14  Diego Novillo  <dnovillo@google.com>
7398
7399         * doc/plugins.texi: New.
7400         * doc/gccint.texi: Add reference to Plugins chapter.
7401         * doc/invoke.texi: Document -fplugin and -fplugin-arg
7402         * diagnostic.c (diagnostic_report_diagnostic): Warn about
7403         loaded plugins, if any.
7404         * timevar.def (TV_PLUGIN_INIT): Define.
7405         (TV_PLUGIN_RUN): Define.
7406         * plugin.c: Include timevar.h
7407         (plugins_active_p): New.
7408         (dump_active_plugins): New.
7409         (debug_active_plugins): New.
7410
7411 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
7412
7413         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
7414         library paths.
7415         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
7416
7417 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
7418
7419         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
7420         the same as a minus without a shift.
7421
7422 2009-04-14  Nick Clifton  <nickc@redhat.com>
7423
7424         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
7425         comparisons with small integers will always produce a short
7426         branch.
7427
7428 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
7429
7430         Merge:
7431         2008-12-19  Diego Novillo  <dnovillo@google.com>
7432
7433         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
7434
7435 2009-04-14  Richard Guenther  <rguenther@suse.de>
7436
7437         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
7438         verification.
7439         (verify_gimple_assign_binary): Likewise.  Handle shifts and
7440         rotates correctly.
7441         (verify_gimple_phi): Print the mismatched argument position.
7442         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7443         Fix types.
7444         (vect_update_init_of_dr): Likewise.
7445         * matrix-reorg.c (transform_access_sites): Do what the
7446         comment suggests.
7447         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
7448
7449 2009-04-13  Michael Eager  <eager@eagercon.com>
7450
7451         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
7452         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
7453         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
7454         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
7455         remove duplicate config
7456
7457 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
7458
7459         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
7460         file_name:line_number type locator of the call site.
7461
7462 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
7463
7464         * genautomata.c: Put blank after comma.
7465         (automaton_decls): New.
7466         (struct unit_usage): Add comments to member next.
7467         (store_alt_unit_usage): Keep the list ordered.
7468         (unit_present_on_list_p, equal_alternatives_p): New.
7469         (check_regexp_units_distribution): Check units distribution
7470         correctness correctly.
7471         (main): Don't write automata if error is found.  Return correct
7472         exit code.
7473
7474         * config/m68k/cf.md (cfv4_ds): Remove.
7475         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
7476         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
7477
7478         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
7479         power4-load-ext, power4-store, power4-store-update,
7480         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
7481         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
7482         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
7483         power4-sqrt, power4-isync): Modify reservation to make correct
7484         unit distribution to automata.
7485
7486         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
7487         power5-store-update, power5-two, power5-three, power5-lmul,
7488         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
7489
7490 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
7491
7492         * except.c (pass_set_nothrow_function_flags): Set name and add
7493         TODO_dump_func.
7494         (set_nothrow_function_flags): Mention in the dump file when
7495         changing a function to nothrow.
7496
7497 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
7498
7499         PR/39066
7500         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
7501         instead of unsigned long.
7502
7503 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7504
7505         * config/arm/arm.c (return_used_this_function): Remove.
7506         (arm_output_function_prologue): Remove use of
7507         return_used_this_function.
7508         (output_return_instruction): Replace use of
7509         return_used_this_function
7510         by cfun->machine->return_used_this_function.
7511         (arm_output_epilogue): Likewise.
7512         (arm_output_function_epilogue): Likewise.
7513         (thumb_unexpanded_epilogue): Likewise.
7514         * config/arm/arm.h (struct machine_function):
7515         New member return_used_this_function.
7516
7517 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
7518
7519         * doc/install.texi: Correct description of default directory for
7520         --with-gxx-include-dir.
7521
7522 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
7523
7524         * fold-const.c (build_range_check): Properly deal with enumeral and
7525         boolean base types.
7526
7527 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
7528
7529         * doc/invoke.texi (max_gcse_passes): Remove documentation.
7530         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
7531         * params.h (MAX_GCSE_PASSES): Remove.
7532         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
7533         in sequence.  Remove ability to run multiple passes.
7534         (bypass_jumps): Report run as third CPROP pass.
7535
7536 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
7537
7538         PR middle-end/39651
7539         * except.c (can_throw_external): Look at each insn in a SEQUENCE
7540         when deciding whether the whole SEQUENCE can throw.
7541
7542 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
7543
7544         PR target/39740
7545         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
7546         offseted label references.
7547
7548 2009-04-11  Jan Hubicka  <jh@suse.cz>
7549
7550         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
7551
7552 2009-04-11  Richard Guenther  <rguenther@suse.de>
7553
7554         PR middle-end/39732
7555         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
7556         return variables as TREE_ADDRESSABLE.
7557
7558 2009-04-11  Richard Guenther  <rguenther@suse.de>
7559
7560         PR tree-optimization/39713
7561         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
7562         reference trees have SSA_NAME operands.
7563
7564 2009-04-11  Richard Guenther  <rguenther@suse.de>
7565
7566         PR c/39712
7567         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
7568         address expressions.
7569
7570 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
7571
7572         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
7573         match changes in Cygwin 1.7
7574         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
7575         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
7576
7577 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
7578
7579         PR tree-optimization/39701
7580         * doc/invoke.texi (Optimization Options): Document change in
7581         meaning and initialization of -fdelete-null-pointer-checks.
7582
7583 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
7584
7585         PR middle-end/39701
7586         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
7587
7588         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
7589         here.
7590
7591         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
7592
7593 2009-04-10  Chao-ying Fu  <fu@mips.com>
7594
7595         * doc/tm.texi (Instruction Output): Document
7596         TARGET_ASM_FINAL_POSTSCAN_INSN.
7597         * target.h (final_postscan_insn): New field in asm_out.
7598         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7599         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
7600         * final.c (final_scan_insn): Call
7601         targetm.asm_out.final_postscan_insn after outputting
7602         an asm macro and a normal instruction.
7603
7604         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
7605         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
7606         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
7607         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
7608         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7609
7610 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
7611
7612         PR middle-end/39701
7613         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
7614         variables as non-NULL even with -fdelete-null-pointer-checks.
7615
7616 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
7617
7618         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
7619
7620 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
7621
7622         PR target/39678
7623         * config/i386/i386.c (classify_argument): Handle SCmode with
7624         (bit_offset % 64) != 0.
7625
7626 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
7627
7628         * doc/invoke.texi (Optimize Options): Add cross-reference to
7629         -Q --help=optimizers examples.
7630
7631 2009-04-10  Ben Elliston  <bje@au.ibm.com>
7632
7633         PR target/36800
7634         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
7635         regalign for the reg == fpr and TDmode case.
7636
7637 2009-04-09  David Ayers  <ayers@fsfe.org>
7638
7639         PR objc/29200
7640         * objc/objc-act.c (warn_with_method): Remove helper function.
7641         (check_duplicates): Call warning and inform directly.
7642         (really_start_method): Likewise.
7643
7644 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
7645
7646         * expmed.c (expand_divmod): Always use a comparison for a division
7647         by a large unsigned integer.
7648
7649         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
7650         for things others than variables or functions as nonzero.
7651
7652 2009-04-09  Nick Clifton  <nickc@redhat.com>
7653
7654         * unwind-compat.c: Change copyright header to refer to version
7655         3 of the GNU General Public License with version 3.1 of the
7656         GCC Runtime Library Exception and to point readers at the
7657         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
7658         * config/alpha/crtfastmath.c: Likewise.
7659         * config/alpha/linux-unwind.h: Likewise.
7660         * config/alpha/qrnnd.asm: Likewise.
7661         * config/alpha/vms-crt0-64.c: Likewise.
7662         * config/alpha/vms-crt0.c: Likewise.
7663         * config/alpha/vms-dwarf2.asm: Likewise.
7664         * config/alpha/vms-dwarf2eh.asm: Likewise.
7665         * config/alpha/vms-psxcrt0-64.c: Likewise.
7666         * config/alpha/vms-psxcrt0.c: Likewise.
7667         * config/alpha/vms_tramp.asm: Likewise.
7668         * config/arc/initfini.c: Likewise.
7669         * config/arc/lib1funcs.asm: Likewise.
7670         * config/arm/bpabi-v6m.S: Likewise.
7671         * config/arm/bpabi.S: Likewise.
7672         * config/arm/bpabi.c: Likewise.
7673         * config/arm/crti.asm: Likewise.
7674         * config/arm/crtn.asm: Likewise.
7675         * config/arm/ieee754-df.S: Likewise.
7676         * config/arm/ieee754-sf.S: Likewise.
7677         * config/arm/lib1funcs.asm: Likewise.
7678         * config/arm/libunwind.S: Likewise.
7679         * config/arm/linux-atomic.c: Likewise.
7680         * config/arm/mmintrin.h: Likewise.
7681         * config/arm/pr-support.c: Likewise.
7682         * config/arm/unaligned-funcs.c: Likewise.
7683         * config/arm/unwind-arm.c: Likewise.
7684         * config/arm/unwind-arm.h: Likewise.
7685         * config/avr/libgcc.S: Likewise.
7686         * config/bfin/crti.s: Likewise.
7687         * config/bfin/crtlibid.s: Likewise.
7688         * config/bfin/crtn.s: Likewise.
7689         * config/bfin/lib1funcs.asm: Likewise.
7690         * config/bfin/linux-unwind.h: Likewise.
7691         * config/cris/arit.c: Likewise.
7692         * config/cris/cris_abi_symbol.c: Likewise.
7693         * config/darwin-64.c: Likewise.
7694         * config/darwin-crt2.c: Likewise.
7695         * config/darwin-crt3.c: Likewise.
7696         * config/darwin.h: Likewise.
7697         * config/dbxelf.h: Likewise.
7698         * config/dfp-bit.c: Likewise.
7699         * config/dfp-bit.h: Likewise.
7700         * config/elfos.h: Likewise.
7701         * config/fixed-bit.c: Likewise.
7702         * config/fixed-bit.h: Likewise.
7703         * config/fp-bit.c: Likewise.
7704         * config/fp-bit.h: Likewise.
7705         * config/fr30/crti.asm: Likewise.
7706         * config/fr30/crtn.asm: Likewise.
7707         * config/fr30/lib1funcs.asm: Likewise.
7708         * config/freebsd-spec.h: Likewise.
7709         * config/frv/cmovd.c: Likewise.
7710         * config/frv/cmovh.c: Likewise.
7711         * config/frv/cmovw.c: Likewise.
7712         * config/frv/frvbegin.c: Likewise.
7713         * config/frv/frvend.c: Likewise.
7714         * config/frv/lib1funcs.asm: Likewise.
7715         * config/glibc-stdint.h: Likewise.
7716         * config/h8300/clzhi2.c: Likewise.
7717         * config/h8300/crti.asm: Likewise.
7718         * config/h8300/crtn.asm: Likewise.
7719         * config/h8300/ctzhi2.c: Likewise.
7720         * config/h8300/fixunssfsi.c: Likewise.
7721         * config/h8300/lib1funcs.asm: Likewise.
7722         * config/h8300/parityhi2.c: Likewise.
7723         * config/h8300/popcounthi2.c: Likewise.
7724         * config/i386/ammintrin.h: Likewise.
7725         * config/i386/att.h: Likewise.
7726         * config/i386/avxintrin.h: Likewise.
7727         * config/i386/biarch64.h: Likewise.
7728         * config/i386/bmmintrin.h: Likewise.
7729         * config/i386/cpuid.h: Likewise.
7730         * config/i386/cross-stdarg.h: Likewise.
7731         * config/i386/crtfastmath.c: Likewise.
7732         * config/i386/crtprec.c: Likewise.
7733         * config/i386/cygming-crtbegin.c: Likewise.
7734         * config/i386/cygming-crtend.c: Likewise.
7735         * config/i386/cygwin.asm: Likewise.
7736         * config/i386/emmintrin.h: Likewise.
7737         * config/i386/gmm_malloc.h: Likewise.
7738         * config/i386/gthr-win32.c: Likewise.
7739         * config/i386/i386.h: Likewise.
7740         * config/i386/immintrin.h: Likewise.
7741         * config/i386/linux-unwind.h: Likewise.
7742         * config/i386/linux64.h: Likewise.
7743         * config/i386/mm3dnow.h: Likewise.
7744         * config/i386/mmintrin-common.h: Likewise.
7745         * config/i386/mmintrin.h: Likewise.
7746         * config/i386/nmmintrin.h: Likewise.
7747         * config/i386/pmm_malloc.h: Likewise.
7748         * config/i386/pmmintrin.h: Likewise.
7749         * config/i386/smmintrin.h: Likewise.
7750         * config/i386/sol2-c1.asm: Likewise.
7751         * config/i386/sol2-ci.asm: Likewise.
7752         * config/i386/sol2-cn.asm: Likewise.
7753         * config/i386/sol2-gc1.asm: Likewise.
7754         * config/i386/tmmintrin.h: Likewise.
7755         * config/i386/unix.h: Likewise.
7756         * config/i386/w32-unwind.h: Likewise.
7757         * config/i386/wmmintrin.h: Likewise.
7758         * config/i386/x86-64.h: Likewise.
7759         * config/i386/x86intrin.h: Likewise.
7760         * config/i386/xmmintrin.h: Likewise.
7761         * config/ia64/crtbegin.asm: Likewise.
7762         * config/ia64/crtend.asm: Likewise.
7763         * config/ia64/crtfastmath.c: Likewise.
7764         * config/ia64/crti.asm: Likewise.
7765         * config/ia64/crtn.asm: Likewise.
7766         * config/ia64/fde-glibc.c: Likewise.
7767         * config/ia64/lib1funcs.asm: Likewise.
7768         * config/ia64/linux-unwind.h: Likewise.
7769         * config/ia64/quadlib.c: Likewise.
7770         * config/ia64/unwind-ia64.c: Likewise.
7771         * config/linux.h: Likewise.
7772         * config/m32c/m32c-lib1.S: Likewise.
7773         * config/m32c/m32c-lib2-trapv.c: Likewise.
7774         * config/m32c/m32c-lib2.c: Likewise.
7775         * config/m32r/initfini.c: Likewise.
7776         * config/m68hc11/larith.asm: Likewise.
7777         * config/m68hc11/m68hc11-crt0.S: Likewise.
7778         * config/m68k/cf.md: Likewise.
7779         * config/m68k/crti.s: Likewise.
7780         * config/m68k/crtn.s: Likewise.
7781         * config/m68k/lb1sf68.asm: Likewise.
7782         * config/m68k/linux-unwind.h: Likewise.
7783         * config/mcore/crti.asm: Likewise.
7784         * config/mcore/crtn.asm: Likewise.
7785         * config/mcore/lib1.asm: Likewise.
7786         * config/mips/linux-unwind.h: Likewise.
7787         * config/mips/loongson.h: Likewise.
7788         * config/mips/mips16.S: Likewise.
7789         * config/mmix/crti.asm: Likewise.
7790         * config/mmix/crtn.asm: Likewise.
7791         * config/pa/fptr.c: Likewise.
7792         * config/pa/hpux-unwind.h: Likewise.
7793         * config/pa/lib2funcs.asm: Likewise.
7794         * config/pa/linux-atomic.c: Likewise.
7795         * config/pa/linux-unwind.h: Likewise.
7796         * config/pa/milli64.S: Likewise.
7797         * config/pa/quadlib.c: Likewise.
7798         * config/pa/stublib.c: Likewise.
7799         * config/picochip/libgccExtras/adddi3.asm: Likewise.
7800         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
7801         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
7802         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
7803         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
7804         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
7805         * config/picochip/libgccExtras/divmod15.asm: Likewise.
7806         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
7807         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
7808         * config/picochip/libgccExtras/longjmp.asm: Likewise.
7809         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
7810         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
7811         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
7812         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
7813         * config/picochip/libgccExtras/setjmp.asm: Likewise.
7814         * config/picochip/libgccExtras/subdi3.asm: Likewise.
7815         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
7816         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
7817         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
7818         * config/rs6000/750cl.h: Likewise.
7819         * config/rs6000/altivec.h: Likewise.
7820         * config/rs6000/biarch64.h: Likewise.
7821         * config/rs6000/crtresfpr.asm: Likewise.
7822         * config/rs6000/crtresgpr.asm: Likewise.
7823         * config/rs6000/crtresxfpr.asm: Likewise.
7824         * config/rs6000/crtresxgpr.asm: Likewise.
7825         * config/rs6000/crtsavfpr.asm: Likewise.
7826         * config/rs6000/crtsavgpr.asm: Likewise.
7827         * config/rs6000/darwin-asm.h: Likewise.
7828         * config/rs6000/darwin-fallback.c: Likewise.
7829         * config/rs6000/darwin-fpsave.asm: Likewise.
7830         * config/rs6000/darwin-ldouble.c: Likewise.
7831         * config/rs6000/darwin-tramp.asm: Likewise.
7832         * config/rs6000/darwin-unwind.h: Likewise.
7833         * config/rs6000/darwin-vecsave.asm: Likewise.
7834         * config/rs6000/darwin-world.asm: Likewise.
7835         * config/rs6000/e500crtres32gpr.asm: Likewise.
7836         * config/rs6000/e500crtres64gpr.asm: Likewise.
7837         * config/rs6000/e500crtres64gprctr.asm: Likewise.
7838         * config/rs6000/e500crtrest32gpr.asm: Likewise.
7839         * config/rs6000/e500crtrest64gpr.asm: Likewise.
7840         * config/rs6000/e500crtresx32gpr.asm: Likewise.
7841         * config/rs6000/e500crtresx64gpr.asm: Likewise.
7842         * config/rs6000/e500crtsav32gpr.asm: Likewise.
7843         * config/rs6000/e500crtsav64gpr.asm: Likewise.
7844         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
7845         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
7846         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
7847         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
7848         * config/rs6000/eabi-ci.asm: Likewise.
7849         * config/rs6000/eabi-cn.asm: Likewise.
7850         * config/rs6000/eabi.asm: Likewise.
7851         * config/rs6000/linux-unwind.h: Likewise.
7852         * config/rs6000/linux64.h: Likewise.
7853         * config/rs6000/paired.h: Likewise.
7854         * config/rs6000/paired.md: Likewise.
7855         * config/rs6000/ppc64-fp.c: Likewise.
7856         * config/rs6000/ppu_intrinsics.h: Likewise.
7857         * config/rs6000/rs6000.h: Likewise.
7858         * config/rs6000/si2vmx.h: Likewise.
7859         * config/rs6000/sol-ci.asm: Likewise.
7860         * config/rs6000/sol-cn.asm: Likewise.
7861         * config/rs6000/spe.h: Likewise.
7862         * config/rs6000/spu2vmx.h: Likewise.
7863         * config/rs6000/sysv4.h: Likewise.
7864         * config/rs6000/tramp.asm: Likewise.
7865         * config/rs6000/vec_types.h: Likewise.
7866         * config/s390/linux-unwind.h: Likewise.
7867         * config/s390/tpf-unwind.h: Likewise.
7868         * config/score/crti.asm: Likewise.
7869         * config/score/crtn.asm: Likewise.
7870         * config/sh/crt1.asm: Likewise.
7871         * config/sh/crti.asm: Likewise.
7872         * config/sh/crtn.asm: Likewise.
7873         * config/sh/divtab-sh4-300.c: Likewise.
7874         * config/sh/divtab-sh4.c: Likewise.
7875         * config/sh/divtab.c: Likewise.
7876         * config/sh/lib1funcs-4-300.asm: Likewise.
7877         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
7878         * config/sh/lib1funcs.asm: Likewise.
7879         * config/sh/lib1funcs.h: Likewise.
7880         * config/sh/linux-atomic.asm: Likewise.
7881         * config/sh/linux-unwind.h: Likewise.
7882         * config/sh/shmedia.h: Likewise.
7883         * config/sh/sshmedia.h: Likewise.
7884         * config/sh/ushmedia.h: Likewise.
7885         * config/sparc/crtfastmath.c: Likewise.
7886         * config/sparc/linux-unwind.h: Likewise.
7887         * config/sparc/sol2-c1.asm: Likewise.
7888         * config/sparc/sol2-ci.asm: Likewise.
7889         * config/sparc/sol2-cn.asm: Likewise.
7890         * config/spu/divmodti4.c: Likewise.
7891         * config/spu/divv2df3.c: Likewise.
7892         * config/spu/float_disf.c: Likewise.
7893         * config/spu/float_unsdidf.c: Likewise.
7894         * config/spu/float_unsdisf.c: Likewise.
7895         * config/spu/float_unssidf.c: Likewise.
7896         * config/spu/mfc_multi_tag_release.c: Likewise.
7897         * config/spu/mfc_multi_tag_reserve.c: Likewise.
7898         * config/spu/mfc_tag_release.c: Likewise.
7899         * config/spu/mfc_tag_reserve.c: Likewise.
7900         * config/spu/mfc_tag_table.c: Likewise.
7901         * config/spu/multi3.c: Likewise.
7902         * config/spu/spu_internals.h: Likewise.
7903         * config/spu/spu_intrinsics.h: Likewise.
7904         * config/spu/spu_mfcio.h: Likewise.
7905         * config/spu/vec_types.h: Likewise.
7906         * config/spu/vmx2spu.h: Likewise.
7907         * config/stormy16/stormy16-lib2.c: Likewise.
7908         * config/svr4.h: Likewise.
7909         * config/sync.c: Likewise.
7910         * config/v850/lib1funcs.asm: Likewise.
7911         * config/vxlib-tls.c: Likewise.
7912         * config/vxlib.c: Likewise.
7913         * config/vxworks-dummy.h: Likewise.
7914         * config/xtensa/crti.asm: Likewise.
7915         * config/xtensa/crtn.asm: Likewise.
7916         * config/xtensa/ieee754-df.S: Likewise.
7917         * config/xtensa/ieee754-sf.S: Likewise.
7918         * config/xtensa/lib1funcs.asm: Likewise.
7919         * config/xtensa/lib2funcs.S: Likewise.
7920         * config/xtensa/linux-unwind.h: Likewise.
7921         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7922         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
7923         * coretypes.h: Likewise.
7924         * crtstuff.c: Likewise.
7925         * defaults.h: Likewise.
7926         * dwarf2.h: Likewise.
7927         * emutls.c: Likewise.
7928         * gbl-ctors.h: Likewise.
7929         * gcov-io.h: Likewise.
7930         * ginclude/float.h: Likewise.
7931         * ginclude/iso646.h: Likewise.
7932         * ginclude/stdarg.h: Likewise.
7933         * ginclude/stdbool.h: Likewise.
7934         * ginclude/stddef.h: Likewise.
7935         * ginclude/stdfix.h: Likewise.
7936         * ginclude/stdint-gcc.h: Likewise.
7937         * ginclude/tgmath.h: Likewise.
7938         * gthr-aix.h: Likewise.
7939         * gthr-dce.h: Likewise.
7940         * gthr-gnat.c: Likewise.
7941         * gthr-gnat.h: Likewise.
7942         * gthr-lynx.h: Likewise.
7943         * gthr-mipssde.h: Likewise.
7944         * gthr-nks.h: Likewise.
7945         * gthr-posix.c: Likewise.
7946         * gthr-posix.h: Likewise.
7947         * gthr-posix95.h: Likewise.
7948         * gthr-rtems.h: Likewise.
7949         * gthr-single.h: Likewise.
7950         * gthr-solaris.h: Likewise.
7951         * gthr-tpf.h: Likewise.
7952         * gthr-vxworks.h: Likewise.
7953         * gthr-win32.h: Likewise.
7954         * gthr.h: Likewise.
7955         * libgcc2.c: Likewise.
7956         * libgcc2.h: Likewise.
7957         * libgcov.c: Likewise.
7958         * tsystem.h: Likewise.
7959         * typeclass.h: Likewise.
7960         * unwind-c.c: Likewise.
7961         * unwind-compat.h: Likewise.
7962         * unwind-dw2-fde-compat.c: Likewise.
7963         * unwind-dw2-fde-darwin.c: Likewise.
7964         * unwind-dw2-fde-glibc.c: Likewise.
7965         * unwind-dw2-fde.c: Likewise.
7966         * unwind-dw2-fde.h: Likewise.
7967         * unwind-dw2.c: Likewise.
7968         * unwind-dw2.h: Likewise.
7969         * unwind-generic.h: Likewise.
7970         * unwind-pe.h: Likewise.
7971         * unwind-sjlj.c: Likewise.
7972         * unwind.inc: Likewise.
7973         * config/arm/neon-gen.ml: Change generated copyright header to
7974         refer to version 3 of the GNU General Public License with
7975         version 3.1 of the GCC Runtime Library Exception and to point
7976         readers at the COPYING3 and COPYING3.RUNTIME files and the
7977         FSF's license web page.
7978         * config/arm/arm_neon.h: Regenerate.
7979
7980 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
7981
7982         * config/cris/cris.md: Change copyright header to refer to version
7983         3 of the GNU General Public License.
7984         * doc/install.texi2html: Change copyright header to refer to version
7985         3 of the GNU General Public License and to point readers at the
7986         COPYING3 file and the FSF's license web page.
7987         * config/vax/linux.h: Likewise.
7988
7989 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
7990
7991         * config/i386/i386.md (cmpcc): New.
7992         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
7993         (sync_compare_and_swap_cc*): Delete.
7994
7995         * config/s390/s390.c (s390_compare_emitted): Remove.
7996         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
7997         s390_compare_emitted used to be handled.  Assert that modes match.
7998         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
7999         refer to sync_compare_and_swap_ccsi.
8000         * config/s390/s390.h (s390_compare_emitted): Remove.
8001         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
8002         instead of s390_compare_emitted.
8003         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
8004         instead of s390_compare_emitted.
8005         * config/s390/s390.md (cmpcc): New.
8006         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
8007         CC_REGNUM, do not pretend it's set.
8008         (sync_compare_and_swap_cc*): Delete.
8009         * config/s390/predicates.md (cc_reg_operand): New.
8010
8011         * expr.c (sync_compare_and_swap_cc): Delete.
8012         * optabs.h (sync_compare_and_swap_cc): Delete.
8013         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
8014         is being used with can_compare_p.
8015         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
8016         (find_cc_set): New.
8017         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
8018         look for a MODE_CC set instead.  Use emit_store_flag.
8019         (expand_compare_and_swap_loop): Likewise, with some additional
8020         complication to avoid a force_reg when useless.  Use
8021         emit_cmp_and_jump_insns.
8022         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
8023         * doc/md.texi (sync_compare_and_swap_cc): Merge with
8024         sync_compare_and_swap documentation.
8025
8026 2009-04-09  Jan Hubicka  <jh@suse.cz>
8027
8028         * except.c (find_prev_try): Break out from ....
8029         (duplicate_eh_regions): ... here; properly update prev_try pointers
8030         when duplication part of tree.
8031         (dump_eh_tree): Improve dumping.
8032         (verify_eh_region): New.
8033         (verify_eh_tree): Use it.
8034
8035 2009-04-06  Richard Guenther  <rguenther@suse.de>
8036
8037         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
8038         &ARRAY addresses by adjusting their types and prepending
8039         a conversion.
8040         * tree-cfg.c (verify_gimple_assign_single): Verify that
8041         addresses are correct.
8042
8043 2009-04-09  Richard Guenther  <rguenther@suse.de>
8044
8045         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
8046         indices into an array reference if possible.
8047         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8048         Fold POINTER_PLUS_EXPR statements with invariant address.
8049
8050 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
8051
8052         PR target/39634
8053         * config.gcc (powerpc64-*-linux*): Always build biarch.
8054
8055 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
8056
8057         PR c/39613
8058         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
8059         it and pedwarn if this results in an INTEGER_CST.
8060
8061 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8062
8063         * doc/install.texi: Update minimum GMP version.  Remove obsolete
8064         text in MPFR section.
8065
8066 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
8067
8068         * dwarf2out.c (class_scope_p): New static inline.
8069         (class_or_namespace_scope_p): Use it.
8070         (gen_variable_die): Use DW_TAG_member tag for static data member
8071         declarations instead of DW_TAG_variable.
8072
8073         PR middle-end/39573
8074         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
8075         variables.
8076
8077 2009-04-08  Richard Guenther  <rguenther@suse.de>
8078
8079         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
8080         valueize random data.
8081
8082 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
8083
8084         * config.gcc (aix tm_file):  Add aix-stdint.h.
8085         (aix tm clause use_gcc_stdint):  Set to wrap.
8086         * config/rs6000/aix-stdint.h:  New file.
8087
8088 2009-04-08  Richard Guenther  <rguenther@suse.de>
8089
8090         PR middle-end/36291
8091         * tree-dfa.c (add_referenced_var): Do not recurse into
8092         global initializers.
8093         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
8094         exposed variables.
8095         (fold_const_aggregate_ref): Likewise.
8096
8097 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
8098
8099         * recog.c (ordered_comparison_operator): New.
8100         * gensupport.c (std_preds): Add it.
8101         * doc/md.texi (Machine-Independent Predicates): Document it.
8102
8103 2009-04-08  Jan Hubicka  <jh@suse.cz>
8104
8105         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
8106         * function.h (rtl_eh): Remove exception_handler_label_map.
8107         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
8108         remove_exception_handler_label, for_each_eh_label_1): Remove.
8109         (rtl_remove_unreachable_regions): Remove.
8110         (convert_from_eh_region_ranges): Do not remove unreachable regions.
8111         (find_exception_handler_labels): Don't build the hashtable.
8112         (maybe_remove_eh_handler): Remove.
8113         (for_each_eh_label): Rewrite to walk the tree.
8114         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
8115         * except.h (maybe_remove_eh_handler): Remove.
8116         * passes.c (init_optimization_passes): Schedule second EH cleanup
8117         before out-of-ssa.
8118         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
8119         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
8120
8121 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
8122
8123         * genoutput.c (validate_optab_operands): New.
8124         (gen_insn, gen_expand): Call it.
8125
8126         * genflags.c (gen_insn): Detect misused iterators.
8127         (main): Pass line_no to gen_insn, exit with status 1 on error.
8128
8129         * genextract.c (line_no): Make global.
8130         (VEC_safe_set_locstr): Change assertion to error message.
8131         (main): Exit with status 1 on error.
8132
8133 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
8134
8135         PR c/39614
8136         PR c/39673
8137         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8138         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8139         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
8140         * c-convert.c (convert): Do not call fold on results of conversion
8141         functions when the result is a C_MAYBE_CONST_EXPR.
8142         * c-parser.c (c_parser_postfix_expression): Do not fold condition
8143         of __builtin_choose_expr.
8144         * c-typeck.c (remove_c_maybe_const_expr): New.
8145         (build_unary_op, build_conditional_expr, build_compound_expr,
8146         build_binary_op, c_objc_common_truthvalue_conversion): Call
8147         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
8148         integer operands.
8149
8150 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
8151
8152         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
8153         CODE to produce a new one. Add a prototype to use fold_convert_const
8154
8155 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
8156
8157         PR bootstrap/39660
8158         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
8159         mix declarations and code.
8160
8161 2009-04-08  Ben Elliston  <bje@au.ibm.com>
8162
8163         * gcc.c: Replace `CC' with `GCC' throughout.
8164
8165 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
8166
8167         * doc/invoke.texi: Document Atom support.
8168
8169 2009-04-07  Jason Merrill  <jason@redhat.com>
8170
8171         PR c++/25185
8172         * c-common.h, c-common.c: Add flag_pretty_templates.
8173         * c-opts.c (c_common_handle_option): Set it.
8174         * c.opt: Add -fno-pretty-templates.
8175         * doc/invoke.texi (C++ Dialect Options): Likewise.
8176
8177 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
8178
8179         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
8180         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
8181         (ia64_expand_builtin): Likewise.
8182
8183 2009-04-07  Martin Jambor  <mjambor@suse.cz>
8184
8185         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
8186         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
8187         ADDR_EXPRS are include too.
8188
8189 2009-04-07  Richard Guenther  <rguenther@suse.de>
8190
8191         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
8192         decls are only used if passes as parameters or if they are
8193         local statics and the call is not to a builtin.
8194         (call_may_clobber_ref_p_1): Likewise.
8195
8196 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8197
8198         * expr.c (do_store_flag): Remove last argument.  Simplify code
8199         to avoid duplication of tests already done by can_compare_p.
8200         (expand_expr_real_1): Adjust caller.
8201
8202 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8203
8204         * optabs.c (can_compare_p): Test the predicate of a
8205         cbranch and cstore pattern.
8206
8207 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8208
8209         * expr.c (convert_move): Use emit_store_flag instead of
8210         "emulating" it.
8211
8212 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8213
8214         * config/i386/i386.c (ix86_compare_emitted): Remove.
8215         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8216         ix86_compare_op0 like ix86_compare_emitted used to be handled.
8217         * config/i386/i386.h (ix86_compare_emitted): Remove.
8218         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8219         instead of ix86_compare_emitted.
8220         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
8221
8222 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
8223
8224         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8225         Add t-sysroot-suffix to tmake_file.
8226         * config/print-sysroot-suffix.sh: New file.
8227         * config/t-sysroot-suffix: New file.
8228
8229 2009-04-07  Ben Elliston  <bje@au.ibm.com>
8230
8231         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8232         as the latter produces a warning when the target does not support
8233         infinity.
8234
8235 2009-04-07  Ben Elliston  <bje@au.ibm.com>
8236
8237         * dfp.c: Replace type punning assignments with memcpy throughout.
8238         * Makefile.in (dfp.o-warn): Remove.
8239
8240 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
8241
8242         PR target/39634
8243         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
8244         Include soft-fp/t-softfp after rs6000/t-linux64.
8245
8246 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
8247
8248         * stor-layout.c (set_sizetype): Use the full precision of their
8249         machine mode for bitsize types.
8250
8251 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
8252
8253         * config/i386/i386.md: Revert 2 accidental checkins.
8254
8255 2009-04-06  Joey Ye  <joey.ye@intel.com>
8256             Xuepeng Guo  <xuepeng.guo@intel.com>
8257             H.J. Lu  <hongjiu.lu@intel.com>
8258
8259         Atom pipeline model, tuning and insn selection.
8260         * config.gcc (atom): Add atom config options and target.
8261
8262         * config/i386/atom.md: New.
8263
8264         * config/i386/i386.c (atom_cost): New cost.
8265         (m_ATOM): New macro flag.
8266         (initial_ix86_tune_features): Set m_ATOM.
8267         (x86_accumulate_outgoing_args): Likewise.
8268         (x86_arch_always_fancy_math_387): Likewise.
8269         (processor_target): Add Atom cost.
8270         (cpu_names): Add Atom cpu name.
8271         (override_options): Set Atom ISA.
8272         (ix86_issue_rate): New case PROCESSOR_ATOM.
8273         (ix86_adjust_cost): Likewise.
8274
8275         * config/i386/i386.h (TARGET_ATOM): New target macro.
8276         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
8277         (TARGET_OPT_AGU): New target option.
8278         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
8279         (processor_type): Add PROCESSOR_ATOM.
8280
8281         * config/i386/i386.md (cpu): Add new value "atom".
8282         (use_carry, movu): New attr.
8283         (atom.md): Include atom.md.
8284         (adddi3_carry_rex64): Set attr "use_carry".
8285         (addqi3_carry): Likewise.
8286         (addhi3_carry): Likewise.
8287         (addsi3_carry): Likewise.
8288         (*addsi3_carry_zext): Likewise.
8289         (subdi3_carry_rex64): Likewise.
8290         (subqi3_carry): Likewise.
8291         (subhi3_carry): Likewise.
8292         (subsi3_carry): Likewise.
8293         (x86_movdicc_0_m1_rex64): Likewise.
8294         (*x86_movdicc_0_m1_se): Likewise.
8295         (x86_movsicc_0_m1): Likewise.
8296         (*x86_movsicc_0_m1_se): Likewise.
8297         (*adddi_1_rex64): Emit add insn as much as possible.
8298         (*addsi_1): Likewise.
8299         (return_internal): Set atom_unit.
8300         (return_internal_long): Likewise.
8301         (return_pop_internal): Likewise.
8302         (*rcpsf2_sse): Set atom_sse_attr attr.
8303         (*qrt<mode>2_sse): Likewise.
8304         (*prefetch_sse): Likewise.
8305
8306         * config/i386/i386-c.c (ix86_target_macros_internal): New case
8307         PROCESSOR_ATOM.
8308         (ix86_target_macros_internal): Likewise.
8309
8310         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
8311         (*prefetch_sse_rex): Likewise.
8312         (sse_rcpv4sf2): Likewise.
8313         (sse_vmrcpv4sf2): Likewise.
8314         (sse_sqrtv4sf2): Likewise.
8315         (<sse>_vmsqrt<mode>2): Likewise.
8316         (sse_ldmxcsr): Likewise.
8317         (sse_stmxcsr): Likewise.
8318         (*sse_sfence): Likewise.
8319         (sse2_clflush): Likewise.
8320         (*sse2_mfence): Likewise.
8321         (*sse2_lfence): Likewise.
8322         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
8323         (<sse>_movup<ssemodesuffixf2c>): Likewise.
8324         (avx_movdqu<avxmodesuffix>): Likewise.
8325         (avx_lddqu<avxmodesuffix>): Likewise.
8326         (sse2_movntv2di): Change attr "type" to "ssemov".
8327         (sse2_movntsi): Likewise.
8328         (rsqrtv8sf2): Change attr "type" to "sseadd".
8329         (sse3_addsubv2df3): Set attr "atom_unit".
8330         (sse3_h<plusminus_insn>v4sf3): Likewise.
8331         (*sse2_pmaddwd): Likewise.
8332         (*vec_extractv2di_1_rex64): Likewise.
8333         (*vec_extractv2di_1_avx): Likewise.
8334         (sse2_psadbw): Likewise.
8335         (ssse3_phaddwv8hi3): Likewise.
8336         (ssse3_phaddwv4hi3): Likewise.
8337         (ssse3_phadddv4si3): Likewise.
8338         (ssse3_phadddv2si3): Likewise.
8339         (ssse3_phaddswv8hi3): Likewise.
8340         (ssse3_phaddswv4hi3): Likewise.
8341         (ssse3_phsubwv8hi3): Likewise.
8342         (ssse3_phsubwv4hi3): Likewise.
8343         (ssse3_phsubdv4si3): Likewise.
8344         (ssse3_phsubdv2si3): Likewise.
8345         (ssse3_phsubswv8hi3): Likewise.
8346         (ssse3_phsubswv4hi3): Likewise.
8347         (ssse3_pmaddubsw128): Likewise.
8348         (sse3_pmaddubsw: Likewise.
8349         (ssse3_palignrti): Likewise.
8350         (ssse3_palignrdi): Likewise.
8351
8352 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
8353
8354         * doc/install.texi (Specific): Fix two cross-references to MinGW.
8355
8356 2009-04-06  Richard Guenther  <rguenther@suse.de>
8357
8358         PR tree-optimization/28868
8359         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
8360         of which PHI results we inserted.
8361         (insert_into_preds_of_block): Record inserted PHIs.
8362         (eliminate): Eliminate redundant PHI nodes.
8363         (init_pre): Init inserted_phi_names.
8364
8365 2009-04-06  Richard Guenther  <rguenther@suse.de>
8366
8367         PR tree-optimization/39643
8368         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
8369         IMAGPART_EXPRs of complex constants.
8370         (execute_fold_all_builtins): If we folded a call queue
8371         TODO_update_address_taken.
8372
8373 2009-04-06  Jan Hubicka  <jh@suse.cz>
8374
8375         PR middle-end/39659
8376         * except.c (remove_unreachable_regions): Propagate may_contain_throw
8377         flag.
8378
8379 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
8380
8381         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
8382         delay slot.
8383         (ic_invalidate_array): Likewise.
8384
8385 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8386
8387         * calls.c (emit_library_call_value_1): Fix a problem with parameter
8388         alignment for library calls.
8389
8390 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
8391
8392         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
8393         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
8394         * config/i386/mingw-stdint.h:  New file.
8395
8396 2009-04-05  Richard Guenther  <rguenther@suse.de>
8397
8398         PR tree-optimization/39648
8399         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
8400         our &A vs. &A[0] IL deficiencies.
8401
8402 2009-04-04  Jan Hubicka  <jh@suse.cz>
8403
8404         * except.c (sjlj_find_directly_reachable_regions): Be ready for
8405         removed toplevel regions.
8406         (sjlj_mark_call_sites): Likewise.
8407
8408 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
8409
8410         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
8411         (cygwin tm clause use_gcc_stdint):  Set to wrap.
8412         * config/i386/cygwin-stdint.h:  New file.
8413
8414 2009-04-04  Richard Guenther  <rguenther@suse.de>
8415
8416         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
8417         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
8418         single-argument PHIs if we are in loop-closed SSA form.
8419         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
8420         for the pre-condition.
8421         (slpeel_tree_peel_loop_to_edge): Likewise.
8422         (vect_build_loop_niters): Take an optional sequence to append stmts.
8423         (vect_generate_tmps_on_preheader): Likewise.
8424         (vect_do_peeling_for_loop_bound): Take extra guards for the
8425         pre-condition.
8426         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
8427         the cost model check.
8428         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
8429         guards if we are going to peel.  Do not apply versioning in that case.
8430         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
8431         (vect_do_peeling_for_loop_bound): Likewise.
8432         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
8433         loop bound only record extra pre-conditions, do not apply loop
8434         versioning.
8435
8436 2009-04-04  Richard Guenther  <rguenther@suse.de>
8437
8438         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
8439         renaming code.
8440
8441 2009-04-04  Jan Hubicka  <jh@suse.cz>
8442
8443         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
8444         last_basic_block for size of bb->index indexed array.
8445         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
8446         compute_out, link_btr_uses, build_btr_def_use_webs,
8447         build_btr_def_use_webs, migrate_btr_defs): Likewise.
8448
8449 2009-04-04  Jan Hubicka  <jh@suse.cz>
8450
8451         * except.c (remove_eh_handler_and_replace): Break out from ...
8452         (remove_eh_handler): ... here.
8453         (bring_to_root): New function.
8454         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
8455         handled ones, bring others to root of tree.
8456
8457 2009-04-04  Jan Hubicka  <jh@suse.cz>
8458
8459         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
8460         (all_phis_safe_to_merge): New function.
8461         (update_info): New structure.
8462         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
8463         (cleanup_empty_eh): Update SSA if possible.
8464
8465 2009-04-04  Richard Guenther  <rguenther@suse.de>
8466
8467         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
8468         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
8469         (append_vuse): Likewise.
8470
8471 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
8472
8473         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
8474         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
8475         instead of REG_UNSAVED for DW_CFA_undefined.
8476         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
8477         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
8478         outermost frame.
8479
8480 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
8481
8482         PR target/39501
8483         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
8484         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
8485         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
8486
8487 2009-04-04  Richard Guenther  <rguenther@suse.de>
8488
8489         PR tree-optimization/8781
8490         PR tree-optimization/37892
8491         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
8492         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
8493         (valueize_refs): Call it for *& valueizations.
8494         (shared_reference_ops_from_ref): Rename to ...
8495         (valueize_shared_reference_ops_from_ref): ... this and valueize.
8496         (shared_reference_ops_from_call): Rename to ...
8497         (valueize_shared_reference_ops_from_call): ... this and valueize.
8498         (vn_reference_lookup): Update.
8499         (visit_reference_op_call): Likewise.
8500         * tree-ssa-pre.c (phi_translate_1): Fold *&.
8501         (eliminate): Value-replace the call address in call statements.
8502
8503 2009-04-04  Richard Guenther  <rguenther@suse.de>
8504
8505         PR tree-optimization/39636
8506         * tree-ssa-forwprop.c
8507         (forward_propagate_addr_into_variable_array_index): Check for
8508         GIMPLE_ASSIGN before accessing the rhs code.
8509
8510 2009-04-03  Jason Merrill  <jason@redhat.com>
8511
8512         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
8513
8514 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
8515
8516         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
8517         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
8518         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
8519         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
8520         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
8521         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
8522         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
8523         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
8524         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
8525         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
8526         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
8527         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
8528         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
8529         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
8530         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
8531         Use fr_reg_or_fp01_operand instead of fr_register_operand
8532
8533         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
8534         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
8535         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
8536
8537 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
8538
8539         PR rtl-optimization/39607
8540         PR rtl-optimization/39631
8541
8542         Revert:
8543
8544         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8545         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8546         instead of DF_LR_OUT.
8547         * ira-lives.c (process_bb_node_lives): Ditto.
8548         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8549         instead of DF_LR_{OUT,IN}.
8550         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8551         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8552
8553 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
8554
8555         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
8556         (execute_lower_omp): Always run but take the short way out if -fopenmp
8557         is not given.
8558         (gate_lower_omp): Remove, forcing the pass manager to always run the
8559         pass and always set PROP_gimple_lomp.
8560         (pass_lower_omp): Remove gate function.
8561         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
8562         PROP_trees.  Instead, require it.
8563         * ipa-cp.c (pass_ipa_cp): Likewise.
8564         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
8565         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
8566         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
8567         and PROP_gimple_leh.
8568
8569 2009-04-03  Richard Guenther  <rguenther@suse.de>
8570
8571         PR middle-end/13146
8572         PR tree-optimization/23940
8573         PR tree-optimization/33237
8574         PR middle-end/33974
8575         PR middle-end/34093
8576         PR tree-optimization/36201
8577         PR tree-optimization/36230
8578         PR tree-optimization/38049
8579         PR tree-optimization/38207
8580         PR tree-optimization/38230
8581         PR tree-optimization/38301
8582         PR tree-optimization/38585
8583         PR middle-end/38895
8584         PR tree-optimization/38985
8585         PR tree-optimization/39299
8586         * tree-ssa-structalias.h: Remove.
8587         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
8588         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
8589         (struct vuse_element_d): Remove.
8590         (struct vuse_vec_d): Likewise.
8591         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
8592         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
8593         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
8594         VUSE_ELEMENT_VAR): Likewise.
8595         (struct voptype_d): Likewise.
8596         (NUM_VOP_FREE_BUCKETS): Likewise.
8597         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
8598         (struct stmt_operands_d): Remove.
8599         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
8600         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
8601         VDEF_NUM, VDEF_VECT): Likewise.
8602         (copy_virtual_operands): Remove.
8603         (operand_build_cmp): Likewise.
8604         (create_ssa_artificial_load_stmt): Likewise.
8605         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
8606         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
8607         vuse_index and mayuse_index members.  Pack and move done and iter_type
8608         members to the front.
8609         (SSA_OP_VMAYUSE): Remove.
8610         (SSA_OP_VIRTUAL_USES): Adjust.
8611         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
8612         (unlink_stmt_vdef): Declare.
8613         (add_to_addressable_set): Remove.
8614         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
8615         (vrp_visit_stmt): Likewise.
8616         * doc/tree-ssa.texi (Alias analysis): Update.
8617         * doc/invoke.texi (max-aliased-vops): Remove docs.
8618         (avg-aliased-vops): Likewise.
8619         * tree-into-ssa.c (syms_to_rename): Remove.
8620         (need_to_update_vops_p): Likewise.
8621         (need_to_initialize_update_ssa_p): Rename to ...
8622         (update_ssa_initialized_fn): ... this.  Track function we are
8623         initialized for.
8624         (symbol_marked_for_renaming): Simplify.
8625         (add_new_name_mapping): Do not set need_to_update_vops_p.
8626         (dump_currdefs): Use SYMS_TO_RENAME.
8627         (rewrite_update_stmt): Always walk all uses/defs.
8628         (dump_update_ssa): Adjust.
8629         (init_update_ssa): Take function argument.  Track what we are
8630         initialized for.
8631         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
8632         (create_new_def_for): Initialize for cfun, assert we are initialized
8633         for cfun.
8634         (mark_sym_for_renaming): Simplify.
8635         (mark_set_for_renaming): Do not initialize update-ssa.
8636         (need_ssa_update_p): Simplify.  Take function argument.
8637         (name_mappings_registered_p): Assert we ask for the correct function.
8638         (name_registered_for_update_p): Likewise.
8639         (ssa_names_to_replace): Likewise.
8640         (release_ssa_name_after_update_ssa): Likewise.
8641         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
8642         (dump_decl_set): Do not print a newline.
8643         (debug_decl_set): Do it here.
8644         (dump_update_ssa): And here.
8645         * tree-ssa-loop-im.c (move_computations): Adjust.
8646         (movement_possibility): Likewise.
8647         (determine_max_movement): Likewise.
8648         (gather_mem_refs_stmt): Likewise.
8649         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
8650         or NAME_MEMORY_TAG.
8651         * tree-complex.c (update_all_vops): Remove.
8652         (expand_complex_move): Adjust.
8653         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
8654         Simplify test for memory referencing statement.  Exclude
8655         non-invariant ADDR_EXPRs.
8656         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
8657         * tree-loop-distribution.c (generate_memset_zero): Adjust.
8658         (rdg_flag_uses): Likewise.
8659         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
8660         related code.
8661         (tree_optimize_tail_calls_1): Also split the
8662         edge from the entry block if we have degenerate PHI nodes in
8663         the first basic block.
8664         * tree.c (init_ttree): Remove memory-tag related code.
8665         (tree_code_size): Likewise.
8666         (tree_node_structure): Likewise.
8667         (build7_stat): Re-write to be build6_stat.
8668         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
8669         (SSA_VAR_P): Adjust.
8670         (struct tree_memory_tag): Remove.
8671         (struct tree_memory_partition_tag): Likewise.
8672         (union tree_node): Adjust.
8673         (build7): Re-write to be build6.
8674         * tree-pass.h (pass_reset_cc_flags): Remove.
8675         (TODO_update_address_taken): New flag.
8676         (pass_simple_dse): Remove.
8677         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
8678         * params.h (MAX_ALIASED_VOPS): Remove.
8679         (AVG_ALIASED_VOPS): Likewise.
8680         * omp-low.c (expand_omp_taskreg): Update SSA form.
8681         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
8682         aliases the lhs in a copy stmt.
8683         * tree-ssa-dse.c (struct address_walk_data): Remove.
8684         (memory_ssa_name_same): Likewise.
8685         (memory_address_same): Likewise.
8686         (get_kill_of_stmt_lhs): Likewise.
8687         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
8688         unused stores.  Look through PHI nodes into post-dominated regions.
8689         (dse_optimize_stmt): Simplify.  Properly remove stores.
8690         (tree_ssa_dse): Compute dominators.
8691         (execute_simple_dse): Remove.
8692         (pass_simple_dse): Likewise.
8693         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
8694         gimple_loaded_syms and gimple_stored_syms computation.
8695         * toplev.c (dump_memory_report): Dump alias and pta stats.
8696         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
8697         (vn_reference_eq): Likewise.
8698         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
8699         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
8700         valueize_vuses): Remove.
8701         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
8702         (get_def_ref_stmt_vuse): ... this.
8703         (vn_reference_lookup_2): New function.
8704         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
8705         walking equivalent vuses.  Simplify.
8706         (vn_reference_lookup): Likewise.
8707         (vn_reference_insert): Likewise.
8708         (vn_reference_insert_pieces): Likewise.
8709         (visit_reference_op_call): Simplify.
8710         (visit_reference_op_load): Likewise.
8711         (visit_reference_op_store): Likewise.
8712         (init_scc_vn): Remove shared_lookup_vuses initialization.
8713         (free_scc_vn): Remove shared_lookup_vuses freeing.
8714         (sort_vuses, sort_vuses_heap): Remove.
8715         (get_ref_from_reference_ops): Export.
8716         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
8717         vector with single vuse pointer.
8718         (vn_reference_lookup_pieces, vn_reference_lookup,
8719         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
8720         (shared_vuses_from_stmt): Remove.
8721         (get_ref_from_reference_ops): Declare.
8722         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
8723         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
8724         memory-tag related code.
8725         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
8726         (likely_value): Add comment, skip static-chain of call statements.
8727         (surely_varying_stmt_p): Adjust.
8728         (gimplify_and_update_call_from_tree): Likewise.
8729         (execute_fold_all_builtins): Do not rebuild alias info.
8730         (gimplify_and_update_call_from_tree): Properly update VOPs.
8731         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
8732         (copy_ref_info): Remove memory-tag related code.
8733         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
8734         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
8735         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
8736         computation.
8737         * tree-ssa-dom.c (gimple_p): Remove typedef.
8738         (eliminate_redundant_computations): Adjust.
8739         (record_equivalences_from_stmt): Likewise.
8740         (avail_expr_hash): Likewise.
8741         (avail_expr_eq): Likewise.
8742         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
8743         (stmt_makes_single_load): Likewise.
8744         (stmt_makes_single_store): Likewise.
8745         * tree-ssa-alias.c: Rewrite completely.
8746         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
8747         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
8748         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
8749         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
8750         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
8751         Remove public functions.
8752         (pass_reset_cc_flags): Remove.
8753         (pass_build_alias): Move ...
8754         * tree-ssa-structalias.c (pass_build_alias): ... here.
8755         * tree-ssa-alias.c (may_be_aliased): Move ...
8756         * tree-flow-inline.h (may_be_aliased): ... here.
8757         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
8758         count_uses_and_derefs): Move ...
8759         * gimple.c: ... here.
8760         * gimple.h (count_uses_and_derefs): Declare.
8761         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
8762         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
8763         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
8764         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
8765         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
8766         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
8767         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
8768         New functions.
8769         * tree-dfa.c (refs_may_alias_p): Move ...
8770         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
8771         * tree-ssa-alias.h: New file.
8772         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
8773         (statement_sink_location): Likewise.
8774         * opts.c (decode_options): Do not adjust max-aliased-vops or
8775         avg-aliased-vops values.
8776         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
8777         (TV_CALL_CLOBBER): Likewise.
8778         (TV_FLOW_SENSITIVE): Likewise.
8779         (TV_FLOW_INSENSITIVE): Likewise.
8780         (TV_MEMORY_PARTITIONING): Likewise.
8781         (TV_ALIAS_STMT_WALK): New timevar.
8782         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
8783         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
8784         (get_address_description): Remove memory-tag related code.
8785         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
8786         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
8787         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
8788         and immediate uses in statements.  Document.
8789         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
8790         (dump_symbols): Remove.
8791         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
8792         * alias.c (get_deref_alias_set): New function split out from ...
8793         (get_alias_set): ... here.
8794         * alias.h (get_deref_alias_set): Declare.
8795         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
8796         type parameter.  Remove restrict pointer handling.  Create a
8797         ref-all pointer in case type-based alias sets do not conflict.
8798         (vect_analyze_data_refs): Remove SMT related code.
8799         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
8800         (vectorizable_load): Likewise.
8801         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
8802         (DR_SYMBOL_TAG, DR_VOPS): Remove.
8803         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
8804         Ignore vops and SMTs.
8805         (dr_analyze_alias): Likewise..
8806         (free_data_ref): Likewise.
8807         (create_data_ref): Likewise.
8808         (analyze_all_data_dependences): Likewise.
8809         (get_references_in_stmt): Adjust.
8810         * tree-flow-inline.h (gimple_aliases_computed_p,
8811         gimple_addressable_vars, gimple_call_clobbered_vars,
8812         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
8813         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
8814         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
8815         gimple_mem_ref_stats): Remove.
8816         (gimple_vop): New function.
8817         (op_iter_next_use): Remove vuses and mayuses cases.
8818         (op_iter_next_def): Remove vdefs case.
8819         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
8820         (clear_and_done_ssa_iter): Do not set removed fields.
8821         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
8822         Assert we are not iterating over vuses or vdefs if not also
8823         iterating over uses or defs.
8824         (op_iter_init_use): Likewise.
8825         (op_iter_init_def): Likewise.
8826         (op_iter_next_vdef): Remove.
8827         (op_iter_next_mustdef): Likewise.
8828         (op_iter_init_vdef): Likewise.
8829         (compare_ssa_operands_equal): Likewise.
8830         (link_use_stmts_after): Handle vuse operand.
8831         (is_call_used): Use is_call_clobbered.
8832         (is_call_clobbered): Global variables are always call clobbered,
8833         query the call-clobbers bitmap.
8834         (mark_call_clobbered): Ignore global variables.
8835         (clear_call_clobbered): Likewise.
8836         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
8837         virtual operands sanity check.
8838         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
8839         Remove.
8840         (TARGET_MEM_REF): Remove TMR_TAG operand.
8841         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
8842         Remove call-clobber related code.
8843         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
8844         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
8845         partitions or escape reason.
8846         (get_single_def_stmt, get_single_def_stmt_from_phi,
8847         get_single_def_stmt_with_phi): Remove.
8848         (dump_referenced_vars): Tidy.
8849         (get_ref_base_and_extent): Allow bare decls.
8850         (collect_dfa_stats): Adjust.
8851         * graphite.c (rename_variables_in_stmt): Adjust.
8852         (graphite_copy_stmts_from_block): Likewise.
8853         (translate_clast): Likewise.
8854         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
8855         (EXPR_DIES): New.
8856         (translate_vuse_through_block): Use the oracle.
8857         (phi_translate_1): Adjust.
8858         (value_dies_in_block_x): Use the oracle.  Cache the outcome
8859         in EXPR_DIES.
8860         (valid_in_sets): Check if the VUSE for
8861         a REFERENCE is available.
8862         (eliminate): Do not remove stmts during elimination,
8863         instead queue and remove them afterwards.
8864         (do_pre): Do not rebuild alias info.
8865         (pass_pre): Run TODO_rebuild_alias before PRE.
8866         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
8867         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
8868         (mark_all_v_defs_stmt): Remove.
8869         (mark_all_v_defs_seq): Adjust.
8870         (sra_replace): Likewise.
8871         (scalarize_use): Likewise.
8872         (scalarize_copy): Likewise.
8873         (scalarize_init): Likewise.
8874         (scalarize_ldst): Likewise.
8875         (todoflags): Remove.
8876         (tree_sra): Do not rebuild alias info.
8877         (tree_sra_early): Adjust.
8878         (pass_sra): Run TODO_update_address_taken before SRA.
8879         * tree-predcom.c (set_alias_info): Remove.
8880         (prepare_initializers_chain): Do not call it.
8881         (mark_virtual_ops_for_renaming): Adjust.
8882         (mark_virtual_ops_for_renaming_list): Remove.
8883         (initialize_root_vars): Adjust.
8884         (initialize_root_vars_lm): Likewise.
8885         (prepare_initializers_chain): Likewise.
8886         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
8887         (may_propagate_copy_into_stmt): Likewise.
8888         (merge_alias_info): Do nothing for now.
8889         (propagate_tree_value_into_stmt): Adjust.
8890         (stmt_may_generate_copy): Likewise.
8891         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
8892         not mark symbols for renaming.
8893         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
8894         with the same statement, make sure to update the new pointed-to one.
8895         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
8896         call statements, do not mark symbols for renaming.
8897         (mark_operand_necessary): Dump something.
8898         (ref_may_be_aliased): New function.
8899         (mark_aliased_reaching_defs_necessary_1): New helper function.
8900         (mark_aliased_reaching_defs_necessary): Likewise.
8901         (mark_all_reaching_defs_necessary_1): Likewise.
8902         (mark_all_reaching_defs_necessary): Likewise.
8903         (propagate_necessity): Do not process virtual PHIs.  For
8904         non-aliased loads mark all reaching definitions as necessary.
8905         For aliased loads and stores mark the immediate dominating
8906         aliased clobbers as necessary.
8907         (visited): New global static.
8908         (perform_tree_ssa_dce): Free visited bitmap after propagating
8909         necessity.
8910         (remove_dead_phis): Perform simple dead virtual PHI removal.
8911         (remove_dead_stmt): Properly unlink virtual operands when
8912         removing stores.
8913         (eliminate_unnecessary_stmts): Schedule PHI removal after
8914         stmt removal.
8915         * tree-ssa-ter.c (is_replaceable_p): Adjust.
8916         (process_replaceable): Likewise.
8917         (find_replaceable_in_bb): Likewise.
8918         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
8919         based on the single gimple vop.
8920         (verify_flow_insensitive_alias_info): Remove.
8921         (verify_flow_sensitive_alias_info): Likewise.
8922         (verify_call_clobbering): Likewise.
8923         (verify_memory_partitions): Likewise.
8924         (verify_alias_info): Likewise.
8925         (verify_ssa): Adjust..
8926         (execute_update_addresses_taken): Export.  Update SSA
8927         manually.  Optimize only when optimizing.  Use a local bitmap.
8928         (pass_update_address_taken): Remove TODO_update_ssa, add
8929         TODO_dump_func.
8930         (pass_update_address_taken): Just use TODO_update_address_taken.
8931         (init_tree_ssa): Do not initialize addressable_vars.
8932         (verify_ssa): Verify new VUSE / VDEF properties.
8933         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
8934         Do not call verify_alias_info.
8935         (delete_tree_ssa): Clear the VUSE, VDEF operands.
8936         Do not free the loaded and stored syms bitmaps.  Reset the escaped
8937         and callused solutions.  Do not free addressable_vars.
8938         Remove memory-tag related code.
8939         (warn_uninitialized_var): Aliases are always available.
8940         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
8941         * lambda-code.c (can_put_in_inner_loop): Adjust.
8942         (can_put_after_inner_loop): Likewise.
8943         (perfect_nestify): Likewise.
8944         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
8945         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
8946         (vectorizable_conversion): Do not mark symbols for renaming.
8947         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
8948         (expand_call_inline): Unlink the calls virtual operands before
8949         replacing it.
8950         (tree_function_versioning): Do not call update_ssa if we are not
8951         updating clones.  Simplify.
8952         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
8953         (propagate_with_phi): Likewise..
8954         * tree-outof-ssa.c (create_temp): Remove memory tag and call
8955         clobber code.  Assert we are not aliased or global.
8956         * tree-flow.h: Include tree-ssa-alias.h
8957         (enum escape_type): Remove.
8958         (struct mem_sym_stats_d): Likewise.
8959         (struct mem_ref_stats_d): Likewise.
8960         (struct gimple_df): Add vop member.  Remove global_var,
8961         call_clobbered_vars, call_used_vars, addressable_vars,
8962         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
8963         escaped and callused members.
8964         (struct ptr_info_def): Remove all members, add points-to solution
8965         member pt.
8966         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
8967         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
8968         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
8969         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
8970         (tree-ssa-alias.o): Likewise.
8971         (toplev.o): Add tree-ssa-alias.h
8972         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
8973         * gimple.c (gimple_set_bb): Fix off-by-one error.
8974         (is_gimple_reg): Do not handle memory tags.
8975         (gimple_copy): Also copy virtual operands.
8976         Delay updating the statement.  Do not reset loaded and stored syms.
8977         (gimple_set_stored_syms): Remove.
8978         (gimple_set_loaded_syms): Likewise.
8979         (gimple_call_copy_skip_args): Copy the virtual operands
8980         and mark the new statement modified.
8981         * tree-ssa-structalias.c (may_alias_p): Remove.
8982         (set_uids_in_ptset): Take the alias set to prune with as
8983         parameter.  Fold in the alias test of may_alias_p.
8984         (compute_points_to_sets): Compute whether a ptr is dereferenced
8985         in a local sbitmap.
8986         (process_constraint): Deal with &ANYTHING on the lhs, reject all
8987         other ADDRESSOF constraints on the lhs.
8988         (get_constraint_for_component_ref): Assert that we don't get
8989         ADDRESSOF constraints from the base of the reference.
8990         Properly generate UNKNOWN_OFFSET for DEREF if needed.
8991         (struct variable_info): Remove collapsed_to member.
8992         (get_varinfo_fc): Remove.
8993         (new_var_info): Do not set collapsed_to.
8994         (dump_constraint): Do not follow cycles.
8995         (dump_constraint_graph): Likewise.
8996         (build_pred_graph): Likewise.
8997         (build_succ_graph): Likewise.
8998         (rewrite_constraints): Likewise.
8999         (do_simple_structure_copy): Remove.
9000         (do_rhs_deref_structure_copy): Remove.
9001         (do_lhs_deref_structure_copy): Remove.
9002         (collapse_rest_of_var): Remove.
9003         (do_structure_copy): Re-implement.
9004         (pta_stats): New global variable.
9005         (dump_pta_stats): New function.
9006         (struct constraint_expr): Make offset signed.
9007         (UNKNOWN_OFFSET): Define special value.
9008         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
9009         (solution_set_expand): New helper function split out from ...
9010         (do_sd_constraint): ... here.
9011         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
9012         (do_ds_constraint): Likewise.
9013         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
9014         and CALLUSED = *CALLUSED.
9015         (set_union_with_increment): Make inc argument signed.
9016         (type_safe): Remove.
9017         (get_constraint_for_ptr_offset): Handle unknown and negative
9018         constant offsets.
9019         (first_vi_for_offset): Handle offsets before start.  Bail
9020         out early for offsets beyond the variable extent.
9021         (first_or_preceding_vi_for_offset): New function.
9022         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
9023         Together with ESCAPED = *ESCAPED this properly computes reachability.
9024         (find_what_var_points_to): New function.
9025         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
9026         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
9027         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
9028         pt_solutions_intersect): New functions.
9029         (compute_call_used_vars): Remove.
9030         (compute_may_aliases): New main entry into PTA computation.
9031         * gimple.h (gimple_p): New typedef.
9032         (struct gimple_statement_base): Remove references_memory_p.
9033         (struct gimple_statement_with_memory_ops_base): Remove
9034         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
9035         members.
9036         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
9037         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
9038         gimple_set_references_memory): Remove.
9039         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
9040         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
9041         New functions.
9042         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
9043         (verify_expr): Allow RESULT_DECL.
9044         (gimple_duplicate_bb): Do not copy virtual operands.
9045         (gimple_duplicate_sese_region): Adjust.
9046         (gimple_duplicate_sese_tail): Likewise.
9047         (mark_virtual_ops_in_region): Remove.
9048         (move_sese_region_to_fn): Do not call it.
9049         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
9050         and pass_simple_dse.
9051         (execute_function_todo): Handle TODO_update_address_taken,
9052         call execute_update_addresses_taken for TODO_rebuild_alias.
9053         (execute_todo): Adjust.
9054         (execute_one_pass): Init dump files early.
9055         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
9056         call-clobbered.
9057         (create_general_new_stmt): Clear vops.
9058         * tree-ssa-reassoc.c (get_rank): Adjust.
9059         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
9060         symbols for renaming.
9061         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
9062         (PARAM_AVG_ALIASED_VOPS): Likewise.
9063         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
9064         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
9065         * tree-ssa-operands.c: Simplify for new virtual operand representation.
9066         (operand_build_cmp, copy_virtual_operands,
9067         create_ssa_artificial_load_stmt, add_to_addressable_set,
9068         gimple_add_to_addresses_taken): Remove public functions.
9069         (unlink_stmt_vdef): New function.
9070
9071 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
9072
9073         * config.gcc (powerpc-*-linux*): Merge variants.
9074
9075 2009-04-02  Chao-ying Fu  <fu@mips.com>
9076             James Grosbach  <james.grosbach@microchip.com>
9077
9078         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
9079         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
9080         cop0_sp_offset.
9081         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
9082         keep_interrupts_masked_p, use_debug_exception_return_p.
9083         (mips_attribute_table): Add interrupt, use_shadow_register_set,
9084         keep_interrupts_masked, use_debug_exception_return.
9085         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
9086         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
9087         New functions.
9088         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
9089         (mips_print_operand): Process COP0 registers to print $0 .. $31
9090         correctly for GAS to process.
9091         (mips_interrupt_extra_call_saved_reg_p): New function.
9092         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
9093         extra registers.
9094         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
9095         (mips_compute_frame_info): Add supports for interrupt context that
9096         includes doubleword accumulators and COP0 registers.
9097         (mips_for_each_saved_acc): New function.
9098         (mips_for_each_saved_gpr_and_fpr): Change the function name from
9099         mips_for_each_saved_reg.
9100         (mips_save_reg): Save accumulators.
9101         (mips_kernel_reg_p): A new for_each_rtx callback.
9102         (mips_expand_prologue): Support interrupt handlers.
9103         (mips_restore_reg): Restore accumulators.
9104         (mips_expand_epilogue): Support interrupt handlers.
9105         (mips_can_use_return_insn): Return false for interrupt handlers.
9106         (mips_epilogue_uses): New function.
9107         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
9108         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
9109         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
9110         cop0_move): New instructions.
9111         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
9112         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
9113         defines.
9114         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
9115         New defines.
9116         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
9117         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
9118         interrupt handlers, we use K0 as the temporary register.
9119         (EPILOGUE_USES): Change to a function call.
9120         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
9121         handlers, we use K0 as the temporary register.
9122
9123         * doc/extend.texi (Function Attributes): Document interrupt,
9124         use_shadow_register_set, keep_interrupts_masked,
9125         use_debug_exception_return for MIPS attributes.
9126
9127 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
9128
9129         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
9130         Remove a number of t-files from tmake_file.
9131         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
9132         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
9133         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9134         target_prototype, not TARGET_PROTOTYPE.
9135         (LINK_OS_GNU_SPEC): Define.
9136         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
9137         and darwin-ldoubdle.c.
9138
9139 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
9140
9141         PR driver/39293
9142         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
9143         (cpp_options): Ditto.
9144         (default_compilers): Ditto.
9145         (display_help): Ditto.
9146         (process_command): Ditto.
9147         (do_spec_1): Ditto.
9148         (set_input): Use lbasename instead of duplicate code.
9149         (save_temps_prefix): New static for -save-temps=obj.
9150         (save_temps_length): Ditto.
9151
9152         * doc/invoke.texi (-save-temps=obj): Document new variant to
9153         -save-temps switch.
9154
9155 2009-04-02  Jeff Law  <law@redhat.com>
9156
9157         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
9158         variable.
9159
9160 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
9161
9162         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
9163         * configure: Regenerated.
9164
9165 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
9166
9167         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
9168         share the argument list.
9169
9170 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
9171
9172         Merge
9173
9174         2009-02-12  Diego Novillo  <dnovillo@google.com>
9175
9176         * varpool.c (debug_varpool): New.
9177         * cgraph.h (debug_varpool): Declare.
9178
9179 2009-04-02  Jan Hubicka  <jh@suse.cz>
9180
9181         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
9182         pass.
9183
9184 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
9185
9186         * config/i386/i386.c (ix86_abi): Move initialization to ...
9187         (override_options): Here.
9188
9189 2009-04-02  Christian Bruel  <christian.bruel@st.com>
9190
9191         * config/sh/sh.c (sh_dwarf_register_span): New function.
9192         (TARGET_DWARF_REGISTER_SPAN): Define.
9193         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
9194
9195 2009-04-02  Ira Rosen  <irar@il.ibm.com>
9196
9197         PR tree-optimization/39595
9198         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
9199         interleaved loads group is not  greater than the SLP group size.
9200
9201 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
9202
9203         * builtins.c (is_builtin_name): New.
9204         (called_as_built_in): Use is_builtin_name.
9205         * tree.h (is_builtin_name): New.
9206         * varasm.c (incorporeal_function_p): Use is_builtin_name
9207
9208 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
9209
9210         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9211
9212 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
9213
9214         PR c++/26693
9215         * c-decl.c (clone_underlying_type): Move this ...
9216         * c-common.c (set_underlying_type): ... here.
9217         Also, make sure the function properly sets TYPE_STUB_DECL() on
9218         the newly created typedef variant type.
9219         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
9220         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9221         points.
9222
9223 2009-04-02  Richard Guenther  <rguenther@suse.de>
9224
9225         PR tree-optimization/37221
9226         * tree-flow.h (degenerate_phi_result): Declare.
9227         * tree-ssa-dom.c (degenerate_phi_result): Export.
9228         * tree-scalar-evolution.c (analyze_initial_condition): If
9229         the initial condition is defined by a degenerate PHI node
9230         use the degenerate value.
9231
9232 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
9233
9234         PR rtl-optimization/39588
9235         * combine.c (merge_outer_ops): Do not set the constant when this
9236         is not necessary.
9237         (simplify_shift_const_1): Do not modify it either in this case.
9238
9239 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
9240
9241         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
9242         tuning is deprecated if -mtune value is set to an Itanium1 variant.
9243
9244 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
9245
9246         PR c/29027
9247         * c-lex.c (interpret_float): Default (no suffix) is double.
9248
9249 2009-04-1  Xinliang David Li  <davidxl@google.com>
9250
9251         * config/i386/i386.c (legitimate_constant_p): Recognize
9252         all one vector constant.
9253
9254 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9255
9256         * config/vax/vax.c: Add #includes to silence warnings.
9257         Change #include order to silence two warnings.
9258
9259 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9260
9261         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
9262         (ASM_SPEC): Pass -k to the assembler for PIC code.
9263
9264 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9265
9266         * config.gcc: Add vax-*-linux* to the switch.
9267         * config/vax/linux.h: New file. (TARGET_VERSION,
9268         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
9269
9270 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9271
9272         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
9273         Use predicate macros instead of GET_CODE() == foo.
9274         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
9275         ashlsi3, rotrsi3, <unnamed>): Likewise.
9276
9277 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9278
9279         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
9280         jbbccihi, jbbccisi): Remova trailing whitespace.
9281         * config/vax/constraints.md: Likewise.
9282         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
9283         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
9284         * config/vax/predicates.md: Likewise.
9285         * config/vax/vax.c (print_operand_address, vax_output_int_move,
9286         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
9287         * config/vax/vax.h: Likewise.
9288         * config/vax/vax.md (nonlocal_goto): Likewise.
9289
9290 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9291
9292         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
9293         (indirectable_address_p, adjacent_operands_p): Add spaces around
9294         braces.
9295         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
9296
9297 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9298
9299         * config/vax/vax.c (legitimate_constant_address_p,
9300         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
9301         index_term_p, reg_plus_index_p, legitimate_address_p,
9302         vax_mode_dependent_address_p): Update comments to match functions
9303         modified by the recent int->bool conversion.
9304
9305 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9306
9307         * config/vax/builtins.md: Update copyright message.
9308         * config/vax/constraints.md: Likewise.
9309         * config/vax/netbsd-elf.h: Likewise.
9310         * config/vax/predicates.md: Likewise.
9311         * config/vax/vax-protos.h: Likewise.
9312         * config/vax/vax.c: Likewise.
9313         * config/vax/vax.h: Likewise.
9314         * config/vax/vax.md: Likewise.
9315         * config/vax/vax.opt: Likewise.
9316
9317 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9318
9319         * config/vax/builtins.md (ffssi2, ffssi2_internal,
9320         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
9321         * config/vax/constraints.md (B, R): Likewise.
9322         * config/vax/predicates.md (external_memory_operand,
9323         nonimmediate_addsub_di_operand): Likewise.
9324         * config/vax/vax.c (vax_output_int_add): Likewise.
9325         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
9326         untyped_call): Likewise.
9327
9328 2009-04-01  Matt Thomas  <matt@3am-software.com>
9329
9330         * config/vax/predicates.md: New file.
9331         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
9332         external_const_operand, nonsymbolic_operand, external_memory_operand,
9333         indirect_memory_operand, indexed_memory_operand,
9334         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
9335         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
9336         predicate.
9337         * config/vax/constraints.md: New file.
9338         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
9339         New constraint.
9340         * config/vax/builtins.md: New file.
9341         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
9342         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
9343         jbbccisi): Define.
9344         * config/vax/vax.opt (mqmath): Add option.
9345         * config/vax/vax.md (isfx): Extend with DI.
9346         (VAXintQH, VAXintQHSD): Define.
9347         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
9348         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
9349         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
9350         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
9351         (movdi): Update constraints and use vax_output_int_move().
9352         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
9353         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
9354         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
9355         nonlocal_goto): New.
9356         (mov<mode>): Extend accepted operand types.
9357         (subdi3_old): Rename from subdi3, change update constraints and use
9358         a new implementation.
9359         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
9360         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
9361         MOVE_RATIO, CLEAR_RATIO): Define.
9362         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
9363         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9364         (PRINT_OPERAND): Redefine using a function instead of inlined code.
9365         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
9366         (split_quadword_operands): Make static and really allow variable
9367         splitting.
9368         (print_operand_address): Update for PIC generation.
9369         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
9370         indexable_address_p, fixup_mathdi_operand,
9371         vax_expand_addsub_di_operands, adjacent_operands_p): New.
9372         (vax_float_literal, legitimate_constant_p,
9373         indirectable_constant_address_p, index_term_p,
9374         reg_plus_index_p): Return bool instead of int.
9375         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
9376         where needed.
9377         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
9378         generation.
9379         (vax_output_conditional_branch): Indent.
9380         (legitimate_constant_address_p, indirectable_constant_address_p,
9381         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
9382         vax_mode_dependent_address_p): Return bool instead of int, update for
9383         PIC generation.
9384         * config/vax/vax-protos.h (legitimate_constant_address_p,
9385         legitimate_constant_p, legitimate_address_p,
9386         vax_mode_dependent_address_p): Change declaration to bool.
9387         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
9388         vax_expand_addsub_di_operands, vax_output_int_subtract,
9389         vax_output_movmemsi): Declare.
9390         (split_quadword_operands, vax_float_literal): Delete declaration.
9391         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
9392         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
9393         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
9394         ASM_OUTPUT_DWARF_PCREL): Define.
9395         (ASM_SPEC): Change definition to allow PIC generation.
9396
9397 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
9398
9399         * doc/sourcebuild.texi: Update front-end requirements.
9400
9401 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
9402
9403         PR target/39226
9404         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
9405         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
9406         (booldi3_internal3): Use boolean_or_operator instead of
9407         boolean_operator.
9408
9409 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
9410
9411         PR c/39605
9412         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
9413         declarator whose size is not an integer constant expression but
9414         folds to an integer constant, then treat it as a constant
9415         subsequently.
9416
9417 2009-04-01  Richard Guenther  <rguenther@suse.de>
9418
9419         * fold-const.c (fold_plusminus_mult_expr): Do not fold
9420         i * 4 + 2 to (i * 2 + 1) * 2.
9421
9422 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
9423
9424         PR c/37772
9425         * c-parser.c (c_parser_asm_statement): Skip until close paren and
9426         return if c_parser_asm_string_literal returned NULL.
9427
9428 2009-04-01  Nick Clifton  <nickc@redhat.com>
9429
9430         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
9431         already defined.
9432         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
9433         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
9434         other typedefs to avoid conflicts with libgcc2.c.  Define labels
9435         to gain 16-bit bit-manipulation functions from libgcc2.c and then
9436         include it.
9437         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
9438         to gain 16-bit trapping arithmetic functions from libgcc2.c and
9439         then include it.
9440
9441 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
9442
9443         * varasm.c (default_function_rodata_section): Declare DOT as
9444         const char*.
9445
9446 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
9447             Andrey Galkin  <agalkin@hypercom.com>
9448
9449         PR/39492
9450         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
9451         Make object_name unique for each process.
9452
9453 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
9454
9455         PR other/39591
9456         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
9457         addressable variables in the parallel that could go out of scope while
9458         running queued tasks.
9459
9460 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
9461
9462         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
9463         (CASE_VALUES_THRESHOLD): Redefine.
9464         * config/avr/avr.c (avr_override_options): Remove initialization of
9465         avr_case_values_threshold variable.
9466         (avr_case_values_threshold): Remove variable. Add new function.
9467         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
9468         * config/avr/avr.opt (mno-tablejump): Remove option.
9469         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
9470
9471 2009-04-01  DJ Delorie  <dj@redhat.com>
9472
9473         * varasm.c (default_function_rodata_section): Don't assume
9474         anything about where the first '.' in the section name is.
9475
9476 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
9477
9478         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
9479         rs6000_emit_stack_tie.
9480
9481 2009-03-31  Ian Lance Taylor  <iant@google.com>
9482
9483         * tree-eh.c (tree_remove_unreachable_handlers): Compare
9484         gimple_code with GIMPLE_RESX, not RESX.
9485
9486 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
9487
9488         * c-common.c (c_get_ident): New.
9489         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
9490
9491 2009-04-01  Ben Elliston  <bje@au.ibm.com>
9492
9493         * config/rs6000/sysv4.opt (msdata): Improve option description.
9494
9495 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
9496
9497         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
9498         (divdf3_internal_lat): Remove.
9499         (divxf3_internal_lat): Remove.
9500         (divxf3_internal_thr): Remove.
9501         (divxf): Use divxf3_internal.
9502         * config/ia64/div.md (divsf3_internal_lat): New.
9503         (divdf3_internal_lat): New.
9504         (divxf3_internal): New.
9505
9506 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
9507
9508         PR c/448
9509         * Makefile.in (USE_GCC_STDINT): Define.
9510         (stmp-int-hdrs): Install stdint.h if applicable.
9511         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
9512         if known.
9513         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
9514         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
9515         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9516         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9517         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9518         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9519         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9520         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9521         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9522         (c_common_nodes_and_builtins): Initialize
9523         underlying_wchar_type_node.  Do not initialize
9524         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
9525         nodes for new types.
9526         (c_stddef_cpp_builtins): Define macros for new types.
9527         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
9528         Remove.
9529         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
9530         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
9531         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
9532         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
9533         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
9534         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
9535         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
9536         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
9537         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
9538         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
9539         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
9540         int16_type_node, int32_type_node, int64_type_node,
9541         uint8_type_node, uint16_type_node, c_uint32_type_node,
9542         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
9543         int_least32_type_node, int_least64_type_node,
9544         uint_least8_type_node, uint_least16_type_node,
9545         uint_least32_type_node, uint_least64_type_node,
9546         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
9547         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
9548         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
9549         uintptr_type_node): Define.
9550         * c-cppbuiltin.c (builtin_define_constants,
9551         builtin_define_type_minmax): New.
9552         (builtin_define_stdint_macros): Define more macros.
9553         (c_cpp_builtins): Define more limit macros.
9554         (type_suffix): New.
9555         (builtin_define_type_max): Define in terms of
9556         builtin_define_type_minmax.  Remove is_long parameter.  All
9557         callers changed.
9558         * config.gcc (use_gcc_stdint): Define.
9559         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
9560         Add newlib-stdint.h for generic targets.
9561         * config/glibc-stdint.h, config/newlib-stdint.h,
9562         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
9563         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
9564         * config/score/score.h (UINTPTR_TYPE): Define.
9565         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
9566         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
9567         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9568         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9569         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9570         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9571         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9572         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9573         * config/spu/spu.h (STDINT_LONG32): Define.
9574         * configure.ac (use_gcc_stdint): Substitute.
9575         * configure: Regenerate.
9576         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
9577         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
9578         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
9579         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
9580         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
9581         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
9582         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
9583         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
9584         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
9585         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
9586         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
9587         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
9588         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
9589         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
9590         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
9591         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
9592         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
9593         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
9594         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
9595         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
9596         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
9597         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
9598         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9599         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9600         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9601         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9602         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9603         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9604         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
9605
9606 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
9607
9608         * loop-iv.c (suitable_set_for_replacement): Renamed from
9609         simplify_using_assignment; changed to return bool and to accept new
9610         args DEST and SRC.  Return true iff we find a source/destination pair
9611         that can be used to make a replacement, and fill SRC and DEST if so.
9612         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
9613         changed.
9614         (simplify_using_initial_values): Deal with altered regs here and track
9615         more precisely the effect they have on the validity of our expression.
9616
9617         * loop-iv.c (simplify_using_condition): A condition of the form
9618         (EQ REG CONST) can be used to simply make a substitution.
9619         (simplify_using_initial_values): Keep track of conditions we have seen
9620         and keep using them to simplify new expressions, while applying the
9621         same substitutions to them as to the expression.
9622
9623         * simplify-rtx.c (simplify_relational_operation_1): Simplify
9624         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
9625         GEU/LTU reversed.
9626
9627         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
9628         changed.  Use this when trying to improve the upper bound.
9629         Generate the comparison by using simplify_gen_relational.
9630
9631         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
9632
9633         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
9634         functions.
9635         (simplify_using_assignment, simplify_using_initial_values): Call
9636         replace_in_expr to make replacements.  Call replace_single_def_regs
9637         once on the initial version of the expression.
9638
9639 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9640
9641         PR target/27237
9642         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
9643
9644 2009-03-31  Richard Guenther  <rguenther@suse.de>
9645
9646         PR middle-end/31029
9647         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
9648         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
9649
9650 2009-03-31  Richard Guenther  <rguenther@suse.de>
9651
9652         * tree.h (div_if_zero_remainder): Declare.
9653         * fold-const.c (div_if_zero_remainder): Export.
9654         * tree-ssa-forwprop.c
9655         (forward_propagate_addr_into_variable_array_index): Handle
9656         constant array index addition outside of the variable index.
9657
9658 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
9659
9660         PR target/39592
9661         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
9662         define_splits, floatunssi<mode>2): Require x87 conversions from
9663         DImode to be permitted.
9664
9665 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
9666
9667         PR preprocessor/15638
9668         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
9669
9670 2009-03-31  Richard Guenther  <rguenther@suse.de>
9671
9672         PR middle-end/23401
9673         PR middle-end/27810
9674         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
9675         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
9676         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
9677         a separate statement.
9678         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
9679         (lookup_tmp_var): Likewise.
9680         (is_gimple_formal_tmp_or_call_rhs): Remove.
9681         (is_gimple_reg_or_call_rhs): Rename to ...
9682         (is_gimple_reg_rhs_or_call): ... this.
9683         (is_gimple_mem_or_call_rhs): Rename to ...
9684         (is_gimple_mem_rhs_or_call): ... this.
9685         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
9686         DECL_GIMPLE_REG_P only if is_formal is true.
9687         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
9688         for non-proper post-modify expression gimplification.
9689         (gimplify_self_mod_expr): For post-modify expressions gimplify
9690         the lvalue to a minimal lvalue.
9691         (rhs_predicate_for): Remove formal temp case.
9692         (gimplify_modify_expr_rhs): Likewise.
9693         (gimplify_addr_expr): Use is_gimple_reg.
9694         (gimplify_expr): Remove formal temp cases.
9695         (gimple_regimplify_operands): Likewise.
9696         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
9697         and FILTER_EXPR like constants.
9698         * gimple.c (walk_gimple_op): Fix val_only initialization, use
9699         is_gimple_reg.
9700         (is_gimple_formal_tmp_rhs): Remove.
9701         (is_gimple_reg_rhs): Remove special casing.
9702         (is_gimple_mem_rhs): Fix.
9703         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
9704         (is_gimple_formal_tmp_var): Remove.
9705         (is_gimple_formal_tmp_reg): Likewise.
9706         (is_gimple_min_lval): Allow invariant component ref parts.
9707         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
9708         is_gimple_formal_tmp_reg): Remove declarations.
9709         * tree-cfg.c (verify_expr): Verify that variables with address
9710         taken do not have DECL_GIMPLE_REG_P set.
9711         * tree-mudflap.c (mf_build_check_statement_for): Use
9712         force_gimple_operand instead of gimplify_expr.
9713
9714 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
9715
9716         * modulo-sched.c (sms_schedule_by_order): Pass the actual
9717         schedulable rows to compute_split_row.
9718
9719 2009-03-31  Ben Elliston  <bje@au.ibm.com>
9720
9721         PR target/31635
9722         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
9723         OPT_mvrsave.
9724
9725 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
9726
9727         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
9728         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
9729         * configure: Regenerate.
9730         * config.in: Regenerate.
9731         * config/rs6000/rs6000.opt (mtls-markers): Add.
9732         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
9733         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
9734         (tls_ld_aix, tls_ld_sysv): Likewise.
9735         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
9736         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
9737
9738 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
9739
9740         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
9741
9742 2009-03-30  Jan Hubicka  <jh@suse.cz>
9743
9744         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
9745         out of RESX.
9746         (tree_remove_unreachable_handlers): Cleanup EH predecestor
9747         detection and label handling.
9748
9749 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
9750
9751         * ira-int.h (ira_allocno): Rename left_conflicts_num to
9752         left_conflicts_size.
9753         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
9754         ALLOCNO_LEFT_CONFLICTS_SIZE.
9755
9756         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
9757         remove_allocno_from_bucket_and_push,
9758         allocno_spill_priority_compare, push_allocnos_to_stack,
9759         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9760         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
9761         (setup_allocno_left_conflicts_num): Ditto.  Rename to
9762         setup_allocno_left_conflicts_size.
9763         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9764         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
9765         setup_allocno_left_conflicts_size instead of
9766         setup_allocno_left_conflicts_num.
9767
9768         * ira-build.c (ira_create_allocno): Use
9769         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
9770         ALLOCNO_LEFT_CONFLICTS_NUM.
9771
9772 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
9773
9774         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9775         instead of DF_LR_OUT.
9776
9777         * ira-lives.c (process_bb_node_lives): Ditto.
9778
9779         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9780         instead of DF_LR_{OUT,IN}.
9781
9782         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9783
9784         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9785
9786 2009-03-30  Jan Hubicka  <jh@suse.cz>
9787
9788         * except.c (label_to_region_map): Fix thinko.
9789
9790 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
9791
9792         PR middle-end/38237
9793         * tree.h (tree_find_value): New declaration.
9794         * tree.c (tree_find_value): New function.
9795         * varasm.c (assemble_external): Avoid duplicate entries on lists.
9796
9797 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
9798
9799         PR debug/39563
9800         * c-decl.c (struct c_binding): Add locus field.
9801         (bind): Add locus argument, set locus field from it.
9802         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
9803         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
9804         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
9805         implicitly_declare, undeclared_variable, lookup_label,
9806         declare_label, c_make_fname_decl, c_builtin_function,
9807         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
9808         bind callers.
9809
9810 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
9811
9812         PR target/38781
9813         * config/i386/i386.c (classify_argument): Check total size of
9814         structure.
9815
9816 2009-03-30  Martin Jambor  <mjambor@suse.cz>
9817
9818         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
9819         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
9820         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
9821         respectively.
9822
9823         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
9824         seen_variable_array_ref while also traversing a union.
9825
9826         * tree-inline.c (optimize_inline_calls): Do not call
9827         cgraph_node_remove_callees.
9828         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
9829         (pass_remove_cgraph_callee_edges): New variable.
9830         * passes.c (init_optimization_passes): Add
9831         pass_remove_cgraph_callee_edges after early inlining and before all
9832         late intraprocedural passes.
9833
9834         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
9835
9836 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9837
9838         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
9839         Fix typos in names.
9840
9841 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9842
9843         * combine.c (simplify_comparison): Use have_insn_for.
9844         * dojump.c (do_jump): Likewise.
9845
9846 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9847
9848         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
9849         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
9850         sparc_compare_op0 like sparc_compare_emitted used to be handled.
9851         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
9852         instead of sparc_compare_emitted.
9853         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
9854         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
9855         instead of sparc_compare_emitted.
9856
9857 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9858
9859         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
9860         enter/exit cfglayout mode.
9861         (pass_partition_block): Require it.
9862         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
9863         (combine_instructions): Track basic blocks instead of labels.
9864         (update_cfg_for_uncondjump): New.
9865         (try_combine): Use it.  Update jumps after rescanning.
9866         (pass_combine): Require PROP_cfglayout.
9867         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
9868
9869 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9870
9871         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
9872         Provide/destroy PROP_cfglayout respectively.
9873         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
9874         * tree-pass.h (PROP_cfglayout): New.
9875
9876 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9877
9878         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
9879         fold_convert_const_fixed_from_fixed,
9880         fold_convert_const_fixed_from_int,
9881         fold_convert_const_fixed_from_real, fold_negate_const): Do not
9882         set TREE_CONSTANT_OVERFLOW.
9883         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
9884         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
9885
9886 2009-03-30  Ira Rosen  <irar@il.ibm.com>
9887
9888         * tree-vect-loop-manip.c: New file.
9889         * tree-vectorizer.c: Update documentation and included files.
9890         (vect_loop_location): Make extern.
9891         (rename_use_op): Move to tree-vect-loop-manip.c
9892         (rename_variables_in_bb, rename_variables_in_loop,
9893         slpeel_update_phis_for_duplicate_loop,
9894         slpeel_update_phi_nodes_for_guard1,
9895         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
9896         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
9897         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
9898         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
9899         find_loop_location): Likewise.
9900         (new_stmt_vec_info): Move to tree-vect-stmts.c.
9901         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
9902         get_vectype_for_scalar_type, vect_is_simple_use,
9903         supportable_widening_operation, supportable_narrowing_operation):
9904         Likewise.
9905         (bb_in_loop_p): Move to tree-vect-loop.c.
9906         (new_loop_vec_info, destroy_loop_vec_info,
9907         reduction_code_for_scalar_code, report_vect_op,
9908         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
9909         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
9910         (vect_supportable_dr_alignment): Likewise.
9911         * tree-vectorizer.h (tree-data-ref.h): Include.
9912         (vect_loop_location): Declare.
9913         Reorganize function declarations according to the new file structure.
9914         * tree-vect-loop.c: New file.
9915         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
9916         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
9917         * tree-vect-data-refs.c: New file.
9918         * tree-vect-patterns.c (timevar.h): Don't include.
9919         * tree-vect-stmts.c: New file.
9920         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
9921         tree-vect-slp.c, tree-vect-loop.c.
9922         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
9923         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
9924         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
9925         (tree-vect-analyze.o): Remove.
9926         (tree-vect-transform.o): Likewise.
9927         (tree-vect-data-refs.o): Add rule.
9928         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
9929         tree-vect-slp.o): Likewise.
9930         (tree-vect-patterns.o): Remove redundant dependencies.
9931         (tree-vectorizer.o): Likewise.
9932         * tree-vect-slp.c: New file.
9933
9934 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9935
9936         * optc-gen.awk: Warn if an option flag has multiple different
9937         help strings.
9938
9939 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
9940
9941         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
9942         -floop-block): Document dependences on PPL, CLooG and Graphite.
9943
9944 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
9945
9946         PR rtl-optimization/323
9947         * c-common.c (c_fully_fold, convert_and_check,
9948         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
9949         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
9950         * c-common.def (EXCESS_PRECISION_EXPR): New.
9951         * c-cppbuiltin.c (builtin_define_float_constants): Define
9952         constants with enough digits for long double.
9953         * c-lex.c (interpret_float): Interpret constant with excess
9954         precision where appropriate.
9955         * c-opts.c (c_common_post_options): Set
9956         flag_excess_precision_cmdline.  Give an error for
9957         -fexcess-precision=standard for C++ for processors where the
9958         option is significant.
9959         * c-parser.c (c_parser_conditional_expression): Handle excess
9960         precision in condition.
9961         * c-typeck.c (convert_arguments): Handle arguments with excess
9962         precision.
9963         (build_unary_op): Move excess precision outside operation.
9964         (build_conditional_expr): Likewise.
9965         (build_compound_expr): Likewise.
9966         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
9967         (build_modify_expr): Handle excess precision in RHS.
9968         (convert_for_assignment): Handle excess precision in converted
9969         value.
9970         (digest_init, output_init_element, process_init_element): Handle
9971         excess precision in initializer.
9972         (c_finish_return): Handle excess precision in return value.
9973         (build_binary_op): Handle excess precision in operands and add
9974         excess precision as needed for operation.
9975         * common.opt (-fexcess-precision=): New option.
9976         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
9977         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9978         For standard excess precision, output explicit conversion to and
9979         truncation from XFmode.
9980         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
9981         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
9982         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
9983         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
9984         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
9985         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
9986         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
9987         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
9988         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
9989         define_splits, sqrt<mode>2): Disable where appropriate for
9990         standard excess precision.
9991         * convert.c (convert_to_real): Do not shorten arithmetic to type
9992         for which excess precision would be used.
9993         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
9994         * doc/invoke.texi (-fexcess-precision=): Document option.
9995         (-mfpmath=): Correct index entry.
9996         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
9997         flag_excess_precision): New.
9998         * langhooks.c (lhd_post_options): Set
9999         flag_excess_precision_cmdline.
10000         * opts.c (common_handle_option): Handle -fexcess-precision=.
10001         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
10002         init_excess_precision): New.
10003         (lang_dependent_init_target): Call init_excess_precision.
10004         * tree.c (excess_precision_type): New.
10005         * tree.h (excess_precision_type): Declare.
10006
10007 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
10008
10009         PR c/35235
10010         * c-typeck.c (build_component_ref): Do not copy qualifiers from
10011         non-lvalue to component.
10012
10013 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
10014
10015         PR preprocessor/34695
10016         * Makefile.in (c-opts.o): Depend on c-tree.h.
10017         * c-common.c: Move down include of diagnostic.h.
10018         (done_lexing, c_cpp_error): New.
10019         * c-common.h (done_lexing): Declare.
10020         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
10021         (parse_in).
10022         * c-opts.c: Include c-tree.h.
10023         (c_common_init_options): Set preprocessor error callback.
10024         (c_common_handle_option): Do not set preprocessor
10025         inhibit_warnings, warnings_are_errors, warn_system_headers,
10026         pedantic_errors or inhibit_warnings flags.
10027         (c_common_post_options): Do not check cpp_errors (parse_in).
10028         (c_common_finish): Do not output dependencies if there were
10029         errors.  Do not check return value of cpp_finish.
10030         * c-ppoutput.c (pp_file_change): Set input_location.
10031         * c-tree.h (c_cpp_error): Declare.
10032         * diagnostic.c (diagnostic_set_info_translated): Also initialize
10033         override_column.
10034         (diagnostic_build_prefix): Check override_column.
10035         * diagnostic.h (diagnostic_info): Add override_column field.
10036         (diagnostic_override_column): Define.
10037
10038 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
10039
10040         * c-common.c (c_expand_expr, c_staticp): Remove.
10041         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
10042         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
10043         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
10044         * c-gimplify.c (gimplify_compound_literal_expr,
10045         optimize_compound_literals_in_ctor): Remove.
10046         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
10047         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
10048         * c-semantics.c (emit_local_var): Remove.
10049
10050         * langhooks-def.h (lhd_expand_expr): Remove.
10051         * langhooks.c (lhd_expand_expr): Remove.
10052         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
10053
10054         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
10055         handling from c-semantics.c; don't call into langhook.
10056         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
10057         * gimplify.c (gimplify_compound_literal_expr,
10058         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
10059         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
10060         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
10061         as was done in c-gimplify.c.
10062         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
10063         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
10064         Move from c-common.h.
10065         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
10066
10067         * tree.c (staticp): Do not call langhook.
10068         * langhooks.c (lhd_staticp): Delete.
10069         * langhooks-def.h (lhd_staticp): Delete prototype.
10070         (LANG_HOOKS_STATICP): Delete.
10071         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
10072
10073         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
10074         instead of DECL_STMTs.
10075
10076 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
10077
10078         PR c/456
10079         PR c/5675
10080         PR c/19976
10081         PR c/29116
10082         PR c/31871
10083         PR c/35198
10084         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
10085         void_type_node.
10086         (fold_call_expr): Return a NOP_EXPR from folding rather than the
10087         contained expression.
10088         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
10089         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
10090         conditional expressions for C.
10091         (decl_constant_value_for_optimization): Move from
10092         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
10093         whether optimizing and that the expression is a VAR_DECL not of
10094         array type instead of doing such checks in the caller.  Do not
10095         check pedantic.  Call gcc_unreachable for C++.
10096         * c-common.def (C_MAYBE_CONST_EXPR): New.
10097         * c-common.h (c_fully_fold, c_save_expr,
10098         decl_constant_value_for_optimization): New prototypes.
10099         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10100         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10101         EXPR_INT_CONST_OPERANDS): Define.
10102         * c-convert.c (convert): Strip nops from expression.
10103         * c-decl.c (groktypename): Take extra parameters expr and
10104         expr_const_operands.  Update call to grokdeclarator.
10105         (start_decl): Update call to grokdeclarator.  Add statement for
10106         expressions used in type of decl.
10107         (grokparm): Update call to grokdeclarator.
10108         (push_parm_decl): Update call to grokdeclarator.
10109         (build_compound_literal): Add parameter non_const and build a
10110         C_MAYBE_COSNT_EXPR if applicable.
10111         (grokdeclarator): Take extra parameters expr and
10112         expr_const_operands.  Track expressions used in declaration
10113         specifiers and declarators.  Fold array sizes and track whether
10114         they are constant expressions and whether they are integer
10115         constant expressions.
10116         (parser_xref_tag): Set expr and expr_const_operands fields in
10117         return value.
10118         (grokfield): Update call to grokdeclarator.
10119         (start_function): Update call to grokdeclarator.
10120         (build_null_declspecs): Set expr and expr_const_operands fields in
10121         return value.
10122         (declspecs_add_type): Handle expressions in typeof specifiers.
10123         * c-parser.c (c_parser_declspecs): Set expr and
10124         expr_const_operands fields for declaration specifiers.
10125         (c_parser_enum_specifier): Likewise.
10126         (c_parser_struct_or_union_specifier): Likewise.
10127         (c_parser_typeof_specifier): Likewise.  Update call to
10128         groktypename.  Fold expression as needed.  Return expressions with
10129         type instead of adding statements.
10130         (c_parser_attributes): Update calls to c_parser_expr_list.
10131         (c_parser_statement_after_labels): Fold expression before passing
10132         to objc_build_throw_stmt.
10133         (c_parser_condition): Fold expression.
10134         (c_parser_asm_operands): Fold expression.
10135         (c_parser_conditional_expression): Use c_save_expr.  Update call
10136         to build_conditional_expr.
10137         (c_parser_alignof_expression): Update call to groktypename.
10138         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
10139         original_code.  Fold expression argument of va_arg.  Create
10140         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
10141         argument to va_arg.  Update calls to groktypename.  Fold array
10142         index for offsetof.  Verify that first argument to
10143         __builtin_choose_expr has integer type.
10144         (c_parser_postfix_expression_after_paren_type): Update calls to
10145         groktypename and build_compound_literal.  Handle expressions with
10146         side effects in type name.
10147         (c_parser_postfix_expression_after_primary): Update call to
10148         c_parser_expr_list.  Set original_code for calls to
10149         __builtin_constant_p.
10150         (c_parser_expr_list): Take extra parameter fold_p.  Fold
10151         expressions if requested.
10152         (c_parser_objc_type_name): Update call to groktypename.
10153         (c_parser_objc_synchronized_statement): Fold expression.
10154         (c_parser_objc_receiver): Fold expression.
10155         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
10156         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
10157         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
10158         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
10159         (struct c_typespec): Add elements expr and expr_const_operands.
10160         (struct c_declspecs): Add elements expr and expr_const_operands.
10161         (groktypename, build_conditional_expr, build_compound_literal):
10162         Update prototypes.
10163         (in_late_binary_op): Declare.
10164         * c-typeck.c (note_integer_operands): New function.
10165         (in_late_binary_op): New variable.
10166         (decl_constant_value_for_broken_optimization): Move to c-common.c
10167         and rename to decl_constant_value_for_optimization.
10168         (default_function_array_conversion): Do not strip nops.
10169         (default_conversion): Do not call
10170         decl_constant_value_for_broken_optimization.
10171         (build_array_ref): Do not fold result.
10172         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
10173         result when operand is a VLA.
10174         (c_expr_sizeof_type): Update call to groktypename.  Handle
10175         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
10176         result when operand names a VLA type.
10177         (build_function_call): Update call to build_compound_literal.
10178         Only fold result for calls to __builtin_* functions.  Strip
10179         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
10180         the function designator.
10181         (convert_arguments): Fold arguments.  Update call to
10182         convert_for_assignment.
10183         (build_unary_op): Handle increment and decrement of
10184         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
10185         decrement earlier.  Fold operand of increment and decrement.
10186         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
10187         built for integer operand.  Wrap returns that are INTEGER_CSTs
10188         without being integer constant expressions or that have integer
10189         constant operands without being INTEGER_CSTs.
10190         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
10191         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
10192         result is an integer constant expression or can be used in
10193         unevaluated parts of one and avoid folding and wrap as
10194         appropriate.  Fold operands before possibly doing -Wsign-compare
10195         warnings.
10196         (build_compound_expr): Wrap result for C99 if operands can be used
10197         in integer constant expressions.
10198         (build_c_cast): Update call to digest_init.  Do not ignore
10199         overflow from casting floating-point constants to integers.  Wrap
10200         results that could be confused with integer constant expressions,
10201         null pointer constants or floating-point constants.
10202         (c_cast_expr): Update call to groktypename.  Handle expressions
10203         included in type name.
10204         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
10205         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
10206         Update calls to convert_for_assignment.
10207         (convert_for_assignment): Take new parameter
10208         null_pointer_constant.  Do not strip nops or call
10209         decl_constant_value_for_broken_optimization.  Set
10210         in_late_binary_op for conversions to boolean.
10211         (store_init_value): Update call to digest_init.
10212         (digest_init): Take new parameter null_pointer_constant.  Do not
10213         call decl_constant_value_for_broken_optimization.  pedwarn for
10214         initializers not constant expressions.  Update calls to
10215         convert_for_assignment.
10216         (constructor_nonconst): New.
10217         (struct constructor_stack): Add nonconst element.
10218         (really_start_incremental_init, push_init_level, pop_init_level):
10219         Handle constructor_nonconst and nonconst element.
10220         (set_init_index): Call constant_expression_warning for array
10221         designators.
10222         (output_init_element): Fold value.  Set constructor_nonconst as
10223         applicable.  pedwarn for initializers not constant expressions.
10224         Update call to digest_init.  Call constant_expression_warning
10225         where constant initializers are required.
10226         (process_init_element): Use c_save_expr.
10227         (c_finish_goto_ptr): Fold expression.
10228         (c_finish_return): Fold return value.  Update call to
10229         convert_for_assignment.
10230         (c_start_case): Fold switch expression.
10231         (c_process_expr_stmt): Fold expression.
10232         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
10233         ensure statement expression is not evaluated in constant expression.
10234         (build_binary_op): Track whether results are integer constant
10235         expressions or may occur in such, disable folding and wrap results
10236         as applicable.  Fold operands for -Wsign-compare warnings unless
10237         in_late_binary_op.
10238         (c_objc_common_truthvalue_conversion): Handle results folded to
10239         integer constants that are not integer constant expressions.
10240         * doc/extend.texi: Document when typeof operands are evaluated,
10241         that condition of __builtin_choose_expr is an integer constant
10242         expression, and more about use of __builtin_constant_p in
10243         initializers.
10244
10245 2009-03-29  Richard Guenther  <rguenther@suse.de>
10246
10247         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
10248         propagate addresses of array references.
10249
10250 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
10251
10252         * regmove.c (perhaps_ends_bb_p): Remove.
10253         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
10254         from INSN and check that the main loop stays within that basic block.
10255         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
10256         (regmove_forward_pass): Split out from regmove_optimize.  Use
10257         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
10258         (regmove_backward_pass): Split out from regmove_optimize.  Use
10259         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
10260         (regmove_optimize): Simplify.
10261
10262 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
10263
10264         PR target/39545
10265         * config/i386/i386.c (classify_argument): Ignore flexible array
10266         member in struct and warn ABI change.
10267
10268 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
10269
10270         * config/i386/i386-protos.h (ix86_agi_dependent): New.
10271
10272         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
10273         (ix86_adjust_cost): Updated.
10274
10275 2009-03-29  Jan Hubicka  <jh@suse.cz>
10276
10277         PR middle-end/28850
10278         * tree-pass.h (pass_cleanup_eh): New function.
10279         (remove_unreachable_regions): Break code handling RTL
10280         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
10281         that can not be reached by runtime.
10282         (can_be_reached_by_runtime): New function.
10283         (label_to_region_map): New function.
10284         (num_eh_regions): New function.
10285         (rtl_remove_unreachable_regions): New function.
10286         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
10287         (remove_eh_region): New function.
10288         * except.h: Include sbitmap and vecprim.
10289         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
10290         num_eh_regions): Declare.
10291         * passes.c (init_optimization_passes): Schedule cleanup_eh.
10292         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
10293         * tree-eh.c (tree_remove_unreachable_handlers): New function.
10294         (tree_empty_eh_handler_p): New function.
10295         (cleanup_empty_eh): New function.
10296         (cleanup_eh): New function.
10297         (pass_cleanup_eh): New function.
10298
10299 2009-03-29  Jan Hubicka  <jh@suse.cz>
10300
10301         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
10302         for removed regions.
10303
10304 2009-03-29  Jan Hubicka  <jh@suse.cz>
10305
10306         * except.c (dump_eh_tree): Dump all datastructures.
10307
10308 2009-03-29  Jan Hubicka  <jh@suse.cz>
10309
10310         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
10311         (duplicate_eh_regions_1): Likewise.
10312         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
10313         vector; call EH verification.
10314         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10315         Be ready for region being removed.
10316
10317 2009-03-29  Jan Hubicka  <jh@suse.cz>
10318
10319         * bitmap.c (bitmap_last_set_bit): New function.
10320         * bitmap.h (bitmap_last_set_bit): Declare.
10321
10322 2009-03-29  David Ayers  <ayers@fsfe.org>
10323
10324         PR objc/27377
10325         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
10326         by calling objc_compare_types and surpress warnings about
10327         incompatible C pointers that are compatible ObjC pointers.
10328
10329 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
10330
10331         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
10332         call initialize_inline_failed.
10333         (initialize_inline_failed): Move it from here ...
10334         * cgraph.c (initialize_inline_failed): ... to here.
10335         (cgraph_create_edge): Call initialize_inline_failed rather than
10336         setting inline_failed directly.
10337
10338 2009-03-29  Ben Elliston  <bje@au.ibm.com>
10339
10340         PR target/32542
10341         * sysv4.opt (msdata): Improve comment.
10342         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
10343         * sysv4.h (SVR4_ASM_SPEC): Likewise.
10344
10345 2009-03-29  Ben Elliston  <bje@au.ibm.com>
10346
10347         PR target/30451
10348         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
10349         load and store attributes.
10350
10351 2009-03-29  Ben Elliston  <bje@au.ibm.com>
10352
10353         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
10354         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
10355         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
10356         * doc/extend.texi (X86 Built-in Functions): Add index entries for
10357         __builtin_infq and __builtin_huge_valq.
10358
10359 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
10360
10361         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
10362         atmega8m1 devices.
10363         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10364         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
10365
10366 2009-03-28  Xinliang David Li  <davidxl@google.com>
10367
10368         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
10369         (do_dbg_cnt): New function.
10370
10371 2009-03-28  Jan Hubicka  <jh@suse.cz>
10372
10373         Merge from pretty-ipa:
10374
10375         2009-03-27  Jan Hubicka  <jh@suse.cz>
10376
10377         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10378         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
10379         * passes.c (function_called_by_processed_nodes_p): New.
10380         * ipa-pure-const.c (check_call): Fix handling of operands.
10381         (analyze_function): Dump debug output for skipped bodies.
10382         (local_pure_const): Use function_called_by_processed_nodes_p.
10383         * dwarf2out.c (reference_to_unused): Use output.
10384         * passes.c (do_per_function_toporder): Likewise.
10385
10386         2008-11-12  Jan Hubicka  <jh@suse.cz>
10387
10388         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
10389         * ipa-pure-const.c (funct_state_d): Add can throw field; make
10390         state_set_in_source enum
10391         (check_decl): Ignore memory tags; do not set fake looping flags;
10392         dump diagnostics.
10393         (check_operand, check_tree, check_rhs_var, check_lhs_var,
10394         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
10395         (check_call, analyze_function): Rewrite.
10396         (check_stmt): New.
10397         (add_new_function): Update call of analyze_function.
10398         (generate_summary): Add call of analyze_function.
10399         (propagate): Propagate can_throw; handle state_set_in_source correctly.
10400         (local_pure_const): New function.
10401         (pass_local_pure_const): New pass.
10402         * ipa-inline.c (inline_transform): Set after_inlining.
10403         * tree-eh.c (stmt_can_throw_external): New.
10404         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
10405         work with aliasing built.
10406         * tree-flow.h (stmt_can_throw_external): New.
10407         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
10408         and local pure/const pass in early and late optimization queue.
10409
10410 2009-03-28  Martin Jambor  <mjambor@suse.cz>
10411
10412         * fold-const.c (get_pointer_modulus_and_residue): New parameter
10413         allow_func_align.
10414         (fold_binary): Allow function decl aligment consideration is the
10415         second argument is integer constant one.
10416         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
10417         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
10418         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
10419
10420 2009-03-28  Jan Hubicka  <jh@suse.cz>
10421
10422         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
10423         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
10424         * function.h (rtl_data): Add nothrow flag.
10425         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
10426         set DECL_NOTHROW for AVAILABLE functions.
10427
10428 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
10429
10430         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
10431         following vector keyword has expansion starting with pixel or bool
10432         keyword, expand vector to __vector and pixel or bool to __pixel or
10433         __bool.
10434
10435         PR c++/39554
10436         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
10437         warn_if_disallowed_function_p): Removed.
10438         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
10439         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
10440         warning_if_disallowed_function_p.
10441         * flags.h (warn_if_disallowed_function_p,
10442         warn_disallowed_functions): Removed.
10443         * common.opt (Wdisallowed-function-list=): Removed.
10444         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
10445
10446 2009-03-28  Richard Guenther  <rguenther@suse.de>
10447
10448         PR tree-optimization/38723
10449         * tree-ssa-pre.c (compute_avail): Add all default definitions to
10450         the entry block.
10451
10452 2009-03-28  Jan Hubicka  <jh@suse.cz>
10453
10454         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
10455         test introduced by my previous patch.
10456
10457 2009-03-28  Richard Guenther  <rguenther@suse.de>
10458
10459         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
10460         the PHIs value undefined.
10461
10462 2009-03-28  Jan Hubicka  <jh@suse.cz>
10463
10464         * tree-pass.h (pass_fixup_cfg): New pass.
10465         * ipa-inline.c (inline_transform): Set
10466         always_inline_functions_inlined/after_inlining.
10467         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
10468         (pass_fixup_cfg): New pass.
10469         * passes.c (init_optimization_passes): Add fixup_cfg.
10470
10471 2009-03-28  Richard Guenther  <rguenther@suse.de>
10472
10473         PR tree-optimization/38458
10474         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
10475         argument use the arguments copy-of value.
10476
10477 2009-03-28  Richard Guenther  <rguenther@suse.de>
10478
10479         PR tree-optimization/38180
10480         * tree-ssa-ccp.c (get_default_value): Simplify.
10481         (likely_value): Likewise.
10482         (surely_varying_stmt_p): Properly handle VOP case.
10483         (ccp_initialize): Likewise.
10484         (ccp_fold): Handle propagating through *&.
10485         (fold_const_aggregate_ref): Also handle decls.
10486
10487 2009-03-28  Jan Hubicka  <jh@suse.cz>
10488
10489         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10490         * cgraph.h (cgraph_node): Likewise.
10491         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
10492         (cgraph_reset_node): Use process flag.
10493         (cgraph_mark_functions_to_output): Likewise.
10494         (cgraph_expand_function): Likewise.
10495         (cgraph_expand_all_functions): Likewise.
10496         (cgraph_output_in_order): Likewise.
10497         * dwarf2out.c (reference_to_unused): Likewise.
10498         * passes.c do_per_function_toporder): Likewise.
10499
10500 2009-03-28  Jan Hubicka  <jh@suse.cz>
10501
10502         Bring from lto-branch:
10503
10504         2008-09-03  Doug Kwan  <dougkwan@google.com>
10505
10506         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
10507         enums instead of reason strings.
10508         * cgraph.c (cgraph_create_edge): Same.
10509         (cgraph_inline_failed_string): New function.
10510         * cgraph.h (cgraph_inline_failed_t): New enum type.
10511         (cgraph_inline_failed_string): New prototype.
10512         (struct cgraph_edge): Change type of INLINED_FAILED from constant
10513         char pointer to cgraph_inline_failed_t.
10514         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
10515         (cgraph_default_inline_p): Ditto.
10516         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
10517         to cgraph_inline_failed_t pointer.
10518         * cif-code.def: New file.
10519         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
10520         reason string.
10521         (cgraph_check_inline_limits): Change type of REASON to pointer to
10522         cgraph_inline_failed_t.  Replace reason strings with enums.
10523         (cgraph_default_inline_p): Ditto.
10524         (cgraph_recursive_inlining_p): Ditto.
10525         (update_caller_keys): Change type of FAILED_REASON to
10526         cgraph_inline_failed_t.
10527         (cgraph_set_inline_failed): Change type of REASON to pointer to
10528         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
10529         convert enums to strings for text output.
10530         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
10531         to be of type cgraph_inline_failed_t.  Replace reason strings with
10532         enums.  Call cgraph_inline_failed_string to covert enums
10533         to strings for text output.
10534         (cgraph_decide_inlining): Replace reason strings with enums.
10535         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
10536         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
10537         for text output.
10538         * tree-inline.c (expand_call_inline): Change type of REASON
10539         to cgraph_inline_failed_t.  Replace reason strings with enums.
10540         Call cgraph_inline_failed_string for text output.
10541         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
10542         (cgraph.o): Ditto.
10543
10544 2009-03-28  Jan Hubicka  <jh@suse.cz>
10545
10546         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
10547         cgraph_clone_node): Remove master clone handling.
10548         (cgraph_is_master_clone, cgraph_master_clone): Remove.
10549         * cgraph.h (master_clone): Remove.
10550         (cgraph_is_master_clone, cgraph_master_clone): Remove.
10551         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
10552         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
10553
10554 2009-03-28  Jan Hubicka  <jh@suse.cz>
10555
10556         * cgraph.c (cgraph_function_body_availability): Functions declared
10557         inline are always safe to assume that it is not going to be replaced.
10558
10559 2009-03-28  Richard Guenther  <rguenther@suse.de>
10560
10561         PR tree-optimization/38513
10562         * tree-ssa-pre.c (eliminate): Remove redundant stores.
10563         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10564         EXC_PTR_EXPR and FILTER_EXPR.
10565         (get_ref_from_reference_ops): Likewise.
10566
10567 2009-03-28  Richard Guenther  <rguenther@suse.de>
10568
10569         PR tree-optimization/38968
10570         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
10571         Use FLOOR_MOD_EXPR to compute misalignment.
10572
10573 2009-03-28  Richard Guenther  <rguenther@suse.de>
10574
10575         PR tree-optimization/37795
10576         * tree.h (combine_comparisons): Declare.
10577         * fold-const.c (combine_comparisons): Export.
10578         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
10579         comparisons.
10580         (ifcombine_iforif): Use combine_comparisons.
10581
10582 2009-03-28  Jan Hubicka  <jh@suse.cz>
10583
10584         * tree-eh.c (inlinable_call_p): New function.
10585         (make_eh_edges): Use it.
10586         (verify_eh_edges): Use it.
10587         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
10588         * except.c (reachable_next_level): Add inlinable_function argument
10589         (sjlj_find_directly_reachable_regions): Update.
10590         (add_reachable_handler): Do not set saw_any_handlers.
10591         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
10592         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10593         Add new inlinable call parameter.
10594         (can_throw_internal, can_throw_external): Update.
10595         * except.h (can_throw_internal_1, can_throw_external_1,
10596         foreach_reachable_handler): Update declaration.
10597
10598 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
10599
10600         * config/arm/t-arm-coff, config/h8300/coff.h,
10601         config/i386/i386-aout.h, config/i386/i386-coff.h,
10602         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
10603         config/pdp11/2bsd.h, config/rs6000/aix41.h,
10604         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
10605         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
10606         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
10607         sys-types.h: Remove.
10608         * Makefile.in: Remove protoize and fixproto support and references
10609         in comments.
10610         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
10611         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
10612         Remove.
10613         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
10614         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
10615         unprotoize$(exeext).
10616         (rest.encap): Don't depend on $(STMP_FIXPROTO)
10617         (.PHONY): Don't depend on proto.
10618         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
10619         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
10620         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
10621         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
10622         build/gen-protos.o, build/scan.o, xsys-protos.h,
10623         build/fix-header$(build_exeext), build/fix-header.o,
10624         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
10625         stmp-install-fixproto): Remove.
10626         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
10627         SYSCALLS.c or fixproto files.
10628         (install-common): Don't install protoize.
10629         (install-headers-tar, install-headers-cpio, install-headers-cp):
10630         Don't depend on $(STMP_FIXPROTO).
10631         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
10632         install fixproto files or write out fixproto settings.
10633         (uninstall): Don't uninstall protoize.
10634         * config.gcc (use_fixproto): Remove.
10635         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
10636         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
10637         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
10638         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
10639         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
10640         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
10641         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
10642         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
10643         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
10644         * config/t-vxworks (STMP_FIXPROTO): Remove.
10645         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
10646         STMP_FIXPROTO): Remove.
10647         * config.in, configure: Regenerate.
10648         * crtstuff.c (gid_t, uid_t): Don't undefine.
10649         * doc/install.texi: Change m68k-coff to m68k-elf in example.
10650         (arm-*-coff, arm-*-aout: Remove target entries.
10651         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
10652         Remove mention of AIX 4.1.
10653         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
10654         * doc/invoke.texi (Running Protoize): Remove.
10655         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
10656         (Protoize Caveats): Remove.
10657         * tsystem.h: Update comments on headers assumed to exist.
10658
10659 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
10660
10661         * genautomata.c: Add a new year to the copyright.  Add a new
10662         reference.
10663         (struct insn_reserv_decl): Add comments for member bypass_list.
10664         (find_bypass): Remove.
10665         (insert_bypass): New.
10666         (process_decls): Use insert_bypass.
10667         (output_internal_insn_latency_func): Output all bypasses with the
10668         same input insn in one switch case.
10669
10670         * rtl.def (define_bypass): Describe bypass choice.
10671         * doc/md.texi (define_bypass): Ditto.
10672
10673 2009-03-27  Richard Guenther  <rguenther@suse.de>
10674
10675         * gimplify.c (mark_addressable): Export.
10676         * tree-flow.h (mark_addressable): Declare.
10677         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
10678         * tree-ssa.c (verify_phi_args): Verify that address taken
10679         variables have TREE_ADDRESSABLE set.
10680
10681 2009-03-27  Richard Guenther  <rguenther@suse.de>
10682
10683         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
10684         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
10685         Do not mark decls TREE_ADDRESSABLE.
10686         (build_fold_addr_expr): Adjust.
10687         (fold_addr_expr): Remove.
10688         (fold_unary): Use build_fold_addr_expr.
10689         (fold_comparison): Likewise.
10690         (split_address_to_core_and_offset): Likewise.
10691         * coverage.c (tree_coverage_counter_addr): Mark the array decl
10692         TREE_ADDRESSABLE.
10693         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
10694         (gimplify_modify_expr_to_memcpy): Mark source and destination
10695         addressable.
10696         * omp-low.c (create_omp_child_function): Mark the object decl
10697         TREE_ADDRESSABLE.
10698         (lower_rec_input_clauses): Mark the var we take the address of
10699         TREE_ADDRESSABLE.
10700         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
10701
10702 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10703
10704         PR middle-end/39315
10705         * cfgexpand.c (expand_one_stack_var_at): Change alignment
10706         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
10707
10708 2009-03-27  Richard Guenther  <rguenther@suse.de>
10709
10710         PR tree-optimization/39120
10711         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
10712         constraints.
10713         (handle_lhs_call): Process return constraints.  Add escape
10714         constraints if necessary.
10715         (handle_const_call): Fill out return constraints.  Make nested
10716         case more precise.  Avoid consttmp if possible.
10717         (handle_pure_call): Fill out return constraints.  Avoid
10718         callused if possible.
10719         (find_func_aliases): Simplify call handling.
10720
10721 2009-03-27  Richard Guenther  <rguenther@suse.de>
10722
10723         PR tree-optimization/39120
10724         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
10725         as a representative.
10726         (solve_graph): Do propagate CALLUSED.
10727         (handle_pure_call): Use a scalar constraint from CALLUSED for
10728         the return value.
10729         (find_what_p_points_to): CALLUSED shall not appear in poins-to
10730         solutions.
10731
10732 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10733
10734         PR c/39323
10735         * c-common.c (handle_aligned_attribute): Properly check alignment
10736         overflow.  Use (1U << i) instead of (1 << i).
10737
10738         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
10739
10740         * expr.h (get_mem_align_offset): Updated.
10741
10742         * tree.h (tree_decl_common): Change align to "unsigned int" and
10743         move it before pointer_alias_set.
10744
10745 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10746             Jakub Jelinek  <jakub@redhat.com>
10747
10748         PR target/38034
10749         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
10750         gr_register_operand with gr_reg_or_0_operand.
10751         (cmpxchg_rel_di): Likewise.
10752         (sync_lock_test_and_set<mode>): Likewise.
10753
10754 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10755
10756         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
10757         (true_regnum): Likewise.
10758
10759         * rtlanal.c (subreg_info): Moved to ...
10760         * rtl.h (subreg_info): Here.  New.
10761         (subreg_get_info): New.
10762
10763         * rtlanal.c (subreg_get_info): Make it extern.
10764
10765 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10766
10767         PR target/39472
10768         * config/i386/i386.c (ix86_abi): New.
10769         (override_options): Handle -mabi=.
10770         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
10771         (ix86_call_abi_override): Likewise.
10772         (init_cumulative_args): Likewise.
10773         (function_arg_advance): Likewise.
10774         (function_arg_64): Likewise.
10775         (function_arg): Likewise.
10776         (ix86_pass_by_reference): Likewise.
10777         (ix86_function_value_regno_p): Likewise.
10778         (ix86_build_builtin_va_list_abi): Likewise.
10779         (setup_incoming_varargs_64): Likewise.
10780         (is_va_list_char_pointer): Likewise.
10781         (ix86_init_machine_status): Likewise.
10782         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
10783         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
10784         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
10785         (ix86_function_abi): Make it static and return enum calling_abi.
10786         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
10787         with ix86_abi.
10788         (ix86_fn_abi_va_list): Updated.
10789
10790         * config/i386/i386.h (ix86_abi): New.
10791         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
10792         (CONDITIONAL_REGISTER_USAGE): Likewise.
10793         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
10794         (machine_function): Likewise.
10795
10796         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
10797         with ix86_abi.
10798         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
10799         (STACK_BOUNDARY): Likewise.
10800         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
10801
10802         * config/i386/i386.opt (mabi=): New.
10803
10804         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
10805         return enum calling_abi.
10806         (ix86_function_type_abi): Likewise.
10807         (ix86_function_abi): Removed.
10808
10809         * doc/invoke.texi: Document -mabi= option for x86.
10810
10811 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10812
10813         * builtins.c (real_dconstp): Delete.
10814         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
10815
10816 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
10817             Jakub Jelinek  <jakub@redhat.com>
10818
10819         PR debug/37959
10820         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
10821         (gen_subprogram_die): When a function is explicit, generate the
10822         DW_AT_explicit attribute.
10823         * langhooks.h (struct lang_hooks_for_decls): Add
10824         function_decl_explicit_p langhook.
10825         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
10826         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
10827
10828 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
10829
10830         * builtins.c (fold_builtin_memory_op): Optimize memmove
10831         into memcpy if we can prove source and destination don't overlap.
10832
10833         * tree-inline.c: Include gt-tree-inline.h.
10834         (clone_fn_id_num): New variable.
10835         (clone_function_name): New function.
10836         (tree_function_versioning): Use it.
10837         * Makefile.in (GTFILES): Add tree-inline.c.
10838
10839 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
10840
10841         * BASE-VER: Change to 4.5.0.
10842
10843 2009-03-27  Xinliang David Li  <davidxl@google.com>
10844
10845         PR tree-optimization/39557
10846         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
10847
10848 2009-03-27  Xinliang David Li  <davidxl@google.com>
10849
10850         PR tree-optimization/39548
10851         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
10852         candidate check.
10853
10854 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10855
10856         * c-common.c (pointer_int_sum): Use %wd on return from
10857         tree_low_cst.
10858
10859 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10860
10861         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
10862         on return from tree_low_cst.
10863
10864 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10865
10866         PR c++/36799
10867         * ginclude/stdarg.h (va_copy): Define also for
10868         __GXX_EXPERIMENTAL_CXX0X__.
10869
10870 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10871
10872         PR c++/35652
10873         * builtins.h (c_strlen): Do not warn here.
10874         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
10875         * c-common.c (pointer_int_sum): Take an explicit location.
10876         Warn about offsets out of bounds.
10877         * c-common.h (pointer_int_sum): Adjust declaration.
10878
10879 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10880
10881         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
10882         markup glitch.
10883
10884 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
10885
10886         PR c++/39554
10887         * opts.c (warn_if_disallowed_function_p): Don't assume
10888         get_callee_fndecl must return non-NULL.
10889
10890 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
10891
10892         PR rtl-optimization/39522
10893         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
10894         when reg_reloaded_valid is set.
10895
10896 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10897
10898         * config/spu/divv2df3.c: New file.
10899         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
10900         (DPBIT_FUNCS): Filter out _div_df.
10901
10902 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
10903
10904         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
10905         a jump insn, count that jump in the distance to the loop start.
10906
10907 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
10908
10909         PR target/39523
10910         * config/sh/sh.c (calc_live_regs): Fix condition for global
10911         registers except PIC_OFFSET_TABLE_REGNUM.
10912
10913 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
10914
10915         PR/39518
10916         * doc/invoke.texi (-mconsole): New.
10917         (-mcygwin): New.
10918         (-mno-cygwin): New.
10919         (-mdll): New.
10920         (-mnop-fun-dllimport): New.
10921         (-mthread): New.
10922         (-mwin32): New.
10923         (-mwindows): New.
10924         (sub section "i386 and x86-64 Windows Options"): New.
10925
10926 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
10927
10928         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
10929         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
10930
10931 2009-03-25  Richard Guenther  <rguenther@suse.de>
10932
10933         PR middle-end/39497
10934         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
10935         of -Wno-error.
10936
10937 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
10938
10939         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
10940         neither of haifa/selective schedulers are working.
10941
10942 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10943
10944         * doc/invoke.texi (Debugging Options): Fix description of
10945         -fno-merge-debug-strings.
10946
10947 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
10948
10949         * config/cris/libgcc.ver: New version-script.
10950         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
10951
10952         * configure.ac <GAS features, nop mnemonic>: Add pattern
10953         crisv32-*-* for "nop".
10954         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
10955         * configure: Regenerate.
10956
10957 2009-03-24  Ira Rosen  <irar@il.ibm.com>
10958
10959         PR tree-optimization/39529
10960         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
10961         mark_sym_for_renaming for the tag copied to the new vector
10962         pointer.
10963
10964 2009-03-24  Arthur Loiret  <aloiret@debian.org>
10965
10966         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
10967         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
10968         EXTRA_SPEC_FUNCTIONS.
10969         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
10970         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
10971         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
10972         -march and -mtune options.
10973
10974 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
10975
10976         * config/m68k/t-rtems: Add m5329 multilib.
10977
10978 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
10979             Jakub Jelinek  <jakub@redhat.com>
10980
10981         PR debug/39524
10982         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
10983         nodes.
10984
10985 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
10986
10987         PR c/39495
10988         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
10989         instead of c_parser_expression_conv, if original_code isn't one of the
10990         4 allowed comparison codes, fail.
10991
10992 2009-03-23  Richard Guenther  <rguenther@suse.de>
10993
10994         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
10995         * tree.h (struct tree_type): Likewise.
10996         * reload.h (struct insn_chain): Likewise.
10997         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
10998         * function.h (struct function): Likewise.
10999         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
11000
11001 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
11002
11003         PR tree-optimization/39516
11004         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
11005
11006 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
11007
11008         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
11009         should be set true if BITS_PER_WORD of target is bigger than 32
11010
11011 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
11012
11013         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
11014         Translate -B-options to -rpath-link.  Correct existing
11015         rpath-link and conditionalize on !nostdlib.
11016
11017 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11018
11019         * doc/extend.texi (Function Attributes, Variable Attributes):
11020         Fix typos.
11021         * doc/invoke.texi (Debugging Options, Optimize Options)
11022         (i386 and x86-64 Options, MCore Options): Likewise.
11023
11024 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
11025
11026         PR debug/37890
11027         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
11028         it for block local namespace aliases.
11029         (gen_decl_die): Pass context_die to gen_namespace_die.
11030
11031 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
11032
11033         PR c/39495
11034         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
11035         minimum or maximum value.
11036
11037 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
11038
11039         * reginfo.c (globalize_reg): Recompute derived reg sets.
11040
11041 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
11042
11043         PR target/39063
11044         * libgcc2.c (mprotect): Do not use signed arguments for
11045         VirtualProtect, use DWORD arguments.  Also fix the 'may
11046         be used uninitialized' warning for the np variable.
11047
11048 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
11049
11050         PR target/39496
11051         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
11052         functions using regparm calling conventions when not optimizing.
11053         (ix86_function_sseregparm): Similarly for sseregparm calling
11054         conventions.
11055
11056 2009-03-19  Li Feng  <nemokingdom@gmail.com>
11057
11058         PR middle-end/39500
11059         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
11060         dependence if the first conflict is after niter iterations.
11061
11062 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
11063
11064         PR middle-end/38609
11065         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
11066         functions with dynamic stack-pointer adjustments.
11067
11068 2009-03-19  Ben Elliston  <bje@au.ibm.com>
11069
11070         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
11071         option; change to -msdata=data.
11072
11073 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11074
11075         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
11076         and -fopenmp.
11077
11078 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
11079
11080         PR target/35180
11081         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
11082
11083 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
11084
11085         * doc/invoke.texi (Code Gen Options): Expand discussion of
11086         -fno-common.
11087
11088 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
11089
11090         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
11091         * matrix-reorg.c (struct matrix_info): Likewise.
11092         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
11093         * rtl.h (struct mem_attrs): Likewise.
11094         * df.h (struct df): Likewise.
11095         * tree-data-ref.h (struct data_dependence_relation): Likewise.
11096         * ira-int.h (struct ira_allocno): Likewise.
11097         * df-scan.c (struct df_collection_rec): Likewise.
11098         * ira.c (struct equivalence): Likewise.
11099         * function.c (struct temp_slot): Likewise.
11100         * cfgloop.h (struct loop): Likewise.
11101
11102         PR debug/39485
11103         * function.c (use_register_for_decl): When not optimizing, disregard
11104         register keyword for variables with types containing methods.
11105
11106 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
11107
11108         PR middle-end/39447
11109         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
11110         (is_simple_operand): Call contains_component_ref_p before calling data
11111         reference analysis that would fail on COMPONENT_REFs.
11112
11113         * tree-vrp.c (search_for_addr_array): Fix formatting.
11114
11115 2009-03-18  Richard Guenther  <rguenther@suse.de>
11116
11117         * tree-vect-transform.c (vect_loop_versioning): Fold the
11118         generated comparisons.
11119         * tree-vectorizer.c (set_prologue_iterations): Likewise.
11120         (slpeel_tree_peel_loop_to_edge): Likewise.
11121
11122 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11123
11124         PR middle-end/37805
11125         * opts.c (print_specific_help): In addition to `undocumented',
11126         accept `separate' and `joined' flags if passed alone.  Describe
11127         output by the first matched one of those.
11128         (common_handle_option): Skip over empty strings.
11129         * gcc.c (display_help): Fix help string for `--help='.
11130         * doc/invoke.texi (Option Summary, Overall Options): With
11131         `--help=', classes and qualifiers can both be repeated, but
11132         only the latter can be negated.  One should not pass only
11133         negated qualifiers.  Fix markup and examples.
11134
11135         Revert
11136         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
11137         PR middle-end/37805
11138         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
11139         and -fhelp=separate.
11140
11141 2009-03-17  Jing Yu  <jingyu@google.com>
11142
11143         PR middle-end/39378
11144         * function.h (struct rtl_data): Move is_thunk from here...
11145         (struct function): ...to here.
11146         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
11147         * varasm.c (assemble_start_function): Change is_thunk from crtl to
11148         cfun.
11149         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
11150         cfun.
11151         (alpha_does_function_need_gp, alpha_start_function): Likewise.
11152         (alpha_output_function_end_prologue): Likewise.
11153         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
11154         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
11155         (rs6000_output_function_epilogue): Likewise.
11156         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
11157
11158 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
11159
11160         PR target/39482
11161         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
11162         from different units in a single alternative.
11163         (*truncdfsf_i387): Ditto.
11164         (*truncxfsf2_mixed): Ditto.
11165         (*truncxfdf2_mixed): Ditto.
11166
11167 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
11168
11169         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
11170         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
11171
11172         PR debug/39474
11173         * tree-ssa-live.c (remove_unused_locals): Don't remove local
11174         unused non-artificial variables when not optimizing.
11175
11176         PR debug/39471
11177         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
11178         DW_TAG_imported_module even if decl is IMPORTED_DECL with
11179         NAMESPACE_DECL in its DECL_INITIAL.
11180
11181         PR middle-end/39443
11182         * optabs.c (set_user_assembler_libfunc): New function.
11183         * expr.h (set_user_assembler_libfunc): New prototype.
11184         * c-common.c: Include libfuncs.h.
11185         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
11186         for memcmp, memset, memcpy, memmove and abort.
11187         * Makefile.in (c-common.o): Depend on libfuncs.h.
11188
11189         PR debug/39412
11190         * dwarf2out.c (gen_inlined_enumeration_type_die,
11191         gen_inlined_structure_type_die, gen_inlined_union_type_die,
11192         gen_tagged_type_instantiation_die): Removed.
11193         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
11194         do nothing.
11195
11196 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
11197
11198         PR testsuite/38526
11199         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11200         its use.
11201         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11202         (check-parallel-%): Ditto.
11203         (check-consistency): Ditto.
11204
11205 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
11206
11207         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11208         local variable rhs by NULL_TREE.
11209
11210 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11211
11212         PR target/39477
11213         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
11214
11215 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11216
11217         PR target/39476
11218         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
11219
11220 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11221
11222         PR target/39473
11223         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11224         for ms->sysv ABI calls only in 64bit mode.
11225
11226         * config/i386/i386.md (untyped_call): Support 32bit.
11227
11228 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
11229
11230         * doc/extend.texi: Replace x86_65 with x86_64.
11231
11232 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
11233
11234         PR tree-optimization/39455
11235         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
11236         mismatches for POINTER_TYPE_P (type).
11237         (number_of_iterations_le): Likewise.
11238
11239 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
11240
11241         * config/picochip/picochip.c: Removed profiling support.
11242         * config/picochip/picochip.md: Removed profiling instruction.
11243         * config/picochip/picochip.h: Removed profiling builtin.
11244
11245 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
11246
11247         * doc/install.texi (--with-host-libstdcxx): Document.
11248
11249 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
11250
11251         PR target/34299
11252         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
11253         generate a warning if the function name does not begin with
11254         "__vector" and the function has either the 'signal' or 'interrupt'
11255         attribute, from here to ...
11256         (avr_declare_function_name): ...here. New function.
11257         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
11258         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
11259
11260 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
11261
11262         PR bootstrap/39454
11263         * cse.c (fold_rtx): Don't modify original const_arg1 when
11264         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
11265         separate variable instead.
11266         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
11267         from out of range shift counts.
11268         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
11269
11270 2009-03-13  Catherine Moore  <clm@codesourcery.com>
11271
11272         * config/i386/x-mingw32 (host-mingw32.o): Replace
11273         diagnostic.h with $(DIAGNOSTIC_H).
11274
11275 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
11276
11277         PR target/39431
11278         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
11279         predicate.
11280         * config/i386/sync.md (sync_compare_and_swap<mode>,
11281         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
11282         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
11283         into a register.
11284         (sync_double_compare_and_swapdi_pic,
11285         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
11286         cmpxchg8b_pic_memory_operand instead of just memory_operand.
11287
11288 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
11289
11290         PR target/39445
11291         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
11292
11293 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
11294
11295         PR target/39327
11296         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11297         (avx_addsubv4df3): Likewise.
11298         (*avx_addsubv4sf3): Likewise.
11299         (sse3_addsubv4sf3): Likewise.
11300
11301 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
11302
11303         PR target/38824
11304         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
11305
11306 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
11307
11308         PR debug/39432
11309         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
11310         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11311         registers for allocnos created from user-defined variables.
11312
11313 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11314
11315         PR target/39181
11316         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
11317         of non-integer mode as well.
11318
11319 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
11320
11321         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
11322         for functions for which the parameter types are unknown.
11323
11324 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
11325
11326         PR target/39137
11327         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
11328         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
11329         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
11330         * config/i386/i386.c (ix86_local_alignment): For
11331         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
11332         long long variables on the stack to avoid dynamic realignment.
11333         Allow the first argument to be a decl rather than type.
11334         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
11335
11336 2009-03-11  Nick Clifton  <nickc@redhat.com>
11337
11338         PR target/5362
11339         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
11340         options.
11341         Add description to mno-lsim option.
11342         * config/mcore/mcore.h: Remove comment about deprecated m4align
11343         option.
11344         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
11345         * doc/invoke.texi: Add description of mno-lsim and
11346         mstack-increment options.
11347
11348         * config/fr30/fr30.opt: Document the -mno-lsim option.
11349         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
11350         and -mno-lsim options.
11351
11352 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11353
11354         * fold-const.c (fold_comparison): Only call fold_inf_compare
11355         if the mode supports infinities.
11356
11357 2009-03-11  Jason Merrill  <jason@redhat.com>
11358
11359         PR debug/39086
11360         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
11361         end already did.  Notice GIMPLE_CALL modifications of the result.
11362         Don't copy debug information from an ignored decl or a decl from
11363         another function.
11364
11365 2009-03-10  Richard Guenther  <rguenther@suse.de>
11366             Nathan Froyd  <froydnj@codesourcery.com>
11367
11368         PR middle-end/37850
11369         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
11370         (__divMODE3): Likewise.
11371
11372 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
11373
11374         PR tree-optimization/39394
11375         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
11376         DECL_SIZE_UNIT of variable length FIELD_DECLs.
11377
11378 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11379
11380         * recog.c (verfiy_changes): Disallow renaming of hard regs in
11381         inline asms for register asm ("") declarations.
11382
11383 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
11384
11385         * fold-const.c (fold_unary): Fix comment.
11386
11387 2009-03-07  Jan Hubicka  <jh@suse.cz>
11388
11389         PR target/39361
11390         * tree-inline.c (setup_one_parameter): Do replacement of const
11391         argument by constant in SSA form.
11392
11393 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11394
11395         PR middle-end/38028
11396         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
11397         determine alignment passed to assign_stack_local.
11398         (assign_parms_unsplit_complex): Likewise.
11399         * except.c (sjlj_build_landing_pads): Likewise.
11400
11401 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
11402
11403         PR middle-end/39360
11404         * tree-flow.h (add_referenced_var): Return bool instead of void.
11405         * tree-dfa.c (add_referenced_var): Return result of
11406         referenced_var_check_and_insert call.
11407         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
11408         of referenced_var_check_and_insert.
11409
11410         PR debug/39372
11411         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
11412         (gen_variable_die): Emit DW_AT_location on abstract static variable's
11413         DIE, don't emit it if abstract origin already has it.
11414         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
11415         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
11416
11417 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11418
11419         * genpreds.c (needs_variable): Fix parentheses at variable name
11420         detection.
11421         (write_tm_constrs_h): Indent generated code.
11422
11423 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11424
11425         * doc/extend.texi (Function Attributes): Add documentation
11426         for isr attributes.
11427
11428 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
11429
11430         PR debug/39387
11431         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
11432         take locus from its DECL_SOURCE_LOCATION instead of input_location.
11433
11434 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
11435
11436         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
11437         the loop as bad.
11438
11439 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
11440
11441         PR debug/39379
11442         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
11443         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
11444
11445 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
11446
11447         * config/i386/i386.md (R8_REG, R9_REG): New constants.
11448         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
11449         constants instead of magic numbers.
11450         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
11451         (QI_REG_P): Ditto.
11452         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
11453         (x86_64_ms_abi_int_parameter_registers): Ditto.
11454         (x86_64_int_return_registers): Ditto.
11455         (ix86_maybe_switch_abi): Ditto.
11456         (ix86_expand_call): Ditto for clobbered_registers array.
11457         (ix86_hard_regno_mode_ok): Ditto.
11458         (x86_extended_QIreg_mentioned_p): Ditto.
11459
11460 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
11461
11462         PR tree-optimization/39349
11463         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
11464
11465         * combine.c (gen_lowpart_for_combine): Use omode when generating
11466         clobber.
11467
11468 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
11469
11470         PR rtl-optimization/39235
11471         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
11472
11473 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
11474
11475         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
11476
11477 2009-03-04  Richard Guenther  <rguenther@suse.de>
11478
11479         PR tree-optimization/39362
11480         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
11481         that occur in abnormal PHIs should be varying.
11482
11483 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
11484
11485         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
11486         Extend comments.
11487         (simple_iv):  Take loop as an argument instead of statement.
11488         * tree-scalar-evolution.h (simple_iv): Declaration changed.
11489         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
11490         to simple_iv.
11491         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
11492         Ditto.
11493         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
11494         * matrix-reorg.c (analyze_transpose): Ditto.
11495         * tree-data-ref.c (dr_analyze_innermost): Ditto.
11496         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
11497         * tree-predcom.c (ref_at_iteration): Ditto.
11498         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
11499
11500 2009-03-04  Richard Guenther  <rguenther@suse.de>
11501
11502         PR tree-optimization/39358
11503         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
11504         escaped_id and callused_id.
11505         (solve_graph): Likewise.
11506
11507 2009-03-04  Richard Guenther  <rguenther@suse.de>
11508
11509         PR tree-optimization/39339
11510         * tree-sra.c (try_instantiate_multiple_fields): Make it
11511         no longer ICE on the above.
11512
11513 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
11514
11515         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
11516         that fits within Pmode.
11517
11518 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
11519
11520         PR middle-end/10109
11521         * tm.texi (LIBCALL_VALUE): Update description.
11522
11523 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
11524
11525         PR middle-end/34443
11526         * doc/extend.texi (section): Update description.
11527
11528 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
11529
11530         PR middle-end/39345
11531         * tree-inline.c (remapped_type): New.
11532         (can_be_nonlocal): Call remapped_type instead of remap_type.
11533
11534 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
11535
11536         PR fortran/39354
11537         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
11538         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
11539
11540 2009-03-03  Richard Guenther  <rguenther@suse.de>
11541
11542         PR middle-end/39272
11543         * tree.c (tree_nonartificial_location): New function.
11544         * tree.h (tree_nonartificial_location): Declare.
11545         * builtins.c (expand_builtin_memory_chk): Provide location
11546         of the call location for artificial function pieces.
11547         (maybe_emit_chk_warning): Likewise.
11548         (maybe_emit_sprintf_chk_warning): Likewise.
11549         (maybe_emit_free_warning): Likewise.
11550         * expr.c (expand_expr_real_1): Likewise.
11551
11552 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
11553
11554         PR tree-optimization/39343
11555         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
11556         COMPONENT_REF t has ARRAY_TYPE.
11557
11558 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
11559
11560         PR middle-end/39335
11561         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
11562         when the type precision of the induction variable should be
11563         larger than the type precision of nit.
11564         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
11565         * graphite.c (graphite_loop_normal_form): Same.
11566         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
11567
11568 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
11569
11570         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
11571         (*call_1_rex64_ms_sysv): Use named constants instead of magic
11572         numbers to describe clobbered registers.
11573         (*call_value_0_rex64_ms_sysv): Ditto.
11574         * config/i386/mmx.md (mmx_emms): Ditto.
11575         (mmx_femms): Ditto.
11576
11577 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
11578
11579         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
11580         of ABI_64.
11581
11582 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11583
11584         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
11585         (spu_section_type_flags): New function.
11586
11587 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
11588
11589         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
11590         reg_class_contents of FLOAT_REGS into a temporary.
11591
11592 2009-03-02  Richard Guenther  <rguenther@suse.de>
11593             Ira Rosen  <irar@il.ibm.com>
11594
11595         PR tree-optimization/39318
11596         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
11597         information to the vectorized statement.
11598
11599 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
11600
11601         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
11602         variable.  Use defined names instead of magic constants for REX SSE
11603         registers.
11604
11605 2009-03-01  Richard Guenther  <rguenther@suse.de>
11606
11607         PR tree-optimization/39331
11608         * omp-low.c (lower_send_shared_vars): Do not receive new
11609         values for the reference of DECL_BY_REFERENCE parms or results.
11610
11611 2009-03-01  Jan Hubicka  <jh@suse.cz>
11612
11613         PR debug/39267
11614         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
11615         BLOCK_NONLOCALIZED_VAR): New macros.
11616         (tree_block): Add nonlocalized_vars.
11617         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
11618         gen_decl_die): Add origin argument.  Allow generation of die with
11619         origin at hand only.
11620         (gen_member_die, gen_type_die_with_usage, force_decl_die,
11621         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
11622         of gen_*.
11623         (gen_block_die): Fix checking for unused blocks.
11624         (process_scope_var): Break out from .... ; work with origins only.
11625         (decls_for_scope) ... here; process nonlocalized list.
11626         (dwarf2out_ignore_block): Look for nonlocalized vars.
11627         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
11628         vars.
11629         (dump_scope_block): Dump them.
11630         * tree-inline.c (remap_decls): Handle nonlocalized vars.
11631         (remap_block): Likewise.
11632         (can_be_nonlocal): New predicate.
11633         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
11634
11635 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11636
11637         * configure: Regenerate.
11638
11639 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11640
11641         * optc-gen.awk: No need to duplicate option flags twice.
11642         Reuse help texts for duplicate options which do not have any.
11643
11644         * gcc.c (display_help): Document --version.
11645
11646         * gcc.c (main): If print_help_list and verbose_flag, ensure
11647         driver output comes before subprocess output.
11648
11649         * optc-gen.awk: Assign all remaining fields to help string,
11650         space-separated, for multi-line help in *.opt.
11651
11652         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
11653         -Wno-pedantic-ms-format is for MinGW targets only.
11654
11655         * doc/options.texi (Option file format): Fix bad indentation,
11656         restoring dropped sentence.
11657
11658 2009-02-28  Jan Hubicka  <jh@suse.cz>
11659
11660         * tree-inline.c (tree_function_versioning): Output debug info.
11661
11662 2009-02-28  Jan Hubicka  <jh@suse.cz>
11663
11664         PR debug/39267
11665         * tree-inline.c (setup_one_parameter): Do not copy propagate
11666         arguments when not optimizing.
11667
11668 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
11669
11670         PR target/39327
11671         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11672         (avx_addsubv4df3): Likewise.
11673         (*avx_addsubv4sf3): Likewise.
11674         (sse3_addsubv4sf3): Likewise.
11675         (*avx_addsubv2df3): Likewise.
11676         (sse3_addsubv2df3): Likewise.
11677         (avx_unpckhps256): Correct item selectors.
11678         (avx_unpcklps256): Likewise.
11679         (avx_unpckhpd256): Likewise.
11680         (avx_unpcklpd256): Likewise.
11681
11682 2009-02-28  Jan Hubicka  <jh@suse.cz>
11683
11684         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
11685         static vars.
11686         (copy_arguments_for_versioning): If var is declared don't declare it.
11687         (tree_function_versioning): First setup substitutions and then copy
11688         args.
11689
11690 2009-02-27  Jan Hubicka  <jh@suse.cz>
11691
11692         PR debug/39267
11693         * cgraph.h (varpool_output_debug_info): Remove.
11694         * cgraphunit.c (varpool_output_debug_info): Remove.
11695         * dwarf2out.c (deferred_locations_struct): New struct
11696         (deferred_locations): New type.
11697         (deferred_locations_list): New static var.
11698         (deffer_location): New function.
11699         (gen_variable_die): Use it.
11700         (decls_for_scope): Output info on local static vars.
11701         (dwarf2out_finish): Process deferred locations.
11702         * varpool.c (varpool_output_debug_info): Remove.
11703
11704 2009-02-27  Jan Hubicka  <jh@suse.cz>
11705
11706         PR debug/39267
11707         * tree.h (TREE_PROTECTED): Fix comment.
11708         (BLOCK_HANDLER_BLOCK): Remove.
11709         (struct tree_block): Remove handler_block add body_block.
11710         (inlined_function_outer_scope_p): New.
11711         (is_body_block): Remove.
11712         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
11713         * dwarf2out.c (is_inlined_entry_point): Remove.
11714         (add_high_low_attributes): Use inlined_function_outer_scope_p.
11715         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
11716         code.
11717         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
11718         * gimplify.c (gimplify_expr): Gimplify body blocks.
11719         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
11720         block with multiple subblocks.
11721         (dump_scope_block): Prettier output; dump more flags and info.
11722         (dump_scope_blocks): New.
11723         (remove_unused_locals): Use dump_scope_blocks.
11724         * tree-flow.h (dump_scope_blocks): Declare.
11725         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
11726         * stmt.c (is_body_block): Remove.
11727         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
11728         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
11729
11730 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
11731
11732         PR middle-end/39308
11733         * graphite.c (graphite_loop_normal_form): Do not call
11734         number_of_iterations_exit from a gcc_assert.
11735
11736 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11737
11738         * config/s390/s390.c (s390_swap_cmp): Look for conditional
11739         jumps if COND is NULL.
11740         (find_cond_jump): New function.
11741         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
11742         * config/s390/s390.md: Remove z10_cobra attribute value.
11743
11744 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
11745
11746         * config/alpha/alpha.h (alpha_expand_mov): Return false if
11747         force_const_mem returns NULL_RTX.
11748
11749 2009-02-26  Jan Hubicka  <jh@suse.cz>
11750
11751         PR debug/39267
11752         * cgraph.h (varpool_output_debug_info): Remove.
11753         * cgraphunit.c (varpool_output_debug_info): Remove.
11754         * dwarf2out.c (deferred_locations_struct): New struct
11755         (deferred_locations): New type.
11756         (deferred_locations_list): New static var.
11757         (deffer_location): New function.
11758         (gen_variable_die): Use it.
11759         (decls_for_scope): Output info on local static vars.
11760         (dwarf2out_finish): Process deferred locations.
11761         * varpool.c (varpool_output_debug_info): Remove.
11762
11763 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
11764
11765         PR rtl-optimization/39241
11766         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
11767         to subreg_offset_representable_p.
11768
11769 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
11770
11771         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
11772         execute function prototype.  Get f and nregs from max_reg_num
11773         and get_insns.  Remove the first backward pass as it's dead,
11774         guard the forward pass by flag_expensive_optimizations.
11775         (rest_of_handle_regmove): Delete.
11776         (pass_regmove): Replace it with regmove_optimize.
11777
11778 2009-02-25  Martin Jambor  <mjambor@suse.cz>
11779
11780         PR tree-optimization/39259
11781         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
11782         calls_alloca function flags.
11783         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
11784         calls are detected.
11785
11786 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
11787
11788         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
11789         flags_set_1_rtx, flags_set_1_set): Delete.
11790         (regmove_optimize): Do not call mark_flags_life_zones.
11791
11792 2009-02-24  Julian Brown  <julian@codesourcery.com>
11793
11794         PR target/35965
11795         * config/arm/arm.c (require_pic_register): Only set
11796         cfun->machine->pic_reg once per function.
11797
11798 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
11799
11800         * doc/invoke.texi (Link Options): Document an easier way to pass
11801         options that take arguments to the GNU linker using -Xlinker and -Wl.
11802
11803 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
11804
11805         PR target/33785
11806         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
11807
11808 2009-02-24  Richard Guenther  <rguenther@suse.de>
11809
11810         PR debug/39285
11811         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
11812
11813 2009-02-24  Richard Guenther  <rguenther@suse.de>
11814             Zdenek Dvorak  <ook@ucw.cz>
11815
11816         PR tree-optimization/39233
11817         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
11818         from converting them to a generic type.
11819
11820 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
11821
11822         PR tree-optimization/39260
11823         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
11824         contains a condition with a real type.
11825         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
11826
11827 2009-02-23  Jason Merrill  <jason@redhat.com>
11828
11829         PR c++/38880
11830         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
11831         narrowing_initializer_constant_valid_p.
11832         (narrowing_initializer_constant_valid_p): Don't return
11833         null_pointer_node for adding a pointer to itself.
11834
11835 2009-02-23  Jan Hubicka  <jh@suse.cz>
11836
11837         PR c/12245
11838         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
11839         resizing.
11840
11841 2009-02-23  Jan Hubicka  <jh@suse.cz>
11842
11843         PR tree-optimization/37709
11844         * tree.c (block_ultimate_origin): Move here from dwarf2out.
11845         * tree.h (block_ultimate_origin): Declare.
11846         * dwarf2out.c (block_ultimate_origin): Move to tree.c
11847         * tree-ssa-live.c (remove_unused_scope_block_p):
11848         Eliminate blocks containig no instructions nor live variables nor
11849         nested blocks.
11850         (dump_scope_block): New function.
11851         (remove_unused_locals): Enable removal of dead blocks by default;
11852         enable dumping at TDF_DETAILS.
11853
11854 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
11855
11856         * config/i386/i386.c (classify_argument): Don't allow COImode
11857         and OImode.
11858         (function_arg_advance_32): Don't allow OImode.
11859         (function_arg_32): Likewise.
11860         (function_value_32): Likewise.
11861         (return_in_memory_32): Likewise.
11862         (function_arg_64): Remove OImode comment.
11863
11864 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
11865
11866         PR target/39261
11867         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11868         ix86_expand_vector_set for V4DImode in 64bit mode only.
11869         (ix86_expand_vector_init_one_var): Likewise.
11870
11871 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
11872
11873         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
11874
11875 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
11876
11877         PR bootstrap/39257
11878         * loop-iv.c: Revert last change.
11879         * emit-rtl.c: Likewise.
11880
11881 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
11882
11883         PR target/39256
11884         * config/i386/i386.c (type_natural_mode): Remove an extra
11885         space in the warning message.
11886         (function_value_32): Handle 32-byte vector modes.
11887         (return_in_memory_32): Likewise.
11888
11889 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
11890
11891         * loop-iv.c (truncate_value): New function.
11892         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
11893         of lowpart_subreg.
11894         (lowpart_subreg): Move to...
11895         * emit-rtl.c: ...here.
11896
11897 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
11898
11899         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
11900         accidental and undocumented change at revision 140860.
11901
11902 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
11903
11904         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
11905         take gimple_seq * arguments.
11906         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
11907         types_compatible_p langhook.
11908
11909 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
11910             Joseph Myers  <joseph@codesourcery.com>
11911
11912         * config/arm/arm.c (arm_builtin_va_list): New function.
11913         (arm_expand_builtin_va_start): Likewise.
11914         (arm_gimplify_va_arg_expr): Likewise.
11915         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
11916         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
11917         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
11918         (va_list_type): New variable.
11919         (arm_mangle_type): Mangle va_list_type appropriately.
11920
11921 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
11922
11923         PR middle-end/39157
11924         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
11925         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
11926         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
11927         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
11928         parameter to 1000 for -O1 by default.
11929         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
11930         parameter.
11931         * loop-invariant.c: Include params.h.
11932         (move_loop_invariants): Don't call move_single_loop_invariants on
11933         very large loops.
11934
11935 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
11936
11937         * calls.c (emit_library_call_value_1): Use slot_offset instead of
11938         offset when calculating bounds for indexing stack_usage_map.  Fixes
11939         a buffer overflow with certain target setups.
11940
11941 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
11942
11943         PR target/39240
11944         * calls.c (expand_call): Clear try_tail_call if caller and callee
11945         disagree in promotion of function return value.
11946
11947 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
11948
11949         PR target/39175
11950         * c-common.c (c_determine_visibility): If visibility changed and
11951         DECL_RTL has been already set, call make_decl_rtl to update symbol
11952         flags.
11953
11954 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
11955
11956         PR c++/39188
11957         * varasm.c (assemble_variable): Don't check DECL_NAME when
11958         globalizing a variable.
11959
11960 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
11961
11962         PR c/38483
11963         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
11964         expression before any __builtin_trap call.
11965         * c-typeck.c (build_function_call): Convert and check function
11966         arguments before generating a call to a trap.  Evaluate the
11967         function arguments before the trap.
11968
11969 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
11970
11971         PR target/39228
11972         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
11973         (UNSPEC_FXAM_MEM): New unspec.
11974         (fxam<mode>2_i387_with_temp): New insn and split pattern.
11975         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
11976         memory using fxam<mode>2_i387_with_temp to remove excess precision.
11977
11978 2009-02-19  Richard Guenther  <rguenther@suse.de>
11979
11980         PR tree-optimization/39207
11981         PR tree-optimization/39074
11982         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
11983         storedanything_tree): New.
11984         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
11985         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
11986         (build_succ_graph): Add edges from STOREDANYTHING to all
11987         non-direct nodes.
11988         (init_base_vars): Initialize STOREDANYTHING.
11989         (compute_points_to_sets): Free substitution info after
11990         building the succ graph.
11991         (ipa_pta_execute): Likewise.
11992
11993         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
11994         field.
11995         (do_ds_constraint): Do not add to special var or non-pointer
11996         field solutions.
11997         (type_could_have_pointers): Split out from ...
11998         (could_have_pointers): ... here.  For arrays use the element type.
11999         (create_variable_info_for): Initialize may_have_pointers.
12000         (new_var_info): Likewise.
12001         (handle_lhs_call): Make the HEAP variable unknown-sized.
12002         (intra_create_variable_infos): Use a type with pointers for
12003         PARM_NOALIAS, make it unknown-sized.
12004
12005 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
12006
12007         PR target/39224
12008         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
12009
12010 2009-02-18  Jason Merrill  <jason@redhat.com>
12011
12012         PR target/39179
12013         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
12014         value if DECL_EXTERNAL.
12015         * tree-sra.c (sra_walk_gimple_assign): Likewise.
12016         * target.h (gcc_target::binds_local_p): Clarify "module".
12017         * tree.h (TREE_PUBLIC): Clarify "module".
12018
12019 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
12020
12021         PR target/38891
12022         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
12023         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
12024
12025 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
12026
12027         PR target/39082
12028         * c.opt (Wabi): Support C and ObjC.
12029         (Wpsabi): New.
12030
12031         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
12032
12033         * config/i386/i386.c (classify_argument): Warn once about the ABI
12034         change when passing union with long double.
12035
12036         * doc/invoke.texi: Update -Wabi for warning psABI changes.
12037
12038 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
12039
12040         PR c/35447
12041         * c-parser.c (c_parser_compound_statement): Always enter and leave
12042         a scope.
12043
12044 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12045
12046         PR target/34587
12047         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
12048
12049 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
12050
12051         PR tree-optimization/36922
12052         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
12053         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
12054         Likewise.
12055
12056 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
12057
12058         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
12059         to 0 for EABI64.
12060
12061 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
12062
12063         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
12064
12065 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
12066
12067         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
12068         tree sharing.
12069
12070 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
12071             Richard Sandiford  <rdsandiford@googlemail.com>
12072
12073         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
12074         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
12075         (loongson_biadd): ...this.
12076
12077 2009-02-17  Richard Guenther  <rguenther@suse.de>
12078
12079         PR tree-optimization/39202
12080         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
12081         a var make sure to follow existing collapses.
12082
12083 2009-02-17  Richard Guenther  <rguenther@suse.de>
12084
12085         PR middle-end/39214
12086         * langhooks.c (lhd_print_error_function): Check for NULL block.
12087
12088 2009-02-17  Richard Guenther  <rguenther@suse.de>
12089
12090         PR tree-optimization/39204
12091         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
12092         of the PHI arg.
12093
12094 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
12095
12096         * config/soft-fp/double.h: Update from glibc CVS.
12097
12098 2009-02-17  Richard Guenther  <rguenther@suse.de>
12099
12100         PR tree-optimization/39207
12101         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
12102         strict-aliasing warnings for pointers pointing to NULL.
12103
12104 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
12105
12106         PR c/35446
12107         * c-parser.c (c_parser_braced_init): Call pop_init_level when
12108         skipping until next close brace.
12109
12110 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
12111
12112         PR target/37049
12113         * config/i386/i386.c (ix86_expand_push): Set memory alignment
12114         to function argument boundary.
12115
12116 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
12117
12118         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
12119         in the lea_add. Reload eventually constraints it properly.
12120         * config/picochip/constraints.md: Remove the target constraint
12121         "b", since it is not needed anymore.
12122
12123 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
12124
12125         * gthr-dce.h: Uglify function parameter and local variable names.
12126         * gthr-gnat.h: Likewise.
12127         * gthr-mipssde.h: Likewise.
12128         * gthr-nks.h: Likewise.
12129         * gthr-posix95.h: Likewise.
12130         * gthr-posix.h: Likewise.
12131         * gthr-rtems.h: Likewise.
12132         * gthr-single.h: Likewise.
12133         * gthr-solaris.h: Likewise.
12134         * gthr-tpf.h: Likewise.
12135         * gthr-vxworks.h: Likewise.
12136         * gthr-win32.h: Likewise.
12137
12138 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12139
12140         PR target/39196
12141         * config/i386/i386.md: Restrict the new peephole2 to move
12142         between MMX/SSE registers.
12143
12144 2009-02-15  Richard Guenther  <rguenther@suse.de>
12145
12146         Revert
12147         2009-02-13  Richard Guenther  <rguenther@suse.de>
12148
12149         * configure.ac: Enable LFS.
12150         * configure: Re-generate.
12151         * config.in: Likewise.
12152
12153 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12154
12155         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
12156         spu_srqwbyte, spu_srqwbytebc): Define.
12157         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
12158         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
12159         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
12160         "shrqby_<mode>"): New insn-and-split patterns.
12161         * config/spu/spu.c (expand_builtin_args): Determine and return
12162         number of operands using spu_builtin_description data.
12163         (spu_expand_builtin_1): Use it.
12164
12165 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
12166
12167         PR target/38056
12168         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
12169         TARGET_CONST_GP.
12170
12171 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
12172
12173         PR target/39149
12174         * config/i386/i386.c (override_options): Correct warning
12175         messages for -malign-loops, -malign-jumps and -malign-functions.
12176
12177 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
12178
12179         PR target/39152
12180         * config/i386/i386.md: Restrict the new peephole2 to move
12181         between the general purpose registers.
12182
12183 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
12184
12185         PR target/39162
12186         * config/i386/i386.c (type_natural_mode): Add a new argument.
12187         Return the original mode and warn ABI change if vector size is 32byte.
12188         (function_arg_advance): Updated.
12189         (function_arg): Likewise.
12190         (ix86_function_value): Likewise.
12191         (ix86_return_in_memory): Likewise.
12192         (ix86_sol10_return_in_memory): Likewise.
12193         (ix86_gimplify_va_arg): Likewise.
12194         (function_arg_32): Don't warn ABX ABI change here.
12195         (function_arg_64): Likewise.
12196
12197 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
12198
12199         * loop-iv.c (implies_p): In the final case, test that operands 0
12200         of the two comparisons match.
12201
12202         * config/bfin/bfin.c (find_prev_insn_start): New function.
12203         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12204         (find_next_insn_start): Move.
12205
12206 2009-02-13  Richard Guenther  <rguenther@suse.de>
12207
12208         * configure.ac: Enable LFS.
12209         * configure: Re-generate.
12210         * config.in: Likewise.
12211
12212 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
12213
12214         PR c/35444
12215         * c-parser.c (c_parser_parms_list_declarator): Discard pending
12216         sizes on syntax error after some arguments have been parsed.
12217
12218 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
12219
12220         * doc/invoke.texi (-fira): Remove.
12221
12222 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
12223
12224         * caller-save.c: Replace regclass.c with reginfo.c in comments.
12225         * recog.c: Likewise.
12226         * rtl.h: Likewise.
12227
12228 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
12229
12230         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12231         (umul_ppmm): Likewise.
12232         (count_leading_zeros): Likewise.
12233         (count_trailing_zeros): Likewise.
12234         (UMUL_TIME): Likewise.
12235
12236 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
12237
12238         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
12239         soft-fp/t-softfp to tmake_file.
12240
12241         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
12242         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
12243         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
12244         IA64_BUILTIN_INFQ]: New.
12245         (ia64_init_builtins): Initialize __builtin_infq,
12246         __builtin_fabsq and __builtin_copysignq if not HPUX.
12247         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
12248         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
12249
12250         * config/ia64/lib1funcs.asm (__divtf3): Define only if
12251         SHARED is defined.
12252         (__fixtfti): Likewise.
12253         (__fixunstfti): Likewise.
12254         (__floattitf): Likewise.
12255
12256         * config/ia64/libgcc-glibc.ver: New.
12257         * config/ia64/t-fprules-softfp: Likewise.
12258         * config/ia64/sfp-machine.h: Likewise.
12259
12260         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
12261         (LIBGCC2_TF_CEXT): Likewise.
12262         (TF_SIZE): Likewise.
12263         (TARGET_INIT_LIBFUNCS): Likewise.
12264
12265         * config/ia64/t-glibc (SHLINB_MAPFILES):
12266         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
12267
12268 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
12269
12270         * config/i386/i386.c (construct_container): Rewrite processing
12271         BLKmode with X86_64_SSE_CLASS.
12272
12273 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
12274
12275         PR target/39152
12276         * config/i386/i386.md: Replace simplify_replace_rtx with
12277         replace_rtx in the new peephole2.
12278
12279 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
12280
12281         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
12282         loop unrolling do not happen at -O2.
12283
12284 2009-02-12  Michael Matz  <matz@suse.de>
12285
12286         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
12287
12288 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
12289
12290         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
12291         for -g3.
12292
12293 2009-02-12  Ben Elliston  <bje@au.ibm.com>
12294
12295         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
12296         patterns when updating the back chain.  Missed in the 2009-02-10
12297         change.
12298
12299 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
12300
12301         * doc/extend.texi (Decimal Floating Types): Update identifier of
12302         draft TR and list of missing support.
12303
12304 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
12305
12306         PR middle-end/39154
12307         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
12308         bit to variable length decl's flags, add it also to its
12309         pointer replacement variable.
12310
12311 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
12312             Jakub Jelinek  <jakub@redhat.com>
12313
12314         PR target/39118
12315         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
12316         (memory_blockage): New expander.
12317         (*memory_blockage): New insn pattern.
12318         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
12319         instead of general blockage at the end of function prologue when
12320         frame pointer is used to access red zone area.  Do not emit blockage
12321         when profiling, it is emitted in generic code.
12322         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
12323         function epilogue when frame pointer is used to access red zone area.
12324
12325 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
12326
12327         PR target/38824
12328         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
12329         by arithmetic with memory operands.
12330         * config/i386/predicates.md (commutative_operator): New.
12331
12332 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
12333
12334         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
12335         bulleted lists.
12336
12337 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
12338
12339         * alias.h (record_alias_subset): Declare.
12340         * alias.c (record_alias_subset): Make global.
12341
12342 2009-02-10  Nick Clifton  <nickc@redhat.com>
12343
12344         * tree-parloops.c: Change license to GPLv3.
12345         * ipa-struct-reorg.c: Change license to GPLv3.
12346         * ipa-struct-reorg.h: Change license to GPLv3.
12347
12348 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
12349
12350         PR c/39084
12351         * c-decl.c (start_struct): Return NULL on error.
12352
12353 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
12354
12355         PR middle-end/39124
12356         * cfgloopmanip.c (remove_path): Call remove_bbs after
12357         cancel_loop_tree, not before it.
12358
12359         PR target/39139
12360         * function.h (struct function): Add has_local_explicit_reg_vars bit.
12361         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
12362         VAR_DECLs were seen.
12363         * tree-ssa-live.c (remove_unused_locals): Recompute
12364         cfun->has_local_explicit_reg_vars.
12365         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
12366         copies or clearings if cfun->has_local_explicit_reg_vars.
12367
12368 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
12369
12370         PR target/39118
12371         * config/i386/i386.c (expand_prologue): Emit blockage at the end
12372         of function prologue when frame pointer is used to access
12373         red zone area.
12374
12375 2009-02-10  Richard Guenther  <rguenther@suse.de>
12376
12377         PR middle-end/39127
12378         * gimplify.c (gimple_regimplify_operands): Always look if
12379         we need to create a temporary.
12380
12381 2009-02-10  Richard Guenther  <rguenther@suse.de>
12382
12383         PR tree-optimization/39132
12384         * tree-loop-distribution.c (todo): New global var.
12385         (generate_memset_zero): Trigger TODO_rebuild_alias.
12386         (tree_loop_distribution): Return todo.
12387
12388 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
12389
12390         PR target/39119
12391         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
12392         (x86_64_reg_class_name): Removed.
12393         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
12394         first one isn't X86_64_SSE_CLASS or any other ones aren't
12395         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
12396         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
12397         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
12398         and 3 X86_64_SSEUP_CLASS.
12399         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
12400         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
12401
12402 2009-02-10  Ben Elliston  <bje@au.ibm.com>
12403
12404         * config/rs6000/rs6000.md (allocate_stack): Always use an update
12405         form instruction to update the stack back chain word, even if the
12406         user has disabled the generation of update instructions.
12407         (movdi_<mode>_update_stack): New.
12408         (movsi_update_stack): Likewise.
12409         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
12410         always use an update form instruction to update the stack back
12411         chain word.
12412
12413 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
12414
12415         PR middle-end/38953
12416         * graphite.c (if_region_set_false_region): After moving a region in
12417         the false branch of a condition, remove the empty dummy basic block.
12418         (gloog): Remove wrong fix for PR38953.
12419
12420 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12421
12422         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
12423         generation due to implicit sign extension.
12424
12425 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
12426
12427         PR middle-end/38981
12428         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
12429         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
12430
12431 2009-02-09  Richard Guenther  <rguenther@suse.de>
12432
12433         PR middle-end/35202
12434         * convert.c (convert_to_real): Disable (float)fn((double)x)
12435         to fnf(x) conversion if errno differences may occur and
12436         -fmath-errno is set.
12437
12438 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
12439
12440         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
12441         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12442         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12443
12444 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
12445
12446         PR c/35434
12447         * c-common.c (handle_alias_attribute): Disallow attribute for
12448         anything not a FUNCTION_DECL or VAR_DECL.
12449
12450 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
12451
12452         PR c/39035
12453         * real.c (do_compare): Special-case compare of zero against
12454         decimal float value.
12455
12456 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
12457
12458         PR c/36432
12459         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
12460         as indicating flexible array members unless the field itself is
12461         being declarared as the incomplete array.
12462
12463 2009-02-06  Jan Hubicka  <jh@suse.cz>
12464
12465         PR tree-optimization/38844
12466         * ipa-inline.c (try_inline): Stop inlining recursion when edge
12467         is already inlined.
12468
12469 2009-02-06  Richard Guenther  <rguenther@suse.de>
12470
12471         PR middle-end/38977
12472         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
12473         fork because we may expand it as __gcov_fork.
12474
12475 2009-02-06  Nick Clifton  <nickc@redhat.com>
12476
12477         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
12478
12479 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
12480
12481         PR tree-optimization/35659
12482         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
12483         vn_phi_eq): Shortcut if hashcode does not match.
12484         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
12485         NULL operands.
12486         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
12487         and avoid iterative_hash_expr.
12488         (FOR_EACH_VALUE_ID_IN_SET): New.
12489         (value_id_compare): Remove.
12490         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
12491         sort expressions by value id.
12492
12493 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
12494
12495         PR target/38991
12496         * config/sh/predicates.md (general_movsrc_operand): Don't check
12497         the subreg of system registers here.
12498
12499 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
12500
12501         PR c++/39106
12502         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
12503         on the copied decl.
12504
12505 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
12506
12507         PR rtl-optimization/39110
12508         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
12509         addresses, not aligned ones.
12510
12511 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
12512             Richard Guenther  <rguenther@suse.de>
12513
12514         PR tree-optimization/39100
12515         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
12516         comment says and add edges.
12517
12518 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
12519
12520         PR c/35435
12521         * c-common.c (handle_tls_model_attribute): Ignore attribute for
12522         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
12523
12524 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
12525
12526         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
12527         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
12528         register_bb_in_sese, new_sese, free_sese): Moved.
12529         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
12530         outermost_loop_in_scop, build_scop_iteration_domain,
12531         expand_scalar_variables_ssa_name, get_vdef_before_scop,
12532         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
12533         Use loop_in_sese_p instead of loop_in_scop_p.
12534         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
12535         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
12536         (scopdet_basic_block_info): Fix bug in scop detection.
12537         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
12538         eq_loop_to_cloog_loop): Remove.
12539         (nb_loops_around_loop_in_scop, nb_loop
12540         ref_nb_loops): Moved here...
12541         * graphite.h (ref_nb_loops): ... from here.
12542         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
12543         (loop_domain_dim, loop_iteration_vector_dim): Remove.
12544         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
12545         * testsuite/gcc.dg/graphite/scop-19.c: New
12546
12547 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
12548             Hans-Peter Nilsson  <hp@axis.com>
12549
12550         PR rtl-optimization/37889
12551         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
12552         Move offset handling from PLUS to before the switch.  Use new
12553         arguments when considering SYMBOL_REFs too.
12554         (rtx_addr_can_trap_p): Pass dummy offset and size.
12555         (enum may_trap_p_flags): Remove.
12556         (may_trap_p_1): Pass size from MEM_SIZE.
12557
12558         PR rtl-optimization/38921
12559         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
12560         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
12561         * rtlanal.c (may_trap_after_code_motion_p): Delete.
12562         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
12563
12564 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
12565
12566         AVX Programming Reference (January, 2009)
12567         * config/i386/sse.md (*vpclmulqdq): New.
12568
12569 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
12570
12571         PR tree-optimization/38977
12572         PR gcov-profile/38292
12573         * calls.c (special_function_p): Disregard __builtin_ prefix.
12574
12575 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
12576
12577         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
12578         non-indexable addresses even before reload.
12579
12580 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
12581
12582         PR c/29129
12583         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
12584         as having variable size.  Do not give an error for unnamed
12585         parameters with [*] declarators.  Give a warning for type names
12586         with [*] declarators and mark them as variable size.
12587         * c-parser.c (c_parser_sizeof_expression): Do not give an error
12588         for sizeof applied to [*] type names.
12589
12590 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12591
12592         PR C++/36607
12593         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
12594
12595 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
12596
12597         * gcc.c (process_command): Update copyright notice dates.
12598         * gcov.c (print_version): Likewise.
12599         * gcov-dump.c (print_version): Likewise.
12600         * mips-tfile.c (main): Likewise.
12601         * mips-tdump.c (main): Likewise.
12602
12603 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
12604
12605         PR c/35433
12606         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
12607         for composite type involving a zero-length array type.
12608
12609 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
12610
12611         PR target/35318
12612         * function.c (match_asm_constraints_1): Skip over
12613         initial optional % in the constraint.
12614
12615         PR inline-asm/39059
12616         * c-parser.c (c_parser_postfix_expression): If fixed point is not
12617         supported, don't accept FIXED_CSTs.
12618         * c-decl.c (finish_declspecs): Error if fixed point is not supported
12619         and _Sat is used without _Fract/_Accum.  Set specs->type to
12620         integer_type_node for cts_fract/cts_accum if fixed point is not
12621         supported.
12622
12623 2009-02-02  Catherine Moore  <clm@codesourcery.com>
12624
12625         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
12626
12627 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
12628
12629         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
12630         (ABI_HAS_64BIT_SYMBOLS): Use it.
12631         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
12632
12633 2009-02-02  Paul Brook  <paul@codesourcery.com>
12634
12635         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
12636
12637 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
12638
12639         PR inline-asm/39058
12640         * recog.h (asm_operand_ok): Add constraints argument.
12641         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
12642         recurse on matching constraint.
12643         (check_asm_operands): Pass constraints as 3rd argument to
12644         asm_operand_ok.  Don't look up matching constraint here.
12645         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
12646         to asm_operand_ok.
12647
12648 2009-02-02  Ben Elliston  <bje@au.ibm.com>
12649
12650         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
12651         TARGET_NARROW_VOLATILE_BITFIELD macro names.
12652
12653 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12654
12655         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
12656         information.  Remove some obsolete information.  Reorganize.
12657
12658         * config/pa/fptr.c: Revert license to GPL 2.
12659         * config/pa/milli64.S: Likewise.
12660
12661 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
12662
12663         PR target/38904
12664         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
12665         LIBRARY name in, instead of hard-coding it.
12666         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
12667         extra target make frag to tmake_files according to EH model.
12668         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
12669         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
12670         frags that define makefile variable EH_MODEL appropriately.
12671         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
12672         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
12673         to "-sjlj" according to type of EH configured.
12674         (LIBGCC_SONAME):  Concatenate it to shared library base name.
12675         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
12676         to "_sjlj" according to type of EH configured.
12677         (LIBGCC_SONAME):  Concatenate it to shared library base name.
12678         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
12679         (SHLIB_LINK):  Add missing semicolon to if-else construct.
12680         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
12681         string value of "pe_dll" command-line option.
12682         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
12683         (SHLIB_SONAME):  Use it when overriding t-cygming default.
12684         (SHLIB_IMPLIB):  Override t-cygming default.
12685         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
12686         string value of "pe_dll" command-line option.
12687
12688 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
12689
12690         PR target/38952
12691         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
12692         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
12693
12694 2009-01-31  Richard Guenther  <rguenther@suse.de>
12695
12696         PR tree-optimization/38937
12697         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
12698         computing the transitive closure.
12699
12700 2009-01-30  Richard Guenther  <rguenther@suse.de>
12701
12702         PR tree-optimization/39041
12703         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
12704         Propagate variable indices only if the types match for this stmt.
12705
12706 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
12707
12708         PR target/39013
12709         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
12710         inline but never defined.
12711
12712 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
12713
12714         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
12715         (*insv_h_di_reg_extimm): New insn.
12716         (*insv_l<mode>_reg_extimm): New insn.
12717
12718 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12719
12720         * config/picochip/picochip.c (flag_conserve_stack): set
12721         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
12722         fconserve-stack. Reduce call-overhead used by inliner.
12723
12724 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12725
12726         PR/38157
12727         * common.opt (flag_conserve_stack): Initialised to zero.
12728
12729 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
12730
12731         PR/39002
12732         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
12733         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
12734         method.
12735
12736 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
12737
12738         * ira-color.c (allocno_reload_assign): Update comments.
12739         * regmove.c (regmove_optimize): Likewise.
12740
12741         * ra.h: Removed.
12742
12743 2009-01-29  Robert Millan  <rmh@aybabtu.com>
12744
12745         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
12746         * config/i386/kopensolaris-gnu.h: New file.  Undefine
12747         `MD_UNWIND_SUPPORT'.
12748         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
12749
12750 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
12751
12752         PR tree-optimization/39007
12753         * tree-loop-distribution.c (generate_builtin): Use
12754         recompute_dominator to compute the immediate dominator of the
12755         basic block just after the loop.
12756
12757 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12758
12759         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
12760         (ASM_OUTPUT_DWARF_PCREL): Define.
12761
12762 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
12763
12764         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
12765         * doc/passes.texi: Remove entries about regclass, local-alloc, and
12766         global.  Modify entries about regmove and IRA.
12767
12768         * ra-conflict.c: Remove the file.
12769
12770         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
12771
12772         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
12773         (pass_regclass_init): Rename to pass_reginfo_init.
12774
12775         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
12776
12777         * toplev.h (flag_ira): Remove.
12778
12779         * caller-save.c (setup_save_areas): Remove flag_ira.
12780
12781         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
12782
12783         * global.c: Remove the file.
12784
12785         * opts.c (decode_options): Remove flag_ira.
12786
12787         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
12788
12789         * regmove.c: Modify file description.
12790         (find_use_as_address, try_auto_increment): Define them only if
12791         AUTO_INC_DEC is defined.
12792         (replacement_quality, replace_in_call_usage, fixup_match_1,
12793         stable_and_no_regs_but_for_p): Remove.
12794         (reg_set_in_bb): Make it static.
12795         (regmove_optimize): Remove flag_ira and code which worked for
12796         !flag_ira.
12797
12798         * local-alloc.c: Remove the file.
12799
12800         * common.opt (fira): Remove.
12801
12802         * ira.c: Include except.h.
12803         (eliminable_regset): Move from global.c.
12804         (mark_elimination): Ditto.  Remove flag_ira.
12805         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
12806         equiv_mem_modified, validate_equiv_mem_from_store,
12807         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
12808         contains_replace_regs, memref_referenced_p, memref_used_between_p,
12809         no_equiv, recorded_label_ref): Move from local-alloc.c.
12810         (update_equiv_regs): Ditto.  Make it static.
12811         (print_insn_chain, print_insn_chains): Move it from global.c.
12812         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
12813         (build_insn_chain): Ditto.  Make it static.
12814         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
12815         Rename to init_live_subregs.
12816         (gate_ira): Remove flag_ira.
12817
12818         * regclass.c: Rename reginfo.c.  Change file description.
12819         (FORBIDDEN_INC_DEC_CLASSES): Remove.
12820         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
12821         (init_reg_sets_1): Remove code for evaluation of
12822         reg_class_superclasses and losing_caller_save_reg_set.
12823         (init_regs): Remove init_reg_autoinc.
12824         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
12825         ok_for_base_p_nonstrict): Remove.
12826         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
12827         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
12828         corresponding entries.
12829         (dump_regclass, record_operand_costs, scan_one_insn,
12830         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
12831         record_address_regs, auto_inc_dec_reg_p): Remove.
12832         (gt-regclass.h): Rename to gt-reginfo.h.
12833
12834         * rtl.h (dump_global_regs, retry_global_alloc,
12835         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
12836
12837         * Makefile.in (RA_H): Remove.
12838         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
12839         Rename regclass.o to reginfo.o.
12840         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
12841         gt-reginfo.h.
12842         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
12843         (GTFILES): Rename regclass.c to reginfo.c.
12844
12845         * passes.c (init_optimization_passes): Remove pass_local_alloc and
12846         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
12847
12848         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
12849         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
12850         Remove flag_ira.
12851         (finish_spills): Ditto.  Remove code for !flag_ira.
12852
12853 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
12854
12855         PR middle-end/35854
12856         * doc/invoke.texi (rtl debug options): Complete rewrite.
12857         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
12858         to auto_inc_dec".
12859         * mode-switching.c (pass_mode_switching): Rename pass from
12860         "mode-sw" to "mode_sw".
12861         * except.c (pass_convert_to_eh_ranges): Rename pass from
12862         "eh-ranges" to "eh_ranges".
12863         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
12864         to "subreg1".
12865
12866
12867 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
12868             Alexander Monakov  <amonakov@ispras.ru>
12869
12870         PR middle-end/38857
12871         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
12872         register.
12873         (move_exprs_to_boundary): Change return type and pass through
12874         should_move from move_op.  Relax assert.  Update usage ...
12875         (schedule_expr_on_boundary): ... here.  Use should_move instead of
12876         cant_move.
12877         (move_op_orig_expr_found): Indicate that insn was disconnected from
12878         stream.
12879         (code_motion_process_successors): Do not call after_merge_succs
12880         callback if original expression was not found when traversing any of
12881         the branches.
12882         (code_motion_path_driver): Change return type.  Update prototype.
12883         (move_op): Update comment.  Add a new parameter (should_move).  Update
12884         prototype.  Set *should_move based on indication provided by
12885         move_op_orig_expr_found.
12886
12887 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
12888
12889         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
12890         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
12891         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
12892         * config/rs6000/rs6000.c (rs6000_override_options): Default
12893         avoid-indexed-addresses on for Power6, off for everything else.
12894         (avoiding_indexed_address_p): New function.
12895         (rs6000_legitimize_address): Use it.
12896         (rs6000_legitimate_address): Likewise.
12897         * config/rs6000/rs6000.md (movXX_updateX): Likewise
12898
12899 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
12900
12901         PR tree-optimization/38997
12902         * tree-loop-distribution.c (generate_memset_zero): Use
12903         POINTER_PLUS_EXPR for a pointer addition.
12904
12905 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
12906
12907         * config/s390/s390.md (bswap<mode>2): New pattern added.
12908
12909 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
12910
12911         * config/s390/s390.md (*tls_load_31): Added type attribute.
12912
12913 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
12914
12915         * config/s390/s390.md: Fix a few comments.
12916
12917 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
12918
12919         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
12920         (*tm<mode>_full): Fixed z10prop attribute.
12921         (*tst<mode>_extimm): Fixed z10prop attribute.
12922         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
12923         (*tstqiCCT_cconly): Fixed z10prop attribute.
12924         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
12925         (*movsi_larl): Fixed z10prop attribute.
12926         (*movsi_zarch): Fixed z10prop attribute.
12927         (*movsi_eas): Fixed z10prop attribute.
12928         (*movhi): Fixed z10prop attribute.
12929         (*movqi): Fixed z10prop attribute.
12930         (*movstrictqi): Fixed z10prop attribute.
12931         (*mov<mode>): Fixed z10prop attribute.
12932         (*movcc): Fixed z10prop attribute.
12933         (*sethighpartdi_64): Fixed z10prop attribute.
12934         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
12935         (*negdi2_sign_cc): Fixed z10prop attribute.
12936         (*negdi2_sign): Fixed z10prop attribute.
12937         (*absdi2_sign_cc): Fixed z10prop attribute.
12938         (*absdi2_sign): Fixed z10prop attribute.
12939         (*negabsdi2_sign_cc): Fixed z10prop attribute.
12940         (*negabsdi2_sign): Fixed z10prop attribute.
12941         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
12942         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
12943         (doloop_si64): Fixed z10prop attribute.
12944         (doloop_si31): Fixed z10prop attribute.
12945         (doloop_long): Fixed z10prop attribute.
12946         (indirect_jump): Fixed z10prop attribute.
12947         (nop): Fixed z10prop attribute.
12948         (main_base_64): Fixed z10prop attribute.
12949         (reload_base_64): Fixed z10prop attribute.
12950
12951 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
12952
12953         PR rtl-optimization/38740
12954         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
12955         if !optimize.
12956         * config/mips/mips.c (mips_reorg): Likewise.
12957
12958 2009-01-28  Richard Guenther  <rguenther@suse.de>
12959
12960         PR tree-optimization/38926
12961         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
12962         with the correct value id to a value.
12963         (do_regular_insertion): Use the value number of edoubleprime
12964         for the value number of the expr.
12965
12966         Revert
12967         2008-08-21  Richard Guenther  <rguenther@suse.de>
12968
12969         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
12970         a PHI ask VN if it is already available.
12971         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
12972         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
12973
12974 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
12975
12976         PR middle-end/38934
12977         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
12978         set to varying whenever max has TREE_OVERFLOW set, similarly
12979         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
12980
12981 2009-01-28  Richard Guenther  <rguenther@suse.de>
12982
12983         PR middle-end/38908
12984         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
12985         uninitialized aggregate uses in call arguments.
12986
12987 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
12988
12989         PR tree-optimization/38984
12990         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
12991         the nothing_id variable if -fno-delete-null-pointer-checks.
12992
12993 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
12994
12995         PR target/38988
12996         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
12997         (set_got_offset_rex64): Ditto.
12998
12999 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
13000
13001         PR target/38941
13002         * doc/extend.texi: Improve local variable with asm reg.
13003
13004 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
13005
13006         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
13007         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
13008         was not supplied then set warn_packed_bitfield_compat to the
13009         default value of 1.
13010         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
13011         against 1.
13012
13013 2009-01-27  Richard Guenther  <rguenther@suse.de>
13014
13015         PR tree-optimization/38503
13016         * cfgexpand.c (expand_gimple_basic_block): Ignore
13017         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
13018         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
13019         variables that cannot have TBAA applied.
13020         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
13021         statements.
13022
13023 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
13024
13025         PR middle-end/38969
13026         * calls.c (initialize_argument_information): Do not wrap complex
13027         arguments in SAVE_EXPR.
13028
13029 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
13030
13031         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
13032         (INSTALL_LIBGCC): Revert typo commit.
13033
13034 2009-01-26  Richard Guenther  <rguenther@suse.de>
13035
13036         PR tree-optimization/38745
13037         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
13038         from special handling.
13039
13040 2009-01-26  Richard Guenther  <rguenther@suse.de>
13041
13042         PR tree-optimization/38745
13043         * tree-ssa.c (execute_update_addresses_taken): Do not include
13044         variables that cannot possibly be a register in not_reg_needs.
13045         Do not clear TREE_ADDRESSABLE on vars that may not become
13046         registers.
13047         * tree-ssa.c (update_alias_info_1): Include those in the set
13048         of addressable vars.
13049
13050 2009-01-26  Richard Guenther  <rguenther@suse.de>
13051
13052         PR middle-end/38851
13053         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
13054         * tree-ssa-dse.c: Include langhooks.h
13055         (execute_simple_dse): Remove stores with zero size.
13056
13057 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
13058
13059         PR c/38957
13060         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
13061         as PLUS_EXPR.
13062
13063 2009-01-24  Julian Brown  <julian@codesourcery.com>
13064
13065         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
13066         config/arm/linux-atomic.c.
13067         * config/arm/linux-atomic.c: New.
13068
13069 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
13070
13071         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
13072         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
13073         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
13074
13075 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
13076
13077         PR c/38938
13078         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
13079         properly.
13080
13081 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
13082
13083         PR tree-optimization/38953
13084         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
13085         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
13086         (gloog): Split the exit of the scop when the scop exit is a loop exit.
13087         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
13088         changed the CFG.
13089
13090 2009-01-24  Paul Brook  <paul@codesourcery.com>
13091
13092         * config/arm/neon.md (neon_type): Move to arm.md.
13093         (neon_mov<VSTRUCT>): Add neon_type attribute.
13094         * config/arm/arm.md (neon_type): Move to here.
13095         (conds): Add "unconditioal" and use as default for NEON insns.
13096
13097 2009-01-24  Ben Elliston  <bje@au.ibm.com>
13098
13099         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
13100         void *' warning from -Wc++-compat.
13101         * Makefile.in (dominance.o-warn): Remove.
13102
13103 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
13104
13105         PR tree-optimization/38932
13106         * fold-const.c (fold_unary_ignore_overflow): New.
13107         * tree.h (fold_unary_ignore_overflow): Declare.
13108         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
13109         * tree-ssa-sccvn.c (visit_reference_op_load,
13110         simplify_unary_expression): Likewise.
13111
13112 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
13113
13114         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
13115         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
13116         regardless of their type.
13117         * c-common.c (handle_packed_attribute): Don't ignore packed on
13118         bitfields.
13119         * c.opt (Wpacked-bitfield-compat): New warning option.
13120         * stor-layout.c (place_field): Warn if offset of a field changed.
13121         * doc/extend.texi (packed): Mention the ABI change.
13122         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
13123         (Warning Options): Add it to the list.
13124
13125 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
13126
13127         * c-opts.c (c_common_post_options): Fix a typo in comments.
13128
13129 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
13130
13131         PR middle-end/38615
13132         * gimplify.c (gimplify_init_constructor): Fix promotion of const
13133         variables to static.
13134         * doc/invoke.texi (-fmerge-all-constants): Update description.
13135
13136 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
13137
13138         PR target/38931
13139         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
13140         (*movdi_1_rex64): Use type "mmx" for alternative 5.
13141
13142 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
13143
13144         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
13145         a word boundary.
13146         (LOCAL_ALIGNMENT): Similarly.
13147
13148 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
13149             Joseph Myers  <joseph@codesourcery.com>
13150
13151         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
13152         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
13153         * config/arm/arm-tune.md: Regenerate.
13154         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
13155         -march=iwmmxt2.
13156
13157 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
13158
13159         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
13160         version number to five.
13161
13162 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
13163
13164         PR c++/38930
13165         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
13166         * c-common.c (set_underlying_type): Likewise.
13167         (is_typedef_decl ): Likewise
13168         * tree.h: Likewise
13169         (set_underlying_type): Likewise.
13170         (is_typedef_type): Likewise.
13171
13172 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
13173
13174         PR middle-end/38587
13175         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
13176         crossing setjmps.
13177
13178 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
13179
13180         PR bootstrap/37660
13181         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
13182         (LIBGCC_SPEC):  Don't define.
13183         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
13184
13185 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
13186
13187         PR rtl-optimization/38879
13188         * alias.c (base_alias_check): Unaligned access via AND address can
13189         alias all surrounding object types except those with sizes equal
13190         or wider than the size of unaligned access.
13191
13192 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
13193
13194         PR c++/26693
13195         * c-decl.c (clone_underlying_type): Move this ...
13196         * c-common.c (set_underlying_type): ... here.
13197         Also, make sure the function properly sets TYPE_STUB_DECL() on
13198         the newly created typedef variant type.
13199         (is_typedef_decl ): New entry point.
13200         * tree.h: Added a new member member_types_needing_access_check to
13201         struct tree_decl_non_common.
13202         (set_underlying_type): New entry point.
13203         (is_typedef_type): Likewise.
13204
13205 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
13206
13207         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13208         Check whether two instructions have memory references that
13209         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
13210         are helper functions for traversing.
13211         * alias.h (insn_alias_sets_confilict_p): New prototypes.
13212         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13213         not to draw dependency edge for instructions with non-conflicting
13214         alias sets.
13215
13216 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
13217
13218         PR other/38758
13219         * longlong.h: Update copyright years.  Use soft-fp license notice.
13220         Sync __clz_tab declaration with glibc.
13221
13222 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
13223
13224         PR target/30687
13225         * doc/extend.texi (syscall_linkage): New.
13226         (version_id): Modify.
13227
13228 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13229             Richard Guenther  <rguenther@suse.de>
13230
13231         PR tree-optimization/38747
13232         PR tree-optimization/38748
13233         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13234         conversion if the base address is an indirect reference and the
13235         aliasing sets could cause issues.
13236
13237 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
13238
13239         * common.opt (fgraphite, fgraphite-identity): Add comment for
13240         explaining why these options are not documented.
13241
13242 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
13243
13244         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
13245         gimple_call_lhs is NULL.
13246
13247 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
13248
13249         PR target/38868
13250         * emit-rtl.c (adjust_address_1): Make sure memref is never
13251         overwritten.
13252
13253 2009-01-20  Ben Elliston  <bje@au.ibm.com>
13254
13255         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13256         const qualifier from arg parameter. Remove unnecessary cast to char *.
13257         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13258         const qualifier from arg 2.
13259
13260 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
13261
13262         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
13263
13264 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
13265
13266         PR c/38869
13267         * rtl.h (reinit_regs): New prototype.
13268         * regclass.c: Include ira.h.
13269         (reinit_regs): New.
13270         * Makefile.in (regclass.o): Add ira.h.
13271         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
13272
13273 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
13274
13275         PR target/38736
13276         * c-common.c (handle_aligned_attribute): Use
13277         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
13278         default alignment value.
13279
13280         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
13281
13282         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
13283         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
13284
13285         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
13286         __BIGGEST_ALIGNMENT__.
13287
13288         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
13289
13290 2009-01-18  Richard Guenther  <rguenther@suse.de>
13291
13292         PR tree-optimization/38819
13293         * tree-flow.h (operation_could_trap_helper_p): Declare.
13294         * tree-eh.c (operation_could_trap_helper_p): Export.
13295         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
13296         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
13297         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
13298         are about to insert a possibly trapping instruction and fail
13299         in this case.
13300
13301 2009-01-18  Andreas Schwab  <schwab@suse.de>
13302
13303         * doc/install.texi (Configuration): Remove obsolete paragraph
13304         about use of --with-gnu-ld with --with-gnu-as.
13305
13306 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
13307
13308         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
13309         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
13310         Follow spelling conventions.
13311
13312 2009-01-18  Ben Elliston  <bje@au.ibm.com>
13313
13314         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
13315         C++ warning about implicit conversion from void * to struct
13316         bitmap_head_def *.
13317         (bitmap_obstack_free): Likewise for bitmap_element *.
13318         * Makefile.in (bitmap.o-warn): Remove.
13319
13320 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
13321
13322         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
13323
13324 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
13325             Tobias Grosser  <tobi.grosser@amd.com>
13326
13327         * graphite.c (graphite_trans_scop_block): Do not block single
13328         nested loops.
13329
13330 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
13331
13332         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
13333         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
13334         test with assertion.
13335
13336 2009-01-16  Richard Guenther  <rguenther@suse.de>
13337
13338         PR tree-optimization/38835
13339         PR middle-end/36227
13340         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
13341         and INT + PTR -> (INT)(PTR p+ INT) folding.
13342         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
13343
13344 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
13345
13346         PR target/38554
13347         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
13348         the subreg from a lowpart subreg if it is also casting the value.
13349
13350 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13351             Tobias Grosser  <tobi.grosser@amd.com>
13352
13353         * graphite.c (compare_prefix_loops): New.
13354         (build_scop_canonical_schedules): Rewritten.
13355         (graphite_transform_loops): Move build_scop_canonical_schedules
13356         after build_scop_iteration_domain.
13357
13358 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13359             Tobias Grosser  <tobi.grosser@amd.com>
13360
13361         * graphite.c (add_conditions_to_domain): Add the loops to
13362         the dimension of the iteration domain.  Do copy the domain
13363         only when it exists.
13364         (build_scop_conditions_1): Do not call add_conditions_to_domain.
13365         (add_conditions_to_constraints): New.
13366         (can_generate_code_stmt, can_generate_code): Removed.
13367         (gloog): Do not call can_generate_code.
13368         (graphite_transform_loops): Call add_conditions_to_constraints
13369         after building the iteration domain.
13370
13371 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
13372
13373         PR tree-optimization/38789
13374         * tree-ssa-threadedge.c
13375         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
13376         __builtin_constant_p.
13377
13378 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
13379
13380         * dce.c (delete_unmarked_insns): Reversed the order that insns are
13381         examined before deleting them.
13382
13383 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
13384
13385         * function.c (aggregate_value_p): Correctly extract the function
13386         type from CALL_EXPR_FN lookup.
13387
13388 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
13389
13390         * config/picochip/picochip.c (picochip_override_options): Revert
13391         CFI asm flag disable commited previously.
13392
13393 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
13394             Tobias Grosser  <tobi.grosser@amd.com>
13395             Jan Sjodin  <jan.sjodin@amd.com>
13396
13397         * graphite.c (scan_tree_for_params): On substractions negate
13398         all the coefficients of the term.
13399         (clast_to_gcc_expression_red): New.  Handle reduction expressions
13400         of more than two operands.
13401         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
13402         (get_vdef_before_scop): Handle also the case of default definitions.
13403
13404 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
13405
13406         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
13407         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
13408         Also use them when walking CALL_INSN_FUNCTION_USAGE.
13409
13410 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
13411             Joey Ye  <joey.ye@intel.com>
13412
13413         PR middle-end/37843
13414         * cfgexpand.c (expand_stack_alignment): Don't update stack
13415         boundary nor check incoming stack boundary here.
13416         (gimple_expand_cfg): Update stack boundary and check incoming
13417         stack boundary here.
13418
13419 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
13420
13421         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
13422
13423 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
13424
13425         PR rtl-optimization/38245
13426         * calls.c (expand_call): Add stack arguments to
13427         CALL_INSN_FUNCTION_USAGE even for pure calls (when
13428         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
13429         in regs and partially in memory or BLKmode arguments.
13430         (emit_library_call_value_1): Add stack arguments to
13431         CALL_INSN_FUNCTION_USAGE even for pure calls (when
13432         ACCUMULATE_OUTGOING_ARGS).
13433         * dce.c: Include tm_p.h.
13434         (find_call_stack_args): New function.
13435         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
13436         argument.
13437         (mark_insn): Call find_call_stack_args for CALL_Ps.
13438         (prescan_insns_for_dce): Walk insns backwards in bb rather than
13439         forwards.  Allocate and free arg_stores bitmap if needed, pass it
13440         down to deletable_insn_p, don't mark stores set in arg_stores
13441         bitmap, clear the bitmap at the beginning of each bb.
13442         * Makefile.in (dce.o): Depend on $(TM_P_H).
13443
13444 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
13445
13446         PR target/22599
13447         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
13448         to make sure the insn is a conditional test (bug 22599).  Reformat a
13449         few long lines.
13450
13451 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
13452
13453         PR middle-end/38431
13454         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
13455         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
13456         (gloog): Do not call cleanup_tree_cfg.
13457         (graphite_transform_loops): Call cleanup_tree_cfg after all
13458         scops have been code generated.
13459
13460 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
13461         * doc/gty.texi (Invoking the garbage collector): Added new node
13462         and section documenting ggc_collect.
13463
13464 2009-01-14  Richard Guenther  <rguenther@suse.de>
13465
13466         PR tree-optimization/38826
13467         PR middle-end/38477
13468         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
13469         initialization notes only if we actually emitted a warning.
13470         (intra_create_variable_infos): Add constraints for a result decl
13471         that is passed by hidden reference.
13472         (build_pred_graph): Mark all related variables non-direct on
13473         address-taking.
13474
13475 2009-01-14  Nick Clifton  <nickc@redhat.com>
13476
13477         * ira-conflicts.c: Include addresses.h for the definition of
13478         base_reg_class.
13479         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
13480         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
13481
13482 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
13483
13484         PR target/38811
13485         * Makefile.in (ira-lives.o): Add except.h.
13486
13487         * ira-lives.c: Include except.h.
13488         (process_bb_node_lives): Process can_throw_internal.
13489
13490 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
13491
13492         PR rtl-optimization/38774
13493         * combine.c (simplify_set): When undoing cc_use change, don't do
13494         PUT_CODE on the newly created comparison, but instead put back the
13495         old comparison.
13496
13497 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
13498
13499         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
13500         values.  Remove duplicate arm8 entry.
13501
13502 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
13503
13504         PR tree-optimization/38786
13505         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
13506         the SSA_NAME case of expand_scalar_variables_expr.
13507         Set the type of an expression to the type of its assign statement.
13508         (expand_scalar_variables_expr): Also gather the scalar computation
13509         used to index the memory access.  Do not pass loop_p.
13510         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
13511         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
13512         the gimple_stmt_iterator where it inserts new code.
13513         Do not pass loop_p.
13514         (copy_bb_and_scalar_dependences): Do not pass loop_p.
13515         (translate_clast): Update call to copy_bb_and_scalar_dependences.
13516
13517 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
13518
13519         * graphite.h (debug_value): Removed.
13520         * graphite.c (debug_value): Removed.
13521
13522 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
13523
13524         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
13525         ldrd/strd with two 32-bit instructions.
13526
13527 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
13528
13529         * config/arm/arm.c (struct processors): Pass for speed down into
13530         cost helper functions.
13531         (const_ok_for_op): Handle COMPARE and inequality nodes.
13532         (arm_rtx_costs_1): Rewrite.
13533         (arm_size_rtx_costs): Update prototype.
13534         (arm_rtx_costs): Pass speed down to helper functions.
13535         (arm_slowmul_rtx_costs): Rework cost calculations.
13536         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
13537         (arm_9e_rtx_costs): Likewise.
13538
13539 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
13540
13541         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
13542         relocations of local symbols wider than UNITS_PER_WORD are not valid.
13543         (alpha_legitimize_address): Do not split local symbols wider than
13544         UNITS_PER_WORD into HIGH/LO_SUM parts.
13545
13546 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
13547
13548         PR bootstrap/38580
13549         * gcc.c (process_command): Replace call to execvp with calls
13550         to pex_one and exit.
13551
13552 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
13553
13554         PR target/29141
13555         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
13556         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
13557         variant for devices with 3-byte PC.
13558         (__tablejump_elpm__): New.
13559
13560 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
13561
13562         PR c/32041
13563         * c-parser.c (c_parser_postfix_expression): Allow `->' in
13564         offsetof member-designator, handle it as `[0].'.
13565
13566 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13567
13568         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
13569         function when not using named sections on targets with named sections
13570         if branch distance is less than 262132.
13571
13572 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
13573
13574         * combine.c (combine_instructions):  Recompute
13575         optimize_this_for_speed_p  for each BB in the main combine loop.
13576
13577 2009-01-12  Tomas Bily  <tbily@suse.cz>
13578
13579         PR middlend/38385
13580         * tree-loop-distribution.c (prop_phis): New function.
13581         (generate_builtin): Call prop_phis.
13582         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
13583
13584 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
13585
13586         PR tree-optimization/38807
13587         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
13588         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
13589
13590 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
13591
13592         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
13593         subreg of op0 to the original op0.
13594
13595 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
13596
13597         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
13598
13599 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
13600
13601         PR debug/7055
13602         * mips-tfile.c (parse_def): Fix parsing of def strings
13603         starting with digits.
13604
13605 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
13606
13607         PR target/38695
13608         * config/arm/arm.c (arm_is_long_call_p): Don't call
13609         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
13610
13611 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
13612
13613         * regrename.c (regrename_optimize): Fix dumping.
13614         (find_oldest_value_reg): Preserve REG_POINTER.
13615         (copy_hardreg_forward_1): Likewise.
13616
13617 2009-01-09  Diego Novillo  <dnovillo@google.com>
13618
13619         * gimple.h (struct gimple_statement_base) <uid>: Document
13620         the restrictions on its use.
13621         (gimple_uid): Tidy.
13622         (gimple_set_uid): Tidy.
13623
13624 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
13625
13626         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
13627         zero guard even if align_bytes != 0 and count is smaller than
13628         size_needed.
13629
13630 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
13631
13632         PR rtl-optimization/38495
13633         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
13634         (add_range_and_copies_from_move_list): Print all added ranges.
13635         Add ranges to memory optimized destination.
13636
13637 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
13638
13639         PR target/38686
13640         PR target/38708
13641         * config/i386/i386.c (override_options): Reject
13642         -mstringop-strategy=rep_8byte with -m32.
13643         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
13644         to 1.  Do count comparison against epilogue_size_needed at compile
13645         time even when count_exp was constant forced into register.  For
13646         size_needed don't jump to epilogue, instead just avoid aligning
13647         and invoke the body algorithm.  If need_zero_guard, add zero guard
13648         even if count is non-zero, but smaller than size_needed + number of
13649         bytes that could be stored for alignment.
13650         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
13651         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
13652         but smaller than size_needed + number of bytes that could be stored
13653         for alignment.  Compare size_needed with epilogue_size_needed instead
13654         of desired_align - align, don't adjust size_needed, pass
13655         epilogue_size_needed to the epilogue expanders.
13656
13657         PR c/35742
13658         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
13659
13660 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13661
13662         * pa.c (last_address): Change to unsigned.
13663         (update_total_code_bytes): Change argument to unsigned.  Don't
13664         check if insn addresses are set.
13665         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
13666         addresses are not set.
13667         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
13668
13669 2009-01-09  Nick Clifton  <nickc@redhat.com>
13670
13671         * config/sh/symbian.c: Replace uses of DECL_INLINE with
13672         DECL_DECLARED_INLINE_P.
13673
13674 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
13675
13676         PR middle-end/38347
13677         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
13678         GET_MODE (op0) in operand_subword_force calls.
13679
13680         PR middle-end/38771
13681         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
13682         fold_convert arg0 operands to TREE_TYPE (op0) first.
13683
13684 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
13685
13686         * params.def (ira-max-conflict-table-size): Decrease default value
13687         to 1000.
13688
13689 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
13690
13691         PR tree-optimization/37031
13692         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
13693         on parameter_set.
13694         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
13695         allocate it using gc instead of heap, use VEC_quick_push instead of
13696         VEC_safe_push.
13697         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
13698         instead of heap, use VEC_quick_push instead of VEC_safe_push.
13699         * tree-data-ref.h (struct access_matrix): Change matrix to gc
13700         allocated vector from heap allocated.
13701         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
13702         * tree-loop-linear.c (linear_transform_loops): Allocate nest
13703         vector only after perfect_loop_nest_depth call.
13704
13705 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
13706             Jan Sjodin  <jan.sjodin@amd.com>
13707
13708         PR tree-optimization/38559
13709         * graphite.c (debug_value, copy_constraint,
13710         swap_constraint_variables, scale_constraint_variable, ): New.
13711         (get_lower_bound, get_upper_bound): Removed.
13712         (graphite_trans_bb_strip_mine): Clean up this code that works
13713         only for constant number of iterations.  Fully copy upper and
13714         lower bound constraints, not only the constant part of them.
13715         * graphite.h (debug_value): Declared.
13716
13717 2009-01-08  Ira Rosen  <irar@il.ibm.com>
13718
13719         PR tree-optimization/37194
13720         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
13721         Don't add the cost of cost model guard in prologue to scalar
13722         outside cost in case of known number of iterations.
13723
13724 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
13725             Alan Modra  <amodra@bigpond.net.au>
13726
13727         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
13728         non-word-aligned REG+CONST addressing.
13729
13730 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
13731
13732         PR target/38706
13733         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
13734         free_after_compilation when outputting a thunk.
13735         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
13736         Do not call free_after_compilation here.
13737
13738 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
13739
13740         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
13741         (ix86_valid_target_attribute_inner_p): Ditto.
13742
13743 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
13744
13745         PR tree-optimization/38492
13746         PR tree-optimization/38498
13747         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
13748         * tree-chrec.h (scev_is_linear_expression): Declared.
13749         * graphite.c (graphite_cannot_represent_loop_niter): New.
13750         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
13751         (graphite_loop_normal_form): Use gcc_assert.
13752         (scan_tree_for_params): Use CASE_CONVERT.
13753         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
13754         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
13755         Use gcc_assert.  Discard scops that contain unhandled cases.
13756         (build_scop_conditions): Return a boolean status for unhandled cases.
13757         (strip_mine_profitable_p): Print the loop number, not its depth.
13758         (is_interchange_valid): Pass the depth of the loop nest, don't
13759         recompute it wrongly.
13760         (graphite_trans_bb_block): Same.
13761         (graphite_trans_bb_block): Print tentative of loop blocking.
13762         (graphite_trans_scop_block): Do not print that the loop has been
13763         blocked.
13764         (graphite_transform_loops): Do not handle scops that contain condition
13765         scalar phi nodes.
13766
13767 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
13768
13769         AVX Programming Reference (December, 2008)
13770         * config/i386/avxintrin.h (_mm256_stream_si256): New.
13771         (_mm256_stream_pd): Likewise.
13772         (_mm256_stream_ps): Likewise.
13773
13774         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
13775         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
13776         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
13777         (bdesc_special_args): Add __builtin_ia32_movntdq256,
13778         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
13779         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
13780         (ix86_expand_special_args_builtin): Likewise.
13781
13782         * config/i386/sse.md (AVXMODEDI): New.
13783         (avx_movnt<mode>): Likewise.
13784         (avx_movnt<mode>): Likewise.
13785         (<sse>_movnt<mode>): Remove AVX support.
13786         (sse2_movntv2di): Likewise.
13787
13788 2009-01-07  Richard Guenther  <rguenther@suse.de>
13789
13790         PR middle-end/38751
13791         * fold-const.c (extract_muldiv): Remove obsolete comment.
13792         (fold_plusminus_mult_expr): Undo MINUS_EXPR
13793         to PLUS_EXPR canonicalization for the canonicalization.
13794
13795 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
13796
13797         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
13798         hosted cross-compilers generating less efficient code.
13799
13800 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
13801
13802         * function.h (rtl_data): Add a dbr_scheduled_p field.
13803         * reorg.c (dbr_schedule): Set it.
13804         (gate_handle_delay_slots): Check it.
13805         * config/mips/mips.c (mips_base_delayed_branch): Delete.
13806         (mips_reorg): Check flag_delayed_branch instead of
13807         mips_base_delayed_branch.
13808         (mips_override_options): Don't set mips_base_delayed_branch
13809         or flag_delayed_branch.
13810
13811 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
13812
13813         PR rtl-optimization/38426.
13814         * ira.c (ira): Set current_function_is_leaf earlier.
13815
13816 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
13817
13818         PR rtl-optimization/38722
13819         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
13820         too early, only set a flag and modify after last possible
13821         undo_all point.
13822
13823 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
13824
13825         PR c/34252
13826         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
13827         * real.c (decimal_single_format): Correct values of emin and emax.
13828         (decimal_double_format): Ditto.
13829         (decimal_quad_format): Ditto.
13830         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
13831         computation of DECnn_MIN and DECnn_MAX for corrected values of
13832         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
13833         __DECnn_MIN__, and adjust its computation for the corrected value
13834         of emin.
13835
13836 2009-01-06  Jan Hubicka  <jh@suse.cz>
13837
13838         PR target/38744
13839         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
13840
13841 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
13842
13843         * doc/contrib.texi (Contributors): Slightly adjust the end note.
13844         Add Robert Clark to the list of testers.
13845
13846 2009-01-06  Jan Hubicka  <jh@suse.cz>
13847             Kai Tietz  <kai.tietz@onevision.com>
13848
13849         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
13850         * config/i386/i386.c (ix86_expand_call): Add clobbers.
13851
13852 2009-01-06  Jan Hubicka  <jh@suse.cz>
13853             Kai Tietz  <kai.tietz@onevision.com>
13854
13855         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
13856         for w64 ABI.
13857         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
13858         (ix86_nsaved_regs): Count only general purpose regs.
13859         (ix86_nsaved_sseregs): New.
13860         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
13861         to 16 for w64; compute padding and size of sse reg save area.
13862         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
13863         general purpose regs.
13864         (ix86_emit_save_sse_regs_using_mov): New.
13865         (ix86_expand_prologue): Save SSE regs if needed.
13866         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
13867         (ix86_emit_restore_sse_regs_using_mov): New.
13868         (ix86_expand_epilogue): Save SSE regs if needed.
13869
13870 2009-01-06  Jan Hubicka  <jh@suse.cz>
13871             Kai Tietz  <kai.tietz@onevision.com>
13872
13873         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
13874         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
13875         functions when accumulate outgoing args is off.
13876
13877 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
13878
13879         PR bootstrap/38742
13880         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
13881         before using pseudos_have_intersected_live_ranges_p.
13882
13883         * ira-int.h (ira_assert): Always define.
13884
13885 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
13886
13887         AVX Programming Reference (December, 2008)
13888         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
13889         (_mm256_permute2_pd): Likewise.
13890         (_mm_permute2_ps): Likewise.
13891         (_mm256_permute2_ps): Likewise.
13892         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
13893         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
13894
13895         * config/i386/i386.c (ix86_builtins): Remove
13896         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
13897         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
13898         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
13899         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
13900         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
13901         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
13902         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
13903         __builtin_ia32_vpermil2ps256.
13904         (ix86_init_mmx_sse_builtins): Updated.
13905         (ix86_expand_args_builtin): Likewise.
13906
13907 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13908
13909         * pa.c (output_call): Relocate non-jump insns in the delay slot of
13910         long absolute calls when generating PA 2.0 code.
13911
13912 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
13913
13914         PR rtl-optimization/38583
13915         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
13916
13917         * params.def (ira-max-conflict-table-size): New.
13918
13919         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
13920
13921         * ira.h (ira_conflicts_p): New external definition.
13922
13923         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
13924         table.  Report this.  Return result of building.
13925         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
13926         building conflict table.
13927
13928         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
13929         (ira_color): Use ira_conflicts_p.
13930
13931         * global.c: Include ira.h.
13932         (pseudo_for_reload_consideration_p, build_insn_chain): Use
13933         ira_conflicts_p.
13934
13935         * Makefile.in (global.o): Add ira.h.
13936
13937         * ira-build.c (mark_all_loops_for_removal,
13938         propagate_some_info_from_allocno): New.
13939         (remove_unnecessary_allocnos): Call
13940         propagate_some_info_from_allocno.
13941         (remove_low_level_allocnos): New.
13942         (remove_unnecessary_regions): Add parameter.  Call
13943         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
13944         parameter to remove_unnecessary_regions.
13945         (ira_build): Remove all regions but root if the conflict table was
13946         not built.  Update conflict hard regs for allocnos crossing calls.
13947
13948         * ira.c (ira_conflicts_p): New global.
13949         (ira): Define and use ira_conflicts_p.
13950
13951         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13952         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
13953         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
13954
13955 2009-01-06  Ben Elliston  <bje@au.ibm.com>
13956
13957         * gengtype-lex.l (YY_NO_INPUT): Define.
13958
13959 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13960
13961         PR c/34911
13962         * c-common.c (handle_vector_size_attribute): Also reject
13963         BOOLEAN_TYPE types.
13964
13965 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
13966
13967         PR tree-optimization/38492
13968         * graphite.c (rename_map_elt, debug_rename_elt,
13969         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
13970         rename_map_elt_info, eq_rename_map_elts,
13971         get_new_name_from_old_name, bb_in_sese_p): Moved around.
13972         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
13973         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
13974         (sese_build_livein_liveouts): New.
13975         (new_sese, free_sese): New.
13976         (new_scop): Call new_sese.
13977         (free_scop): Call free_sese.
13978         (rename_variables_from_edge, rename_phis_end_scop): Removed.
13979         (register_old_new_names): Renamed register_old_and_new_names.
13980         (register_scop_liveout_renames, add_loop_exit_phis,
13981         insert_loop_close_phis, struct igp,
13982         default_liveout_before_guard, add_guard_exit_phis,
13983         insert_guard_phis, copy_renames): New.
13984         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
13985         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
13986         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
13987         (scop_adjust_phis_for_liveouts): New.
13988         (gloog): Call scop_adjust_phis_for_liveouts.
13989
13990         * graphite.h (struct sese): Documented.  Added fields liveout,
13991         num_ver and livein.
13992         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
13993         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
13994         (struct scop): Added field liveout_renames.
13995         (SCOP_LIVEOUT_RENAMES): New.
13996
13997 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
13998
13999         PR tree-optimization/38510
14000         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
14001         (translate_clast): Call recompute_all_dominators before
14002         graphite_verify.
14003         (gloog): Call recompute_all_dominators before graphite_verify.
14004
14005 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
14006             Jan Sjodin  <jan.sjodin@amd.com>
14007
14008         PR tree-optimization/38500
14009         * graphite.c (create_sese_edges): Call fix_loop_structure after
14010         splitting blocks.
14011
14012 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
14013
14014         * config.gcc: Add m32r*-*-rtems*.
14015         * config/m32r/rtems.h: New file.
14016
14017 2009-01-05  Ben Elliston  <bje@au.ibm.com>
14018
14019         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
14020         (.po.pox): Likewise.
14021         (po/gcc.pot): Likewise.
14022
14023 2009-01-04  David S. Miller  <davem@davemloft.net>
14024
14025         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
14026         (STARTING_FRAME_OFFSET): Always set to zero.
14027
14028 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
14029
14030         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
14031         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
14032         fixed-point types, and vectors of the same.
14033
14034 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
14035
14036         * config/mips/sync.md (*mb_barrier): Rename to...
14037         (*memory_barrier): ...this.
14038
14039 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
14040
14041         * doc/extend.texi (Function Attributes): Move @cindex after @item
14042         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
14043         and put in alphabetical order. Fix 'target' name and put in order.
14044         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
14045         typos.
14046
14047 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
14048
14049         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
14050         (memory_barrier): Expand as unspec instead of unspec_volatile.
14051         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14052         (*memory_barrier): Define as unspec instead of unspec_volatile.
14053         Use (match_dup 0) as input operand.
14054
14055         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
14056         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
14057         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
14058         scratch register.  Remove operand 1.
14059         (*stbar): Define as unspec instead of unspec_volatile.
14060         Use (match_dup 0) as input operand, remove (const_int 8).
14061         (*membar): Define as unspec instead of unspec_volatile.
14062         Use (match_dup 0) as input operand, remove input operand 2.
14063
14064         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
14065         (memory_barrier): Expand as unspec instead of unspec_volatile.
14066         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14067         (*memory_barrier): Define as unspec instead of unspec_volatile.
14068         Use (match_dup 0) as input operand.
14069
14070         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
14071         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14072         Set volatile flag on operand 0.
14073         (*memory_barrier): New insn pattern.
14074
14075         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
14076         insn operands.
14077         (*memory_barrier): Use (match_dup 0) as input operand.
14078
14079         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
14080         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14081         Set volatile flag on operand 0.
14082         (*mb_internal): New insn pattern.
14083
14084         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
14085
14086 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
14087
14088         PR middle-end/38586
14089         * function.c (struct temp_slot): Move to the section of the file
14090         that deals with temp slots.  Remove field 'address'.
14091         (temp_slot_address_table): New hash table of address -> temp slot.
14092         (struct temp_slot_address_entry): New struct, items for the table.
14093         (temp_slot_address_compute_hash, temp_slot_address_hash,
14094         temp_slot_address_eq, insert_temp_slot_address): Support functions
14095         for the new table.
14096         (find_temp_slot_from_address): Rewrite to use the new hash table.
14097         (remove_unused_temp_slot_addresses): Remove addresses of temp
14098         slots that have been made available.
14099         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
14100         worker function for remove_unused_temp_slot_addresses.
14101         (assign_stack_temp_for_type): Don't clear the temp slot address list.
14102         Add the temp slot address to the address -> temp slot map.
14103         (update_temp_slot_address): Update via insert_temp_slot_address.
14104         (free_temp_slots): Call remove_unused_temp_slot_addresses.
14105         (pop_temp_slots): Likewise.
14106         (init_temp_slots): Allocate the address -> temp slot map, or empty
14107         the map if it is already allocated.
14108         (prepare_function_start): Initialize temp slot processing.
14109
14110 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
14111
14112         PR middle-end/38584
14113         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
14114         Calculate the size of all stack vars assuming no packing of stack
14115         vars will happen, replacing a quadratic algorithm with a linear one.
14116
14117 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
14118
14119         PR target/38707
14120         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
14121         can't be used.
14122
14123 2009-01-03  Diego Novillo  <dnovillo@google.com>
14124
14125         * doc/contrib.texi: Update contributions.
14126
14127 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
14128
14129         PR c++/38705
14130         * builtins.c (fold_builtin_memory_op): Give up if either operand
14131         is volatile.  Set srctype or desttype to non-qualified version
14132         of the other type.
14133
14134         PR c/38700
14135         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
14136         and FUNCTION_DECLs.
14137
14138 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
14139
14140         PR rtl-optimization/35805
14141         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
14142         problem if fast dce is able to remove any instructions.
14143         * dce.c (dce_process_block): Fix dump message.
14144
14145 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
14146
14147         PR 33649
14148         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
14149
14150 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
14151
14152         PR middle-end/38690
14153         * tree-flow.h (op_code_prio, op_prio): New prototypes.
14154         * tree-pretty-print.c (op_code_prio): New function.
14155         (op_prio): No longer static.  Use op_code_prio.
14156         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
14157         Use op_prio and op_code_prio to determine if () should be
14158         printed around operand(s) or not.
14159
14160         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
14161         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
14162         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
14163         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
14164         pp_character instead of pp_string for single letter printing.
14165
14166 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
14167
14168         * doc/extend.texi: Fix '#pragma GCC option' typo.
14169
14170 2009-01-02  Richard Guenther  <rguenther@suse.de>
14171
14172         * doc/install.texi (--enable-checking): Mention different
14173         default for stage1.
14174         (--enable-stage1-checking): Document.
14175
14176 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
14177
14178         PR middle-end/30142
14179         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
14180         case to be an error.
14181
14182 2009-01-02  Ben Elliston  <bje@au.ibm.com>
14183
14184         * config/fp-bit.h (pack_d): Constify argument.
14185         * config/fp-bit.c (makenan): Constify return type. Remove casts.
14186         (isnan): Constify argument.
14187         (isinf): Likewise.
14188         (iszero): Likewise.
14189         (pack_d): Likewise.
14190         (_fpadd_parts): Constify return type.
14191         (_fpmul_parts): Likewise.
14192         (_fpdiv_parts): Likewise.
14193
14194 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
14195
14196         PR c/36489
14197         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
14198         warn about overwriting initializer with side-effects or
14199         -Woverride-init if !IMPLICIT.
14200         (output_init_element): Likewise.  Pass IMPLICIT down to
14201         add_pending_init.
14202         (process_init_element): Add IMPLICIT argument.  Pass it down
14203         to output_init_element.
14204         (push_init_element, pop_init_level, set_designator): Adjust
14205         process_init_element callers.
14206         (set_nonincremental_init, set_nonincremental_init_from_string):
14207         Adjust add_pending_init callers.
14208         (output_pending_init_elements): Adjust output_init_element callers.
14209         * c-tree.h (process_init_element): Adjust prototype.
14210         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14211         process_init_element callers.
14212
14213 \f
14214 Copyright (C) 2009 Free Software Foundation, Inc.
14215
14216 Copying and distribution of this file, with or without modification,
14217 are permitted in any medium without royalty provided the copyright
14218 notice and this notice are preserved.