OSDN Git Service

./:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-01  Ian Lance Taylor  <iant@google.com>
2
3         * attribs.c (register_attribute): Use CONST_CAST.
4         * collect2.c (main): Use CONST_CAST2.
5         (scan_prog_file): Likewise.
6         * gcc.c (process_command, main): Likewise.
7         * toplev.c (toplev_main): Likewise.
8
9         * c-typeck.c (handle_warn_cast_qual): New static function,
10         partially broken out of build_c_cast.
11         (build_c_cast): Call handle_warn_cast_qual.
12         * doc/invoke.texi (Warning Options): Document new effect of
13         -Wcast-qual.
14
15 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
16
17         * diagnostic.c (diagnostic_build_prefix): Always print columns.
18         (diagnostic_report_current_module): Print columns.
19         * common.opt (flag_show_column): Enable by default.
20
21 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
22
23         * alias.c (find_base_term): Check for NULL term before returning.
24
25 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
26
27         Revert due to PR40320:
28         
29         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
30         * calls.c (emit_library_call_value_1): Don't force_operand for move
31         and push insns.
32
33 2009-06-01  Olivier Hainque  <hainque@adacore.com>
34             Eric Botcazou  <botcazou@adacore.com>
35
36         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
37         to be processed as a bitfield for constructor output purposes.
38         * output.h (initializer_constant_valid_for_bitfield_p): Declare
39         new function.
40         * varasm.c (oc_local_state): New type, output_constructor
41         local state to support communication with helpers.
42         (oc_outer_state): New type, output_constructor outer state of
43         relevance in recursive calls.
44         (output_constructor_array_range): New output_constructor helper,
45         extracted code for an array range element.
46         (output_constructor_regular_field): New output_constructor helper,
47         extracted code for an element that is not a bitfield.
48         (output_constructor_bitfield): New output_constructor helper,
49         extracted code for a bitfield element.  Accept an OUTER state
50         argument for recursive processing.  Recurse on record or array
51         CONSTRUCTOR values, possibly past noop conversions.
52         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
53         VALUE is a valid constant-valued expression for use in a static
54         bit-field initializer.
55         (output_constructor): Rework to use helpers.  Accept and honor an
56         OUTER state argument for recursive calls.  Return total size.  Be
57         prepared for nested constructors initializing bitfields.
58         (output_constant): Feed OUTER in calls to output_constructor.
59
60 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
61
62         * calls.c (emit_library_call_value_1): Don't force_operand for move
63         and push insns.
64
65 2009-06-01  Nick Clifton  <nickc@redhat.com>
66
67         * doc/invoke.texi (IA-64 Options): Fix typo.
68
69 2009-06-01  Ira Rosen  <irar@il.ibm.com>
70
71         PR tree-optimization/39129
72         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
73         printed message.
74         (vect_do_peeling_for_loop_bound): Use 
75         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
76         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
77         (vect_loop_versioning): Likewise.
78         (vect_create_cond_for_alias_checks): Fix indentation.
79         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
80         macros.
81         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
82         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
83         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
84         "control flow in loop".
85         (vect_estimate_min_profitable_iters): Use 
86         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
87         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
88         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
89         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
90         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
91         statement belongs to a group of strided accesses with the exact code 
92         check.
93         (vectorizable_load): Likewise.
94         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
95         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
96
97 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
98
99         * config/freebsd-stdint.h: New file.
100         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
101         Add freebsd-stdint.h to tm_file.
102
103 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
104
105         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
106         (thumb2_extendhidi2): Likewise.
107
108 2009-05-31  Ian Lance Taylor  <iant@google.com>
109
110         * regstat.c (regstat_n_sets_and_refs): Remove duplicate
111         definition.
112
113 2009-05-31  Ian Lance Taylor  <iant@google.com>
114
115         * Makefile.in (except.o): Depend upon gt-except.h, not
116         gt-$(EXCEPT_H).
117         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
118         (ipa-reference.o): Depend upon gt-ipa-reference.h.
119
120 2009-05-31  Jason Merrill  <jason@redhat.com>
121
122         * tree-pretty-print.c (print_call_name): Take the callee, not the
123         call itself.  Make non-static.  Use dump_function_name for
124         functions.
125         (dump_generic_node): Adjust.
126         * diagnostic.h: Declare print_call_name.
127         * gimple-pretty-print.c (dump_gimple_call): Use it.
128
129 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
130
131         * config/sh/sh.md (ashldi3_std): New define_expand.
132         (ashldi3): Use it.
133
134 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
135
136         PR target/40313
137         * config/sh/sh.c: Include debug.h.
138         (sh_expand_epilogue): Emit a blockage insn before the frame
139         pointer adjustment also when dwarf2out_do_frame returns true.
140
141 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
142
143         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
144         (thumb2_extendqidi2): New pattern.
145
146 2009-05-31  Ira Rosen  <irar@il.ibm.com>
147
148         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
149         mark phis for renaming.
150         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
151         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
152         Call mark_sym_for_renaming.
153         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
154         * tree-vect-loop.c (vect_transform_loop): Remove vect_memsyms_to_rename
155         initialization and a call to mark_set_for_renaming.
156
157 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
158
159         PR middle-end/40304
160         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
161         frame related even if !set_cfa && style < 0.
162
163 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
164
165         * config/i386/mingw-tls.c: New file.
166         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add
167         mingw-tls.c file.
168         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define
169         it for targets defining _WIN32 but not __CYGWIN__.
170
171 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
172
173         * configure.ac: Add MPC support.
174         
175         * config.in, configure: Regenerate.     
176
177 2009-05-29  Richard Henderson  <rth@redhat.com>
178
179         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
180         NOTE_INSN_BASIC_BLOCK.
181         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
182         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
183         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
184         to be deleted.
185         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
186         add in_use field.
187         (add_cfi): Disable check redefining cfa away from drap.
188         (lookup_cfa_1): Add remember argument; handle remember/restore.
189         (lookup_cfa): Pass remember argument.
190         (cfa_remember): New.
191         (compute_barrier_args_size_1): Remove sibcall check.
192         (dwarf2out_frame_debug_def_cfa): New.
193         (dwarf2out_frame_debug_adjust_cfa): New.
194         (dwarf2out_frame_debug_cfa_offset): New.
195         (dwarf2out_frame_debug_cfa_register): New.
196         (dwarf2out_frame_debug_cfa_restore): New.
197         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
198         (dwarf2out_begin_epilogue): New.
199         (dwarf2out_frame_debug_restore_state): New.
200         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
201         DW_CFA_restore_state.
202         (output_cfi_directive): Likewise.
203         (convert_cfa_to_fb_loc_list): Likewise.
204         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
205         * dwarf2out.h: Update.
206         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
207         (copy_insn_1): Early out for null.
208         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
209         and dwarf2out_frame_debug_restore_state.
210         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
211         (prologue_insn_hash, epilogue_insn_hash): New.
212         (free_after_compilation): Adjust freeing accordingly.
213         (record_insns): Create hash table if needed; push insns into
214         hash instead of array.
215         (maybe_copy_epilogue_insn): New.
216         (contains): Search hash table instead of array.
217         (sibcall_epilogue_contains): Remove.
218         (thread_prologue_and_epilogue_insns): Split eh_return insns
219         and mark them as epilogues.
220         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
221         scanning in terms of basic blocks.
222         * insn-notes.def (CFA_RESTORE_STATE): New.
223         * jump.c (returnjump_p_1): Accept EH_RETURN.
224         (eh_returnjump_p_1, eh_returnjump_p): New.
225         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
226         CFA_REGISTER, CFA_RESTORE): New.
227         * rtl.def (EH_RETURN): New.
228         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
229
230         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
231         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
232
233         * config/i386/i386.c (gen_push): Update cfa state.
234         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
235         add a CFA_ADJUST_CFA note.
236         (ix86_dwarf_handle_frame_unspec): Remove.
237         (ix86_expand_prologue): Update cfa state.
238         (ix86_emit_restore_reg_using_pop): New.
239         (ix86_emit_restore_regs_using_pop): New.
240         (ix86_emit_leave): New.
241         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
242         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
243         * config/i386/i386.h (struct machine_cfa_state): New.
244         (ix86_cfa_state): New.
245         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
246         (eh_return_internal): Merge from eh_return_<mode>,
247         use eh_return rtx, split w/ epilogue.
248
249 2009-05-29  Ian Lance Taylor  <iant@google.com>
250
251         * builtins.c (validate_gimple_arglist): Don't use va_arg with
252         enum type.
253         * calls.c (emit_library_call_value_1): Likewise.
254
255         * c-typeck.c (c_build_va_arg): New function.
256         * c-tree.h (c_build_va_arg): Declare.
257         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
258         instead of build_va_arg.
259
260 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
261
262         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
263         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
264         (ptr_difference_cost): Use affine combinations to compute it.
265         (difference_cost): Likewise.
266         (get_computation_cost_at): Compute more accurate cost for addresses
267         if the ratio is a multiplier allowed in addresses.
268         For non-addresses, consider that an additional offset or symbol is
269         added only once.
270
271 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
272
273         * config/i386/i386.c (ix86_decompose_address): Avoid useless
274         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
275
276         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
277         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
278         (prefix_rex): For UNIT_MMX don't imply the prefix by default
279         if MODE_DI.
280         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
281         to 1 for TYPE_SSE{IADD1,CVT1}.
282         (prefix_vex_imm8): Removed.
283         (length_vex): Only pass 1 as second argument to
284         ix86_attr_length_vex_default if prefix_extra is 0.
285         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
286         (length): For prefix vex computation use length_immediate
287         attribute instead of prefix_vex_imm8.
288         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
289         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
290         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
291         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
292         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
293         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
294         a space in between the operands.
295         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
296         if one operand is 0xff and the other one si, di, bp or sp.
297         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
298         other one si, di, bp or sp.
299         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
300         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
301         type and mode attributes.
302         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
303         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
304         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
305         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
306         prefix_data16 attribute iff MODE_DF.
307         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
308         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
309         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
310         constm128_operand in length_immediate computation.
311         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
312         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
313         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
314         length_immediate attribute to 1.
315         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
316         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
317         for certain alternatives.
318         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
319         prefix_data16 attribute if MODE_V1DF.
320         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
321         length_immediate to 1.
322         (set_got_rex64, set_rip_rex64): Remove length attribute, set
323         length_address to 4, set mode attribute to MODE_DI.
324         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
325         (fxam<mode>2_i387): Set length attribute to 4.
326         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
327         *prefetch_3dnow_rex): Override length_address attribute.
328         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
329         attributes.
330         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
331         (constm128_operand): Removed.
332         * config/i386/i386.c (memory_address_length): For
333         disp && !index && !base in 64-bit mode account for SIB byte if
334         print_operand_address can't optimize disp32 into disp32(%rip)
335         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
336         for fs: or gs: segment.
337         (ix86_attr_length_immediate_default): When checking if shortform
338         is possible, truncate immediate to the length of the non-shortened
339         immediate.
340         (ix86_attr_length_address_default): Ignore MEM_P operands
341         with X constraint.
342         (ix86_attr_length_vex_default): Only check for DImode on
343         GENERAL_REG_P operands.
344         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
345         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
346         (sse_cvttps2pi): Clear prefix_rep attribute.
347         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
348         attribute.
349         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
350         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
351         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
352         iff operand 2 is const_int_operand.
353         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
354         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
355         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
356         instead of vex.
357         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
358         prefix_data16.
359         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
360         prefix_data16 attribute for movlpd and movhpd instructions.
361         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
362         length_immediate for shufpd instruction.
363         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
364         (avx_cmpp<avxmodesuffixf2c><mode>3,
365         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
366         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
367         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
368         *vec_dupv4sf_avx, *vec_dupv4sf): Set
369         length_immediate attribute to 1.
370         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
371         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
372         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
373         prefix_data16 attribute for the first alternative to 1.
374         (*avx_loadlps): Override length_immediate for the first alternative.
375         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
376         attributes for second alternative.
377         (*vec_concatv2sf_sse4_1): Override length_immediate and
378         prefix_data16 attributes for second alternative.
379         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
380         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
381         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
382         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
383         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
384         prefix_data16 and length_immediate to 1.
385         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
386         to 1.
387         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
388         prefix_extra attribute for variants that don't have 0f prefix
389         alone.
390         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
391         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
392         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
393         *sse4_1_pextrd): Set length_immediate to 1.
394         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
395         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
396         to 1.
397         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
398         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
399         length_immediate to 1 for second alternative.
400         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
401         prefix_extra and length_immediate attributes for the first
402         alternative.
403         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
404         first alternative.
405         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
406         to 1 for the first and third alternative.
407         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
408         alternative.
409         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
410         attribute.
411         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
412         attribute to 0.
413         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
414         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
415         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
416         *avx_psign<mode>3): Set prefix_extra attribute to 1.
417         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
418         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
419         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
420         ssse3_psign<mode>3): Override prefix_rex attribute.
421         (*avx_palignrti): Override prefix_extra and length_immediate
422         to 1.
423         (ssse3_palignrti): Override length_immediate to 1.
424         (ssse3_palignrdi): Override length_immediate to 1, override
425         prefix_rex attribute.
426         (abs<mode>2): Override prefix_rep to 0, override prefix_rex
427         attribute.
428         (sse4a_extrqi): Override length_immediate to 2.
429         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
430         (sse4a_insertq): Override prefix_data16 to 0.
431         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
432         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
433         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
434         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
435         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
436         and length_immediate to 1.
437         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
438         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
439         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
440         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
441         and length_immediate to 1.
442         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
443         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
444         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
445         avx_ptest256): Override prefix_extra to 1.
446         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
447         Override prefix_data16 and length_immediate to 1.
448         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
449         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
450         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
451         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
452         prefix_data16 to 0 and prefix_extra to 2.
453         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
454         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
455         attribute.
456         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
457         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
458         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
459         and prefix_extra to 2.
460         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
461         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
462         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
463         avx_vpermilvar<mode>3,
464         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
465         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
466         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
467         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
468         Override prefix_extra to 1.
469         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
470         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
471         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
472         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
473         prefix_extra and length_immediate to 1.
474         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
475         modrm to 0.
476         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
477         to 1 for the first alternative.
478         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
479         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
480         cases.
481         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
482         *movv2sf_internal_avx, *movv2sf_internal): Override
483         prefix_rep attribute for certain alternatives.
484         (*mov<mode>_internal): Override prefix_rep or prefix_data16
485         attributes for certain alternatives.
486         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
487         attributes for certain alternatives.
488         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
489         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
490         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
491         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
492         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
493         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
494         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
495         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
496         length_immediate to 1 if operand 2 is const_int_operand.
497         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
498         *vec_extractv2si_1): Set length_immediate
499         attribute to 1.
500         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
501         using old 3DNOW insn rather than SSE/3DNOW_A.
502         (mmx_emms, mmx_femms): Clear modrm attribute.
503
504 2009-05-29  Martin Jambor  <mjambor@suse.cz>
505
506         * tree-sra.c:  New implementation of SRA.
507
508         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
509         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
510         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
511         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
512         (SRA_MAX_STRUCTURE_COUNT): Removed.
513         (SRA_FIELD_STRUCTURE_RATIO): Removed.
514         * doc/invoke.texi (sra-max-structure-size): Removed.
515         (sra-field-structure-ratio): Removed.
516
517 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
518
519         PR middle-end/40291
520         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
521         before expansion.
522
523 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
524
525         PR rtl-optimization/40101
526         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
527         seqno.  Adjust comment.
528         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
529         inserting bookkeeping before a jump, the jump is not scheduled.
530         When no positive seqno found, provide a value.  Add comment.
531
532 2009-05-29  Richard Guenther  <rguenther@suse.de>
533
534         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
535         short-cutting on the first component.
536
537 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
538
539         PR middle-end/39958
540         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
541         for trees other than decls/types.
542
543 2009-05-29  Richard Guenther  <rguenther@suse.de>
544
545         * tree-ssa-operands.c (get_expr_operands): Do not handle
546         INDIRECT_REFs in the handled-component case.  Remove
547         unused get_ref_base_and_extent case.
548         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
549         tree_low_cst and host_integerp where possible.
550         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
551         codes for equivalence.
552         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
553
554 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
555
556         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
557         to tmake_file for i[34567]86-*-cygwin*. 
558
559 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
560
561         PR target/40017
562         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
563         (altivec_categorize_keyword, init_vector_keywords,
564         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
565         similar to bool.
566
567 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
568
569         * tree.c (handle_dll_attribute): Check if node is
570         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
571
572 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
573
574         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
575         component.
576         (thumb2_zero_extendqidi2): Likewise.
577
578 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
579
580         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
581         instead of gen_movrt.
582         * config/sh/sh.md (movrt): Remove.
583
584 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
585
586         * doc/invoke.texi (IA-64 Options)
587         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
588         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
589         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
590         -msched-prefer-non-control-spec-insns,
591         -msched-stop-bits-after-every-cycle,
592         -msched-count-spec-in-critical-path,
593         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
594         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns
595         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
596         and -msched-spec-verbose.
597
598 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
599
600         * config/arm/lib1funcs.asm (__clear_cache): Define if
601         L_clear_cache.
602         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
603         error if used.
604         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
605
606 2009-05-28  Richard Guenther  <rguenther@suse.de>
607
608         * tree-ssa-alias.c (ao_ref_init): New function.
609         (ao_ref_base): Likewise.
610         (ao_ref_base_alias_set): Likewise.
611         (ao_ref_alias_set): Likewise.
612         (refs_may_alias_p_1): Change signature.
613         (refs_may_alias_p): Adjust.
614         (refs_anti_dependent_p): Likewise.
615         (refs_output_dependent_p): Likewise.
616         (call_may_clobber_ref_p_1): Change signature.
617         (call_may_clobber_ref_p): Adjust.
618         (stmt_may_clobber_ref_p_1): New function split out from ...
619         (stmt_may_clobber_ref_p): ... here.
620         (maybe_skip_until): Adjust signature.
621         (get_continuation_for_phi): Likewise.
622         (walk_non_aliased_vuses): Likewise.
623         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
624         (ao_ref_init): Declare.
625         (ao_ref_base): Likewise.
626         (ao_ref_alias_set): Likewise.
627         (stmt_may_clobber_ref_p_1): Likewise.
628         (walk_non_aliased_vuses): Adjust.
629         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
630         (get_ref_from_reference_ops): remove.
631         (vn_reference_lookup_2): Adjust signature.
632         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
633         (vn_reference_lookup_pieces): Adjust signature, do not re-build
634         trees.
635         (vn_reference_lookup): Adjust.
636         (vn_reference_insert): Likewise.
637         (vn_reference_insert_pieces): Adjust signature.
638         (visit_reference_op_call): Adjust.
639         * tree-ssa-pre.c (get_expr_type): Simplify.
640         (phi_translate_1): Adjust.
641         (compute_avail): Likewise.
642         (translate_vuse_through_block): Do not re-build trees.
643         (value_dies_in_block_x): Likewise.
644         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
645         fields.
646         (vn_reference_lookup_pieces): Adjust declaration.
647         (vn_reference_insert_pieces): Likewise.
648
649 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
650
651         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
652         with checking disabled.
653
654 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
655
656         PR target/37216
657
658         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
659         macro definition for support of three-operand format aligned
660         .comm directive in assembler on cygwin/pe/mingw target OS.
661         * configure:  Regenerate.
662         * config.h:  Regenerate.
663
664         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
665         aligned form of .comm directive if -mpe-aligned-commons is in effect.
666         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
667
668         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
669         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
670
671 2009-05-28  Ira Rosen  <irar@il.ibm.com>
672
673         PR tree-optimization/40254
674         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
675         in analysis of basic blocks.
676
677 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
678
679         PR middle-end/33699
680         * target.h (struct gcc_target): Fix indentation.  Add
681         const_anchor.
682         * target-def.h (TARGET_CONST_ANCHOR): New macro.
683         (TARGET_INITIALIZER): Use it.
684         * cse.c (CHEAPER): Move it up to the other macros.
685         (insert): Rename this ...
686         (insert_with_costs): ... to this.  Add cost parameters.  Update
687         function comment.
688         (insert): New function.  Call insert_with_costs.
689         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
690         find_reg_offset_for_const, try_const_anchors): New functions.
691         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
692         when using a const-anchor.  Call insert_const_anchors.
693         * config/mips/mips.c (mips_set_mips16_mode): Set
694         targetm.const_anchor.
695         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
696
697 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
698
699         * tree-inline.c (remap_decls): Enable nonlocalized variables
700         when not optimizing.
701
702 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
703
704         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
705         Simplify other tests involving optimize.
706
707 2009-05-27  Tom Tromey  <tromey@redhat.com>
708
709         * unwind-dw2.c (_Unwind_DebugHook): New function.
710         (uw_install_context): Call _Unwind_DebugHook.
711
712 2009-05-27  Tom Tromey  <tromey@redhat.com>
713
714         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
715
716 2009-05-27  Ian Lance Taylor  <iant@google.com>
717
718         * Makefile.in (LINKER, LINKER_FLAGS): Define.
719         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
720         (ALL_LINKERFLAGS): Define.
721         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
722         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
723         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
724         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
725         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
726         $(LINKER_FOR_BUILD).
727         (build/gcov-iov$(build_exeext)): Likewise.
728
729 2009-05-27  Julian Brown  <julian@codesourcery.com>
730
731         * gcse.c (target.h): Include.
732         (can_assign_to_reg_without_clobbers_p): Check that the target allows
733         copy of argument to a pseudo register.
734
735 2009-05-27  Diego Novillo  <dnovillo@google.com>
736
737         * tree-ssa-live.c (dump_scope_block): Document arguments.
738         (dump_scope_blocks): Document.
739         (debug_scope_blocks): New.
740         * tree-flow.h (debug_scope_blocks): Declare.
741
742 2009-05-21  Denis Chertykov  <denisc@overta.ru>
743
744         * doc/contrib.texi (Contributors): add myself to the list.
745
746 2009-05-27  Olivier Hainque  <hainque@adacore.com>
747
748         * expr.c (target_align): New function.  Alignment the TARGET of an
749         assignment may be assume to have.
750         (highest_pow2_factor_for_target): Use it instead of relying on
751         immediate tree attributes of TARGET, not necessarily honored when
752         intermediate bitfields are involved.
753         
754 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
755
756         PR target/40266
757         * config/i386/driver-i386.c (host_detect_local_cpu): Support
758         AVX, SSE4, AES, PCLMUL and POPCNT.
759
760 2009-05-27  Diego Novillo  <dnovillo@google.com>
761
762         * tree-pretty-print.c (dump_location): New.
763         (dump_generic_node): Call it.
764         Factor code to handle BLOCK nodes ...
765         (dump_block_node): ... here.
766
767 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
768
769         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h with
770         it.
771         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
772         included.
773         * gcc-plugin.h: Include config.h and system.h.
774         (IN_GCC): Define if not defined.
775
776 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
777
778         PR middle-end/40249
779         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
780         with -fno-inline.
781
782 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
783
784         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
785         applicable.
786         * config/m32r/m32r.h: Ditto.
787         * config/m32r/m32r.md: Ditto.
788         * config/m32r/predicates.md: Ditto.
789
790 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
791
792         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
793
794 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
795
796         * doc/plugins.texi
797         (Loading plugins): typo.
798         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
799         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
800         (Interacting with the GCC Garbage Collector): Added new section.
801         (Giving information about a plugin): Added new section for
802         PLUGIN_INFO.
803         * ggc.h (ggc_register_root_tab): Added declaration.
804         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
805         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
806         (register_callback): Improved comment in declaration.
807         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for
808         vectors.
809         (extra_root_vec) Added static variable for dynamic roots
810         registration.
811         (ggc_register_root_tab) Added new routine.
812         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
813         PLUGIN_GGC_MARKING event.
814         * ggc-zone.c: Include plugin.h.
815         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
816         * ggc-page.c: Include plugin.h.
817         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
818         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
819         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
820         (register_callback): check lack of callbacks for
821         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
822         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
823         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
824         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
825         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
826         dependency on plugin.h.
827         (plugin.o): Added dependency on ggc.h...
828
829 2009-05-26  Richard Guenther  <rguenther@suse.de>
830
831         PR middle-end/40248
832         Revert
833         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
834         with mismatched comparison modes.
835
836         * expr.c (expand_expr_real_1): Expand the operand of a
837         VIEW_CONVERT_EXPR in its natural mode.
838
839 2009-05-26  Ian Lance Taylor  <iant@google.com>
840
841         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
842         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
843         (ALL_COMPILERFLAGS): Define.
844         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
845         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
846         (collect2$(exeext), collect2.o): Likewise.
847         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
848         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
849         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
850         (libbackend.o, intl.o, cppdefault.o): Likewise.
851         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
852         (build/%.o): Use $(COMPILER_FOR_BUILD).
853         (build/gen%$(build_exeext)): Likewise.
854         (build/gcov-iov$(build_exeext)): LIkewise.
855         * config/t-darwin (darwin.o): Use $(COMPILER).
856         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
857         * config/t-sol2 (sol2-c.o): Likewise.
858         (sol2.o): Likewise.
859         * config/t-vxworks (vxworks.o): Likewise.
860         * config/x-darwin (host-darwin.o): Likewise.
861         * config/x-hpux (host-hpux.o): Likewise.
862         * config/x-linux (host-linux.o): Likewise.
863         * config/x-solaris (host-solaris.o): Likewise.
864         * config/alpha/x-alpha (driver-alpha.o): Likewise.
865         * config/arm/t-arm (arm-c.o): Likewise.
866         * config/arm/t-pe (pe.o): Likewise.
867         * config/arm/t-wince-pe (pe.o): Likewise.
868         * config/i386/t-cygming (winnt.o): Likewise.
869         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
870         * config/i386/t-cygwin (cygwin1.o): Likewise.
871         (cygwin2.o): Likewise.
872         * config/i386/t-i386 (i386-c.o): Likewise.
873         * config/i386/t-interix (winnt.o): Likewise.
874         * config/i386/t-netware (netware.o): Likewise.
875         * config/i386/t-nwld (nwld.o): Likewise.
876         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
877         * config/i386/x-i386 (driver-i386.o): Likewise.
878         * config/i386/x-cygwin (host-cygwin.o): Likewise.
879         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
880         * config/ia64/t-ia64 (ia64-c.o): Likewise.
881         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
882         * config/mips/x-native (driver-native.o): Likewise.
883         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
884         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
885         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
886         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
887         * config/score/t-score-elf (score7.o): Likewise.
888         (score3.o): Likewise.
889         * config/sh/t-sh (sh-c.o): Likewise.
890         * config/sh/t-symbian (sh-c.o): Likewise.
891         (symbian.o): Likewise.
892         * config/spu/t-spu-elf (spu-c.o): Likewise.
893         * config/v850/t-v850 (v850-c.o): Likewise.
894         * config/v850/t-v850e (v850-c.o): Likewise.
895
896 2009-05-26  Richard Guenther  <rguenther@suse.de>
897
898         PR tree-optimization/40122
899         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
900         VECTOR_CSTs if possible.
901         (fold_gimple_assign): Likewise.
902
903 2009-05-26  Richard Guenther  <rguenther@suse.de>
904
905         PR middle-end/40252
906         * fold-const.c (fold_binary): Use the correct types for building
907         rotates.
908
909 2009-05-26  Richard Guenther  <rguenther@suse.de>
910
911         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
912         redundant calls to merge_alias_info.
913         (bump_vector_ptr): Likewise.
914         * tree-ssa-copy.c (merge_alias_info): Remove.
915         (replace_exp_1): Remove call to merge_alias_info.
916         (propagate_tree_value): Likewise.
917         (fini_copy_prop): Propagate points-to info.
918         * tree-flow.h (merge_alias_info): Remove.
919
920 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
921
922         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
923
924 2009-05-25  Jan Hubicka  <jh@suse.cz>
925
926         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
927         * cgraph.h (struct inline_summary): New filed self_wize,
928         size_inlining_benefit, self_time and time_inlining_benefit.
929         (struct cgraph_global_info): Replace insns by time ans size fields.
930         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
931         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
932         (ipcp_update_callgraph): Do not touch function bodies.
933         * ipa-inline.c: Include except.h
934         (MAX_TIME): New constant.
935         (overall_insns): Remove.
936         (leaf_node_p): New.
937         (overall_size, max_benefit): New static variables.
938         (cgraph_estimate_time_after_inlining): New function.
939         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
940         (cgraph_clone_inlined_nodes): Update size.
941         (cgraph_mark_inline_edge): Update size.
942         (cgraph_estimate_growth): Use size info.
943         (cgraph_check_inline_limits): Check size.
944         (cgraph_default_inline_p): Likewise.
945         (cgraph_edge_badness): Compute badness based on benefit and size cost.
946         (cgraph_decide_recursive_inlining): Check size.
947         (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
948         times.
949         (cgraph_decide_inlining): Likewise.
950         (cgraph_decide_inlining_incrementally): Likewise; honor
951         PARAM_EARLY_INLINING_INSNS.
952         (likely_eliminated_by_inlining_p): New predicate.
953         (estimate_function_body_sizes): New function.
954         (compute_inline_parameters): Use it.
955         * except.c (must_not_throw_labels): New function.
956         * except.h (must_not_throw_labels): Declare.
957         * tree-inline.c (init_inline_once): Kill inlining_weigths
958         * tree-ssa-structalias.c: Avoid uninitialized warning.
959         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
960         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
961         (PARAM_INLINE_CALL_COST): Remove.
962         (PARAM_EARLY_INLINING_INSNS): New.
963
964 2009-05-25  Richard Guenther  <rguenther@suse.de>
965
966         PR tree-optimization/36327
967         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
968         callback for reference translation or lookup at the point
969         of may-defs.
970         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
971         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
972         for union COMPONENT_REFs.
973         (vn_reference_lookup_3): New callback.  Lookup from memset
974         and CONSTRUCTOR assignment, translate through struct copies.
975         (vn_reference_lookup_pieces): Make sure to not free the
976         passed operands array.  Adjust walk_non_aliased_vuses call.
977         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
978         make sure we do not leak memory.
979
980 2009-05-25  Richard Guenther  <rguenther@suse.de>
981
982         * tree-ssa-alias.h (dump_points_to_solution): Declare.
983         * tree-inline.c (expand_call_inline): Reset the escaped and
984         callused solutions.
985         * tree-ssa-structalias.c (pass_build_ealias): New.
986         * tree-pass.h (pass_build_ealias): Declare.
987         * passes.c (init_optimization_passes): Add PTA during 
988         early optimizations.
989         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
990         and CALLUSED solutions.
991         (dump_points_to_solution): New function, split out from ...
992         (dump_points_to_info_for): ... here.
993         * tree-parloops.c (parallelize_loops): Reset the escaped and
994         callused solutions.
995
996 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
997
998         PR bootstrap/40027
999         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
1000         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
1001
1002 2009-05-25  Ira Rosen  <irar@il.ibm.com>
1003
1004         PR tree-optimization/40238
1005         * tree-vect-stmts.c (vect_init_vector): Insert initialization
1006         statements after basic block's labels.
1007         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
1008         to free the allocated memory.
1009
1010 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
1011
1012         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
1013         return address with a USE.
1014
1015 2009-05-24  Richard Guenther  <rguenther@suse.de>
1016
1017         PR middle-end/40233
1018         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
1019         array type from the main variant of the inner type.
1020
1021 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1022
1023         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
1024         definition to bool (from int) to un-break build.
1025         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
1026
1027 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
1028
1029         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
1030         discard_stmt_changes): Delete.
1031         * tree-ssa-operands.c (scb_stack): Delete.
1032         (init_ssa_operands): Do not initialize it.
1033         (fini_ssa_operands): Do not free it.
1034         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
1035
1036         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
1037         update_stmt, remove the others.  Fix comments.
1038         * tree-dfa.c (optimize_stack_restore): Likewise.
1039         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
1040         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
1041         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
1042         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
1043         Likewise.
1044         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1045         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
1046         (dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan.
1047         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
1048         (stmts_to_rescan): Change item type to gimple.
1049         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
1050
1051 2009-05-24  Ira Rosen  <irar@il.ibm.com>
1052
1053         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
1054         * tree-pass.h (pass_slp_vectorize): New pass.
1055         * params.h (SLP_MAX_INSNS_IN_BB): Define.
1056         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
1057         * tree-vectorizer.c (timevar.h): Include.
1058         (user_vect_verbosity_level): Declare.
1059         (vect_location): Fix comment.
1060         (vect_set_verbosity_level): Update user_vect_verbosity_level
1061         instead of vect_verbosity_level.
1062         (vect_set_dump_settings): Add an argument. Ignore user defined
1063         verbosity if dump flags require higher level of verbosity. Print to
1064         stderr only for loop vectorization.
1065         (vectorize_loops): Update call to vect_set_dump_settings.
1066         (execute_vect_slp): New function.
1067         (gate_vect_slp): Likewise.
1068         (struct gimple_opt_pass pass_slp_vectorize): New.
1069         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
1070         access its members.
1071         (vec_info_for_bb): New function.
1072         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
1073         (VECTORIZATION_ENABLED): New macro.
1074         (SLP_ENABLED, SLP_DISABLED): Likewise.
1075         (vect_is_simple_use): Add bb_vec_info argument.
1076         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
1077         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
1078         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
1079         vect_schedule_slp, vect_analyze_slp): Likewise.
1080         (vect_analyze_stmt): Add slp_tree argument.
1081         (find_bb_location): Declare.
1082         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1083         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
1084         (vect_analyze_loop_operations, vect_analyze_loop,
1085         get_initial_def_for_induction, vect_create_epilog_for_reduction,
1086         vect_finalize_reduction, vectorizable_reduction,
1087         vectorizable_live_operation, vect_transform_loop): Likewise.
1088         * tree-data-ref.c (dr_analyze_innermost): Update comment,
1089         skip evolution analysis if analyzing a basic block.
1090         (dr_analyze_indices): Likewise.
1091         (initialize_data_dependence_relation): Skip the test whether the
1092         object is invariant for basic blocks.
1093         (compute_all_dependences): Skip dependence analysis for data
1094         references in basic blocks.
1095         (find_data_references_in_stmt): Don't fail in case of invariant
1096         access in basic block.
1097         (find_data_references_in_bb): New function.
1098         (find_data_references_in_loop): Move code to
1099         find_data_references_in_bb and add a call to it.
1100         (compute_data_dependences_for_bb): New function.
1101         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
1102         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
1103         that STEP is 0.
1104         (vect_analyze_data_ref_dependence): Check for interleaving in case of
1105         unknown dependence in basic block and fail in case of dependence in
1106         basic block.
1107         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
1108         dependence instances from either loop or basic block vectorization
1109         info.
1110         (vect_compute_data_ref_alignment): Check if it is loop vectorization
1111         before calling nested_in_vect_loop_p.
1112         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
1113         dependence instances from either loop or basic block vectorization
1114         info.
1115         (vect_verify_datarefs_alignment): Likewise.
1116         (vect_enhance_data_refs_alignment): Adjust function calls.
1117         (vect_analyze_data_refs_alignment): Likewise.
1118         (vect_analyze_group_access): Fix printing. Skip different checks if
1119         DR_STEP is 0. Keep strided stores either in loop or basic block
1120         vectorization data structure. Fix indentation.
1121         (vect_analyze_data_ref_access): Fix comments, allow zero step in
1122         basic blocks.
1123         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
1124         dependence instances from either loop or basic block vectorization
1125         info.
1126         (vect_analyze_data_refs): Update comment. Call
1127         compute_data_dependences_for_bb to analyze basic blocks.
1128         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
1129         case of loop vectorization. In case of basic block vectorization use
1130         data-ref itself as a base.
1131         (vect_create_data_ref_ptr): In case of basic block vectorization:
1132         don't advance the pointer, add new statements before the current
1133         statement.  Adjust function calls.
1134         (vect_supportable_dr_alignment): Support only aligned accesses in
1135         basic block vectorization.
1136         * common.opt (ftree-slp-vectorize): New flag.
1137         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
1138         (vect_pattern_recog_1): Likewise.
1139         * tree-vect-stmts.c (process_use): Likewise.
1140         (vect_init_vector): Add new statements in the beginning of the basic
1141         block in case of basic block SLP.
1142         (vect_get_vec_def_for_operand): Adjust function calls.
1143         (vect_finish_stmt_generation): Likewise.
1144         (vectorizable_call): Add assert that it is loop vectorization, adjust
1145         function calls.
1146         (vectorizable_conversion, vectorizable_assignment): Likewise.
1147         (vectorizable_operation): In case of basic block SLP, take
1148         vectorization factor from statement's type and skip the relevance
1149         check. Adjust function calls.
1150         (vectorizable_type_demotion): Add assert that it is loop
1151         vectorization, adjust function calls.
1152         (vectorizable_type_promotion): Likewise.
1153         (vectorizable_store): Check for outer loop only in case of loop
1154         vectorization. Adjust function calls. For basic blocks, skip the
1155         relevance check and don't advance pointers.
1156         (vectorizable_load): Likewise.
1157         (vectorizable_condition): Add assert that it is loop vectorization,
1158         adjust function calls.
1159         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
1160         that it is not reduction, get vector type, call only supported
1161         functions, skip loop specific parts.
1162         (vect_transform_stmt): Check for outer loop only in case of loop
1163         vectorization.
1164         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
1165         (vect_is_simple_use): Fix comment, add new argument, fix conditions
1166         for external definition.
1167         * passes.c (pass_slp_vectorize): New pass.
1168         * tree-vect-slp.c (find_bb_location): New function.
1169         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
1170         check for patterns only in loops.
1171         (vect_build_slp_tree): Add argument, adjust function calls, fail in
1172         case of multiple types in basic block SLP.
1173         (vect_mark_slp_stmts_relevant): New function.
1174         (vect_supported_load_permutation_p): Fix comment.
1175         (vect_analyze_slp_instance): Add argument. In case of basic block
1176         SLP, take vectorization factor from statement's type, check that
1177         unrolling factor is 1. Adjust function call. Save SLP instance in
1178         either loop or basic block vectorization structure. Return FALSE,
1179         if SLP failed.
1180         (vect_analyze_slp): Add argument. Get strided stores groups from
1181         either loop or basic block vectorization structure. Return FALSE
1182         if basic block SLP failed.
1183         (new_bb_vec_info): New function.
1184         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1185         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1186         (vect_schedule_slp): Add argument. Get SLP instances from either
1187         loop or basic block vectorization structure. Set vectorization factor
1188         to be 1 for basic block SLP.
1189         (vect_slp_transform_bb): New function.
1190         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1191
1192 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
1193
1194         * final.c (shorten_branches): Do not align labels for jump tables.
1195         (final_scan_insn): Use JUMP_TABLE_DATA_P.
1196
1197 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
1198
1199         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1200         Remove outdated reference to flow.c and fix nits.
1201         * doc/gccint.texi: Tweak RTL description.
1202         * doc/rtl.texi: Likewise.
1203
1204 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
1205
1206         * config/avr/avr.c: Change my email address.
1207         * config/avr/avr.h: Likewise.
1208         * config/avr/avr.md: Likewise.
1209         * config/avr/avr-protos.h: Likewise.
1210         * config/avr/libgcc.S: Likewise.
1211
1212 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1213
1214         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
1215         (spu_split_load, spu_split_store): Change return type to int.
1216         (spu_split_convert): Declare.
1217         * config/spu/predicates.md (spu_mem_operand): Remove.
1218         (spu_mov_operand): Update.
1219         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
1220         * config/spu/spu.c (regno_aligned_for_load): Remove.
1221         (reg_aligned_for_addr, spu_expand_load): Define.
1222         (spu_expand_extv): Reimplement and handle MEM.
1223         (spu_expand_insv): Handle MEM.
1224         (spu_sched_reorder): Handle insn's with length 0.
1225         (spu_legitimate_address_p): Reimplement.
1226         (store_with_one_insn_p): Return TRUE for any mode with size
1227         larger than 16 bytes.
1228         (address_needs_split): Define.
1229         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
1230         operands.
1231         (spu_convert_move): Define.
1232         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
1233         (spu_split_store): Change all MEM's to TImode.
1234         (spu_init_expanders): Preallocate registers that correspond to
1235         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
1236         mark_reg_pointer.
1237         (spu_split_convert): Define.
1238         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
1239         (_move<mode>, _movdi, _movti): Update predicate and condition.
1240         (load, store): Change to define_split.
1241         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
1242         extend<mode>ti2.
1243         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
1244         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
1245         define_insn_and_split of lshr<mode>3.
1246         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
1247         (<v>ashr<mode>3_imm): Define.
1248         (extv, extzv, insv): Allow MEM operands.
1249         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
1250         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
1251         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
1252         (_spu_convert2): Change to define_insn_and_split and remove the
1253         corresponding define_peephole2.
1254         (stack_protect_set, stack_protect_test, stack_protect_test_si):
1255         Change predicates to memory_operand.
1256
1257 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
1258
1259         * config/arm/thumb2.md: Add 16-bit multiply instructions.
1260
1261 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1262
1263         PR tree-optimization/40219
1264         * tree.c (iterative_hash_expr): Make sure the builtin function is
1265         a normal builtin function and not a front end or back end builtin
1266         before indexing into the built_in_decls array.
1267
1268 2009-05-22  Richard Guenther  <rguenther@suse.de>
1269
1270         PR middle-end/38964
1271         * alias.c (write_dependence_p): Do not use TBAA for answering
1272         anti-dependence or output-dependence.
1273         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
1274         (emit_pointer_definition): Remove.
1275         (emit_alias_warning): Likewise.
1276         (find_what_var_points_to): Remove TBAA pruning code.
1277         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
1278         violations.
1279         (compute_points_to_sets): Remove code computing the set of
1280         dereferenced pointers.
1281         * tree-data-ref.c (dr_may_alias_p): Properly use the split
1282         oracle for querying anti and output dependencies.
1283         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
1284         if TBAA may be applied.
1285         (refs_anti_dependent_p): New function.
1286         (refs_output_dependent_p): Likewise.
1287         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
1288         (refs_output_dependent_p): Likewise.
1289         * doc/tree-ssa.texi (Memory model): New section.
1290         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1291         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1292         * cfgexpand.c (expand_gimple_basic_block): Do not handle
1293         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
1294         * expr.c (expand_expr_real_1): Likewise.
1295         * gimple-low.c (lower_stmt): Likewise.
1296         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
1297         (dump_gimple_cdt): Remove.
1298         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1299         (gimple_size): Likewise.
1300         (walk_gimple_op): Likewise.
1301         (is_gimple_stmt): Likewise.
1302         (walk_stmt_load_store_addr_ops): Likewise.
1303         (gimple_build_cdt): Remove.
1304         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1305         * gimple.h (gimple_cdt_new_type): Remove.
1306         (gimple_cdt_new_type_ptr): Likewise.
1307         (gimple_cdt_set_new_type): Likewise.
1308         (gimple_cdt_location): Likewise.
1309         (gimple_cdt_location_ptr): Likewise.
1310         (gimple_cdt_set_location): Likewise.
1311         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1312         * tree-cfg.c (remove_useless_stmts_1): Do not handle
1313         GIMPLE_CHANGE_DYNAMIC_TYPE.
1314         (verify_types_in_gimple_stmt): Likewise.
1315         * tree-inline.c (estimate_num_insns): Likewise.
1316         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
1317         (copy_decl_to_var): Likewise.
1318         (copy_result_decl_to_var): Likewise.
1319         * tree-pretty-print.c (dump_generic_node): Do not handle
1320         CHANGE_DYNAMIC_TYPE_EXPR.
1321         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1322         * tree-ssa-operands.c (get_expr_operands): Likewise.
1323         * tree-ssa-structalias.c (struct variable_info): Remove
1324         no_tbaa_pruning member.
1325         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
1326         (unify_nodes): Do not copy it.
1327         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1328         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
1329         (set_uids_in_ptset): Do not check it.
1330         (find_what_var_points_to): Likewise.
1331         (compute_tbaa_pruning): Remove.
1332         (compute_points_to_sets): Do not call it.
1333         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1334         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1335         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
1336         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
1337         (DECL_NO_TBAA_P): Likewise.
1338         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
1339         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
1340         (expand_omp_atomic_pipeline): Do not set it.
1341         * print-tree.c (print_node): Do not dump it.
1342         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1343         redundant check.
1344
1345 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
1346
1347         PR target/39856
1348         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
1349         for clobber.
1350
1351 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
1352
1353         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
1354         non-external.
1355
1356 2009-05-22  Ben Elliston  <bje@au.ibm.com>
1357
1358         * Makefile.in (bversion.h, s-bversion): New targets.
1359         (TOPLEV_H): Add bversion.h.
1360         * toplev.h: Include "bversion.h".
1361         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
1362         the __format__ attribute only if compiling with the same version
1363         of GCC as the sources (the "build version").
1364
1365 2009-05-22  Ben Elliston  <bje@au.ibm.com>
1366
1367         * c-format.c (handle_format_attribute): Fix comment typo.
1368
1369 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
1370
1371         PR target/37846
1372         * config/ia64/ia64.opt (mfused-madd): New.
1373         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
1374         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
1375         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
1376         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
1377         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
1378         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
1379         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
1380         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
1381         instruction if !TARGET_FUSED_MADD.
1382         (fpma, fpms): Remove colon from name.
1383
1384 2009-05-22  Richard Guenther  <rguenther@suse.de>
1385
1386         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
1387         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
1388         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
1389         TARGET_MEM_REF.
1390         (create_expression_by_pieces): Only convert if necessary.
1391         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
1392         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
1393
1394 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
1395
1396         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
1397         regular pattern from a template and rename it ...
1398         (*extzv_truncsi_exts): ... to this.
1399
1400 2009-05-21  Richard Guenther  <rguenther@suse.de>
1401
1402         * cgraph.h (struct cgraph_node): Remove inline_decl member.
1403         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
1404         (cgraph_default_inline_p): Likewise.
1405         (cgraph_decide_inlining_incrementally): Likewise.
1406
1407 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1408             Uros Bizjak  <ubizjak@gmail.com>
1409
1410         * config/i386/cpuid.h (bit_MOVBE): New.
1411
1412         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1413
1414         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
1415         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
1416         (ix86_handle_option): Handle OPT_mmovbe.
1417         (ix86_target_string): Add -mmovbe.
1418         (pta_flags): Add PTA_MOVBE.
1419         (processor_alias_table): Add PTA_MOVBE to "atom".
1420         (override_options): Handle PTA_MOVBE.
1421
1422         * config/i386/i386.h (TARGET_MOVBE): New.
1423
1424         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
1425         (*bswapsi_movbe): New.
1426         (*bswapdi_movbe): Likewise.
1427         (bswapdi2): Renamed to ...
1428         (*bswapdi_1): This.
1429         (bswapdi2): New expander.
1430
1431         * config/i386/i386.opt (mmovbe): New.
1432
1433         * doc/invoke.texi: Document -mmovbe.
1434
1435 2009-05-21  Taras Glek  <tglek@mozilla.com>
1436
1437         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
1438         * gcc-plugin.h (plugin_init): Updated signature.
1439         * gcc-plugin.h (plugin_name_args): Moved to this header.
1440         * doc/plugins.texi (plugin_init): Updated documention to reflect
1441         API change.
1442         * doc/plugins.texi (plugin_name_args): Added to documention.
1443
1444 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
1445
1446         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
1447         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
1448
1449 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
1450
1451         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
1452         JUMP_TABLE_DATA_P predicates where applicable.
1453         * config/i386/predicates.md: Ditto.
1454         * config/i386/sse.md: Ditto.
1455
1456 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
1457
1458         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
1459         operand2 -128 override length_immediate attribute to 1.
1460         * config/i386/predicates.md (constm128_operand): New predicate.
1461
1462         * config/i386/i386.c (memory_address_length): Handle %r12
1463         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
1464         also check REGNO.
1465         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
1466         mode look through optional ZERO_EXTEND and SUBREG.
1467         * config/i386/i386.md (R12_REG): New define_constant.
1468         (prefix_data16): For sse unit set also for MODE_TI insns.
1469         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
1470         insns set if operand 1 is ext_QIreg_operand.
1471         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
1472         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
1473         immediate.
1474         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
1475         mode from MODE_DI to MODE_SI.
1476         (movdi_1_rex64): Override modrm and length_immediate attributes
1477         only for movabs (TYPE_IMOV, alternative 2).
1478         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
1479         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1480         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1481         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1482         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
1483         prefix_rex attribute if DImode.
1484         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
1485         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1486         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
1487         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
1488         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
1489         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
1490         Likewise.  For TYPE_IMOV clear length_immediate attribute.
1491         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
1492         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
1493         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
1494         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1495         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
1496         or one operand TYPE_ISHIFT.
1497         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
1498         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
1499         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
1500         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
1501         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
1502         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
1503         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
1504         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
1505         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
1506         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
1507         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
1508         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
1509         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
1510         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
1511         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
1512         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
1513         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
1514         set mode attribute, don't override length attribute.
1515         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
1516         to 1.
1517         (return_internal_long): Set length attribute to 2 instead of 1.
1518         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
1519         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
1520         prefix_rex attribute.
1521         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
1522         New predicates.
1523         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
1524
1525 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1526
1527         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
1528
1529 2009-05-20  Ian Lance Taylor  <iant@google.com>
1530
1531         * tree.c (build_tree_list_vec_stat): New function.
1532         (ctor_to_vec): New function.
1533         (build_nt_call_vec): New function.
1534         (build_call_array): Change args to be a const pointer.
1535         (build_call_vec): New function.
1536         * tree.h (build_nt_call_vec): Declare.
1537         (build_tree_list_vec_stat): Declare.
1538         (build_tree_list_vec): Define.
1539         (build_call_array): Update declaration.
1540         (build_call_vec): Declare.
1541         (ctor_to_vec): Declare.
1542         * c-common.c (tree_vector_cache): New static variable.
1543         (make_tree_vector): New function.
1544         (release_tree_vector): New function.
1545         (make_tree_vector_single): New function.
1546         (make_tree_vector_copy): New function.
1547         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
1548         (make_tree_vector_single, make_tree_vector_copy): Declare.
1549         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
1550         (c_parser_expr_list): Don't manage cache here, instead call
1551         make_tree_vector.
1552         (c_parser_release_expr_list): Remove static function.
1553         (c_parser_vec_to_tree_list): Remove static function.
1554         (c_parser_attributes): Call build_tree_list_vec instead of
1555         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
1556         c_parser_release_expr_list.
1557         (c_parser_postfix_expression_after_primary): Likewise.
1558         (c_parser_objc_keywordexpr): Likewise.
1559
1560 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
1561
1562         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
1563         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
1564         TARGET_CONVERT_TO_TYPE.
1565         * hooks.c (hook_tree_const_tree_null): Define.
1566         * hooks.h (hook_tree_const_tree_null): Declare.
1567         * target.h (struct gcc_target):  Add invalid_parameter_type,
1568         invalid_return_type, promoted_type, and convert_to_type fields.
1569         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
1570         (TARGET_INVALID_RETURN_TYPE): Define.
1571         (TARGET_PROMOTED_TYPE): Define.
1572         (TARGET_CONVERT_TO_TYPE): Define.
1573         (TARGET_INITIALIZER): Update for new fields.
1574         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
1575         (grokparms): Check targetm.invalid_parameter_type.
1576         * c-typeck.c (default_conversion): Check targetm.promoted_type.
1577         * c-convert.c (convert): Check targetm.convert_to_type.
1578
1579 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
1580
1581         * config/mips/mips.md (*extenddi_truncate<mode>,
1582         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
1583         defintions.
1584         (*extendhi_truncateqi): New define_insn_and_sptit.
1585
1586 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
1587
1588         PR middle-end/40204
1589         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
1590         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
1591
1592 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
1593
1594         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
1595         the operand of VIEW_CONVERT_EXPR.
1596
1597 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
1598
1599         * config/i386/driver-i386.c (host_detect_local_cpu): Check
1600         extended family and model for Intel processors.  Support Intel
1601         Atom.
1602
1603 2009-05-20  Olivier Hainque  <hainque@adacore.com>
1604
1605         * gstab.h (stab_code_type): Define, to be used instead of the
1606         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
1607         notice.
1608         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
1609         occurrences by stab_code_type.
1610         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
1611
1612 2009-05-20  Martin Jambor  <mjambor@suse.cz>
1613
1614         * tree-flow.h (insert_edge_copies_seq): Undeclare.
1615         (sra_insert_before): Likewise.
1616         (sra_insert_after): Likewise.
1617         (sra_init_cache): Likewise.
1618         (sra_type_can_be_decomposed_p): Likewise.
1619         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
1620         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
1621         (sra_insert_before): Likewise.
1622         (sra_insert_after): Likewise.
1623         (sra_init_cache): Likewise.
1624         (insert_edge_copies_seq): Made static and moved upwards.
1625
1626         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
1627         case.
1628
1629         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
1630
1631         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
1632         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
1633         simple copies.
1634
1635 2009-05-20  Richard Guenther  <rguenther@suse.de>
1636
1637         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1638         with mismatched comparison modes.
1639
1640 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1641
1642         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
1643         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
1644         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
1645         with shifts for Thumb2.
1646         (orsi_notsi): New for orn.
1647         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
1648         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
1649         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
1650         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
1651         Don't invert remainder for IOR.
1652         
1653 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
1654
1655         PR tree-optimization/40087
1656         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
1657         number_of_iterations_ne): Rename never_infinite argument.
1658         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
1659         number_of_iterations_le): Handle pointer-type ivs when
1660         exit_must_be_taken is false.
1661         (number_of_iterations_cond):  Do not always assume that
1662         exit_must_be_taken if the control variable is a pointer.
1663
1664 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1665
1666         * c-typeck.c (build_binary_op): Allow % on integal vectors.
1667         * doc/extend.texi (Vector Extension): Document that % is allowed too.
1668
1669 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1670
1671         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
1672         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
1673
1674 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1675
1676         PR c/40172
1677         * c.opt (Wlogical-op): Disabled by default.
1678         * c-opt (c_common_post_options): Do not enable Wlogical-op with
1679         Wextra.
1680         * doc/invoke.texi (Wlogical-op): Likewise.
1681         
1682 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1683
1684         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
1685         into CASE_CONVERT.
1686         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
1687         Propagate the type of the first operand.
1688         <ASSERT_EXPR>: Simplify.
1689         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
1690         Rewrite using the RHS code as discriminant.
1691         <NOP_EXPR>: Turn into CASE_CONVERT.
1692         <PLUS_EXPR>: Propagate the type of the first operand.
1693
1694 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
1695
1696         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
1697         (ia64_dconst_0_375): New.
1698         * config/ia64/ia64.c (ia64_override_options): Remove
1699         -minline-sqrt-min-latency warning.
1700         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
1701         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
1702         * config/ia64/ia64.md (*sqrt_approx): Remove.
1703         (sqrtsf2): Remove #if 0.
1704         (sqrtsf2_internal_thr): Rewrite and move to div.md.
1705         (sqrtdf): Remove assert.
1706         (sqrtdf2_internal_thr): Rewrite and move to div.md.
1707         (sqrtxf2): Remove #if 0.
1708         (sqrtxf2_internal_thr): Rewrite and move to div.md.
1709         * div.md (sqrt_approx_rf): New.
1710         (sqrtsf2_internal_thr): New implementation.
1711         (sqrtsf2_internal_lat): New.
1712         (sqrtdf2_internal_thr: New implementation.
1713         (sqrtxf2_internal): New implementation.
1714
1715 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
1716             Hans-Peter Nilsson  <hp@axis.com>
1717
1718         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
1719         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
1720         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
1721         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
1722         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
1723         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
1724         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
1725         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
1726         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
1727         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
1728         * c-common.c: ...from here.
1729
1730 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1731
1732         * c-common.c (warn_logical_operator): Remove unnecessary
1733         conditionals.
1734
1735 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1736
1737         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
1738
1739 2009-05-19  Ben Elliston  <bje@au.ibm.com>
1740
1741         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
1742         assignments with memcpy calls.
1743         (add_fdes): Likewise.
1744         (binary_search_unencoded_fdes): Likewise.
1745         (linear_search_fdes): Eliminate type puns.
1746         
1747 2009-05-19  Richard Guenther  <rguenther@suse.de>
1748
1749         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
1750         not falsely claim to have propagated into all uses.
1751
1752 2009-05-19  Ben Elliston  <bje@au.ibm.com>
1753
1754         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
1755         version to v3.0.
1756
1757 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1758
1759         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
1760         * config/sh/sh.c (sh_legitimate_address_p): Make static.
1761         (TARGET_LEGITIMATE_ADDRESS_P): New.
1762         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1763         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
1764         
1765 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
1766
1767         PR debug/40109
1768         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
1769         child of the containing namespace's DIE.
1770
1771 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
1772
1773         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
1774         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
1775         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
1776         extend patterns.
1777
1778 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
1779
1780         PR target/39942
1781         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
1782         gen_align with gen_pad.
1783         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
1784         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
1785
1786         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
1787         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
1788
1789         * config/i386/i386.md (align): Renamed to ...
1790         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
1791         ASM_OUTPUT_MAX_SKIP_PAD.
1792
1793 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
1794
1795         * config.gcc: Fix variable syntax.
1796
1797         PR target/39531
1798         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
1799         before calling exact_log2.
1800         (output_iorsi3): Likewise.
1801         (output_xorsi3): Likewise.
1802
1803 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
1804
1805         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
1806         for the none zero constant operand except for EQ and NE
1807         comprisons even when the first operand is R0.
1808
1809 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
1810
1811         * config/s390/2064.md: Remove trailing whitespaces.
1812         * config/s390/2084.md: Likewise.
1813         * config/s390/constraints.md: Likewise.
1814         * config/s390/fixdfdi.h: Likewise.
1815         * config/s390/libgcc-glibc.ver: Likewise.
1816         * config/s390/s390-modes.def: Likewise.
1817         * config/s390/s390-protos.h: Likewise.
1818         * config/s390/s390.c: Likewise.
1819         * config/s390/s390.h: Likewise.
1820         * config/s390/s390.md: Likewise.
1821         * config/s390/tpf-unwind.h: Likewise.
1822
1823 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
1824
1825         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
1826
1827 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
1828
1829         M68K TLS support.
1830         * configure.ac (m68k-*-*): Check if binutils support TLS.
1831         * configure: Regenerate.
1832         * config/m68k/predicates.md (symbolic_operand): Extend comment.
1833         * config/m68k/constraints.md (Cu): New constraint.
1834         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
1835         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
1836         (movsi): Handle TLS symbols.
1837         (addsi3_5200): Handle XTLS symbols, indent.
1838         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
1839         (m68k_tls_reference_p): Declare.
1840         (m68k_legitimize_address): Declare.
1841         (m68k_unwrap_symbol): Declare.
1842         * config/m68k/m68k.opt (mxtls): New option.
1843         * config/m68k/m68k.c (ggc.h): Include.
1844         (m68k_output_dwarf_dtprel): Implement hook.
1845         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
1846         (m68k_expand_prologue): Load GOT pointer when function needs it.
1847         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
1848         (m68k_legitimate_constant_address_p): Same.
1849         (m68k_decompose_address): Handle TLS references.
1850         (m68k_get_gp): New static function.
1851         (enum m68k_reloc): New contants.
1852         (TLS_RELOC_P): New macro.
1853         (m68k_wrap_symbol): New static function.
1854         (m68k_unwrap_symbol): New function.
1855         (m68k_final_prescan_insn_1): New static function.
1856         (m68k_final_prescan_insn): New function.
1857         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
1858         functions.
1859         (legitimize_pic_address): Handle TLS references..
1860         (m68k_tls_get_addr, m68k_get_tls_get_addr)
1861         (m68k_libcall_value_in_a0_p)
1862         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
1863         (m68k_call_m68k_read_tp): Helper variables and functions for ...
1864         (m68k_legitimize_tls_address): Handle TLS references.
1865         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
1866         New functions.
1867         (m68k_legitimize_address): Handle TLS symbols.
1868         (m68k_get_reloc_decoration): New static function.
1869         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
1870         UNSPEC_RELOC32.
1871         (m68k_output_dwarf_dtprel): Implement hook.
1872         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
1873         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
1874         m68k_call_* routines.
1875         (sched_attr_op_type): Handle TLS symbols.
1876         (gt-m68k.h): Include.
1877         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
1878         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
1879
1880 2009-05-18  Martin Jambor  <mjambor@suse.cz>
1881
1882         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
1883         (visit_store_addr_for_mod_analysis): New function.
1884         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
1885         (determine_cst_member_ptr): Use gimple_assign_single_p.
1886         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
1887         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
1888         operands.  Don't check number of operands of a NOP_EXPR.
1889
1890 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
1891
1892         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
1893
1894 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1895
1896         PR c/40172
1897         * c-common.c (warn_logical_operator): Don't warn if one of
1898         expression isn't always true or false.
1899
1900 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
1901
1902         * config/i386/biarch32.h: New file.
1903         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
1904
1905 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
1906
1907         * config/mips/mips.md (*zero_extend<mode>_trunchi,
1908         *zero_extend<mode>_truncqi): Merge these into ...
1909         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
1910         Name the pattern following this as *zero_extendhi_truncqi.
1911
1912 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
1913
1914         PR middle-end/39301
1915         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
1916         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
1917         (output_info): Make field HOST_WIDEST_INT.
1918         (print_statistics): Use HOST_WIDEST_INT_PRINT.
1919         (dump_bitmat_statistics): Same.
1920
1921 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
1922
1923         * config.gcc (use_gcc_stdint):  Set to wrap.
1924         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1925         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1926         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1927         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1928         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1929         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1930         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1931         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1932
1933 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
1934
1935         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
1936         tune_64.
1937         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
1938         Move definitions earlier.
1939         (OPT_ARCH64, OPT_ARCH32): Define.
1940         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
1941         and tune_64.
1942
1943 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
1944
1945         PR target/40153
1946         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
1947         implies.
1948
1949 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
1950
1951         * arm.md (movdi2): Copy non-reg values to DImode registers.
1952
1953 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
1954
1955         PR target/39942
1956         * final.c (label_to_max_skip): New function.
1957         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
1958         CODE_LABEL_NUMBER <= max_labelno.
1959         * output.h (label_to_max_skip): New prototype.
1960         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
1961         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
1962         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
1963         Handle CODE_LABELs with >= 16 byte alignment or with
1964         max_skip == (1 << align) - 1.
1965         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
1966         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
1967
1968         PR target/39942
1969         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
1970         .p2align 3 if MAX_SKIP is smaller than 7.
1971         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1972
1973 2009-05-15  Ian Lance Taylor  <iant@google.com>
1974
1975         * alias.c (struct alias_set_entry_d): Rename from struct
1976         alias_set_entry.  Change all uses.
1977         * except.c (struct call_site_record_d): Rename from struct
1978         call_site_record.  Change all uses.
1979         * except.h (struct eh_region_d): Rename from struct eh_region.
1980         Change all uses.
1981         * gcse.c (struct hash_table_d): Rename from struct hash_table.
1982         Change all uses.
1983         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
1984         ivtype_map_elt.  Change all uses.
1985         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
1986         Change all uses.
1987         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
1988         * graphite.h (struct name_tree_d): Rename from struct name_tree.
1989         Change all uses.
1990         (struct sese_d): Rename from struct sese.  Change all uses.
1991         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
1992         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
1993         * optabs.h (struct optab_d): Rename from struct optab.  Change all
1994         uses.
1995         (struct convert_optab_d): Rename from struct convert_optab.
1996         Change all uses.
1997         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
1998         ipa_opt_pass.  Change all uses.
1999         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
2000         all uses.
2001
2002         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
2003         defined as a typedef.
2004         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
2005         defined as a tag.
2006
2007 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2008
2009         PR 16302
2010         * fold-const.c (make_range,build_range_check,merge_ranges): Move
2011         declaration to...
2012         (merge_ranges): Returns bool. 
2013         * tree.h (make_range): .. to here.
2014         (build_range_check): Likewise.
2015         (merge_ranges): Likewise. Renamed from merge_ranges.
2016         * c-typeck.c (parser_build_binary_op): Update calls to
2017         warn_logical_operator.
2018         * c-common.c (warn_logical_operator): Add new warning.
2019         * c-common.h (warn_logical_operator): Update declaration.
2020         
2021 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2022
2023         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
2024         
2025 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2026
2027         * doc/install.texi: Document MPC requirements, flags etc.
2028
2029         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
2030         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
2031         Evaluate constant arguments.
2032         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
2033         (fold_builtin_1): Likewise, also evaluate constant arguments.
2034         Remove superfluous break.
2035         (do_mpc_ckconv): New.
2036         * real.h: Include mpc.h.
2037         * toplev.c (print_version): Output MPC version info if available.
2038
2039 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
2040
2041         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
2042
2043 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2044
2045         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
2046         only once.
2047
2048 2009-05-15  Jan Hubicka  <jh@suse.cz>
2049
2050         * doc/invoke.texi (max-early-inliner-iterations): New flag.
2051         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
2052         (try_inline): Fix return value.
2053         (cgraph_decide_inlining_incrementally): Honor new value.
2054         (cgraph_early_inlining): Handle indirect inlining.
2055         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
2056
2057 2009-05-15  Jan Hubicka  <jh@suse.cz>
2058
2059         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
2060         * cgraphunit.c (cgraph_finalize_function): Set it.
2061         (cgraph_expand_function): Use it.
2062
2063 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
2064
2065         * real.c (encode_ieee_half): Define.
2066         (decode_ieee_half): Define.
2067         (ieee_half_format): Define.
2068         (arm_half_format): Define.
2069         * real.h (ieee_half_format): Declare.
2070         (arm_half_format): Declare.
2071
2072 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
2073
2074         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
2075         swapped, and reversed optabs exist before trying to use them.
2076
2077 2009-05-15  Paul Brook  <paul@codesourcery.com>
2078             Sandra Loosemore  <sandra@codesourcery.com>
2079
2080         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
2081         loads.  Allow PRE_DEC.
2082         (output_move_neon): Handle PRE_DEC.
2083         (arm_print_operand): Add 'A' for neon structure loads.
2084         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
2085         * config/arm/neon.md (neon_mov): Update comment.
2086         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
2087         calls.
2088         (Um): New constraint.
2089
2090 2009-05-15  Jan Hubicka  <jh@suse.cz>
2091
2092         Revert the following patch until testsuite fallout is fixed:
2093         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2094         * cgraph.h (struct inline_summary): New filed self_wize,
2095         size_inlining_benefit, self_time and time_inlining_benefit.
2096         (struct cgraph_global_info): Replace insns by time ans size fields.
2097         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2098         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2099         (ipcp_update_callgraph): Do not touch function bodies.
2100         * ipa-inline.c: Include except.h
2101         (MAX_TIME): New constant.
2102         (overall_insns): Remove
2103         (overall_size, max_benefit): New static variables.
2104         (cgraph_estimate_time_after_inlining): New function.
2105         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2106         (cgraph_clone_inlined_nodes): Update size.
2107         (cgraph_mark_inline_edge): Update size.
2108         (cgraph_estimate_growth): Use size info.
2109         (cgraph_check_inline_limits): Check size.
2110         (cgraph_default_inline_p): Likewise.
2111         (cgraph_edge_badness): Compute badness based on benefit and size cost.
2112         (cgraph_decide_recursive_inlining): Check size.
2113         (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
2114         times.
2115         (cgraph_decide_inlining): Likewise.
2116         (cgraph_decide_inlining_incrementally): Likewise; honor
2117         PARAM_EARLY_INLINING_INSNS.
2118         (likely_eliminated_by_inlining_p): New predicate.
2119         (estimate_function_body_sizes): New function.
2120         (compute_inline_parameters): Use it.
2121         * except.c (must_not_throw_labels): New function.
2122         * except.h (must_not_throw_labels): Declare.
2123         * tree-inline.c (init_inline_once): Kill inlining_weigths
2124         * tree-ssa-structalias.c: Avoid uninitialized warning.
2125         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2126         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2127         (PARAM_INLINE_CALL_COST): Remove.
2128         (PARAM_EARLY_INLINING_INSNS): New.
2129
2130 2009-05-15  Richard Guenther  <rguenther@suse.de>
2131
2132         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
2133         not TODO_update_ssa.
2134
2135 2009-05-15  Richard Guenther  <rguenther@suse.de>
2136
2137         PR tree-optimization/39999
2138         * gimple.h (gimple_expr_type): Use the expression type looking
2139         through useless conversions.
2140         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
2141         (vn_nary_op_insert_stmt): Likewise.
2142         (simplify_binary_expression): Likewise.
2143
2144 2009-05-15  Richard Guenther  <rguenther@suse.de>
2145
2146         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2147         New options, enabled by default.
2148         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2149         Document.
2150         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
2151         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
2152         * tree-ssa-structalias.c (gate_tree_pta): New function.
2153         (pass_build_alias): Use it.
2154
2155 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
2156
2157         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2158         recurse on an invariant address if a conversion from a pointer
2159         type to a wider integer type is involved.
2160
2161 2009-05-15  Jan Hubicka  <jh@suse.cz>
2162
2163         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2164         * cgraph.h (struct inline_summary): New filed self_wize,
2165         size_inlining_benefit, self_time and time_inlining_benefit.
2166         (struct cgraph_global_info): Replace insns by time ans size fields.
2167         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2168         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2169         (ipcp_update_callgraph): Do not touch function bodies.
2170         * ipa-inline.c: Include except.h
2171         (MAX_TIME): New constant.
2172         (overall_insns): Remove
2173         (overall_size, max_benefit): New static variables.
2174         (cgraph_estimate_time_after_inlining): New function.
2175         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2176         (cgraph_clone_inlined_nodes): Update size.
2177         (cgraph_mark_inline_edge): Update size.
2178         (cgraph_estimate_growth): Use size info.
2179         (cgraph_check_inline_limits): Check size.
2180         (cgraph_default_inline_p): Likewise.
2181         (cgraph_edge_badness): Compute badness based on benefit and size cost.
2182         (cgraph_decide_recursive_inlining): Check size.
2183         (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
2184         times.
2185         (cgraph_decide_inlining): Likewise.
2186         (cgraph_decide_inlining_incrementally): Likewise; honor
2187         PARAM_EARLY_INLINING_INSNS.
2188         (likely_eliminated_by_inlining_p): New predicate.
2189         (estimate_function_body_sizes): New function.
2190         (compute_inline_parameters): Use it.
2191         * except.c (must_not_throw_labels): New function.
2192         * except.h (must_not_throw_labels): Declare.
2193         * tree-inline.c (init_inline_once): Kill inlining_weigths
2194         * tree-ssa-structalias.c: Avoid uninitialized warning.
2195         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2196         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2197         (PARAM_INLINE_CALL_COST): Remove.
2198         (PARAM_EARLY_INLINING_INSNS): New.
2199         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2200         (inline-call-cost): Remove.
2201         (early-inlining-insns): New.
2202
2203 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
2204
2205         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
2206         for bounds.
2207         (print_int_cst_bounds_in_octal_p): Likewise.
2208         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
2209         with subtypes.
2210         * dwarf2out.c (base_type_die): Likewise.
2211         (is_subrange_type): Delete.
2212         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
2213         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
2214         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
2215         the destination type is boolean.
2216         (build_range_check): Do not special-case subtypes.
2217         (fold_sign_changed_comparison): Likewise.
2218         (fold_unary): Likewise.
2219         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
2220         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
2221         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
2222         * tree.c (subrange_type_for_debug_p): New predicate based on the former
2223         is_subrange_type.
2224         * tree.h (subrange_type_for_debug_p): Declare.
2225         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
2226         (convert_affine_scev): Remove call to above function.
2227         (chrec_convert_aggressive): Likewise.
2228         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
2229         false for conversions involving subtypes.
2230         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
2231         (vrp_val_min): Likewise.
2232         (needs_overflow_infinity): Likewise.
2233         (extract_range_from_unary_expr): Likewise.
2234
2235 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
2236
2237         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2238         * config/frv/frv.c: Likewise.
2239         * config/s390/s390.c: Likewise.
2240         * config/sparc/sparc.h: Likewise.
2241         * config/i386/i386.h: Likewise.
2242         * config/i386/i386.c: Likewise.
2243         * config/crx/crx.c: Likewise.
2244         * config/m68hc11/m68hc11.h: Likewise.
2245         * config/iq2000/iq2000.c: Likewise.
2246         * config/mn10300/mn10300.h: Likewise.
2247         * config/mn10300/mn10300.c: Likewise.
2248         * config/m68k/m68k.c: Likewise.
2249         * config/rs6000/rs6000.c: Likewise.
2250         * config/rs6000/xcoff.h: Likewise.
2251         * config/rs6000/linux64.h: Likewise.
2252         * config/rs6000/sysv4.h: Likewise.
2253         * config/score/score3.c: Likewise.
2254         * config/score/score7.c: Likewise.
2255         * config/score/score.c: Likewise.
2256         * config/arm/arm.md: Likewise.
2257         * config/mips/mips.c: Likewise.
2258         * config/mips/mips.md: Likewise.
2259         * config/bfin/bfin.h: Likewise.
2260         * config/pa/pa.c: Likewise.
2261         * config/pa/constraints.md: Likewise.
2262
2263         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
2264         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
2265         * config/pdp11/pdp11.h: Use memory_address_p instead.
2266
2267 2009-05-14  Ian Lance Taylor  <iant@google.com>
2268
2269         * passes.c (finish_optimization_passes): Change i to int.
2270         * plugin.c (plugins_active_p): Change event to int.
2271         (dump_active_plugins): Likewise.
2272         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
2273         Add cast.
2274         * tree.c (tree_range_check_failed): Change c to unsigned int.
2275         (omp_clause_range_check_failed): Likewise.
2276         (build_common_builtin_nodes): Change mode to int.  Add cast.
2277         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
2278         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
2279
2280         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
2281         ++ or -- with a variable of enum type.
2282
2283 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
2284
2285         PR driver/40144
2286         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
2287
2288 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
2289
2290         * store-motion.c: Do not include params.h
2291         * Makefile.in: Fix dependencies for various files.
2292
2293 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
2294
2295         * auto-inc-dec.c: Fix pass description, remove apparent
2296         accidental duplication.
2297
2298 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2299
2300         PR middle-end/40147
2301         * ipa-utils.h (memory_identifier_string): Moved to ...
2302         * tree.h (memory_identifier_string): Here.  Add GTY(()).
2303
2304 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
2305
2306         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
2307         in the former documentation of...
2308         (GO_IF_LEGITIMATE_ADDRESS): ... this.
2309         * ira-conflicts.c (get_dup_num): Use address_operand.
2310         * targhooks.c (default_legitimate_address_p): New.
2311         * targhooks.h (default_legitimate_address_p): New.
2312         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
2313         Call hook.
2314         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
2315         * target.h (struct target): Add legitimate_address_p.
2316         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
2317         (TARGET_INITIALIZER): Include it.
2318
2319         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2320         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
2321         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
2322         (TARGET_LEGITIMATE_ADDRESS_P): New.
2323
2324         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2325         (REG_OK_STRICT_P): Delete.
2326         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
2327         (frv_legitimate_address_p_1): ... this.
2328         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
2329         (frv_legitimate_address_p_1): ... the renamed old
2330         frv_legitimate_address_p.
2331         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
2332         (TARGET_LEGITIMATE_ADDRESS_P): New.
2333
2334         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2335         * config/s390/s390-protos.h (legitimate_address_p): Remove.
2336         * config/s390/s390.c (legitimate_address_p): Rename to...
2337         (s390_legitimate_address_p): ... this, make static.
2338         (legitimize_address): Adjust call.
2339         (TARGET_LEGITIMATE_ADDRESS_P): New.
2340         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
2341
2342         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2343         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
2344         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
2345         (TARGET_LEGITIMATE_ADDRESS_P): New.
2346
2347         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2348         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
2349         * config/spu/spu.c (spu_legitimate_address): Rename to...
2350         (spu_legitimate_address_p): ... this, make static.
2351         (TARGET_LEGITIMATE_ADDRESS_P): New.
2352
2353         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2354         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
2355         * config/sparc/sparc.c (legitimate_address_p): Rename to...
2356         (sparc_legitimate_address_p): ... this, make static and return bool.
2357         (legitimize_address): Adjust call.
2358         (TARGET_LEGITIMATE_ADDRESS_P): New.
2359
2360         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2361         * config/i386/i386-protos.h (legitimate_address_p): Remove.
2362         * config/i386/i386.c (legitimate_address_p): Rename to...
2363         (ix86_legitimate_address_p): ... this, make static.
2364         (constant_address_p): Move after it, adjust call.
2365         (TARGET_LEGITIMATE_ADDRESS_P): New.
2366
2367         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2368         * config/avr/avr-protos.h (legitimate_address_p): Remove.
2369         * config/avr/avr.c (legitimate_address_p): Rename to...
2370         (avr_legitimate_address_p): ... this, make static.
2371         (legitimize_address): Adjust call.
2372         (TARGET_LEGITIMATE_ADDRESS_P): New.
2373
2374         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2375         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
2376         * config/crx/crx.c (crx_legitimate_address_p): Make static.
2377         (TARGET_LEGITIMATE_ADDRESS_P): New.
2378
2379         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2380         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
2381         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
2382         (TARGET_LEGITIMATE_ADDRESS_P): New.
2383
2384         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2385         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
2386         Remove.
2387         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
2388         Make static.
2389         (TARGET_LEGITIMATE_ADDRESS_P): New.
2390
2391         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2392         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
2393         Remove.
2394         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
2395         Rename to...
2396         (m68hc11_legitimate_address_p): ... this, make static.
2397         (go_if_legitimate_address_internal): Rename to...
2398         (m68hc11_legitimate_address_p_1): ... this.
2399         (legitimize_address): Adjust call.
2400         (TARGET_LEGITIMATE_ADDRESS_P): New.
2401
2402         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2403         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
2404         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
2405         (TARGET_LEGITIMATE_ADDRESS_P): New.
2406
2407         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2408         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
2409         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
2410         (mn10300_legitimate_address_p): ... this, make static.
2411         (TARGET_LEGITIMATE_ADDRESS_P): New.
2412
2413         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2414         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
2415         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
2416         (TARGET_LEGITIMATE_ADDRESS_P): New.
2417
2418         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2419         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
2420         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
2421         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2422         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
2423         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
2424         (rs6000_legitimate_address_p): ... this, make static.
2425         (TARGET_LEGITIMATE_ADDRESS_P): New.
2426         (REG_MODE_OK_FOR_BASE_P): Delete.
2427         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
2428
2429         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2430         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
2431         Delete.
2432         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
2433         static, adjust types.
2434         (TARGET_LEGITIMATE_ADDRESS_P): New.
2435
2436         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2437         * config/score/score.c (score_address_p): Rename to...
2438         (score_legitimate_address_p): ... this.
2439         (TARGET_LEGITIMATE_ADDRESS_P): New.
2440         * config/score/score3.c (score3_address_p): Rename to...
2441         (score3_legitimate_address_p): ... this.
2442         * config/score/score7.c (score7_address_p): Rename to...
2443         (score7_legitimate_address_p): ... this.
2444
2445         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
2446         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
2447         GO_IF_LEGITIMATE_ADDRESS): Delete.
2448         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
2449         thumb2_legitimate_address_p): Delete.
2450         (arm_legitimate_address_p): Rename to...
2451         (arm_legitimate_address_outer_p): ... this.
2452         * config/arm/constraints.md ("Uq"): Adjust call.
2453         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
2454         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
2455         (arm_legitimate_address_outer_p): ... this.
2456         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
2457         (TARGET_LEGITIMATE_ADDRESS_P): New.
2458
2459         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2460         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
2461         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
2462         (TARGET_LEGITIMATE_ADDRESS_P): New.
2463
2464         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2465         * config/vax/vax-protos.h (legitimate_address_p): Remove.
2466         * config/vax/vax.c (legitimate_address_p): Rename to...
2467         (vax_legitimate_address_p): ... this, make static.
2468         (TARGET_LEGITIMATE_ADDRESS_P): New.
2469
2470         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2471         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
2472         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
2473         (TARGET_LEGITIMATE_ADDRESS_P): New.
2474
2475         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2476         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
2477         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
2478         (mmix_legitimate_address_p): ... this, make static.
2479         (TARGET_LEGITIMATE_ADDRESS_P): New.
2480
2481         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2482         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
2483         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
2484         (TARGET_LEGITIMATE_ADDRESS_P): New.
2485
2486 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
2487
2488         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
2489         of MODE_COMPLEX_INT.
2490
2491 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2492
2493         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
2494         LCT_NORMAL in function call.
2495         * mips-tdump.c (print_file_desc): Add cast to enum type.
2496         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
2497         (mark_stabs): Add casts to enum types.
2498         (parse_stabs_common): Add casts to enum types.
2499
2500 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
2501
2502         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
2503         Check for invalid values of LETTER.
2504
2505 2009-05-13  Taras Glek  <tglek@mozilla.com>
2506
2507         * attribs.c (register_attribute): moved out attribute registration into
2508         register_attribute.
2509         * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
2510         * gcc-plugin.h: Added forward decl for register_attribute.
2511         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
2512         * plugin.c (register_callback, invoke_plugin_callbacks): Added
2513         PLUGIN_ATTRIBUTES boilerplate.
2514
2515 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
2516
2517         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
2518         values even in sentinel and empty entries.
2519         (ms_printf_flag_specs):  Likewise.
2520         (ms_scanf_flag_specs):  Likewise.
2521         (ms_strftime_flag_specs):  Likewise.
2522         (ms_print_char_table):  Likewise.
2523         (ms_scan_char_table):  Likewise.
2524         (ms_time_char_table):  Likewise.
2525
2526 2009-05-13  Doug Kwan  <dougkwan@google.com>
2527
2528         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
2529
2530 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
2531
2532         * config/mips/mips.md (store): Add attributes for QI and HI.
2533         Update comment.
2534         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
2535         (truncdi<mode>2): ... this new pattern.
2536
2537 2009-05-13  Brad Hards  <bradh@kde.org>
2538
2539         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
2540
2541 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
2542             Ben Elliston <bje@au.ibm.com>
2543
2544         PR middle-end/40035
2545         * dse.c (check_mem_read_rtx): Guard against width == -1.
2546
2547 2009-05-13  Michael Matz  <matz@suse.de>
2548
2549         PR middle-end/39976
2550         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
2551         (trivially_conflicts_p): New function.
2552         (insert_backedge_copies): Use it.
2553
2554 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
2555
2556         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
2557         (handle_stdc_pragma): Use new enum constant names.
2558         (handle_pragma_float_const_decimal64): Ditto.
2559
2560 2009-05-13  Ian Lance Taylor  <iant@google.com>
2561
2562         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
2563         tree.def.
2564
2565 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
2566
2567         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
2568         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
2569         multilibs.
2570         * config/m68k/m68k.h (FL_UCLINUX): Define.
2571
2572 2009-05-13  Jan Hubicka  <jh@suse.cz>
2573
2574         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
2575
2576 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2577
2578         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
2579         unless -fschedule-insns is specified.
2580
2581 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2582
2583         PR target/39561
2584         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
2585         TARGET_EXPAND_CBRANCHDI4.
2586         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
2587         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
2588         (cmpeqdi): Fix comment.
2589
2590 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2591
2592         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
2593         (sh_legitimate_address_p): Likewise.
2594         * config/sh/sh.c (sh_legitimate_index_p): New.
2595         (sh_legitimate_address_p): Likewise.
2596         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
2597         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
2598         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
2599         (MAYBE_BASE_REGISTER_RTX_P): New macro.
2600         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
2601         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
2602         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
2603         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
2604         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
2605
2606 2009-05-12  Jan Hubicka  <jh@suse.cz>
2607
2608         * tree-inline.c (estimate_operator_cost): Add operands;
2609         when division happens by constant, it is cheap.
2610         (estimate_num_insns): Loads and stores are not having cost of 0;
2611         EH magic stuff is cheap; when computing runtime cost of switch,
2612         use log2 base of amount of its cases; builtin_expect has cost of 0;
2613         compute cost for moving return value of call.
2614         (init_inline_once): Initialize time_based flags.
2615         * tree-inline.h (eni_weights_d): Add time_based flag.
2616
2617 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
2618
2619         * df-core.c: Update head documentation.
2620
2621 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2622
2623         PR bootstrap/40118
2624         * rs6000.c (rs6000_generate_compare): Use op1b instead of
2625         shadowing exisiting variable op1.
2626
2627 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
2628
2629         PR target/37179
2630         * config/i386/driver-i386.c (processor_signatures): New enum.
2631         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
2632         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
2633         processor signature to detect geode processor.
2634
2635 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
2636
2637         Revert:
2638
2639         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
2640
2641         * optabs.c (prepare_cmp_insn): Temporarily disable test that
2642         causes spurious differences between trunk and cond-optab branch.
2643
2644 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
2645
2646         * dojump.c (compare_from_rtx): Delete.
2647         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
2648         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
2649         if the comparison does not satisfy the predicate; test predicates for
2650         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
2651         further if one existing pattern fails.
2652         * expr.h (compare_from_rtx): Delete.
2653         (prepare_operand): Declare it.
2654         * optabs.c: Change "lib call" to "libcall" throughout.
2655         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
2656         HAVE_conditional_trap, emit_cmp_insn): Delete.
2657         (can_compare_p): Delete cmp_optab case.
2658         (prepare_float_lib_cmp): Return an rtx and a machine mode.
2659         Accept other parameters by value.
2660         (prepare_operand): Make non-static.
2661         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
2662         other parameters by value.  Try to widen operands here based on
2663         an optab_methods argument and looking at cbranch_optab.
2664         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
2665         loop.  Use cbranch_optab directly.
2666         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
2667         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
2668         assertion.
2669         (emit_conditional_move, emit_conditional_add): Inline what's needed
2670         of compare_from_rtx, using new prepare_cmp_insn for the rest.
2671         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
2672         with COMPARE.  Move cmov_optab and cstore_optab above
2673         with cbranch_optab, move cmp_optab down with ucmp_optab,
2674         remove tst_otpab.  Do not initialize trap_rtx.
2675         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
2676         for trap code.  Do not check HAVE_conditional_trap.  Use
2677         prepare_cmp_insn.  Accept no predicate for operand 3.
2678         * optabs.h (OTI_cmp): Mark as used only for libcalls.
2679         (OTI_ctrap, ctrap_optab): New.
2680         (tst_optab): Delete.
2681         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
2682         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
2683         with lookup of ctrap_optab.
2684         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
2685         setcc_gen_code): Delete.
2686         (ctrap_optab): New.
2687
2688         * combine.c (combine_simplify_rtx, simplify_set): Do not
2689         special case comparing against zero for cc0 machines.
2690         * simplify-rtx.c (simplify_binary_operation_1): Never remove
2691         COMPARE on cc0 machines.
2692         (simplify_relational_operation): Return a new expression when
2693         a COMPARE could be removed.
2694         * final.c (final_scan_insn): Compare cc_status values
2695         against LHS of a (compare FOO (const_int 0)) cc0 source.
2696         Also check if cc_status.value is the full compare.
2697
2698         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
2699         (cstoreMM4): Document.
2700         (conditional_trap): Document ctrapMM4 instead.
2701         (sync_compare_and_swapMM): Refer to cbranchcc4.
2702         (Dependent Patterns): Eliminate obsolete information referring to
2703         the old jump optimization phase.
2704         (Canonicalization): Include cbranchcc4 case, omit canonicalization
2705         of compares with 0 on cc0 machines.
2706         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
2707         avoiding references to cc0.  Remove text about storing operands
2708         in cmpMM.
2709         * doc/tm.texi (Condition Codes): Include blurb on different
2710         condition code representations, separate into subsections for
2711         CC0, MODE_CC and conditional execution.
2712
2713         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
2714         alpha_emit_setcc): Accept operands and a machine mode.
2715         * config/alpha/alpha.c (alpha_emit_conditional_branch):
2716         Get code/op0/op1 from operands, use machine mode argument
2717         instead of alpha_compare.fp_p.  Emit the branch here.
2718         (alpha_emit_setcc): Likewise, and return boolean.
2719         (alpha_emit_conditional_move): Likewise.  Assert that
2720         cmp_op_mode == cmp_mode, and simplify accordingly.
2721         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
2722         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
2723         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
2724         Delete.
2725         (stack probe test): Use cbranchdi4.
2726         * config/alpha/predicates.md (alpha_cbranch_operator): New.
2727
2728         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
2729         * config/arc/arc.h (movsicc, movsfcc): Use it.
2730         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
2731         (cbranchsi4, cstoresi4): New.
2732         (cmpsi, bCC and sCC expanders): Remove. 
2733
2734         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
2735         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
2736         * config/arm/predicates.md (arm_comparison_operator): Only include
2737         floating-point operators if there is a hardware floating-point unit.
2738         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
2739         deferring to cbranch_cc and cstore_cc respectively.
2740         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
2741         cbranch_cc, cstore_cc): New.
2742         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
2743         arm_compare_op1.
2744         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
2745
2746         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
2747         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
2748         as an argument.
2749         (adjust_insn_length): Adjust calls.
2750         (avr_reorg): Handle (compare (foo) (const_int 0)).
2751         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
2752         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
2753         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
2754         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
2755         (bCC): Remove.
2756         (cbranchqi4, cbranchhi4, cbranchsi4): New.
2757         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
2758
2759         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
2760         (cbranchsi4, cstorebi4, cstoresi4): New.
2761         (movbisi): This insn is duplicate, split it to zero_extend.
2762         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
2763         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
2764         (bfin_optimize_loop): Use cbranch expander.
2765         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
2766         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
2767         (bfin_bimode_comparison_operator): ... this.
2768         (bfin_direct_comparison_operator): New.
2769  
2770         * config/cris/cris.c (cris_normal_notice_update_cc): Look
2771         inside (compare FOO (const_int 0)).
2772         (cris_rtx_costs): Handle ZERO_EXTRACT.
2773         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
2774         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
2775         (*tstdi_v32): Delete.
2776         (*cmpdi_non_v32): Add M alternative for operand 1.
2777         (cmpsi, cmp<mode>): Make private.
2778         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
2779         with COMPARE.
2780         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
2781
2782         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
2783         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
2784         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
2785         (cc_reg_operand): New.
2786         (any_cond): Delete.
2787         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
2788         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
2789         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
2790         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
2791         crx_expand_scond): Delete.
2792
2793         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
2794         (cbranchsi4): New.
2795         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
2796         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
2797
2798         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
2799         cstoresi4, cstoresf4, cstoredf4): New.
2800         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
2801         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2802         Receive the entire operands array.
2803         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
2804         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
2805         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2806         Get test/op0/op1 from the operands array.
2807         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
2808
2809         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
2810         (h8300_expand_store): New.
2811         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
2812         (const_int 0)).
2813         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
2814         (h8300_expand_store): New.
2815         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
2816         or do not try to produce (set (cc0) REG).
2817         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
2818         change a compare into a move to a scratch register.  Disable some
2819         peepholes when comparing with zero.
2820         (tstsi, tsthi, tstsi, cmpqi): Make private.
2821         (cmphi): Delete.
2822         (bCC, sCC): Delete.
2823         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
2824         cstoresi4): New.
2825
2826         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
2827         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
2828         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
2829         (ix86_emit_i387_log1p): Use cbranchxf2.
2830         (ix86_expand_setcc): Return void.
2831         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
2832         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
2833         cmp<MODEF>, cmpcc): Remove.
2834         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
2835         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
2836         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
2837         (sCC and bCC expanders): Remove.
2838         (stack_protect_test): Use cbranchcc4.
2839
2840         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
2841         Delete.
2842         (ia64_expand_compare): Accept three rtx by reference and return void.
2843         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
2844         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
2845         from *expr.  Update *expr with the BImode comparison to do.
2846         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
2847         cmptf, bCC, sCC, conditional_trap): Delete.
2848         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
2849         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
2850         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
2851         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
2852         * config/ia64/predicates.md (ia64_cbranch_operator): New.
2853
2854         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
2855         type of last argument.
2856         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
2857         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
2858         use machine mode argument instead of branch_type.  Remove dead
2859         code for floating-point comparisons.
2860         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
2861         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
2862         Remove.
2863         (cbranchsi4, cstoresi4): New.
2864         * config/iq2000/predicates.md (reg_or_const_operand): New.
2865
2866         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
2867         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
2868         (b<code>_op): Rewrite to...
2869         (bcc_op): ... this, using match_operator.
2870         (s<code>_op): Rewrite to...
2871         (scc_op): ... this, using match_operator.
2872         (s<code>_24_op): Rewrite to...
2873         (scc_op_24): ... this, using match_operator.
2874         (s<code>_<mode>): Rewrite to...
2875         (cstore<mode>4): ... this, using match_operator.
2876         (s<code>_<mode>_24): Rewrite to...
2877         (cstore<mode>4_24): ... this, using match_operator.
2878         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
2879         m32c_unpend_compare, m32c_expand_scc): Delete.
2880         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
2881         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
2882         (m32c_expand_movcc): Change NE to EQ if necessary.
2883         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
2884
2885         * config/m32r/m32r-protos.h (gen_cond_store): New.
2886         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
2887         (gen_cond_store): New, from sCC patterns.
2888         (m32r_expand_block_move): Use cbranchsi4.
2889         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
2890         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
2891         (cbranchsi4, cstoresi4): New.
2892         
2893         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
2894         Delete.
2895         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
2896         (m68hc11_notice_update_cc): Look into a compare with 0.
2897         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
2898         Delete.
2899         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
2900         cmphi, cmpqi, bCC): Delete.
2901         (cbranchsi4, cbranchhi4, cbranchqi4): New.
2902         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
2903         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
2904         sets with COMPARE.
2905
2906         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
2907         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
2908         * config/m68k/constraints.md (H): New.
2909         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
2910         the define_insn below.
2911         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
2912         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
2913         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
2914         patterns): Wrap RHS with COMPARE.
2915         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
2916         (*cmpdi_internal): Name this pattern.
2917         (cmpdi): Change to define_insn.
2918         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
2919         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
2920         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
2921         predicate.
2922         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
2923         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
2924         (conditional_trap): Change to...
2925         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
2926         (*conditional_trap): Use the ordered_comparison_operator and
2927         const1_operand predicates.
2928         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
2929         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
2930         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
2931         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
2932
2933         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
2934         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
2935         (mcore_gen_compare): New. 
2936         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
2937         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
2938         (mcore_gen_compare): ... this.
2939         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
2940         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
2941         (stack probe pattern): Use cbranchsi4.
2942
2943         * config/mips/predicates.md (mips_cstore_operator): New.
2944         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
2945         * config/mips/mips.md (any_cond): Delete.
2946         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
2947         always succeed.
2948         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
2949         fixuns_truncsfdi2): Use cbranch patterns.
2950         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
2951         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
2952         Adjust call to mips_expand_conditional_branch.
2953         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
2954         cstore<GPR:mode>4.
2955         * config/mips/mips-protos.h (mips_expand_conditional_branch,
2956         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
2957         * config/mips/mips.c (cmp_operands): Delete.
2958         (mips_emit_compare): Get comparison operands from *op0/*op1.
2959         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
2960         that it succeeds.  Use op0/op1 instead of cmp_operands.
2961         (mips_expand_conditional_branch, mips_expand_conditional_move,
2962         mips_expand_conditional_trap): Likewise.
2963         (mips_block_move_loop): Use cbranch patterns. 
2964         * config/mips/mips.h (cmp_operands): Delete.
2965
2966         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
2967         (mmix_gen_compare_reg): Just return a register in the right CC mode.
2968         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
2969         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
2970         (*cmpcc_folded): Rename to...
2971         (*cmpdi_folded): this.
2972         (*cmpcc): Rename to...
2973         (*cmps): ... this.
2974         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
2975         (bCC): Remove.
2976         (cbranchdi4): New.
2977         (cbranchdf4): New.  Handle invalid comparisons here.
2978         * config/mmix/predicates.md (float_comparison_operator): New.
2979
2980         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
2981         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
2982         * config/mn10300/mn10300.md (tst): Delete.
2983         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
2984         Name these patterns and wrap RHS in a compare.
2985         (*cmpsi): Make this pattern private.  Include tst.
2986         (*cmpsf): Make this pattern private.
2987         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
2988         (compare with zero peepholes): Likewise.
2989         (bCC): Remove.
2990         (cbranchsi4, cbranchsf4): New.
2991         (casesi): Use cbranchsi4.
2992
2993         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
2994         hppa_branch_type): Delete.
2995         (return_addr_rtx): Use cbranchsi4.
2996         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
2997         Emit CCFPmode comparison here.
2998         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
2999         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
3000         hppa_branch_type): Delete.
3001         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
3002         (movsicc, movdicc): Remove references to hppa_compare_op0,
3003         hppa_compare_op1 and compare_from_rtx.
3004         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
3005         (casesi): Use cbranchsi4.
3006
3007         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
3008         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
3009         * config/pdp11/pdp11.md (register_or_const0_operand): New.
3010         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
3011         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
3012         (bCC): Delete.
3013         (cbranchdf4, cbranchhi4, cbranchqi4): New.
3014         (*branch, *branch_inverted): New.
3015
3016         * config/picochip/picochip.md (cbranchhi4): Use
3017         ordered_comparison_operator.
3018         (cmphi, bCC): Remove.
3019
3020         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
3021         (trap_comparison_operator): Delete.
3022         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
3023         rs6000_emit_cbranch): Accept mode and operands.
3024         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
3025         rs6000_compare_fp_p): Delete.   
3026         (rs6000_generate_compare): Accept mode and comparison.  Extract code
3027         and op0/op1 from there.  Replace references to rs6000_compare_op0
3028         and rs6000_compare_op1.
3029         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
3030         extract result from passed operands.
3031         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
3032         extract loc from passed operands.
3033         (rs6000_emit_cmove): Likewise.
3034         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
3035         rs6000_compare_fp_p): Delete.
3036         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
3037         (cbranch<GPR>4, cbranch<FP>4): New.
3038         (cstore<mode>4): New.  Consolidate here all choices about when to use
3039         portable or specialized sCC sequences.
3040         (stack_protect_test): Use cbranchsi4.
3041         (conditional_trap): Replace with ctrap<GPR>4.
3042         (conditional trap insn): Replace trap_comparison_operator with
3043         ordered_comparison_operator. 
3044
3045         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
3046         (s390_emit_prologue): Use ctrap.
3047         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
3048         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
3049         New predicates replacing...
3050         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
3051         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
3052         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
3053         (add<mode>cc): Do not use s390_compare_op0/op1.
3054         (s<code>): Change to...
3055         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
3056         (seq): Change to...
3057         (cstorecc4): ... this.  Handle EQ or NE equally.
3058         (*sne): Un-privatize for use in cstorecc4.
3059         (b<code>): Change to...
3060         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
3061         (conditional_trap): Replace with...
3062         (ctrap<GPR>4, ctrap<FP>4): ... these.
3063         (stack_protect): Use cbranchcc4.
3064
3065         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
3066         * config/score/score-protos.h (score_gen_cmp): Delete.
3067         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
3068         (score_block_move-loop): Use cbranchsi4.
3069         * config/score/score.md (cbranchsi4): New.
3070         (cmpsi, bCC): Delete.
3071         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
3072         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3073         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
3074         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
3075         * config/score/score3.h (score3_gen_cmp): Delete.
3076         * config/score/score7.h (score7_gen_cmp): Delete.
3077
3078         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
3079         (sh_emit_scc_to_t): ... this.  Return void.
3080         (from_compare): Rename to...
3081         (sh_emit_compare_and_branch): ... this.
3082         (sh_emit_compare_and_set): New.
3083         (sh_expand_t_scc): Accept operands.
3084         * config/sh/predicates.md (sh_float_comparison_operator): New.
3085         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
3086         (prepare_scc_operands): Rename to...
3087         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
3088         arguments.
3089         (sh_emit_cheap_store_flag): New.
3090         (sh_emit_set_t_insn): New.
3091         (from_compare): Rename to...
3092         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
3093         handling of TARGET_SH2E floating point to avoid recursive call.
3094         Generate branch here.
3095         (sh_emit_compare_and_set): New.
3096         (sh_expand_t_scc): Get op0/op1 from arguments.
3097         (sh_emit_cheap_store_flag): New.
3098         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
3099         cases.
3100         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
3101         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
3102         (movsicc, movdicc): Do nothing when it recreated operands from
3103         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
3104         prepare_scc_operands (now sh_emit_scc_to_t).
3105         (udivdi3): Use cstoresi4.
3106         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
3107         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
3108         (cbranchint4_media, cbranchfp4_media): New.
3109         (casesi): Use cbranchdi4.
3110         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
3111         Delete.
3112         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
3113         (movnegt): Remove second operand.
3114         (cbranchsf4, cbranchdf4): New.
3115         (stack_protect): Use cbranchdi4/cbranchsi4.
3116
3117         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
3118         (gen_compare_reg): Accept comparison, extract part of it to...
3119         (gen_compare_reg_1): ... this. 
3120         (gen_compare_operator): Delete.
3121         (gen_v9_scc): Accept separate destination, comparison code and arms.
3122         Do not use sparc_compare_op0/sparc_compare_op1.
3123         (emit_scc_insn, emit_conditional_branch_insn): New.
3124         (emit_v9_brxx): Make static.  Remove useless assertion.
3125         (sparc_emit_float_lib_cmp): Return RTL instead of calling
3126         emit_cmp_insn.
3127         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
3128         * config/sparc/sparc-protos.h (gen_compare_reg,
3129         sparc_emit_float_lib_cmp): Adjust prototype.
3130         (emit_scc_insn, emit_conditional_branch_insn): New.
3131         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
3132         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
3133         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
3134         iterators to the top.
3135         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
3136         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
3137         snedi_special_trunc): Delete.
3138         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
3139         and snedi_special_trunc.
3140         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
3141         cbranchdi4, cbranch<F:mode>4): New.
3142         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
3143         here.  Use gen_compare_reg instead of gen_compare_operator.
3144         (conditional_trap): Replace with...
3145         (ctrapsi4, ctrapdi4): ... this.
3146         (stack_protect_test): Use cbranchcc4.
3147
3148         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
3149         argument to rtx.
3150         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
3151         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
3152         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
3153         from operands[0] or operands[3] depending on is_set.
3154         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
3155         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
3156         cmpdf, bCC), sCC: Remove.
3157         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
3158         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
3159         cstoredf4): New.
3160         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
3161         spu_emit_branch_or_set.
3162
3163         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
3164         Add two arguments.
3165         * config/stormy16/stormy16.h (xstormy16_compare_op0,
3166         xstormy16_compare_op1): Delete.
3167         * config/stormy16/stormy16.c (xstormy16_compare_op0,
3168         xstormy16_compare_op1): Delete. 
3169         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
3170         Adjust calls.
3171         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3172         (cmphi, cmpsi, bCC): Remove.
3173
3174         * config/v850/v850.md (tstsi, cmpsi): Fold into...
3175         (*cmpsi): ... this one.
3176         (cbranchsi4, cstoresi4): New.
3177         (bCC expanders): Delete.
3178         (sCC insns): Fold into...
3179         (*setcc): ... this one.
3180         (casesi): Do not use gen_cmpsi and gen_bgtu. 
3181         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3182         (movsicc): Simplify.
3183         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3184
3185         * config/vax/vax-protos.h (cond_name): New.
3186         (vax_output_conditional_branch): Remove.
3187         * config/vax/vax.c (cond_name): New.
3188         (vax_output_conditional_branch): Remove.
3189         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3190         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3191         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
3192         (bit<VAXint>): Wrap source with (compare).
3193         (b<code> and following unnamed pattern): Rename to *branch and
3194         *branch_reversed.  Change macroization to match_operator.
3195         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3196
3197         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3198         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3199         Change last argument to machine_mode.
3200         (xtensa_expand_scc): Add machine_mode argument.
3201         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3202         (gen_conditional_move, xtensa_expand_conditional_branch,
3203         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3204         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3205         Adjust operand numbers.
3206         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3207         Delete.
3208         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3209         (cmpsi, cmpsf, b<code>, s<code>): Delete.
3210         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
3211
3212 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
3213
3214         * optabs.c (prepare_cmp_insn): Temporarily disable test that
3215         causes spurious differences between trunk and cond-optab branch.
3216
3217 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
3218
3219         PR target/37137
3220         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
3221
3222 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
3223
3224         * tree.c (iterative_hash_pointer): Delete.
3225         (iterative_hash_expr): Short-circuit handling of NULL pointer.
3226         Hash UIDs and versions of SSA names.  Don't special-case built-in
3227         function declarations.
3228
3229 2009-05-11  Ian Lance Taylor  <iant@google.com>
3230
3231         PR bootstrap/40103
3232         * graphite.c: Force -Wc++-compat to only be a warning before
3233         #including "cloog/cloog.h".
3234
3235 2009-05-11  Martin Jambor  <mjambor@suse.cz>
3236
3237         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
3238         
3239 2009-05-11  Jan Hubicka  <jh@suse.cz>
3240
3241         * tree-ssa-loop-ivcanon.c: Include target.h
3242         (struct loop_size): new structure.
3243         (constant_after_peeling): New predicate.
3244         (tree_estimate_loop_size): New function.
3245         (estimated_unrolled_size): Rewrite for new estimates.
3246         (try_unroll_loop_completely): Use new estimates.
3247         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
3248
3249 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3250
3251         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
3252         libcpp interface change.
3253         (spu_macro_to_expand): Likewise.
3254
3255 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
3256
3257         PR tree-optimization/40026
3258         * gimplify.c (gimplify_init_constructor): Change initial conditional
3259         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
3260         optimize_compound_literals_in_ctor.
3261
3262 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
3263
3264         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
3265         New devices.
3266         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
3267
3268 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
3269
3270         * tree-vect-data-refs.c (vect_analyze_group_access): Use
3271         HOST_WIDE_INT for gap.
3272
3273 2009-05-11  Ira Rosen  <irar@il.ibm.com>
3274
3275         PR tree-optimization/40074
3276         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
3277         account in group size and step comparison.
3278
3279 2009-05-11  Richard Guenther  <rguenther@suse.de>
3280
3281         * passes.c (init_optimization_passes): Strip now incorrect comment.
3282         (execute_function_todo): Do not set PROP_alias.
3283         * tree-pass.h (PROP_alias): Remove.
3284         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
3285         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
3286         * tree-nrv.c (pass_return_slot): Likewise.
3287         * tree-object-size.c (pass_object_sizes): Likewise.
3288         * tree-ssa-dom.c (pass_dominator): Likewise.
3289         (pass_phi_only_cprop): Likewise.
3290         * tree-ssa-dse.c (pass_dse): Likewise.
3291         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
3292         (pass_cselim): Likewise.
3293         * tree-ssa-pre.c (pass_pre): Likewise.
3294         (pass_fre): Likewise.
3295         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
3296         * tree-ssa-sink.c (pass_sink_code): Likewise.
3297         * tree-stdarg.c (pass_stdarg): Likewise.
3298         * tree-tailcall.c (pass_tail_calls): Likewise.
3299         * tree-vrp.c (pass_vrp): Likewise.
3300
3301 2009-05-10  Ian Lance Taylor  <iant@google.com>
3302
3303         * basic-block.h (enum profile_status): Break out of struct
3304         control_flow_graph.
3305         * cgraph.h (struct inline_summary): Break out of struct
3306         cgraph_local_info.
3307         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
3308         of struct cgraph_order_sort.
3309         * combine.c (enum undo_kind): New enum, broken out of struct undo.
3310         * cse.c (struct branch_path): Break out of struct
3311         cse_basic_block_data.
3312         * except.h (enum eh_region_type): Break out of struct eh_region.
3313         * gcc.c (enum add_del): Break out of struct modify_target.
3314         * genrecog.c (enum decision_type): Break out of struct decision_test.
3315         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
3316         ggc_pch_data.
3317         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
3318         * regmove.c (enum match_use): New enum, broken out of struct match.
3319         * sched-int.h (enum post_call_group): New enum, broken out of
3320         struct deps.
3321         (struct deps_reg): Break out of struct deps.
3322         * target.h (struct asm_int_op): Break out of struct gcc_target.
3323         * tree-eh.c (struct goto_queue_node): Break out of struct
3324         leh_tf_state.
3325         * tree-inline.h (enum copy_body_cge_which): Break out of
3326         copy_body_data.
3327         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
3328
3329         * c-decl.c (in_struct, struct_types): New static variables.
3330         (pushtag): Add loc parameter.  Change all callers.
3331         (lookup_tag): Add ploc parameter.  Change all callers.
3332         (check_compound_literal_type): New function.
3333         (parser_xref_tag): Add loc parameter.  Change all callers.  If
3334         -Wc++-compat, warn about struct/union/enum types defined within a
3335         struct or union.
3336         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
3337         and loc parameters.  Change all callers.  Change error calls to
3338         error_at, using loc.  For a redefinition, if the location of the
3339         original definition is known, report it.  Set in_struct and
3340         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
3341         (finish_struct): Add new parameters enclosing_in_struct and
3342         enclosing_struct_types.  Change all callers.  Set
3343         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
3344         in the struct.  If in a struct, add this struct to struct_types.
3345         (start_enum): Add loc parameter.  Change all callers.  Use
3346         error_at for errors, using loc.  For a redefinition, if the
3347         location of the original definition is known, report it.  If in a
3348         struct, add this enum type to struct_types.  If -Wc++-compat warn
3349         if in sizeof, typeof, or alignof.
3350         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
3351         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
3352         (c_parser_enum_specifier): Get enum location for start_enum.
3353         (c_parser_struct_or_union_specifier): Get struct location for
3354         start_struct.  Save in_struct and struct_types status between
3355         start_struct and finish_struct.
3356         (c_parser_cast_expression): Get location of cast.
3357         (c_parser_alignof_expression): Get location of type.
3358         (c_parser_postfix_expression): Likewise.
3359         (c_parser_postfix_expression_after_paren_type): Add type_loc
3360         parameter.  Change all callers.  Call check_compound_literal_type.
3361         Use type_loc for error about variable size type.
3362         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
3363         of an enum constant from an enum type defined in a struct or union.
3364         (c_cast_expr): Add loc parameter.  Change all callers.  If
3365         -Wc++-compat, warn about defining a type in a cast.
3366         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
3367         (start_enum, start_struct, finish_struct): Update declarations.
3368         (parser_xref_tag, c_cast_expr): Update declarations.
3369         (check_compound_literal_type): Declare.
3370
3371 2009-05-11  Ben Elliston  <bje@au.ibm.com>
3372
3373         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
3374         for recent libcpp interface change.
3375         (rs6000_macro_to_expand): Likewise.
3376
3377 2009-05-10  Michael Matz  <matz@suse.de>
3378
3379         PR target/40031
3380         * config/arm/arm.c (require_pic_register): Emit on entry edge,
3381         not at entry of function.
3382
3383 2009-05-10  Richard Guenther  <rguenther@suse.de>
3384
3385         PR tree-optimization/40081
3386         Revert
3387         * tree-sra.c (instantiate_element): Instantiate scalar replacements
3388         using the main variant of the element type.  Do not fiddle with
3389         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3390
3391         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
3392         structs with volatile fields.
3393
3394 2009-05-10  Jan Hubicka  <jh@suse.cz>
3395
3396         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
3397         (estimate_move_cost): Assert that it does not get called for
3398         VOID_TYPE_P.
3399         (estimate_num_insns): Skip VOID types in argument handling.
3400         (optimize_inline_calls): Delete unreachable blocks and verify that
3401         callgraph is valid.
3402
3403 2009-05-10  Jan Hubicka  <jh@suse.cz>
3404
3405         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
3406         * cgraph.c (cgraph_mark_address_taken_node): New function.
3407         (dump_cgraph_node): Dump new flag.
3408         * cgraph.h (struct cgraph_node): Add address_taken.
3409         (cgraph_mark_address_taken_node): New function.
3410         * ipa.c (cgraph_postorder): Prioritize functions with address taken
3411         since new direct calls can be born.
3412
3413 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
3414
3415         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
3416         tok->val.node.node.
3417
3418 2009-05-10  Jan Hubicka  <jh@suse.cz>
3419
3420         PR middle-end/40084
3421         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
3422         argument; rewrite.
3423         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
3424         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
3425         * tree-inline.c (copy_bb): Set frequency correctly.
3426         (fold_marked_statements): Update call to
3427         cgraph_update_edges_for_call_stmt.
3428
3429 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
3430
3431         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
3432         identifiers in diagnostics.
3433         * config/arm/arm.c (arm_handle_fndecl_attribute,
3434         arm_handle_isr_attribute): Likewise.
3435         * config/avr/avr.c (avr_handle_progmem_attribute,
3436         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
3437         * config/bfin/bfin.c (handle_int_attribute,
3438         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
3439         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
3440         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
3441         Likewise.
3442         * config/darwin.c (darwin_handle_kext_attribute,
3443         darwin_handle_weak_import_attribute): Likewise.
3444         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
3445         h8300_handle_eightbit_data_attribute,
3446         h8300_handle_tiny_data_attribute): Likewise.
3447         * config/i386/i386.c (ix86_handle_cconv_attribute,
3448         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
3449         * config/i386/winnt.c (ix86_handle_shared_attribute,
3450         ix86_handle_selectany_attribute): Likewise.
3451         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
3452         * config/m32c/m32c.c (function_vector_handler): Likewise.
3453         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
3454         m68hc11_handle_fntype_attribute): Likewise.
3455         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
3456         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
3457         * config/mips/mips.c (mips_insert_attributes,
3458         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
3459         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
3460         rs6000_handle_struct_attribute): Likewise.
3461         * config/sh/sh.c (sh_insert_attributes,
3462         sh_handle_resbank_handler_attribute,
3463         sh_handle_interrupt_handler_attribute,
3464         sh2a_handle_function_vector_handler_attribute,
3465         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3466         Likewise.
3467         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
3468         * config/spu/spu.c (spu_handle_fndecl_attribute,
3469         spu_handle_vector_attribute): Likewise.
3470         * config/stormy16/stormy16.c
3471         (xstormy16_handle_interrupt_attribute): Likewise.
3472         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
3473         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
3474
3475 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
3476
3477         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
3478         (pp_translate_identifiers): New.
3479         (pp_identifier): Only conditionally translate identifier to locale
3480         character set.
3481         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
3482         (pp_base_tree_identifier): Only conditionally translate identifier
3483         to locale character set.
3484         * c-pretty-print.c (M_): Define.
3485         (pp_c_type_specifier, pp_c_primary_expression): Mark English
3486         fragments for conditional translation with M_.
3487         * tree-pretty-print.c (maybe_init_pretty_print): Disable
3488         identifier translation.
3489
3490 2009-05-10  Richard Guenther  <rguenther@suse.de>
3491
3492         PR tree-optimization/40081
3493         * tree-sra.c (instantiate_element): Instantiate scalar replacements
3494         using the main variant of the element type.  Do not fiddle with
3495         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3496
3497 2009-05-09  Jan Hubicka  <jh@suse.cz>
3498
3499         PR middle-end/40080
3500         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
3501         indirect calls; verify cgraph afterwards.
3502
3503 2009-05-09  Jan Hubicka  <jh@suse.cz>
3504
3505         PR bootstrap/40082
3506         * ipa.c (update_inlined_to_pointer): New function.
3507         (cgraph_remove_unreachable_nodes): Use it.
3508
3509 2009-05-09  Jan Hubicka  <jh@suse.cz>
3510
3511         * tree-eh.c (struct leh_state): Remove prev_try.
3512         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
3513         not track prev_try.
3514         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
3515         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
3516         remove_eh_handler_and_replace, foreach_reachable_handler,
3517         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
3518         * except.h (struct eh_region): Remove eh_region_u_cleanup.
3519         (gen_eh_region_cleanup): Update prototype.
3520
3521 2009-05-09  Jan Hubicka  <jh@suse.cz>
3522
3523         PR middle-end/40043
3524         * except.c (copy_eh_region): Always set prev_try.
3525         (redirect_eh_edge_to_label): Find outer try.
3526         (foreach_reachable_handler): When looking for prev try
3527         handle case where previous try is not going to be taken.
3528
3529 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
3530
3531         PR tree-optimization/40049
3532         * tree-vect-stmts.c (vectorizable_operation): If the machine has
3533         only vector/vector shifts, convert the type of the constant to the
3534         appropriate type to avoid building incorrect trees, which
3535         eventually have problems with garbage collection.
3536
3537 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
3538
3539         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
3540         -1 for complex floating-point types if honoring signed zeros.
3541
3542 2009-05-08  Jan Hubicka  <jh@suse.cz>
3543
3544         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
3545         argument; handle correctly when profile is absent.
3546         (build_cgraph_edges): Update.
3547         (rebuild_cgraph_edges): Update.
3548         * cgraph.c: Do not include varray.h.
3549         (cgraph_set_call_stmt_including_clones): New function.
3550         (cgraph_create_edge_including_clones): Likewise
3551         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
3552         (cgraph_update_edges_for_call_stmt): Handle clones.
3553         (cgraph_remove_node): Handle clone tree.
3554         (cgraph_remove_node_and_inline_clones): New function.
3555         (dump_cgraph_node): Dump clone tree.
3556         (cgraph_clone_node): Handle clone tree.
3557         (clone_function_name): Bring here from tree-inline.c.
3558         (cgraph_create_virtual_clone): New function.
3559         * cgraph.h (ipa_replace_map): Move here from ipa.h.
3560         (cgraph_clone_info): New function.
3561         (strut cgraph_node): Add clone_info and new clone tree pointers.
3562         (cgraph_remove_node_and_inline_clones,
3563         cgraph_set_call_stmt_including_clones,
3564         cgraph_create_edge_including_clones,
3565         cgraph_create_virtual_clone): Declare.
3566         (cgraph_function_versioning): Use VEC argument.
3567         (compute_call_stmt_bb_frequency): Update prototype.
3568         (cgraph_materialize_all_clones): New function.
3569         * ipa-cp.c (ipcp_update_cloned_node): Remove.
3570         (ipcp_create_replace_map): Update to VECtors.
3571         (ipcp_update_callgraph): Use virtual clones.
3572         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
3573         (ipcp_update_profiling): Do not update local profiling.
3574         (ipcp_insert_stage): Use VECtors and virtual clones.
3575         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
3576         (clone_of_p): New function.
3577         (cgraph_preserve_function_body_p): Use clone tree.
3578         (cgraph_optimize): Materialize clones.
3579         (cgraph_function_versioning): Update for VECtors.
3580         (save_inline_function_body): Use clone tree.
3581         (cgraph_materialize_clone): New function.
3582         (cgraph_materialize_all_clones): Likewise.
3583         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
3584         * ipa.c: Include gimple.h.
3585         (cgraph_remove_unreachable_nodes): Use clone tree.
3586         * ipa-prop.c (ipa_note_param_call): Update call to
3587         compute_call_stmt_bb_frequencycall.
3588         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
3589         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
3590         (copy_bb): Handle updating of clone tree; add new edge when new call
3591         appears.
3592         (expand_call_inline): Be strict about every call having edge.
3593         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
3594         (delete_unreachable_blocks_update_callgraph): New function.
3595         (tree_function_versioning): Use VECtors; always remove unreachable
3596         blocks and fold conditionals.
3597         * tree-inline.h: Do not include varray.h.
3598         (tree_function_versioning): Remove.
3599         * Makefile.in (GTFILES): Remove tree-inline.c
3600         * passes.c (do_per_function): Do only functions having body.
3601         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
3602         tree.
3603
3604 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
3605             Andrew Morrow  <acm@google.com>
3606
3607         PR c/36892
3608         * c-common.c (c_common_attribute_table): Permit deprecated
3609         attribute to take an optional argument.
3610         (handle_deprecated_attribute): If the optional argument to
3611         __attribute__((deprecated)) is not a string ignore the attribute
3612         and emit a warning.
3613
3614         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
3615         * c-typeck.c (build_component_ref): Likewise.
3616         (build_external_ref): Likewise.
3617
3618         * toplev.c (warn_deprecated_use): Add an attribute argument.
3619         Emit the message associated with __attribute__((deprecated)).
3620
3621         * toplev.h (warn_deprecated_use): Updated.
3622
3623         * doc/extend.texi: Document new optional parameter to
3624         __attribute__((deprecated))
3625
3626 2009-05-08  Michael Eager <eager@eagercon.com>
3627
3628         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
3629         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
3630
3631 2009-05-08  Richard Guenther  <rguenther@suse.de>
3632
3633         PR tree-optimization/40062
3634         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
3635         Avoid exponential behavior.
3636
3637 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
3638
3639         PR rtl-optimization/33928
3640         PR 26854
3641         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
3642         process_uses, build_single_def_use_links): New.
3643         (update_df): Update use_def_ref.
3644         (forward_propagate_into): Use get_def_for_use instead of use-def
3645         chains.
3646         (fwprop_init): Call build_single_def_use_links and let it initialize
3647         dataflow.
3648         (fwprop_done): Free use_def_ref.
3649         (fwprop_addr): Eliminate duplicate call to df_set_flags.
3650         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
3651         df_rd_simulate_one_insn): New.
3652         (df_rd_bb_local_compute_process_def): Update head comment.
3653         (df_chain_create_bb): Use the new RD simulation functions.
3654         * df.h (df_rd_simulate_artificial_defs_at_top, 
3655         df_rd_simulate_one_insn): New.
3656         * opts.c (decode_options): Enable fwprop at -O1.
3657         * doc/invoke.texi (-fforward-propagate): Document this.
3658
3659 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
3660
3661         PR c/24581
3662         * c-typeck.c (build_binary_op): Handle arithmetic between one real
3663         and one complex operand specially.
3664         * tree-complex.c (some_nonzerop): Do not identify a real value as
3665         zero if flag_signed_zeros.
3666
3667 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
3668
3669         PR rtl-optimization/33928
3670         * loop-invariant.c (record_use): Fix && vs. || mishap.
3671
3672 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
3673
3674         PR rtl-optimization/33928
3675         * loop-invariant.c (struct use): Add addr_use_p.
3676         (struct def): Add n_addr_uses.
3677         (struct invariant): Add cheap_address.
3678         (create_new_invariant): Set cheap_address.
3679         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
3680         (record_uses): Pass df_ref to record_use.
3681         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
3682         used only as such.
3683
3684 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
3685
3686         * config/sh/sh.c: Do not include c-pragma.h.
3687
3688 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3689
3690         * config/spu/spu.c: Remove include of c-common.h.
3691
3692 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
3693
3694         PR c/39037
3695         * c-common.h (mark_valid_location_for_stdc_pragma,
3696         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
3697         clear_float_const_decimal64, float_const_decimal64_p): New.
3698         * c.opt (Wunsuffixed-float-constants): New.
3699         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
3700         unsuffixed float constant, handle new warning.
3701         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
3702         * c-decl.c (c_scope): New flag float_const_decimal64.
3703         (set_float_const_decimal64, clear_float_const_decimal64,
3704         float_const_decimal64_p): New.
3705         (push_scope): Set new flag.
3706         * c-parser.c (c_parser_translation_unit): Mark when it's valid
3707         to use STDC pragmas.
3708         (c_parser_external_declaration): Ditto.
3709         (c_parser_compound_statement_nostart): Ditto.
3710         * c-pragma.c (valid_location_for_stdc_pragma,
3711         mark_valid_location_for_stdc_pragma,
3712         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
3713         handle_pragma_float_const_decimal64): New.
3714         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
3715         * cp/semantics.c (valid_location_for_stdc_pragma_p,
3716         set_float_const_decimal64, clear_float_const_decimal64,
3717         float_const_decimal64_p): New dummy functions.
3718         * doc/extend.texi (Decimal Float): Remove statement that the
3719         pragma, and suffix for double constants, are not supported.
3720         * doc/invoke.texi (Warning Options): List new option.
3721         (-Wunsuffixed-float-constants): New.
3722
3723 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
3724
3725         * config/i386/i386.c: Do not include c-common.h.
3726
3727 2009-05-07  Mark Heffernan  <meheff@google.com>
3728
3729         * doc/invoke.texi (Debugging Options): Document change of debugging
3730         dump location.
3731         * opts.c (decode_options): Make dump_base_name relative to
3732         aux_base_name directory.
3733
3734 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
3735
3736         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
3737         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
3738
3739 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
3740
3741         * Makefile.in (install-plugin): Simplify a bit.
3742
3743 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
3744
3745         * Makefile.in (OBJS-common): Add regcprop.o.
3746         (regcprop.o): New.
3747         * timevar.def (TV_CPROP_REGISTERS): New.
3748         * regrename.c (regrename_optimize): Return 0.
3749         (rest_of_handle_regrename): Delete.
3750         (pass_rename_registers): Point to regrename_optimize.
3751         (struct value_data_entry, struct value_data, 
3752         kill_value_one_regno, kill_value_regno, kill_value,
3753         set_value_regno, init_value_data, kill_clobbered_value,
3754         kill_set_value, kill_autoinc_value, copy_value,
3755         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
3756         replace_oldest_value_reg, replace_oldest_value_addr,
3757         replace_oldest_value_mem, copyprop_hardreg_forward_1,
3758         debug_value_data, validate_value_data): Move...
3759         * regcprop.c: ... here.
3760         (rest_of_handle_cprop): Delete.
3761         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
3762
3763 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
3764
3765         PR middle-end/40057
3766         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
3767         GEN_INT for 1 << bitnum.
3768         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
3769         build_int_cst_type.
3770
3771 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
3772
3773         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
3774         Remove wrong description of "nand" operation.
3775
3776 2009-05-06  Richard Guenther  <rguenther@suse.de>
3777             Adam Nemet  <anemet@caviumnetworks.com>
3778
3779         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
3780         comment.  Add that if LHS is not a gimple register, then RHS1 has
3781         to be a single object (GIMPLE_SINGLE_RHS).
3782
3783 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
3784
3785         * expr.c (get_def_for_expr): Move it up in the file.
3786         (store_field): When expanding a bit-field store, look at the
3787         defining gimple stmt for the masking conversion.
3788
3789 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
3790
3791         PR middle-end/39986
3792         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
3793         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
3794         32-bit memcpy into long.
3795
3796 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
3797
3798         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
3799         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
3800         new_reg_loc_descr.
3801         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
3802         instead of appending DW_OP_deref*.
3803
3804 2009-05-06  Michael Matz  <matz@suse.de>
3805
3806         PR middle-end/40021
3807         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
3808         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
3809
3810 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
3811
3812         * Makefile.in (install-plugin): Fix srcdir handling.
3813
3814 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
3815
3816         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
3817         when processing for not_regs_needed bitmap.
3818         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
3819         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
3820         handling it for rhs. 
3821
3822 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3823
3824         * config/i386/i386.md (unnamed inc/dec peephole): Use
3825         optimize_insn_for_size_p instead of optimize_size.
3826         * config/i386/predicates.md (incdec_operand): Likewise.
3827         (aligned_operand): Likewise.
3828         * config/i386/sse.md (divv8sf3): Likewise.
3829         (sqrtv8sf2): Likewise.
3830
3831 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3832
3833         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
3834
3835         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
3836
3837 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
3838
3839         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
3840         ssemodesuffixf2c with avxmodesuffixf2c.
3841
3842 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
3843
3844         PR c/40032
3845         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
3846
3847 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
3848
3849         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
3850         (struct tree_base): Adjust spacing for 8 bit boundaries.
3851         (struct tree_decl_common): Add decl_by_reference_flag bit.
3852         (DECL_BY_REFERENCE): Adjust.
3853         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
3854         print DECL_BY_REFERENCE bit.
3855         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
3856         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
3857         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
3858         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
3859         unconditionally.
3860
3861         PR middle-end/39666
3862         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
3863         range of the type, but default label is missing, add it with one
3864         of the existing labels instead of adding a new label for it.
3865
3866 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
3867
3868         * dwarf.h: Remove.
3869
3870 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
3871
3872         * Makefile.in (enable_plugin, plugin_includedir): New.
3873         (install): Depend on install-plugin.
3874         (PLUGIN_HEADERS): New.
3875         (install-plugin): New.
3876         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
3877
3878 2009-05-05  Richard Guenther  <rguenther@suse.de>
3879
3880         PR tree-optimization/40022
3881         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
3882         the only vuse.
3883         (phivn_valid_p): Fix tuplification error, simplify.
3884         (phiprop_insert_phi): Add dumps.
3885         (propagate_with_phi): Simplify.
3886
3887 2009-05-05  Richard Guenther  <rguenther@suse.de>
3888
3889         PR middle-end/40023
3890         * builtins.c (gimplify_va_arg_expr): Properly build the address.
3891
3892 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
3893
3894         * tree.h (strip_float_extensions): Remove duplicate declaration.
3895         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
3896         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
3897         block_ultimate_origin): Rearrange the declarations line to match the
3898         comment that indicates the .c file which the functions are defined.
3899         (dwarf2out_*, set_decl_rtl): Add comment.
3900         (get_base_address): Adjust comment.
3901         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
3902         declarations line and add comment.
3903         (is_builtin_name): Add blank after function name, for clarity.
3904
3905 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
3906
3907         * attribs.c (decl_attributes): Use %qE for identifiers in
3908         diagnostics.
3909         * cgraphunit.c (verify_cgraph_node): Translate function names to
3910         locale character set in diagnostics.
3911         * coverage.c (get_coverage_counts): Use %qE for identifiers in
3912         diagnostics.
3913         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
3914         Document that functions are named in UTF-8.
3915         * expr.c (expand_expr_real_1): Translate function names to locale
3916         character set in diagnostics.
3917         * gimplify.c (omp_notice_variable, omp_is_private,
3918         gimplify_scan_omp_clauses): Use %qE for identifiers in
3919         diagnostics.
3920         * langhooks.c (lhd_print_error_function): Translate function names
3921         to locale character set.
3922         * langhooks.h (decl_printable_name): Document that return value is
3923         in internal character set.
3924         * stmt.c: Include pretty-print.h
3925         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
3926         diagnostics.
3927         (resolve_operand_name_1): Translate named operand name to locale
3928         character set.
3929         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
3930         diagnostics.
3931         * toplev.c (announce_function): Translate function names to locale
3932         character set.
3933         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
3934         (default_tree_printer): Use pp_identifier or translate identifiers
3935         to locale character set.  Mark "<anonymous>" for translation.
3936         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
3937         for identifiers in diagnostics.
3938         * tree.c (handle_dll_attribute): Use %qE for identifiers in
3939         diagnostics.
3940         * varasm.c (output_constructor): Use %qE for identifiers in
3941         diagnostics.
3942
3943 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
3944
3945         * configure.ac: use ` ` instead of $()
3946         * configure: Regenerate.
3947
3948 2009-05-05  Ben Elliston  <bje@au.ibm.com>
3949
3950         * config/pa/linux-atomic.c: Eliminate conditional include of
3951         errno.h on non-LP64 systems to simplify build requirements.
3952
3953 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
3954
3955         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
3956         diagnostics.
3957         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
3958         and pass value to identifier_to_locale.
3959         (warn_variable_length_array): Make name a tree.
3960         (grokdeclarator): Separate diagnostic texts for named and unnamed
3961         declarators.  Use %qE for named declarators.
3962         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
3963         diagnostics.
3964         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
3965         identifiers in diagnostics.
3966         * c-typeck.c (push_member_name, start_init): Pass identifiers to
3967         identifier_to_locale.  Mark "anonymous" strings for translation.
3968
3969 2009-05-04  Michael Eager <eager@eagercon.com>
3970
3971         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
3972         address for DImode/DFmode only if double-precision FP regs.
3973
3974 2009-05-04  Michael Eager <eager@eagercon.com>
3975
3976         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
3977         TARGET_SINGLE_FLOAT check.
3978
3979 2009-05-04  Michael Eager <eager@eagercon.com>
3980
3981         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
3982
3983 2009-05-04  Michael Eager <eager@eagercon.com>
3984
3985         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
3986         * config/rs6000/t-xilinx: New
3987
3988 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
3989
3990         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
3991         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
3992         * gcc/explow.c (memory_address): Use target hook.
3993         * gcc/targhooks.c (default_legitimize_address): New.
3994         * gcc/targhooks.h (default_legitimize_address): New.
3995         * gcc/target.h (legitimize_address): New.
3996         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
3997         (TARGET_INITIALIZER): Include it.
3998         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
3999
4000         * config/bfin/bfin-protos.h (legitimize_address): Remove.
4001         * config/bfin/bfin.c (legitimize_address): Remove.
4002         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
4003         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
4004         Remove.
4005         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
4006         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
4007
4008         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
4009         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
4010         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
4011         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
4012         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
4013         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
4014         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
4015         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
4016         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
4017         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
4018         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
4019         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
4020         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
4021         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
4022         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
4023         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
4024         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
4025         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
4026         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
4027         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
4028         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
4029         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
4030         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
4031
4032         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
4033         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
4034         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
4035         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
4036         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
4037         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
4038         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
4039         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
4040         (thumb_legitimize_address): Delete.
4041         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
4042         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
4043         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
4044         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
4045         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
4046         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
4047         Delete.
4048         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
4049         Delete.
4050
4051         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
4052         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
4053         * config/m32r/m32r.c (m32r_legitimize_address): New.
4054         * config/m68k/m68k.c (m68k_legitimize_address): New.
4055         * config/score/score.c (score_legitimize_address): Standardize.
4056         * config/score/score3.c (score3_legitimize_address): Standardize.
4057         * config/score/score3.h (score3_legitimize_address): Adjust.
4058         * config/score/score7.c (score7_legitimize_address): Standardize.
4059         * config/score/score7.h (score7_legitimize_address): Adjust.
4060         * config/sh/sh.c (sh_legitimize_address): New.
4061         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
4062
4063         * gcc/config/s390/s390.c (legitimize_address): Rename to...
4064         (s390_legitimize_address): ... this.
4065         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
4066         (sparc_legitimize_address): ... this.
4067         * gcc/config/i386/i386.c (legitimize_address): Rename to...
4068         (ix86_legitimize_address): ... this.
4069         * gcc/config/avr/avr.c (legitimize_address): Rename to...
4070         (avr_legitimize_address): ... this.
4071         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
4072         (mn10300_legitimize_address): ... this.
4073         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
4074         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
4075         (alpha_expand_mov): Adjust call.
4076
4077         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
4078         * config/spu/spu.c (spu_legitimize_address): Likewise.
4079         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
4080         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
4081
4082 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
4083
4084         * intl.c (locale_encoding, locale_utf8): New.
4085         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
4086         * intl.h (locale_encoding, locale_utf8): Declare.
4087         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
4088         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
4089         New.
4090         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
4091         argument.
4092         (pp_tree_identifier): Define to call pp_base_tree_identifier.
4093         (pp_base_tree_identifier): Declare as function.
4094         (identifier_to_locale): Declare.
4095         * Makefile.in (pretty-print.o): Update dependencies.
4096         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
4097
4098 2009-05-04  Richard Guenther  <rguenther@suse.de>
4099
4100         PR middle-end/40015
4101         * builtins.c (fold_builtin_memory_op): Do not decay to element
4102         type if the size matches the whole array.
4103
4104 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
4105
4106         * expmed.c (synth_mult): When trying out a shift, pass the result
4107         of a signed shift.
4108
4109 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
4110
4111         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
4112         (shiftsub1_cost): New.
4113         (init_expmed): Compute shiftsub1_cost.
4114         (synth_mult): Optimize multiplications by constants of the form
4115         -(2^^m-1) for some constant positive integer m.
4116
4117 2009-05-03  Richard Guenther  <rguenther@suse.de>
4118
4119         PR c/39983
4120         * c-typeck.c (array_to_pointer_conversion): Do not built
4121         ADDR_EXPRs of arrays of pointer-to-element type.
4122         * c-gimplify.c (c_gimplify_expr): Revert change fixing
4123         up wrong ADDR_EXPRs after-the-fact.
4124         * c-common.c (strict_aliasing_warning): Strip pointer
4125         conversions for obtaining the original type.
4126         * builtins.c (fold_builtin_memset): Handle array types.
4127         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
4128         and array types
4129
4130 2009-05-03  Richard Guenther  <rguenther@suse.de>
4131
4132         PR middle-end/23329
4133         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
4134         Do not lose casts from array types with unknown extent to array
4135         types with known extent.
4136         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
4137         alias set compatibility.
4138
4139 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4140
4141         * flags.h (extra_warnings): Delete.
4142         * toplev.c (process_options): Handle Wuninitialized here.
4143         * opts.c (extra_warnings): Delete.
4144         (set_Wextra): Delete.
4145         (common_handle_option): -Wextra can be handled automatically.
4146         * c-opts.c (c_common_handle_option): Delete obsolete code.
4147         (c_common_post_options): Simplify comment.
4148         * common.opt (W): Add Var.
4149         (Wextra): Add Var.
4150         (Wuninitialized): Initialize to -1.
4151
4152 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
4153             Richard Guenther  <rguenther@suse.de>
4154
4155         * expr.c (get_def_for_expr): New function.
4156         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
4157         SSA rather than trees.
4158         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
4159         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
4160         
4161 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
4162
4163         * c-common.c (reswords): Add _Imaginary.
4164         * c-common.c (enum rid): Add RID_IMAGINARY.
4165
4166 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
4167
4168         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
4169         Patch by Richard Guenther.
4170
4171 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
4172
4173         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4174         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4175         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4176         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4177         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4178         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4179         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4180         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4181         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4182         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4183         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4184         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4185         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4186         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4187         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4188         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4189         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4190         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4191
4192 2009-05-02  Richard Guenther  <rguenther@suse.de>
4193
4194         PR tree-optimization/39940
4195         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4196         doing so.
4197
4198 2009-05-02  Richard Guenther  <rguenther@suse.de>
4199
4200         PR middle-end/40001
4201         * tree-ssa.c (execute_update_addresses_taken): Properly check
4202         if we can mark a variable DECL_GIMPLE_REG_P.
4203         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4204         back to the end of the function.
4205         (is_gimple_reg_type): Remove complex type special casing.
4206         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4207         if not optimizing.
4208
4209 2009-05-02  Ben Elliston  <bje@au.ibm.com>
4210
4211         * doc/collect2.texi (Collect2): Document search path behaviour
4212         when configured with --with-ld.
4213
4214 2009-05-02  Jan Hubicka  <jh@suse.cz>
4215
4216         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
4217         parameter; update callers.
4218         (coalesce_cost_edge): EH edges are costier because they needs
4219         splitting even if not critical and even more costier when there are
4220         multiple EH predecestors.
4221
4222 2009-05-02  Jan Hubicka  <jh@suse.cz>
4223
4224         * except.c (remove_eh_handler_and_replace): Handle updating after
4225         removing TRY blocks.
4226
4227 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
4228
4229         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4230
4231 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
4232
4233         * varasm.c: Do not include c-pragma.h.
4234         * attribs.c: Do not incude c-common.h.
4235
4236 2009-05-01  Michael Matz  <matz@suse.de>
4237
4238         * calls.c (initialize_argument_information): Handle SSA names like
4239         decls with a non MEM_P DECL_RTL.
4240
4241 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
4242
4243         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
4244         * ipa-utils.c: Likewise.
4245         * ipa-type-escape.c: Likewise.
4246         * cgraphunit.c Do not include c-common.h.
4247         * ipa-pure-const.c: Likewise.
4248         * tree-if-conv.c: Likewise.
4249         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
4250         * ipa-struct-reorg.c: Likewise.
4251         * tree-nomudflap.c: Likewise.
4252         * tree-ssa-structalias.c: Likewise.
4253
4254 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
4255
4256         * store-motion.c: Many cleanups to make this pass a first-class
4257         citizen instead of an appendix to gcse load motion.  Add TODO list
4258         to make this pass faster/cleaner/better.
4259
4260         (struct ls_expr): Post gcse.c-split cleanups.
4261         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
4262         "stores" field to "avail_stores".
4263         (pre_ldst_mems): Rename to store_motion_mems.
4264         (pre_ldst_table): Rename to store_motion_mems_table.
4265         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
4266         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
4267         (ldst_entry): Rename to st_expr_entry, update users.
4268         (free_ldst_entry): Rename to free_st_expr_entry, update users.
4269         (free_ldst_mems): Rename to free_store_motion_mems, update users.
4270         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
4271         update caller.
4272         (first_ls_expr): Rename to first_st_expr, update users.
4273         (next_ls_expr): Rename to next_st_expr, update users.
4274         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
4275         fields properly for store motion instead of names inherited from load
4276         motion in gcse.c.
4277         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
4278         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
4279         are done with it.
4280
4281         (ae_kill): Rename to st_kill, update users.
4282         (ae_gen): Rename to st_avloc, update users.
4283         (transp): Rename to st_transp, update users.
4284         (pre_insert_map): Rename to st_insert_map, update users.
4285         (pre_delete_map): Rename to st_delete_map, update users.
4286         (insert_store, build_store_vectors, free_store_memory,
4287         one_store_motion_pass): Update for abovementioned changes.
4288
4289         (gcse_subst_count, gcse_create_count): Remove.
4290         (one_store_motion_pass): New statistics counters "n_stores_deleted"
4291         and "n_stores_created", local variables.
4292
4293         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
4294         use for_each_rtx.
4295
4296         (regvec, compute_store_table_current_insn): Remove.
4297         (reg_set_info, reg_clear_last_set): Remove.
4298         (compute_store_table): Use DF caches instead of local dataflow
4299         solvers.
4300
4301 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
4302
4303         * c-objc-common.c (c_tree_printer): Print identifiers with
4304         pp_identifier, not pp_string.  Mark "({anonymous})" for
4305         translation.
4306         * c-pretty-print.c (pp_c_ws_string): New.
4307         (pp_c_cv_qualifier, pp_c_type_specifier,
4308         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
4309         pp_c_storage_class_specifier, pp_c_function_specifier,
4310         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
4311         pp_c_primary_expression, pp_c_postfix_expression,
4312         pp_c_unary_expression, pp_c_shift_expression,
4313         pp_c_relational_expression, pp_c_equality_expression,
4314         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
4315         use pp_string and pp_c_ws_string in place of pp_identifier and
4316         pp_c_identifier for non-identifiers.  Mark English strings for
4317         translation.
4318         * c-pretty-print.h (pp_c_ws_string): Declare.
4319
4320 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
4321             Roland McGrath <roland@redhat.com>
4322
4323         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
4324         (ENABLE_LD_BUILDID): New configuration option.
4325         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
4326         (LINK_BUILDID_SPEC): New macro.
4327         (init_spec): If defined, prepend it between LINK_EH_SPEC and
4328         link_spec.
4329         * doc/install.texi: Document --enable-linker-build-id option.
4330         * configure: Rebuild.
4331         * config.in: Rebuild.
4332
4333 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
4334
4335         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
4336         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
4337         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
4338         MIPS_GP_SAVE_AREA_SIZE.
4339         * config/mips/mips.c (struct mips_frame_info): Update comment
4340         before arg_pointer_offset and hard_frame_pointer_offset.
4341         (mips_compute_frame_info): Update diagram before function: to
4342         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
4343         indicate the position of frame_pointer_rtx with -fstack-protector and
4344         to show args_size.  Don't allocate cprestore area for leaf functions
4345         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
4346         cprestore_size.
4347         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
4348
4349 2009-04-30  Michael Matz  <matz@suse.de>
4350
4351         PR tree-optimization/39955
4352         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
4353
4354 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
4355
4356         * ira.c (setup_cover_and_important_classes):  Use safe macro
4357         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
4358         directly.
4359         * genpreds.c (write_tm_preds_h):  Output suitable definition of
4360         REG_CLASS_FOR_CONSTRAINT.
4361
4362 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
4363
4364         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
4365         instead of an int.
4366         * bitmap.c (bitmap_descriptor): Likewise.
4367         * ggc-common.c (loc_descriptor): Likewise.
4368         * varray.c (varray_descriptor): Likewise.
4369         * vec.c (vec_descriptor): Likewise.
4370
4371 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
4372
4373         * Makefile.in (dce.o): Add $(EXCEPT_H).
4374         * dce.c: Include except.h and delete redundant vector definitions.
4375         (deletable_insn_p): Return false for non-call insns that can throw
4376         if DF is running.
4377
4378 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
4379
4380         * gcse.c (ae_gen): Remove.
4381         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
4382         and make non-static function to make it available in store-motion.c.
4383         Update call sites with search-and-replace.
4384         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
4385         extract_mentioned_regs, extract_mentioned_regs_helper,
4386         find_moveable_store, compute_store_table, load_kills_store, find_loads,
4387         store_killed_in_insn, store_killed_after, store_killed_before,
4388         build_store_vectors, insert_insn_start_basic_block, insert-store,
4389         remove_reachable_equiv_notes, replace_store_insn, delete_store,
4390         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
4391         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
4392         * store-motion.c: ...new file.  Also copy data structures from gcse.c
4393         and clean up to remove parts not used by store motion.
4394         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
4395         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
4396
4397 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4398
4399         PR target/38571
4400         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
4401         when optimizing for size.
4402
4403 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
4404
4405         * gcse.c (gcse_constant_p): Fix typo in last change.
4406
4407 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
4408
4409         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
4410
4411 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
4412
4413         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
4414
4415 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
4416
4417         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
4418         CONST_HIGH_PART result.
4419
4420 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
4421
4422         * config/avr/avr.c (initial_elimination_offset): Rename to
4423         avr_initial_elimination_offset.
4424         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
4425         change return type to bool.
4426         (avr_can_eliminate): New function.
4427         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
4428         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
4429         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
4430         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
4431         avr_initial_elimination_offset.
4432         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
4433         (avr_initial_elimination_offset): Define.
4434
4435 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
4436             Steven Bosscher  <steven@gcc.gnu.org>
4437
4438         PR rtl-optimization/39938
4439         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
4440         * cfgrtl.c: Include insn-attr.h.
4441         (rest_of_pass_free_cfg): New function.
4442         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
4443         * resource.c (init_resource_info): Remove call to df_analyze.
4444
4445 2009-04-29  Richard Guenther  <rguenther@suse.de>
4446
4447         PR target/39943
4448         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
4449         allow conversion to signed integers.
4450
4451 2009-04-29  Richard Guenther  <rguenther@suse.de>
4452
4453         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
4454         shifts of floating point vectors if the shift amount is
4455         a constant multiple of the element size.
4456
4457 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4458             Michael Matz  <matz@suse.de>
4459
4460         PR middle-end/39927
4461         PR bootstrap/39929
4462         * tree-outof-ssa.c (emit_partition_copy): New function.
4463         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4464         insert_part_to_rtx_on_edge): Perform the partition base var
4465         copy using emit_partition_copy.
4466         (insert_value_copy_on_edge): Convert constants to the right mode.
4467         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
4468         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
4469
4470 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4471
4472         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
4473         scan backwards to try to find a constant to initialize it.
4474
4475         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
4476         insn before the loop_end instruction, don't look past labels.
4477
4478 2009-04-29  Richard Guenther  <rguenther@suse.de>
4479
4480         PR middle-end/39937
4481         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
4482         loose type conversions.
4483         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
4484         stmts only if there are no uses of its definition.
4485
4486 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4487
4488         * config/bfin/bfin.h (splitting_loops): Declare.
4489         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
4490         Reorder bit definitions to be ascending.
4491         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
4492         * config/bfin/bfin.c (splitting_loops): New variable.
4493         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
4494         (struct loop_info): Remove members INIT and LOOP_INIT.
4495         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
4496         the LSETUP sequence.  Allow LC to be loaded from any register, but
4497         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
4498         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
4499         set to 1.
4500         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
4501         of reload_completed.
4502
4503         From Jie Zhang:
4504         * config/bfin/bfin.md (movsi_insn): Refine constraints.
4505
4506 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
4507
4508         * Makefile.in (PLUGIN_VERSION_H): New.
4509         (OBJS-common): Remove plugin-version.o.
4510         (plugin.o): Depend on (PLUGIN_VERSION_H).
4511         (plugin-version.o): Remove.
4512         * configure: Regenerate
4513         * configure.ac: Create plugin-version.h.
4514         * gcc-plugin.h (plugin_gcc_version): Remove.
4515         (plugin_default_version_check): Change signature.
4516         * plugin-version.c: Remove.
4517         * plugin.c: Include plugin-version.h.
4518         (str_plugin_gcc_version_name): Remove.
4519         (try_init_one_plugin): Pass gcc version to plugin_init.
4520         (plugin_default_version_check): Both gcc and plugin versions are now
4521         arguments.
4522
4523 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4524         
4525         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
4526         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
4527         Remove special case testing for last insn of inner loops. Don't fail
4528         if the loop ends with a jump, emit an extra nop instead.
4529
4530         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
4531         DREGS rather than comparing directly.  Remove code that tries to
4532         account for latencies.
4533
4534 2009-04-29  Richard Guenther  <rguenther@suse.de>
4535
4536         PR tree-optimization/39941
4537         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
4538         eliminating an indirect call.
4539
4540 2009-04-29  Richard Guenther  <rguenther@suse.de>
4541
4542         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
4543         parameter.  Allow invariants as base if !require_lvalue.
4544         (verify_gimple_assign_single): Adjust.
4545
4546 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
4547
4548         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
4549         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
4550         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
4551         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
4552         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
4553         a VEC_SELECT.
4554         * config/bfin/bfin.c (bfin_expand_builtin,
4555         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
4556
4557 2009-04-28  Richard Guenther  <rguenther@suse.de>
4558
4559         * tree-vect-loop.c (get_initial_def_for_induction): Use
4560         correct types for pointer increment.
4561
4562 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4563
4564         * toplev.c (print_version): Update GMP version string calculation.
4565
4566 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
4567
4568         PR rtl-optimization/39938
4569         * resource.c (init_resource_info): Add call to df_analyze.
4570
4571 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
4572
4573         * config/alpha/alpha.md (usegp): Cast the result of
4574         alpha_find_lo_sum_using_gp to enum attr_usegp.
4575         * config/alpha/alpha.c (override_options): Remove end-of-structure
4576         marker element from cpu_table.  Use array size of cpu_table to handle
4577         -mcpu and -mtune options.
4578         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
4579
4580 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
4581
4582         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
4583         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
4584         tune_32 and tune_64.
4585         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4586         support on PowerPC.
4587         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
4588         * config/rs6000/option-defaults.h: ... here.  New file.
4589         (OPT_64, OPT_32): Define.
4590         (MASK_64BIT): Define to 0 if not already defined.
4591         (OPT_ARCH64, OPT_ARCH32): Define.
4592         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
4593         and tune_64.
4594
4595 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4596
4597         * config/arm/arm.c (arm_override_options): Emit error on using
4598         fpa with AAPCS.
4599
4600 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
4601
4602         PR rtl-optimization/39914
4603         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
4604         registers for allocnos created from user-defined variables only
4605         when not optimizing.
4606
4607 2009-04-28  Richard Guenther  <rguenther@suse.de>
4608
4609         PR middle-end/39937
4610         * fold-const.c (fold_binary): Use distribute_real_division only
4611         on float types.
4612
4613 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
4614
4615         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
4616         add hpux-stdint.h to tm_file.
4617         (hppa[12]*-*-hpux11*): Ditto.
4618         (ia64*-*-hpux*): Ditto.
4619         * config/hpux-stdint.h: New.
4620         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
4621         __STDC_EXT__ for all compiles.
4622         * config/pa/pa-hpux.h: Ditto.
4623         * config/pa/pa-hpux10.h: Ditto.
4624         * config/pa/pa-hpux11.h: Ditto.
4625
4626 2009-04-28  Catherine Moore  <clm@codesourcery.com>
4627
4628         * debug.h (set_name): Add comment.
4629
4630 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
4631
4632         PR target/39929
4633         * config/darwin.c (machopic_gen_offset): Check
4634         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
4635         * config/arm/arm.c (require_pic_register): Likewise.
4636
4637 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
4638
4639         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
4640         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
4641         m32c_promote_prototypes): Delete.
4642
4643 2009-04-28  Michael Matz  <matz@suse.de>
4644
4645         PR middle-end/39922
4646         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
4647         constants.
4648
4649 2009-04-28  Richard Guenther  <rguenther@suse.de>
4650
4651         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
4652
4653 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4654
4655         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
4656         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
4657         * config/arm/arm-tune.md: Regenerate.
4658
4659 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
4660
4661         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
4662         block if there are complex incoming edges.
4663         (sel_merge_blocks): Remove useless assert.
4664         (sel_redirect_edge_and_branch): Check that edge was redirected.
4665         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
4666         (sel_find_rgns): Delete declaration.
4667         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
4668         the region when it is not a preheader.
4669
4670 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
4671
4672         PR c/39323
4673         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
4674
4675 2009-04-28  Richard Guenther  <rguenther@suse.de>
4676
4677         * tree.h (SSA_NAME_VALUE): Remove.
4678         (struct tree_ssa_name): Remove value_handle member.
4679         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
4680         array for jump threading.
4681         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
4682         SSA_NAME_VALUEs.
4683         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
4684         * tree-flow.h (threadedge_initialize_values): Declare.
4685         (threadedge_finalize_values): Likewise.
4686         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
4687         (SSA_NAME_VALUE): Define.
4688         (threadedge_initialize_values): New function.
4689         (threadedge_finalize_values): Likewise.
4690         * tree-ssa-dom.c (ssa_name_values): New global variable.
4691         (SSA_NAME_VALUE): Define.
4692         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
4693
4694 2009-04-28  Ira Rosen  <irar@il.ibm.com>
4695
4696         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4697         Use REPORT_VECTORIZED_LOCATIONS instead 
4698         REPORT_VECTORIZED_LOOPS.
4699         * tree-vectorizer.c (vect_verbosity_level): Make static.
4700         (vect_loop_location): Rename to vect_location.
4701         (vect_set_verbosity_level): Update comment.
4702         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
4703         and vect_location.
4704         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
4705         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
4706         instead REPORT_UNVECTORIZED_LOOPS.
4707         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
4708         and vect_loop_def to vect_external_def and vect_internal_def.
4709         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
4710         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
4711         REPORT_UNVECTORIZED_LOCATIONS.
4712         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
4713         and vect_used_in_loop and to vect_unused_in_scope and 
4714         vect_used_in_scope.
4715         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
4716         (vect_verbosity_level): Remove declaration.
4717         (vect_analyze_operations): Likewise.
4718         (vect_analyze_stmt): Declare.
4719         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
4720         REPORT_UNVECTORIZED_LOCATIONS.
4721         (vect_get_loop_niters): Fix indentation.
4722         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
4723         (vect_analyze_loop_operations): New function.
4724         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
4725         vect_analyze_operations.
4726         (vect_is_simple_reduction): Use new names.
4727         (vectorizable_live_operation, vect_transform_loop): Likewise.
4728         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
4729         to specify whether the data references can be a part of interleaving
4730         chain.
4731         (vect_analyze_data_ref_dependence): Use new names.
4732         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
4733         (vect_create_addr_base_for_vector_ref): Remove redundant code.
4734         * tree-vect-patterns.c (widened_name_p): Use new names.
4735         (vect_recog_dot_prod_pattern): Likewise.
4736         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
4737         (process_use, vect_mark_stmts_to_be_vectorized, 
4738         vect_model_simple_cost, vect_model_store_cost,
4739         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
4740         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
4741         vectorizable_operation, vectorizable_type_demotion,
4742         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
4743         vectorizable_condition): Likewise.
4744         (vect_analyze_operations): Split into vect_analyze_loop_operations
4745         and ...
4746         (vect_analyze_stmt): ... new function.
4747         (new_stmt_vec_info): Use new names.
4748         (vect_is_simple_use): Use new names and fix comment.
4749         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
4750         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
4751
4752 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
4753
4754         PR target/39911
4755         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
4756         and integer modes for x87 operands.  Do not ICE for unsupported size,
4757         generate error instead.  Generate error for unsupported operand types.
4758         ['z']: Do not handle HImode memory operands specially.  Warning
4759         for floating-point operands.  Fallthru to 'Z' for unsupported operand
4760         types.  Do not ICE for unsupported size, generate error instead.
4761         (output_387_binary_op): Use %Z to output operands.
4762         (output_fp_compare): Ditto.
4763         (output_387_reg_move): Ditto.
4764
4765 2009-04-28  Ben Elliston  <bje@au.ibm.com>
4766
4767         PR c++/35652
4768         Revert:
4769
4770         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4771
4772         * builtins.c (c_strlen): Do not warn here.
4773         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
4774         * c-common.c (pointer_int_sum): Take an explicit location.
4775         Warn about offsets out of bounds.
4776         * c-common.h (pointer_int_sum): Adjust declaration.
4777
4778 2009-04-27  Ian Lance Taylor  <iant@google.com>
4779
4780         * collect2.c (is_ctor_dtor): Change type of ret field in struct
4781         names to symkind.
4782         * dce.c (run_fast_df_dce): Change type of old_flags to int.
4783         * df-core.c (df_set_flags): Change return type to int.  Change
4784         type of old_flags to int.
4785         (df_clear_flags): Likewise.
4786         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
4787         (df_get_conditional_uses): Likewise.
4788         * df.h (df_set_flags, df_clear_flags): Update declarations.
4789         * dwarf2out.c (struct indirect_string_node): Change type of form
4790         field to enum dwarf_form.
4791         (AT_string_form): Change return type to enum dwarf_form.
4792         * fixed-value.c (fixed_compare): Add cast to enum type.
4793         * fwprop.c (update_df): Change 0 to VOIDmode.
4794         * gensupport.c: Change 0 to UNKNOWN.
4795         * gimple.h (gimple_cond_code): Add cast to enum type.
4796         * haifa-sched.c (reemit_notes): Add cast to enum type.
4797         * hooks.c (hook_int_void_no_regs): Remove function.
4798         * hooks.h (hook_int_void_no_regs): Remove declaration.
4799         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
4800         * predict.c (combine_predictions_for_insn): Add casts to enum type.
4801         * real.c (real_arithmetic): Add cast to enum type.
4802         (real_compare): Likewise.
4803         * target.h (struct gcc_target): Change return type of
4804         branch_target_register_class to enum reg_class.
4805         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
4806         default_branch_target_register_class.
4807         * targhooks.c (default_branch_target_register_class): New function.
4808         * targhooks.h (default_branch_target_register_class): Declare.
4809         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
4810         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
4811         cast to int.
4812         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
4813         ERROR_MARK.
4814         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
4815         vect_uninitialized_def.  Change 0 to ERROR_MARK.
4816         * tree-vect-stmts.c (supportable_widening_operation): Don't
4817         initialize icode1 and icode2.
4818         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
4819         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
4820         and to STD_C89.
4821         (cmn_err_flag_specs): Change 0 to STD_C89.
4822         (cmn_err_char_table): Likewise.
4823         * config/arm/arm.c (get_arm_condition_code): Change type of code
4824         to enum arm_cond_code.
4825         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
4826         (IWMMXT_BUILTIN2): Likewise.
4827         (neon_builtin_type_bits): Don't define typedef.
4828         (neon_builtin_datum): Change type of bits field to int.
4829         (arm_expand_neon_args): Add cast to enum type.
4830         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
4831         TLS_MODEL_NONE.
4832         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
4833         casts to enum type.
4834         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
4835         MIPS_FP_COND_f.
4836         * config/mips/mips.md (jal_macro): Return enum constant.
4837         (single_insn): Likewise.
4838         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
4839         CODE_FOR_nothing.
4840         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4841         casts to enum type.
4842         * config/s390/s390.c (s390_tune_flags): Change type to int.
4843         (s390_arch_flags): Likewise.
4844         (s390_handle_arch_option): Change flags field of struct pta to int.
4845         * config/s390/s390.h (s390_tune_flags): Update declaration.
4846         (s390_arch_flags): Likewise.
4847         * config/sh/sh.c (prepare_move_operands): Compare
4848         tls_symbolic_operand result with enum constant.
4849         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
4850         (sh_expand_prologue): Add cast to enum type.
4851         (sh_expand_epilogue): Likewise.
4852         (tls_symbolic_operand): Change return type to enum tls_model.
4853         (fpscr_set_from_mem): Add cast to enum type.
4854         (legitimize_pic_address): Compare tls_symbolic_operand result with
4855         enum constant.
4856         (sh_target_reg_class): Change return type to enum reg_class.
4857         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
4858         PROCESSOR_xxx.
4859         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
4860         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
4861         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
4862         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
4863         (delayed_branch, tls_call_delay): Likewise.
4864         (eligible_for_sibcall_delay): Likewise.
4865         (eligible_for_return_delay): Likewise. 
4866         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
4867         (spu_expand_builtin_1): Likewise.
4868
4869         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
4870         for all types of conversions.
4871         (output_init_element): Issue -Wc++-compat warning if needed when
4872         initializing a bitfield with enum type.
4873         * c-parser.c (c_parser_expression): Set original_type to
4874         original_type of right hand operand of comman operator.
4875
4876 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4877
4878         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
4879         grammar nits.
4880         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
4881         * doc/cpp.texi (Standard Predefined Macros)
4882         (Implementation-defined behavior): Likewise.
4883         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
4884         * doc/gimple.texi (GIMPLE Exception Handling)
4885         (@code{GIMPLE_ASSIGN}): Likewise.
4886         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
4887         * doc/invoke.texi (Warning Options, Optimize Options)
4888         (AVR Options, Darwin Options): Likewise.
4889         (Optimize Options): Reformulate -fwhole-program description.
4890         * doc/loop.texi (Lambda): Likewise.
4891         * doc/md.texi (Output Template, Define Constraints)
4892         (Standard Names, Insn Splitting): Likewise.
4893         * doc/options.texi (Option properties): Likewise.
4894         * doc/passes.texi (Tree-SSA passes): Likewise.
4895         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
4896         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
4897         (File Names and DBX): Likewise.
4898         * doc/trouble.texi (Incompatibilities): Likewise.
4899
4900 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
4901
4902         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
4903         instruction is correct.
4904
4905 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
4906
4907         Allow non-constant arguments to conversion intrinsics.
4908         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
4909         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
4910         * spu.c (print_operand): Handle 'v' and 'w'.
4911         (exp2_immediate_p, spu_gen_exp2): Define.
4912         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
4913         spu_convtf_1): Update parameter descriptions.
4914         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
4915         * constraints.md ('v', 'w'): New.
4916         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
4917         Remove.
4918         (i2f, I2F): New define_mode_attr.
4919         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
4920         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
4921         fixuns_truncv4sfv4si2):  Update to use mode attribute.
4922         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
4923         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
4924         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
4925         patterns for combine.
4926
4927 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
4928
4929         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
4930         (cprop, hoist, pre, store_motion): New debug counters.
4931         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
4932         is not an RTL pass anymore.
4933         (pass_profiling): Remove extern decl for pass removed in 2005.
4934         (pass_gcse, pass_jump_bypass): Remove.
4935         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
4936         to 0 for clean state.
4937         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
4938         * cse.c (gate_handle_cse_after_global_opts,
4939         rest_of_handle_cse_after_global_opts): New functions.
4940         (pass_cse_after_global_opts): New pass, does local CSE.
4941         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
4942         (TV_CPROP): New timevar.
4943         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
4944         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
4945         (gcse_main, recompute_all_luids): Remove.
4946         (compute_hash_table_work): Call max_reg_num instead of reading
4947         max_gcse_regno.
4948         (cprop_jump): Don't set run_jump_opt_after_gcse.
4949         (constprop_register): Always allow to alter jumps.
4950         (cprop_insn): Likewise.
4951         (do_local_cprop): Likewise.
4952         (local_cprop_pass): Likewise.  Return non-zero if something changed.
4953         (cprop): Remove function, fold interesting bits into one_cprop_pass.
4954         (find_implicit_sets): Add note about missed optimization opportunity.
4955         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
4956         pass_rtl_cprop execute function.
4957         Don't bother tracking the pass number, each pass gets its own dumpfile
4958         now anyway.
4959         Always allow to alter jumpsand bypass jumps.
4960         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
4961         will just find no suitable set.
4962         (pre_edge_insert): Fix dumping, this function is for PRE only.
4963         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
4964         pass_rtl_pre execute function.
4965         (hoist_code): Return non-zero if something changed.  Keep track of
4966         substitutions and insertions for statistics gathering similar to PRE.
4967         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
4968         called from the pass_rtl_hoist execute function.  Show pass statistics.
4969         (compute_store_table): Use max_reg_num directly instead of using the
4970         formerly global max_gcse_regno.
4971         (build_store_vectors): Likewise.
4972         (replace_store_insn): Fix dumping.
4973         (store_motion): Rename to ...
4974         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
4975         pass, called from the pass_rtl_store_motion execute function.  Keep
4976         track of substitutions and insertions for statistics gathering similar
4977         to PRE.
4978         (bypass_jumps): Remove, fold interesting bits into ...
4979         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
4980         from the pass_rtl_cprop execute function.
4981         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
4982         pass_jump_bypass): Remove.
4983         (gate_handle_gcse, rest_of_handle_gcse): Remove.
4984         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
4985         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
4986         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
4987         (gate_rtl_store_motion, execute_rtl_store_motion,
4988         pass_rtl_store_motion): New.
4989         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
4990         make it clear that -fcse-skip-blocks is a no-op for backward compat.
4991         * passes.c (init_optimization_passes): Remove pass_gcse and
4992         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
4993         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
4994         instead of pass_jump_bypass.
4995
4996 2009-04-27  Richard Guenther  <rguenther@suse.de>
4997
4998         PR middle-end/39928
4999         * gimplify.c (gimplify_expr): If we are required to create
5000         a temporary make sure it ends up as register.
5001
5002 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
5003
5004         PR target/39903
5005         * config/i386/i386.c (construct_container): Don't call
5006         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
5007         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
5008
5009 2009-04-27  Michael Matz  <matz@suse.de>
5010
5011         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
5012         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
5013         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
5014         (dump_replaceable_exprs): Take a bitmap.
5015         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
5016         array.
5017         (expand_gimple_basic_block): Likewise.
5018         * tree-ssa-ter.c (struct temp_expr_table_d): Make
5019         replaceable_expressions member a bitmap.
5020         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
5021         (mark_replaceable): Likewise.
5022         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
5023         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
5024
5025 2009-04-27  Richard Guenther  <rguenther@suse.de>
5026
5027         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
5028         (verify_stmts): Dispatch to gimple/type verification code.
5029         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
5030         issue with call argument types.
5031
5032 2009-04-27  Michael Matz  <matz@suse.de>
5033
5034         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
5035         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
5036         to above.
5037
5038 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
5039             Eric Botcazou  <ebotcazou@adacore.com>
5040
5041         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
5042         a label's basic block.
5043         (mark_target_live_regs): Tidy and rework obsolete comments.
5044         Change back DF problem to LIVE.  If a label starts a basic block,
5045         assume that all registers that used to be live then still are.
5046         (init_resource_info): If a label starts a basic block, set its
5047         BLOCK_FOR_INSN accordingly.
5048         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
5049
5050 2009-04-27  Richard Guenther  <rguenther@suse.de>
5051
5052         * tree-flow-inline.h (function_ann): Remove.
5053         (get_function_ann): Likewise.
5054         * tree-dfa.c (create_function_ann): Remove.
5055         * tree-flow.h (struct static_var_ann_d): Remove.
5056         (struct function_ann_d): Likewise.
5057         (union tree_ann_d): Remove fdecl member.
5058         (function_ann_t): Remove.
5059         (function_ann, get_function_ann, create_function_ann): Remove
5060         declarations.
5061
5062 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
5063
5064         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
5065
5066 2009-04-27  Jan Hubicka  <jh@suse.cz>
5067
5068         * ipa-pure-const.c (struct funct_state_d): New fields
5069         state_previously_known, looping_previously_known; remove
5070         state_set_in_source.
5071         (analyze_function): Use new fields.
5072         (propagate): Avoid assumption that state_set_in_source imply
5073         nonlooping.
5074
5075         * tree-ssa-loop-niter.c (finite_loop_p): New function.
5076         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
5077         * cfgloop.h (finite_loop_p): Declare.
5078
5079 2009-04-26  Michael Matz  <matz@suse.de>
5080
5081         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
5082
5083 2009-04-26  Michael Matz  <matz@suse.de>
5084
5085         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
5086         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
5087         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
5088         pass_mark_used_blocks): Remove.
5089         * tree-optimize.c (pass_free_datastructures,
5090         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
5091         * passes.c (init_optimization_passes): Don't call
5092         pass_mark_used_blocks, remove dead code.
5093
5094 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
5095
5096         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
5097         * tree-ssa-live.h (register_ssa_partition): Likewise.
5098
5099 2009-04-26  Michael Matz  <matz@suse.de>
5100
5101         Expand from SSA.
5102         * builtins.c (fold_builtin_next_arg): Handle SSA names.
5103         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
5104         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
5105         SSA names. 
5106         (compare_pairs): Swap cost comparison.
5107         (coalesce_ssa_name): Don't use change_partition_var.
5108         * tree-nrv.c (struct nrv_data): Add modified member.
5109         (finalize_nrv_r): Set it.
5110         (tree_nrv): Use it to update statements.
5111         (pass_nrv): Require PROP_ssa.
5112         * tree-mudflap.c (mf_decl_cache_locals,
5113         mf_build_check_statement_for): Use make_rename_temp.
5114         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
5115         * alias.c (find_base_decl): Handle SSA names.
5116         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
5117         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
5118         * rtl.h (set_reg_attrs_for_parm): Declare.
5119         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
5120         to "optimized", remove unused locals at finish.
5121         (execute_free_datastructures): Make global, call
5122         delete_tree_cfg_annotations.
5123         (execute_free_cfg_annotations): Don't call
5124         delete_tree_cfg_annotations.
5125
5126         * ssaexpand.h: New file.
5127         * expr.c (toplevel): Include ssaexpand.h.
5128         (expand_assignment): Handle SSA names the same as register variables.
5129         (expand_expr_real_1): Expand SSA names.
5130         * cfgexpand.c (toplevel): Include ssaexpand.h.
5131         (SA): New global variable.
5132         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
5133         (SSAVAR): New macro.
5134         (set_rtl): New helper function.
5135         (add_stack_var): Deal with SSA names, use set_rtl.
5136         (expand_one_stack_var_at): Likewise.
5137         (expand_one_stack_var): Deal with SSA names.
5138         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
5139         before unique numbers.
5140         (expand_stack_vars): Use set_rtl.
5141         (expand_one_var): Accept SSA names, add asserts for them, feed them
5142         to above subroutines.
5143         (expand_used_vars): Expand all partitions (without default defs),
5144         then only the local decls (ignoring those expanded already).
5145         (expand_gimple_cond): Remove edges when jumpif() expands an
5146         unconditional jump.
5147         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
5148         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
5149         SSA name.
5150         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
5151         members of SA; deal with PARM_DECL partitions here; expand
5152         all PHI nodes, free tree datastructures and SA.  Commit instructions
5153         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
5154         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
5155         info and statements at start, collect garbage at finish.
5156         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
5157         (VAR_ANN_PARTITION) Remove.
5158         (change_partition_var): Don't declare.
5159         (partition_to_var): Always return SSA names.
5160         (var_to_partition): Only accept SSA names.
5161         (register_ssa_partition): Only check argument.
5162         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
5163         member.
5164         (delete_var_map): Don't free it.
5165         (var_union): Only accept SSA names, simplify.
5166         (partition_view_init): Mark only useful SSA names as used.
5167         (partition_view_fini): Only deal with SSA names.
5168         (change_partition_var): Remove.
5169         (dump_var_map): Use ssa_name instead of partition_to_var member.
5170         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
5171         basic blocks.
5172         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5173         (struct _elim_graph): New member const_dests; nodes member vector of
5174         ints.
5175         (set_location_for_edge): New static helper.
5176         (create_temp): Remove.
5177         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
5178         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
5179         (new_elim_graph): Allocate const_dests member.
5180         (clean_elim_graph): Truncate const_dests member.
5181         (delete_elim_graph): Free const_dests member.
5182         (elim_graph_size): Adapt to new type of nodes member.
5183         (elim_graph_add_node): Likewise.
5184         (eliminate_name): Likewise.
5185         (eliminate_build): Don't take basic block argument, deal only with
5186         partition numbers, not variables.
5187         (get_temp_reg): New static helper.
5188         (elim_create): Use it, deal with RTL temporaries instead of trees.
5189         (eliminate_phi): Adjust all calls to new signature.
5190         (assign_vars, replace_use_variable, replace_def_variable): Remove.
5191         (rewrite_trees): Only do checking.
5192         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5193         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5194         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5195         contains_tree_r, MAX_STMTS_IN_LATCH,
5196         process_single_block_loop_latch, analyze_edges_for_bb,
5197         perform_edge_inserts): Remove.
5198         (expand_phi_nodes): New global function.
5199         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
5200         functions, initialize new parameter, remember partitions having a
5201         default def.
5202         (finish_out_of_ssa): New global function.
5203         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
5204         don't reset in_ssa_p here, don't disable TER when mudflap.
5205         (pass_del_ssa): Remove.
5206         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5207         partition members.
5208         (execute_free_datastructures): Declare.
5209         * Makefile.in (SSAEXPAND_H): New variable.
5210         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5211         * basic-block.h (commit_one_edge_insertion): Declare.
5212         * passes.c (init_optimization_passes): Move pass_nrv and
5213         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
5214         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
5215         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
5216         (redirect_branch_edge): Deal with super block when expanding, split
5217         out jump patching itself into ...
5218         (patch_jump_insn): ... here, new static helper.
5219
5220 2009-04-26  Michael Matz  <matz@suse.de>
5221
5222         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
5223         beyond num_ssa_names.
5224         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5225         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5226
5227 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
5228
5229         PR inline-asm/39543
5230         * fwprop.c (forward_propagate_asm): New function.
5231         (forward_propagate_and_simplify): Propagate also into __asm, if it
5232         doesn't increase the number of referenced registers.
5233
5234         PR c/39889
5235         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
5236
5237 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
5238
5239         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
5240         note_nonlocal_vla_type for nonlocal VLAs.
5241         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
5242         contains_remapped_vars, remap_vla_decls): New functions.
5243         (convert_nonlocal_reference_stmt): If not optimizing, call
5244         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
5245         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
5246         if it wasn't found in var_map.
5247         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
5248         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
5249         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
5250         declare_vars.
5251         * gimplify.c (nonlocal_vlas): New variable.
5252         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
5253         referenced VLAs.
5254         (gimplify_body): Create and destroy nonlocal_vlas.
5255
5256         * dwarf2out.c (loc_descr_plus_const): New function.
5257         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
5258         mem_loc_descriptor, loc_descriptor_from_tree_1,
5259         descr_info_loc, gen_variable_die): Use it.
5260
5261         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
5262         !TREE_STATIC VAR_DECLs.
5263         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
5264         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
5265         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
5266         DECL_BY_REFERENCE is valid.
5267         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
5268         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
5269         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
5270         Copy DECL_BY_REFERENCE.
5271         (struct nesting_copy_body_data): New type.
5272         (nesting_copy_decl): New function.
5273         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
5274         if they have variable length.
5275
5276 2009-04-26  Michael Matz  <matz@suse.de>
5277
5278         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
5279         mark new temporaries for renaming.
5280
5281 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
5282
5283         PR c/39581
5284         * c-decl.c (global_bindings_p): Return negative value.
5285         (c_variable_size): New.  Based on variable_size from
5286         stor-layout.c.
5287         (grokdeclarator): Call c_variable_size not variable_size.
5288
5289 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
5290
5291         * config/i386/i386.c (print_operand) ['z']: Fix typo.
5292
5293 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
5294
5295         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
5296         Redefine it to just use mingw/include.
5297         (ASM_SPEC): Rules for -m32 and -m64.
5298         (LINK_SPEC): Use Likewise.
5299         (SPEC_32): New define.
5300         (SPEC_64): Likewise.
5301         (SUB_LINK_SPEC): Likewise.
5302         (MULTILIB_DEFAULTS): New define.
5303         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
5304         Add multilib options.
5305         (MULTILIB_DIRNAMES): Likewise.
5306         (MULTILIB_OSDIRNAMES): Likewise.
5307         (LIBGCC): Likewise.
5308         (INSTALL_LIBGCC): Likewise.
5309
5310 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
5311
5312         PR c/39556
5313         * c-tree.h (enum c_inline_static_type): New.
5314         (record_inline_static): Declare.
5315         * c-decl.c (struct c_inline_static, c_inline_statics,
5316         record_inline_static, check_inline_statics): New.
5317         (pop_file_scope): Call check_inline_statics.
5318         (start_decl): Call record_inline_static instead of pedwarning
5319         directly for static in inline function.
5320         * c-typeck.c (build_external_ref): Call record_inline_static
5321         instead of pedwarning directly for static referenced in inline
5322         function.
5323
5324 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
5325
5326         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
5327         not new but only being rescanned.
5328         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
5329         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
5330         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
5331         record_set_info, compute_set, grealloc): Remove.
5332         (recompute_all_luids): New function.
5333         (gcse_main): Don't compute sets, and don't do related memory
5334         allocations/free-ing.  If something changed before the end of the
5335         pass, update LUIDs using recompute_all_luids.
5336         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
5337         (free_gcse_mem): Don't free it either.
5338         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
5339         Use the df insn LUIDs.
5340         (load_killed_in_block): Likewise.
5341         (compute_hash_table_work): Don't compute reg_set_in_block.
5342         (compute_transp): Use DF_REG_DEF_CHAINs.
5343         (local_cprop_pass): Don't use compute_sets and related functions.
5344         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
5345         Use get_max_uid() instead of max_cuid.
5346         (insert_insn_end_basic_block, pre_insert_copy_insn,
5347         update_ld_motion_stores): Don't try to
5348         keep reg_set tables up to date.
5349         (pre_insert_copies): Use df insn LUIDs.
5350         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
5351         (reg_set_info): Don't use extra bitmap argument.
5352         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
5353         information to compute regs_set_in_block.
5354         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
5355         (bypass_jumps): Don't use compute_sets and friends.
5356
5357 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5358
5359         PR testsuite/39710
5360         * opts.c (undocumented_msg): Do not leave blank even with
5361         ENABLE_CHECKING.
5362
5363 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
5364
5365         * c-decl.c (build_enumerator): Allow values folding to integer
5366         constants but not integer constant expressions with a pedwarn if
5367         pedantic.
5368
5369 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
5370
5371         PR c/39582
5372         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
5373         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
5374         type is an integer constant.
5375
5376 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
5377
5378         PR target/39897
5379         * config/i386/i386.c (print_operand) ['z']: Revert handling of
5380         HImode operands.
5381
5382 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
5383
5384         PR c/39564
5385         * c-decl.c (grokdeclarator): Diagnose declarations of functions
5386         with variably modified return type and no storage class
5387         specifiers, except for the case of nested functions.  Distinguish
5388         extern declarations of functions with variably modified return
5389         types from those of objects with variably modified types.
5390
5391 2009-04-25  Jan Hubicka  <jh@suse.cz>
5392
5393         * tree.c (list_equal_p): New function.
5394         * tree.h (list_equal_p): Declare.
5395         * coretypes.h (edge_def, edge, const_edge, basic_block_def
5396         basic_block_def, basic_block, const_basic_block): New.
5397         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
5398         (redirect_eh_edge): New function.
5399         (make_eh_edge_update_phi): EH edges are not abnormal.
5400         * except.c: Include tree-flow.h.
5401         (list_match): New function.
5402         (eh_region_replaceable_by_p): New function.
5403         (replace_region): New function.
5404         (hash_type_list): New function.
5405         (hash_eh_region): New function.
5406         (eh_regions_equal_p): New function.
5407         (merge_peers): New function.
5408         (remove_unreachable_regions): Verify EH tree when checking;
5409         merge peers.
5410         (copy_eh_region_1): New function.
5411         (copy_eh_region): New function.
5412         (push_reachable_handler): New function.
5413         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
5414         regions without label but with live RESX.
5415         * except.h (redirect_eh_edge_to_label): New.
5416         * tree-flow.h (redirect_eh_edge): New.
5417         * coretypes.h (edge_def, edge, const_edge, basic_block_def
5418         basic_block_def, basic_block, const_basic_block): Remove.
5419         * Makefile.in (except.o): Add dependency on tree-flow.h
5420         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
5421         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
5422         Remove.
5423
5424 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
5425
5426         PR bootstrap/39645
5427         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
5428         on the destination of memcpy.
5429
5430 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
5431
5432         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5433         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
5434         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
5435
5436 2009-04-25  Jan Hubicka  <jh@suse.cz>
5437
5438         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
5439         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
5440         to be reached by different label than left.
5441         (update_eh_edges): Update comment; remove edge_to_remove if possible
5442         and return true if suceeded.
5443         (cleanup_empty_eh): Accept sharing map; handle shared regions.
5444         (cleanup_eh): Compute sharing map.
5445         * except.c (remove_eh_handler_and_replace): Add argument if we should
5446         update regions.
5447         (remove_unreachable_regions): Update for label sharing.
5448         (label_to_region_map): Likewise.
5449         (get_next_region_sharing_label): New function.
5450         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
5451         prev_try pointers.
5452         (remove_eh_handler): Update.
5453         (remove_eh_region_and_replace_by_outer_of): New function.
5454         * except.h (struct eh_region): Add next_region_sharing_label.
5455         (remove_eh_region_and_replace_by_outer_of,
5456         get_next_region_sharing_label): Declare.
5457         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
5458
5459 2009-04-25  Jan Hubicka  <jh@suse.cz>
5460
5461         * tree-cfg.c (split_critical_edges): Split also edges where we can't
5462         insert code even if they are not critical.
5463
5464 2009-04-25  Jan Hubicka  <jh@suse.cz>
5465
5466         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5467         (gimple_can_remove_branch_p): EH edges won't remove branch by
5468         redirection.
5469         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
5470         updating of non-abnormal EH edges.
5471         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5472         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
5473         (split_critical_edges): Split also edges where emitting code on them
5474         will lead to splitting later.
5475
5476 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
5477             H.J. Lu  <hongjiu.lu@intel.com>
5478
5479         PR target/39590
5480         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
5481         the configured assembler supports fildq and fistpq mnemonics.
5482         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
5483         * configure: Regenerated.
5484         * config.in: Ditto.
5485
5486         * config/i386/i386.c (print_operand): Handle 'Z'.
5487         ['z']: Remove handling of special fild/fist suffixes.
5488         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
5489         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
5490         suffix of fild insn.
5491         (*floatsi<mode>2_vector_mixed): Ditto.
5492         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
5493         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
5494         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5495         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
5496         * config/i386/gas.h (GAS_MNEMONICS): Remove.
5497
5498 2009-04-25  Ben Elliston  <bje@au.ibm.com>
5499  
5500         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
5501         the source of a set operation.
5502
5503 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
5504
5505         * target.h (struct gcc_target): Add case_values_threshold field.
5506         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
5507         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
5508         * targhooks.c (default_case_values_threshold): New function.
5509         * targhooks.h (default_case_values_threshold): Declare function.
5510         * stmt.c (expand_case): Use case_values_threshold target hook.
5511         * expr.h (case_values_threshold): Remove declartation.
5512         * expr.c (case_values_threshold): Remove function.
5513         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
5514
5515         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
5516         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5517         (avr_case_values_threshold): Declare as static.
5518         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
5519
5520         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
5521         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5522         (mn10300_case_values_threshold): New function.
5523
5524 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
5525
5526         * ira.c (setup_cover_and_important_classes): Add enum cast.
5527
5528 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
5529
5530         * genpreds.c (write_enum_constraint_num): Output definition of
5531         CONSTRAINT_NUM_DEFINED_P macro.
5532         * ira.c (setup_cover_and_important_classes): Use
5533         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
5534         
5535 2009-04-24  DJ Delorie  <dj@redhat.com>
5536
5537         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
5538         __SH2A_SINGLE_ONLY__ also.
5539
5540 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
5541
5542         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
5543         (movdf_internal): Ditto.
5544         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
5545         SFmode and DFmode constants.
5546         (ia64_print_operand): Add 'G' format for printing
5547         floating point constants.
5548
5549 2009-04-24  Richard Guenther  <rguenther@suse.de>
5550
5551         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
5552         from unsigned additions.
5553
5554 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
5555
5556         * c-typeck.c (set_init_index): Allow array designators that are
5557         not integer constant expressions with a pedwarn if pedantic.
5558
5559 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
5560
5561         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
5562         zero if no overlap in nonzero bits between the operands.
5563
5564 2009-04-24  Ian Lance Taylor  <iant@google.com>
5565
5566         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
5567         (record_dead_and_set_regs): Likewise.
5568         * df.h (struct df_mw_hardreg): Change flags field to int.
5569         (struct df_base_ref): Likewise.
5570         (struct df): Change changeable_flags field to int.
5571         * df-scan.c (df_defs_record): Change clobber_flags to int.
5572         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
5573         constants rather than #define macros.
5574         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
5575         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
5576         (enum dwarf_calling_convention): Likewise.
5577         (enum dwarf_line_number_x_ops): Likewise.
5578         (enum dwarf_call_frame_info): Likewise.
5579         (enum dwarf_source_language): Likewise.
5580         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
5581         (add_calling_convention_attribute): Likewise.
5582         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
5583         (combine_comparisons): Change compcode to int.  Add cast to enum type.
5584         * genrecog.c (maybe_both_true_2): Change c to int.
5585         (write_switch): Likewise.  Add cast to enum type.
5586         * gimplify.c (gimplify_omp_for): Handle return values from
5587         gimplify_expr using MIN rather than bitwise or.
5588         (gimplify_expr): Add cast to enum type.
5589         * ipa-prop.c (update_jump_functions_after_inlining): Change
5590         IPA_BOTTOM to IPA_JF_UNKNOWN.
5591         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
5592         Add casts to enum type.
5593         (setup_cover_and_important_classes): Change cl to int.  Add casts
5594         to enum type.
5595         (setup_class_translate): Change cl and mode to int.
5596         (ira_init_once): Change mode to int.
5597         (free_register_move_costs): Likewise.
5598         (setup_prohibited_mode_move_regs): Add casts to enum type.
5599         * langhooks.c (add_builtin_function_common): Rework assertion that
5600         value fits bitfield.
5601         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
5602         * omega.c (omega_do_elimination): Avoid math on enum types.
5603         * optabs.c (expand_vec_shift_expr): Remove casts to int.
5604         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
5605         int local to handle integral_argment value.
5606         * regmove.c (try_auto_increment): Change PUT_MODE to
5607         PUT_REG_NOTE_KIND.
5608         * reload.c (push_secondary_reload): Add casts to enum type.
5609         (secondary_reload_class, find_valid_class): Likewise.
5610         * reload1.c (emit_input_reload_insns): Likewise.
5611         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
5612         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
5613         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
5614         constant.
5615         * tree.c (build_common_builtin_nodes): Add casts to enum type.
5616         * tree-complex.c (complex_lattice_t): Typedef to int rather than
5617         enum type.
5618         (expand_complex_libcall): Add casts to enum type.
5619         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
5620         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
5621         with ERROR_MARK, not NUM_TREE_CODES.
5622         (vect_create_epilog_for_reduction): Likewise.
5623         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
5624         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
5625         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
5626         enum machine_mode.
5627         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
5628         vect_unused_in_loop.  Change 0 to loop_vect.
5629         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
5630         * var-tracking.c (get_init_value): Change return type to enum
5631         var_init_status.
5632         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
5633         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
5634         arm_fp_model.
5635         (arm_override_options): Add casts to enum type.
5636         (arm_emit_tls_decoration): Likewise.
5637         * config/i386/i386.c (ix86_function_specific_restore): Add casts
5638         to enum type.
5639         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
5640         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
5641         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
5642         enum type.
5643         * config/s390/s390.c (code_for_builtin_64): Change to array of
5644         enum insn_code.
5645         (code_for_builtin_31): Likewise.
5646         (s390_expand_builtin): Change code_for_builtin to enum insn_code
5647         const *.
5648         * config/sparc/sparc.c (sparc_override_options): Change value
5649         field in struct code_model to enum cmodel.  In initializer change
5650         0 to NULL and add cast to enum type.
5651
5652         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
5653         Change all callers.  Issue a -Wc++-compat warning using
5654         lhs_origtype if necessary.
5655         (convert_for_assignment): Issue -Wc++-compat warnings about
5656         invalid conversions to enum type on assignment.
5657         * c-common.h (build_modify_expr): Update declaration.
5658
5659 2009-04-24  Nick Clifton  <nickc@redhat.com>
5660
5661         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
5662         (function_arg_advance): Likewise.
5663         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
5664         5th alternative.
5665
5666 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
5667
5668         * config/s390/constraints.md ('I', 'J'): Fix condition.
5669
5670 2009-04-24  Diego Novillo  <dnovillo@google.com>
5671
5672         * gengtype-parse.c (parse_error): Add newline after message.
5673
5674 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
5675
5676         * config/i386/sse.md (avxmodesuffixs): Removed.
5677         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
5678         (*avx_pinsr<ssevecsize>): This.
5679
5680 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
5681
5682         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
5683         follow chains of regs with a single definition, and allow expressions
5684         that are function_invariant_p.
5685         (simple_rhs_p): Allow expressions that are function_invariant_p.
5686
5687 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
5688
5689         PR middle-end/39867
5690         * fold-const.c (fold_cond_expr_with_comparison): When folding
5691         > and >= to MAX, make sure the MAX uses the same type as the
5692         comparison's operands.
5693
5694 2009-04-24  Nick Clifton  <nickc@redhat.com>
5695
5696         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
5697         addressing for DImode accesses.
5698         (frv_print_operand_address): Handle PLUS case.
5699         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
5700
5701 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
5702
5703         PR rtl-optimization/39794
5704         * alias.c (canon_true_dependence): Add x_addr argument.
5705         * rtl.h (canon_true_dependence): Adjust prototype.
5706         * cse.c (check_dependence): Adjust canon_true_dependence callers.
5707         * cselib.c (cselib_invalidate_mem): Likewise.
5708         * gcse.c (compute_transp): Likewise.
5709         * dse.c (scan_reads_nospill): Likewise.
5710         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
5711         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
5712         canon_base_addr of the group, plus optional offset.
5713         (struct group_info): Rename canon_base_mem to
5714         canon_base_addr.
5715         (get_group_info): Set canon_base_addr to canon_rtx of base, not
5716         canon_rtx of base_mem.
5717
5718 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
5719
5720         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
5721         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
5722
5723 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5724
5725         * config/spu/spu-builtins.h: Delete file.
5726
5727         * config/spu/spu.h (enum spu_builtin_type): Move here from
5728         spu-builtins.h.
5729         (struct spu_builtin_description): Likewise.  Add GTY marker.
5730         Do not use enum spu_function_code or enum insn_code.
5731         (spu_builtins): Add extern declaration.
5732
5733         * config/spu/spu.c: Do not include "spu-builtins.h".
5734         (enum spu_function_code, enum spu_builtin_type_index,
5735         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
5736         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
5737         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
5738         unsigned_V2DI_type_node): Move here from spu-builtins.h.
5739         (spu_builtin_types): Make static.  Add GTY marker.
5740         (spu_builtins): Add extern declaration with GTY marker.
5741         Include "gt-spu.h".
5742
5743         * config/spu/spu-c.c: Do not include "spu-builtins.h".
5744         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
5745         Check programmatically whether all parameters are scalar.
5746
5747         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
5748
5749 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
5750
5751         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
5752         assignment from the constructor either if the target is volatile.
5753
5754 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
5755
5756         * config/arm/arm.md (insv): Do not share operands[0].
5757
5758 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
5759
5760         * config/vxlib-tls.c (active_tls_threads): Delete.
5761         (delete_hook_installed): New.
5762         (tls_delete_hook): Don't delete the delete hook.
5763         (tls_destructor): Delete it here.
5764         (__gthread_set_specific): Adjust installing the delete hook.
5765         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
5766         __gthread_leave_tsd_dtor_context.
5767
5768 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
5769
5770         * c-format.c (gcc_tdiag_char_table): Add support for %E.
5771
5772 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
5773
5774         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
5775         enum type.
5776         (alpha_rtx_costs): Ditto.
5777         (emit_unlikely_jump): Use add_reg_note.
5778         (emit_frame_store_1): Ditto.
5779         (alpha_expand_prologue): Ditto.
5780         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5781         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
5782
5783 2009-04-23  Nick Clifton  <nickc@redhat.com>
5784
5785         * config/v850/v850.md (epilogue): Remove suppressed code.
5786         (return): Rename to return_simple and remove test of frame size.
5787         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
5788         to gen_return_simple.
5789
5790 2009-04-22  Jing Yu  <jingyu@google.com>
5791
5792         PR testsuite/39781
5793         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5794
5795 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5796
5797         PR C/31499
5798         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
5799         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
5800         value is a VECTOR_CST, the element type is the element type of the
5801         vector.
5802
5803 2009-04-22  DJ Delorie  <dj@redhat.com>
5804
5805         * config/m32c/m32c.h: Update GTY annotations to new syntax.
5806
5807 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
5808
5809         * alias.c (find_base_term): Move around LO_SUM case, so that
5810         CONST falls through into PLUS/MINUS handling.
5811
5812         PR c/39855
5813         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
5814         into 0, use omit_one_operand.
5815
5816 2009-04-23  Ben Elliston  <bje@au.ibm.com>
5817
5818         * config/rs6000/linux-unwind.h (get_regs): Remove type
5819         puns. Change the type of `pc' to an array of unsigned ints and
5820         update all users.  Constify frame24.
5821
5822 2009-04-22  DJ Delorie  <dj@redhat.com>
5823
5824         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
5825         declarations before code.
5826         (current_function_special_page_vector): Likewise.
5827         (m32c_expand_insv): Silence a warning.
5828
5829 2009-04-21  Taras Glek  <tglek@mozilla.com>
5830
5831         * alias.c: Update GTY annotations to new syntax.
5832         * basic-block.h: Likewise.
5833         * bitmap.h: Likewise.
5834         * c-common.h: Likewise.
5835         * c-decl.c: Likewise.
5836         * c-parser.c: Likewise.
5837         * c-pragma.c: Likewise.
5838         * c-tree.h: Likewise.
5839         * cfgloop.h: Likewise.
5840         * cgraph.h: Likewise.
5841         * config/alpha/alpha.c: Likewise.
5842         * config/arm/arm.h: Likewise.
5843         * config/avr/avr.h: Likewise.
5844         * config/bfin/bfin.c: Likewise.
5845         * config/cris/cris.c: Likewise.
5846         * config/darwin.c: Likewise.
5847         * config/frv/frv.c: Likewise.
5848         * config/i386/i386.c: Likewise.
5849         * config/i386/i386.h: Likewise.
5850         * config/i386/winnt.c: Likewise.
5851         * config/ia64/ia64.h: Likewise.
5852         * config/iq2000/iq2000.c: Likewise.
5853         * config/mips/mips.c: Likewise.
5854         * config/mmix/mmix.h: Likewise.
5855         * config/pa/pa.c: Likewise.
5856         * config/pa/pa.h: Likewise.
5857         * config/rs6000/rs6000.c: Likewise.
5858         * config/s390/s390.c: Likewise.
5859         * config/sparc/sparc.c: Likewise.
5860         * config/xtensa/xtensa.c: Likewise.
5861         * cselib.h: Likewise.
5862         * dbxout.c: Likewise.
5863         * dwarf2out.c: Likewise.
5864         * except.c: Likewise.
5865         * except.h: Likewise.
5866         * fixed-value.h: Likewise.
5867         * function.c: Likewise.
5868         * function.h: Likewise.
5869         * gimple.h: Likewise.
5870         * integrate.c: Likewise.
5871         * optabs.c: Likewise.
5872         * output.h: Likewise.
5873         * real.h: Likewise.
5874         * rtl.h: Likewise.
5875         * stringpool.c: Likewise.
5876         * tree-data-ref.c: Likewise.
5877         * tree-flow.h: Likewise.
5878         * tree-scalar-evolution.c: Likewise.
5879         * tree-ssa-address.c: Likewise.
5880         * tree-ssa-alias.h: Likewise.
5881         * tree-ssa-operands.h: Likewise.
5882         * tree.c: Likewise.
5883         * tree.h: Likewise.
5884         * varasm.c: Likewise.
5885         * varray.h: Likewise.
5886         * vec.h: Likewise.
5887         * coretypes.h: Do not define GTY macro if it is already defined.
5888         * doc/gty.texi: Update GTY documentation to new syntax.
5889         * gengtype-lex.l: Enforce attribute-like syntax for GTY
5890         annotations on structs.
5891         * gengtype-parse.c: Likewise.
5892
5893 2009-04-22  Mark Heffernan  <meheff@google.com>
5894
5895         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
5896
5897 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
5898
5899         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
5900         where appropriate.
5901
5902 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
5903
5904         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
5905         the same as a PLUS without a shift.  Increase the cost of a
5906         CONST_INT in MULT.
5907
5908 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5909
5910         * Makefile.in: Update dependencies.
5911         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
5912         * errors.h: Remove bogus comment about compatibility.
5913         (warning): Update declaration.
5914         * genautomata.c: Update all calls to warning.
5915         * gimple.c: Do not include errors.h. Include toplev.h.
5916         * tree-ssa-structalias.c: Do not include errors.h.
5917         * omega.c: Likewise.
5918         * tree-ssa-reassoc.c: Likewise.
5919         * config/spu/spu-c.c: Likewise.
5920         * config/spu/t-spu-elf: Update dependencies.
5921
5922 2009-04-22  Richard Guenther  <rguenther@suse.de>
5923
5924         PR tree-optimization/39824
5925         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
5926         make sure the types are compatible.
5927
5928 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5929
5930         PR c++/14875
5931         * c-common.c (c_parse_error): Take a token_flags parameter.
5932         Use token_type for the token type instead.
5933         Pass token_flags to cpp_type2name.
5934         * c-common.h (c_parse_error): Update declaration.
5935         * c-parser.c (c_parser_error): Pass 0 as token flags.
5936
5937 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
5938
5939         PR rtl-optimization/39580
5940         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
5941         
5942 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5943
5944         * function.c (expand_function_end): Do not emit a jump to the "naked"
5945         return label for fall-through returns.
5946         * except.c (sjlj_emit_function_exit): Always place the call to the
5947         unregister function at the location installed by expand_function_end.
5948
5949 2009-04-22  Richard Guenther  <rguenther@suse.de>
5950
5951         PR tree-optimization/39845
5952         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
5953         (gen_inbound_check): Likewise.
5954
5955 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
5956
5957         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
5958         padding for PPC.
5959         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
5960         * config/vxlib.c (__gthread_once): Add race guard for PPC.
5961
5962 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
5963
5964         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
5965         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
5966         shift counts to avoid out-of-bounds array accesses.
5967
5968 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
5969
5970         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
5971         (Pmode): Move above.
5972
5973 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
5974
5975         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
5976         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
5977         GET_CODE macro.  Use IN_RANGE macro where appropriate.
5978         * config/alpha/alpha.h: Ditto.
5979         * config/alpha/alpha.md: Ditto.
5980         * config/alpha/constraints.md: Ditto.
5981         * config/alpha/predicates.md: Ditto.
5982         
5983 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
5984
5985         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
5986         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5987         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5988         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5989         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5990         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5991         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5992         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5993         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5994         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5995         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5996         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5997         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5998         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5999         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6000         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6001         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6002         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6003         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6004         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6005         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6006         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6007         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6008         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6009         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6010         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6011         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
6012
6013 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6014
6015         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
6016         references from comments.
6017         * cfgbuild.c: (count_basic_blocks): Delete.
6018         (find_basic_blocks_1): Delete.
6019         (find_basic_blocks): Delete.
6020         * except.c (finish_eh_generation): Make static.  Move comment from
6021         except.h here.  Remove find_basic_blocks references from comments.
6022         * except.h (finish_eh_generation): Delete.
6023         * basic-block.h (find_basic_blocks): Delete.
6024         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
6025
6026 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
6027
6028         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
6029         (sdbout_parms):  Likewise.
6030
6031 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
6032
6033         * config/sh/sh.c (prepare_cbranch_operands): Use
6034         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
6035         (expand_cbranchdi4): Likewise.
6036         (from_compare): Add cast to enum type.
6037         (expand_cbranchsi4): Use add_reg_note.
6038         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
6039         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
6040         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
6041         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6042         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
6043         instead of CODE_FOR_nothing.
6044         (cbranchdi4): Likewise.  Fix the order of arguments for
6045         gen_rtx_fmt_ee.
6046         (push_fpscr): Use add_reg_note.
6047         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
6048         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
6049         
6050 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
6051
6052         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
6053         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6054         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6055         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
6056         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
6057         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
6058         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
6059         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
6060         config/alpha/x-vms, config/arc/t-arc,
6061         config/arm/README-interworking, config/arm/arm-c.c,
6062         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
6063         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
6064         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
6065         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
6066         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
6067         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
6068         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
6069         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
6070         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
6071         config/cris/t-elfmulti, config/crx/t-crx,
6072         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
6073         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
6074         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
6075         config/h8300/t-h8300, config/i386/athlon.md,
6076         config/i386/darwin-libgcc.10.4.ver,
6077         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
6078         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
6079         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
6080         config/i386/t-linux64, config/i386/t-nwld,
6081         config/i386/t-rtems-i386, config/i386/t-sol2-10,
6082         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
6083         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
6084         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
6085         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
6086         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
6087         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
6088         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
6089         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
6090         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
6091         config/m68k/t-uclinux, config/mcore/t-mcore,
6092         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
6093         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
6094         config/mips/crtn.asm, config/mips/irix-crti.asm,
6095         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
6096         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
6097         config/mips/mips-fixed.md, config/mips/sb1.md,
6098         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
6099         config/mips/t-iris6, config/mips/t-isa3264,
6100         config/mips/t-libgcc-mips16, config/mips/t-linux64,
6101         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
6102         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
6103         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
6104         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
6105         config/mn10300/t-linux, config/mn10300/t-mn10300,
6106         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
6107         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
6108         config/picochip/libgccExtras/clzsi2.asm,
6109         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
6110         config/rs6000/darwin-libgcc.10.4.ver,
6111         config/rs6000/darwin-libgcc.10.5.ver,
6112         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
6113         config/rs6000/t-aix43, config/rs6000/t-aix52,
6114         config/rs6000/t-darwin, config/rs6000/t-fprules,
6115         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
6116         config/rs6000/t-lynx, config/rs6000/t-netbsd,
6117         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
6118         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
6119         config/rs6000/t-rtems, config/rs6000/t-spe,
6120         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
6121         config/score/t-score-elf, config/sh/divcost-analysis,
6122         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
6123         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
6124         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
6125         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
6126         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
6127         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
6128         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
6129         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
6130         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
6131         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
6132         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
6133         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
6134         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
6135         limitx.h, version.c, xcoff.h: Add copyright and license notices.
6136         * config/h8300/genmova.sh: Include copyright and license notices
6137         in generated output.
6138         * config/h8300/mova.md: Regenerate.
6139         * doc/install.texi2html: Include word "Copyright" in copyright
6140         notice and use name "Free Software Foundation, Inc.".
6141         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6142         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6143         ChangeLog-2007, ChangeLog-2008: Correct dates.
6144
6145 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
6146
6147         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
6148         NE_EXPR operations as well.
6149         * c-parser.c (c_parser_condition): Do not set location information on
6150         the condition.
6151         (c_parser_conditional_expression): Likewise.
6152         (c_parser_binary_expression): Set location information on operators.
6153         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
6154         TRUTH_NOT_EXPR has been folded.
6155         * fold-const.c (fold_truth_not_expr): Copy location information from
6156         the incoming expression to the outgoing one.
6157         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
6158         recursive calls on the LHS of the operator but pass that of the
6159         operator to recursive calls on the RHS of the operator.  Set it
6160         on the COND_EXPR.
6161         (shortcut_cond_expr): Set the locus of the operator on the second
6162         COND_EXPR and that of the expression on the first in degenerate cases.
6163         Pass the locus of the expression to calls to shortcut_cond_r.
6164         Set the locus of the 'then' block on the associated jump, if any.
6165         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
6166         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
6167         expression to call to gimplify_boolean_expr.
6168
6169 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
6170
6171         * config.gcc: Add additional configuration for
6172         i686-w64-mingw* and x86_64-w64-mingw* triplet.
6173         * config/i386/mingw-w64.h: New mingw-w64 specific header.
6174         (CPP_SPEC): Redefine for allowing -municode option.
6175         (STARTFILE_SPEC): Likewise.
6176         * config/i386/t-mingw-w64: New.
6177         * config/i386/mingw-w64.opt: New.
6178         (municode): Add new target option.
6179         * doc/invoke.texi (municode): Add documentation for new option.
6180
6181 2009-04-21  Ian Lance Taylor  <iant@google.com>
6182
6183         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6184         Correct test for number of arguments.
6185         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6186
6187 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
6188
6189         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6190         argument of emit_library_call.
6191
6192 2009-04-21  Richard Guenther  <rguenther@suse.de>
6193
6194         PR middle-end/39829
6195         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6196         inside VIEW_CONVERT_EXPRs.
6197
6198 2009-04-21  Martin Jambor  <mjambor@suse.cz>
6199
6200         * tree-switch-conversion.c (build_constructors): Split a long line.
6201         (constructor_contains_same_values_p): New function.
6202         (build_one_array): Create assigns of constants if possible, do not
6203         call mark_sym_for_renaming, call update_stmt.
6204         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6205         make_rename_temp.  Do not call mark_symbols_for_renaming, call
6206         update_stmt.
6207         (gen_def_assigns): Do not call mark_symbols_for_renaming or
6208         find_new_referenced_vars, call update_stmt.
6209         (gen_inbound_check): Use create_tmp_var and create ssa names manually
6210         instead of calling make_rename_temp.  Do not call
6211         find_new_referenced_vars or mark_symbols_for_renaming, call
6212         update_stmt.
6213
6214 2009-04-21  Richard Guenther  <rguenther@suse.de>
6215
6216         PR tree-optimization/39827
6217         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
6218         (tree_ssa_phiprop): Pass the correct array size.
6219
6220 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
6221
6222         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
6223
6224 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6225
6226         PR 16202
6227         * c-typeck.c (lvalue_p): Move declaration ...
6228         * c-common.h (lvalue_p): ... to here.
6229         * c-common.c (candidate_equal_p): New.
6230         (add_tlist): Use it.
6231         (merge_tlist): Use it.
6232         (warn_for_collisions_1): Likewise.
6233         (warning_candidate_p): Accept more candidates.
6234         (verify_tree): A warning candidate can be an expression. Use
6235         candidate_equal_p.
6236
6237 2009-04-21  Ben Elliston  <bje@au.ibm.com>
6238
6239         PR target/5267
6240         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6241         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
6242         options.  Remove -mcall-solaris documentation.
6243
6244 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6245
6246         PR c++/13358
6247         * doc/invoke.texi (-Wlong-long): Update description.
6248         * c-lex (interpret_integer): Only warn if there was no previous
6249         overflow and -Wlong-long is enabled.
6250         * c-decl.c (declspecs_add_type): Drop redundant flags.
6251         * c.opt (Wlong-long): Init to -1.
6252         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
6253         and front-end warn_long_long. Wlong-long only depends on other
6254         flags if it is uninitialized.
6255         * c-parser.c (disable_extension_diagnostics): warn_long_long is
6256         the same for CPP and FE.
6257         (restore_extension_diagnostics): Likewise.
6258
6259 2009-04-20  Ian Lance Taylor  <iant@google.com>
6260
6261         Fix enum conversions which are invalid in C++:
6262         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
6263         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
6264         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
6265         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
6266         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
6267         (dbxout_parms): Likewise.
6268         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
6269         (df_clear_flags): Likewise.
6270         * df-problems.c (df_rd_bb_local_compute_process_def): Change
6271         top_flag parameter to int.
6272         (df_chain_create_bb_process_use): Likewise.
6273         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
6274         Remove cast.
6275         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
6276         (df_ref_create_structure, df_def_record_1): Likewise.
6277         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
6278         (df_notes_rescan): Change 0 to VOIDmode in function call.
6279         (df_get_call_refs, df_insn_refs_collect): Likewise.
6280         (df_bb_regs_collect): Likewise.
6281         (df_entry_block_defs_collect): Likewise.
6282         (df_exit_block_uses_collect): Likewise.
6283         * df.h: Update declarations.
6284         * double-int.c (double_int_divmod): Add cast to enum type.
6285         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
6286         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
6287         (based_loc_descr): Likewise.
6288         (loc_descriptor_from_tree_1): Change first_op and second_op to
6289         enum dwarf_location_atom.  Add cast to enum type.
6290         * expmed.c (init_expmed): Change 0 to SET in function call.
6291         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
6292         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
6293         (do_store_flag): Likewise.
6294         * fixed-value.h (struct fixed_value): Change mode to enum
6295         machine_mode.
6296         * function.c (assign_parms): Change 0 to VOIDmode in function call.
6297         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
6298         function call.
6299         (insert_insn_decl, insert_decl, insert_state): Likewise.
6300         (automata_list_finish): Likewise.
6301         * genrecog.c (process_define_predicate): Add cast to enum type.
6302         * gensupport.c (init_predicate_table): Add cast to enum type.
6303         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
6304         function call.
6305         (gimple_build_call_1, gimple_build_label): Likewise.
6306         (gimple_build_goto, gimple_build_asm_1): Likewise.
6307         (gimple_build_switch_1, gimple_build_cdt): Likewise.
6308         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
6309         (enum fallback): Rename from enum fallback_t.
6310         (fallback_t): Typedef as int.
6311         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
6312         GSI_SAME_STMT in function call.
6313         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
6314         enum type.
6315         (setup_reg_class_relations): Likewise.
6316         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
6317         (setup_prohibited_class_mode_regs): Add cast to enum type.
6318         (setup_prohibited_mode_move_regs): Likewise.
6319         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
6320         (record_address_regs): Change i to enum reg_class.
6321         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
6322         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
6323         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
6324         (GET_MODE_2XWIDER_MODE): Likewise.
6325         (GET_CLASS_NARROWEST_MODE): Likewise.
6326         * omp-low.c (expand_omp_for): Add cast to enum type.
6327         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
6328         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
6329         * postreload.c (reload_cse_simplify_operands): Change rclass local
6330         to enum reg_class.
6331         * predict.c (combine_predictions_for_insn): Change best_predictor
6332         and predictor to enum br_predictor.
6333         (combine_predictions_for_bb): Likewise.
6334         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
6335         use SET_PREDICT_EXPR_OUTCOME.
6336         * real.c (real_arithmetic): Change icode to code in function call.
6337         * reginfo.c (init_move_cost): Add casts to enum type.
6338         (init_reg_sets_1, init_fake_stack_mems): Likewise.
6339         * regmove.c (regclass_compatible_p): Change class0 and class1 to
6340         enum reg_class.
6341         * reload.c (find_valid_class): Add casts to enum type.
6342         (push_reload): Change 0 to NO_REGS in function call.
6343         (find_reloads): Change this_alternative to array of enum
6344         reg_class.  Remove some now-unnecessary casts.
6345         (make_memloc): Change 0 to VOIDmode in function call.
6346         * reload1.c (reload): Change 0 to VOIDmode in function call.
6347         (eliminate_regs_1, elimination_effects): Likewise.
6348         (eliminate_regs_in_insn): Likewise.
6349         (emit_input_reload_insns): Add cast to enum type.
6350         (delete_output_reload): Change 0 to VOIDmode in function call.
6351         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
6352         to enum type in function call.
6353         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
6354         (SET_PREDICT_EXPR_OUTCOME): Define.
6355         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
6356         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
6357         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
6358         (dump_function): Likewise.
6359         * tree-dump.h: Update declarations.
6360         * tree-pass.h: Update declarations.
6361         * varasm.c (assemble_integer): Change mclass to enum mode_class.
6362         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
6363         enum type.
6364         (arm_rtx_costs_1): Correct parenthesization.
6365         (arm_rtx_costs): Add casts to enum type.
6366         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
6367         (vfp_emit_fstmd): Use add_rg_note.
6368         (emit_multi_reg_push, emit_sfm): Likewise.
6369         (thumb_set_frame_pointer): Likewise.
6370         (arm_expand_prologue): Likewise.
6371         (arm_regno_class): Change return type to enum reg_class.
6372         (thumb1_expand_prologue): Use add_reg_note.
6373         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
6374         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
6375         in function call.
6376         * config/arm/gentune.sh: Add cast to enum type.
6377         * config/arm/arm-tune.md: Rebuild.
6378         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
6379         (ix86_split_fp_branch, predict_jump): Likewise.
6380         (ix86_expand_multi_arg_builtin): Change sub_code from enum
6381         insn_code to enum rtx_code.
6382         (ix86_builtin_vectorized_function): Add cast to enum type.
6383         * config/i386/i386.md (truncdfsf2): Change slot to enum
6384         ix86_stack_slot.
6385         (truncxf<mode>2, isinf<mode>2): Likewise.
6386         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
6387         enum type.
6388         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
6389         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
6390         (insert_bundle_state): Change 1 to INSERT in function call.
6391         (ia64_add_bundle_selector_before): Likewise.
6392         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
6393         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
6394         (restore_stack_nonlocal): Likewise.
6395         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
6396         function call.
6397         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
6398         function call.
6399         (mips_rtx_costs): Likewise.
6400         (mips_override_options): Add casts to enum type.
6401         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
6402         in function call.
6403         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
6404         (store_reg, set_reg_plus_d): Likewise.
6405         (hppa_expand_prologue, hppa_profile_hook): Likewise.
6406         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6407         cast to enum type.
6408         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
6409         function call.
6410         (emit_unlikely_jump): Use add_reg_note.
6411         (rs6000_emit_allocate_stack): Likewise.
6412         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
6413         (output_toc): Change 1 to INSERT in function call.
6414         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
6415         (rs6000_initialize_trampoline): Likewise.
6416         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
6417         function call.
6418         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
6419         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
6420         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
6421         (save_gprs): Use add_reg_note.
6422         (s390_emit_prologue): Likewise.
6423         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
6424         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
6425         (sparc_fold_builtin): Add cast to enum type.
6426         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
6427         enum insn_code.
6428         (spu_expand_prologue): Use add_reg_note.
6429         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
6430
6431 2009-04-20  Ian Lance Taylor  <iant@google.com>
6432
6433         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
6434         (c_parser_postfix_expression_after_primary): Get VEC for list of
6435         arguments.  Get original types of arguments.  Call
6436         build_function_call_vec.
6437         (cached_expr_list_1, cached_expr_list_2): New static variables.
6438         (c_parser_expr_list): Change return type to VEC *.  Add
6439         p_orig_types parameter.  Change all callers.
6440         (c_parser_release_expr): New static function.
6441         (c_parser_vec_to_tree_list): New static function.
6442         * c-typeck.c (build_function_call): Rewrite to build a VEC and
6443         call build_function_call_vec.
6444         (build_function_call_vec): New function, based on old
6445         build_function_call.
6446         (convert_arguments): Remove nargs and argarray parameters.  Change
6447         values to a VEC.  Add origtypes parameter.
6448         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
6449         (convert_for_assignment): Add origtype parameter.  Change all
6450         callers.  If warn_cxx_compat, check for conversion to an enum
6451         type when calling a function.
6452         (store_init_value): Add origtype parameter.  Change all callers.
6453         (digest_init): Likewise.
6454         (struct init_node): Add origtype field.
6455         (add_pending_init): Add origtype parameter.  Change all callers.
6456         (output_init_element): Likewise.
6457         (output_pending_init_elements): Pass origtype from init_node to
6458         output_init_element.
6459         (process_init_element): Pass origtype from c_expr to
6460         output_init_element.
6461         (c_finish_return): Add origtype parameter.  Change all callers.
6462         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
6463         caller.
6464         (sync_resolve_params): Likewise.
6465         (sync_resolve_return): Change params to first_param.  Change caller.
6466         (resolve_overloaded_builtins): Change params to VEC *.  Change
6467         callers.  Save first parameter around call to build_function_call_vec.
6468         * c-decl.c (finish_decl): Add origtype parameter.  Change all
6469         callers.  Call build_function_call_vec rather than
6470         build_function_call for cleanup.
6471         * c-tree.h: Update declarations.
6472         * c-common.h: Update declarations.
6473         * stub-objc.c (objc_rewrite_function_call): Change parameter from
6474         params to first_param.
6475         * target.h (struct gcc_target): Change resolve_overloaded_builtin
6476         params parameter from tree to void *.
6477         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6478         Change arglist parameter to have type void *, and to be a pointer
6479         to a VEC.
6480         * config/rs6000/rs6000-protos.h
6481         (altivec_resolve_overloaded_builtin): Update declaration.
6482         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
6483         fnargs parameter to have type void *, and to be a pointer to a
6484         VEC.  Call build_function_call_vec instead of
6485         build_function_call.
6486         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
6487
6488 2009-04-20  Joey Ye  <joey.ye@intel.com>
6489             Xuepeng Guo  <xuepeng.guo@intel.com>
6490             H.J. Lu  <hongjiu.lu@intel.com>
6491
6492         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
6493
6494         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
6495         (IX86_LEA_PRIORITY): Likewise.
6496         (distance_non_agu_define): New function.
6497         (distance_agu_use): Likewise.
6498         (ix86_lea_for_add_ok): Likewise.
6499         (ix86_dep_by_shift_count): Likewise.
6500
6501         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
6502         should split for LEA.
6503
6504         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
6505         function.
6506         (ix86_dep_by_shift_count): Likewise.
6507
6508 2009-04-20  Richard Guenther  <rguenther@suse.de>
6509
6510         * expr.c (handled_component_p): Move ...
6511         * tree.h (handled_component_p): ... here.
6512         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
6513         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
6514         and REALPART_EXPR to be in one group.
6515
6516 2009-04-20  Richard Guenther  <rguenther@suse.de>
6517
6518         * basic-block.h (get_all_dominated_blocks): Declare.
6519         * dominance.c (get_all_dominated_blocks): New function.
6520         * tree-cfg.c (get_all_dominated_blocks): Remove.
6521         (remove_edge_and_dominated_blocks): Adjust.
6522         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
6523         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
6524         instead of recursing.
6525
6526 2009-04-20  Doug Kwan  <dougkwan@google.com>
6527
6528         * cgraph.h (cgraph_node_ptr): New type for vector functions.
6529         (struct cgraph_node_set_def): New type.
6530         (cgraph_node_set) New type. Also declare vector functions.
6531         (struct cgraph_node_set_element_def): New type.
6532         (cgraph_node_set_element): Ditto.
6533         (cgraph_node_set_iterator): New iterator type.
6534         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
6535         cgraph_node_set_remove, dump_cgraph_node_set,
6536         debug_cgraph_node_set): New prototypes.
6537         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
6538         cgraph_node_set_size): New inlines.
6539         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
6540         including cgraph.h.
6541         (struct ipa_opt_pass): Add struct cgraph_node_set_def
6542         argument to function 'write_summary'.
6543         * ipa.c: Include ggc.h.
6544         (hash_cgraph_node_set_element,
6545         eq_cgraph_node_set_element, cgraph_node_set_new,
6546         cgraph_node_set_add, cgraph_node_set_remove,
6547         cgraph_node_set_find, dump_cgraph_node_set,
6548         debug_cgraph_node_set): New functions.
6549         * Makefile.in (ipa.o): Add dependency on GGC_H.
6550
6551 2009-04-20  Ira Rosen  <irar@il.ibm.com>
6552
6553         PR tree-optimization/39675
6554         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
6555         check of the return code of vect_schedule_slp. Check that
6556         stmt_vec_info still exists for the statement, before checking its
6557         vectorization type.
6558
6559 2009-04-20  Michael Matz  <matz@suse.de>
6560
6561         * Makefile.in (generated_files): Take out $(simple_generated_c).
6562
6563 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
6564
6565         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
6566         (UINTPTR_TYPE):  Likewise.
6567
6568 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
6569
6570         PR c/37481
6571         * c-typeck.c (digest_init): Check for initializing an array with a
6572         string literal.
6573
6574 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
6575
6576         PR c/19771
6577         * c-semantics.c (pop_stmt_list): Propagate
6578         STATEMENT_LIST_HAS_LABEL to parent statement list.
6579
6580 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
6581
6582         * config/mips/mips.h (mips_tune_attr): New macro.
6583         * config/mips/mips.md (cpu): Use it.
6584
6585 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
6586
6587         PR c/38243
6588         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
6589         declaring a tag.
6590
6591 2009-04-19  Diego Novillo  <dnovillo@google.com>
6592
6593         * toplev.c (compile_file): Move call to coverage_finish ...
6594         * cgraphunit.c (ipa_passes): ... here.
6595         Call cgraph_process_new_functions.
6596         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
6597         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
6598
6599 2009-04-19  Jan Hubicka  <jh@suse.cz>
6600
6601         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
6602         cfun.
6603         (dump_cgraph_node): Dump can throw external flag.
6604         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
6605
6606 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6607
6608         PR c/32061
6609         PR c++/36954
6610         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
6611         * common.opt (Wlogical-op): Move from here...
6612         * c.opt (Wlogical-op): ... to here.
6613         * c-typeck.c (parser_build_binary_op): Update call to
6614         warn_logical_operator.
6615         * c-opts.c (c_common_post_options): Enable warn_logical_op with
6616         extra_warnings.
6617         * c-common.c (warn_logical_op): Update.
6618         * c-common.h (warn_logical_op): Update declaration.
6619
6620 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
6621
6622         * tree.c (protected_set_expr_location): Fix formatting.
6623
6624 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
6625
6626         PR c/27676
6627         * c-typeck.c (readonly_warning): new.
6628         (build_unary_op, build_modify_expr): Use readonly_warning for
6629         storing into something readonly but not const-qualified.
6630
6631 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
6632
6633         PR c/22367
6634         * c-typeck.c (build_unary_op): Check for taking address of
6635         expression of type void.
6636
6637 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
6638
6639         PR c/35210
6640         * c-typeck.c (build_function_call): Check for calling a function
6641         with qualified void return types.  Call require_complete_type when
6642         generating a trap.
6643
6644 2009-04-18  Jan Hubicka  <jh@suse.cz>
6645
6646         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
6647         Set nothrow flag.
6648         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
6649         can_throw_external flag.
6650         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
6651         * ipa-pure-const.c (ignore_edge): New function.
6652         (propagate): Compute order for NOTHROW computation; set NOTHROWs
6653         only over can_throw_external edges.
6654         (local_pure_const): Add nothrow flag.
6655         * ipa-utils.c (searchc): Add ignore_edge callback.
6656         (ipa_utils_reduced_inorder): Add ignore_edge callback.
6657         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
6658         (set_nothrow_function_flags): Update cgraph.
6659         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
6660
6661 2009-04-18  Richard Guenther  <rguenther@suse.de>
6662
6663         PR middle-end/39804
6664         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
6665         (fold_stmt): ... this and ...
6666         (fold_stmt_inplace): ... this.
6667         (fold_stmt_1): Fold references in calls and asms.
6668         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
6669
6670 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
6671
6672         * tree-vrp.c (ssa_name_nonzero_p): Remove.
6673         * tree.h: Remove the prototype for ssa_name_nonzero_p.
6674
6675 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
6676
6677         * tree.c (function_args_count): Remove.
6678         * tree.h: Remove the prototype for function_args_count.
6679
6680 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
6681
6682         * tree-iterator.c (expr_only): Remove.
6683         * tree.h: Remove the prototype for expr_only.
6684
6685 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
6686
6687         * reginfo.c (cannot_change_mode_set_regs): Remove.
6688         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
6689
6690 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
6691
6692         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
6693         whether operands 0 and 1 overlaps.
6694
6695 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6696
6697         PR middle-end/36902
6698         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
6699         pointer. Use warning_at instead of warning.
6700         (search_for_addr_array): Likewise.
6701         (check_array_bounds): Likewise.
6702         (check_all_array_refs): Check that the incoming edge is not in the
6703         list of edges to be removed.
6704         (check_all_array_refs): Avoid the temporal pointer.
6705         (vrp_visit_cond_stmt): Fix typo.
6706         (simplify_switch_using_ranges): Handle the case where the switch
6707         index is an integer constant.
6708
6709 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
6710
6711         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
6712
6713 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
6714
6715         * doc/extend.texi, doc/invoke.texi: Fix typos.
6716
6717 2009-04-17  Cary Coutant  <ccoutant@google.com>
6718
6719         * tree-flow-inline.h (get_lineno): Fix inverted test.
6720
6721 2009-04-17  Diego Novillo  <dnovillo@google.com>
6722
6723         * tree-ssa-pre.c (create_expression_by_pieces): Remove
6724         assertion for AVAIL_OUT.
6725
6726 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
6727
6728         PR target/38627
6729         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
6730         * config/sh/linux-atomic.asm: Likewise.
6731
6732 2009-04-17  Diego Novillo  <dnovillo@google.com>
6733
6734         * except.c (debug_eh_tree): New.
6735         (struct eh_region, struct eh_status): Move ...
6736         * except.h: ... here.
6737         (add_type_for_runtime): Declare extern.
6738         (lookup_type_for_runtime): Likewise.
6739         (debug_eh_tree): Declare.
6740         * Makefile.in (GTFILES): List except.h before except.c
6741
6742 2009-04-17  Diego Novillo  <dnovillo@google.com>
6743
6744         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
6745         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
6746         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
6747         (find_vars_r): ... here.
6748         * tree-flow.h (find_referenced_vars_in): Declare.
6749         * tree-ssa-pre.c (create_expression_by_pieces): Assert
6750         that AVAIL_OUT exists for BLOCK.
6751         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
6752         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
6753         (tree-parloops.o): Likewise.
6754
6755 2009-04-17  Simon Baldwin  <simonb@google.com>
6756
6757         * toplev.c (default_tree_printer): Add handling for %E format.
6758
6759 2009-04-17  Diego Novillo  <dnovillo@google.com>
6760
6761         * tree-pretty-print.c (dump_generic_node): Add break after
6762         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
6763         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
6764         FUNCTION_TYPE together.  Call print_struct_decl when printing
6765         structures and TDF_SLIM is not given.
6766         (print_struct_decl): Fix logic for detecting recursion.
6767
6768 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
6769
6770         PR 31567
6771         * gcc.c (create_at_file): New.
6772         (compile_input_file_p): New.
6773         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
6774         * main.c (main): Update call to toplev_main.
6775         * toplev.c (toplev_main): Change signature. Call expandargv.
6776         * toplev.h (toplev_main): Change signature.
6777
6778 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
6779
6780         * dwarf2out.c (field_byte_offset): Use the type size as the field size
6781         if the latter is not constant.
6782
6783 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
6784
6785         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
6786
6787 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
6788
6789         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
6790         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
6791
6792 2009-04-17  Richard Guenther  <rguenther@suse.de>
6793
6794         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6795         Handle component references view-converting an invariant address.
6796
6797 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
6798
6799         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
6800         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
6801         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
6802         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
6803         Use @deftypevr rather than @deftypevar.
6804
6805 2009-04-17  Richard Guenther  <rguenther@suse.de>
6806
6807         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
6808         (get_prop_source_stmt): Likewise.
6809         (can_propagate_from): Likewise.
6810
6811 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
6812
6813         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
6814         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
6815         (--with-multilib-list): Add default value.
6816         * configure: Regenerate.
6817         * Makefile.in (TM_ENDIAN_CONFIG): Define.
6818         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
6819         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
6820         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
6821         Don't add default cpu to multilib list unnecessarily, but do enable
6822         the relevant compiler option..
6823         Add support for --with-multilib-list=<blank> and
6824         --with-multilib-list=!<somelib> to supress unwanted multilibs.
6825         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
6826         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
6827         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
6828         TM_MULTILIB_CONFIG.
6829         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
6830         (MULTILIB_OSDIRNAMES): New variable.
6831         * config/sh/t-1e: Delete file.
6832         * config/sh/t-mlib-sh1: Delete file.
6833         * config/sh/t-mlib-sh2: Delete file.
6834         * config/sh/t-mlib-sh2a: Delete file.
6835         * config/sh/t-mlib-sh2a-nofpu: Delete file.
6836         * config/sh/t-mlib-sh2a-single: Delete file.
6837         * config/sh/t-mlib-sh2a-single-only: Delete file.
6838         * config/sh/t-mlib-sh2e: Delete file.
6839         * config/sh/t-mlib-sh3e: Delete file.
6840         * config/sh/t-mlib-sh4: Delete file.
6841         * config/sh/t-mlib-sh4-nofpu: Delete file.
6842         * config/sh/t-mlib-sh4-single: Delete file.
6843         * config/sh/t-mlib-sh4-single-only: Delete file.
6844         * config/sh/t-mlib-sh4a: Delete file.
6845         * config/sh/t-mlib-sh4a-nofpu: Delete file.
6846         * config/sh/t-mlib-sh4a-single: Delete file.
6847         * config/sh/t-mlib-sh4a-single-only: Delete file.
6848         * config/sh/t-mlib-sh4al: Delete file.
6849         * config/sh/t-mlib-sh5-32media: Delete file.
6850         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
6851         * config/sh/t-mlib-sh5-64media: Delete file.
6852         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
6853         * config/sh/t-mlib-sh5-compact: Delete file.
6854         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
6855         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
6856         * doc/install.texi (Options specification): Add
6857         --with-multilib-list and --with-endian.
6858
6859 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
6860
6861         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
6862         REVISION_c.
6863         (OBJS-common): Add plugin-version.o.
6864         (plugin-version.o): New.
6865         * gcc-plugin.h (plugin_gcc_version): New.
6866         (plugin_default_version_check): New.
6867         (plugin_init_func, plugin_init): Add version argument.
6868         * plugin-version.c: New.
6869         * plugin.c (str_plugin_gcc_version_name): New.
6870         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
6871         pass it to the init function.
6872         (plugin_default_version_check): New.
6873
6874 2009-04-17  Richard Guenther  <rguenther@suse.de>
6875
6876         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
6877         for decl-vs-decl disambiguation.
6878
6879 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
6880
6881         * config/s390/s390.h (s390_tune_attr): New macro definition.
6882         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
6883
6884 2009-04-17  Richard Guenther  <rguenther@suse.de>
6885
6886         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
6887         (fold_stmt_r): Likewise.
6888         (maybe_fold_reference): New function.
6889         (fold_gimple_assign): Handle cases fold_stmt_r did.
6890         (fold_stmt): Do not use fold_stmt_r.
6891         (fold_stmt_inplace): Likewise.
6892
6893 2009-04-17  Richard Guenther  <rguenther@suse.de>
6894
6895         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
6896         (record_equivalences_from_stmt): Remove useless checks and
6897         simplifications.
6898         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
6899         the type is already suitable.
6900
6901 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
6902
6903         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
6904
6905 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
6906
6907         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
6908         (CMPtype): Define as __gcc_CMPtype.
6909
6910 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
6911
6912         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
6913         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
6914
6915 2009-04-17  Richard Guenther  <rguenther@suse.de>
6916
6917         PR tree-optimization/39746
6918         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
6919         special-casing for builtins and static variable use/def.
6920         (call_may_clobber_ref_p_1): Likewise.
6921
6922 2009-04-16  Ian Lance Taylor  <iant@google.com>
6923
6924         * df.h: Include "timevar.h".
6925         (struct df_problem): Change tv_id field to timevar_id_t.
6926         * tree-pass.h: Include "timevar.h".
6927         (struct opt_pass): Change tv_id field to timevar_id_t.
6928         * timevar.h (timevar_id_t): Define TV_NONE.
6929         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
6930         TV_NONE rather than tv_id != 0.
6931         (execute_one_pass): Likewise.
6932         * Makefile.in (DF_H): Add $(TIMEVAR_H).
6933         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
6934         dependencies to $(TREE_PASS_H).
6935         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
6936         to TV_NONE.
6937         (pass_branch_target_load_optimize2): Likewise.
6938         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
6939         (pass_outof_cfg_layout_mode): Likewise.
6940         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
6941         (pass_rebuild_cgraph_edges): Likewise.
6942         (pass_remove_cgraph_callee_edges): Likewise.
6943         * df-core.c (pass_df_initialize_opt): Likewise.
6944         (pass_df_initialize_no_opt): Likewise.
6945         (pass_df_finish): Likewise.
6946         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
6947         * except.c (pass_set_nothrow_function_flags): Likewise.
6948         (pass_convert_to_eh_region_ranges): Likewise.
6949         * final.c (pass_compute_alignments): Likewise.
6950         * function.c (pass_instantiate_virtual_regs): Likewise.
6951         (pass_init_function): Likewise.
6952         (pass_leaf_regs): Likewise.
6953         (pass_match_asm_constraints): Likewise.
6954         * gimple-low.c (pass_lower_cf): Likewise.
6955         (pass_mark_used_blocks): Likewise.
6956         * init-regs.c (pass_initialize_regs): Likewise.
6957         * integrate.c (pass_initial_value_sets): Likewise.
6958         * ira.c (pass_ira): Likewise.
6959         * jump.c (pass_cleanup_barriers): Likewise.
6960         * omp-low.c (pass_expand_omp): Likewise.
6961         (pass_lower_omp): Likewise.
6962         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
6963         * recog.c (pass_split_all_insns): Likewise.
6964         (pass_split_after_reload): Likewise.
6965         (pass_split_before_regstack): Likewise.
6966         (pass_split_before_sched2): Likewise.
6967         (pass_split_for_shorten_branches): Likewise.
6968         * reginfo.c (pass_reginfo_init): Likewise.
6969         (pass_subregs_of_mode_init): Likewise.
6970         (pass_subregs_of_mode_finish): Likewise.
6971         * passes.c (pass_postreload): Likewise.
6972         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
6973         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
6974         (pass_warn_function_return): Likewise.
6975         (pass_warn_function_noreturn): Likewise.
6976         * tree-complex.c (pass_lower_complex): Likewise.
6977         (pass_lower_complex_O0): Likewise.
6978         * tree-if-conv.c (pass_if_conversion): Likewise.
6979         * tree-into-ssa.c (pass_build_ssa): Likewise.
6980         * tree-mudflap.c (pass_mudflap_1): Likewise.
6981         (pass_mudflap_2): Likewise.
6982         * tree-nomudflap.c (pass_mudflap_1): Likewise.
6983         (pass_mudflap_2): Likewise.
6984         * tree-nrv.c (pass_return_slot): Likewise.
6985         * tree-object-size.c (pass_object_sizes): Likewise.
6986         * tree-optimize.c (pass_all_optimizations): Likewise.
6987         (pass_early_local_passes): Likewise.
6988         (pass_all_early_optimizations): Likewise.
6989         (pass_cleanup_cfg): Likewise.
6990         (pass_cleanup_cfg_post_optimizing): Likewise.
6991         (pass_free_datastructures): Likewise.
6992         (pass_free_cfg_annotations): Likewise.
6993         (pass_fixup_cfg): Likewise.
6994         (pass_init_datastructures): Likewise.
6995         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
6996         (pass_late_warn_uninitialized): Likewise.
6997         (pass_update_address_taken): Likewise.
6998         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
6999         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
7000         (pass_cse_sincos): Likewise.
7001         (pass_convert_to_rsqrt): Likewise.
7002         * tree-ssa-structalias.c (pass_build_alias): Likewise.
7003         * tree-stdarg.c (pass_stdarg): Likewise.
7004         * tree-tailcall.c (pass_tail_recursion): Likewise.
7005         (pass_tail_calls): Likewise.
7006         * tree-vect-generic.c (pass_lower_vector): Likewise.
7007         (pass_lower_vector_ssa): Likewise.
7008         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
7009
7010 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
7011
7012         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
7013         XLR entry.
7014         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
7015         Handle -march=xlr.
7016         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
7017         logical and signext.
7018
7019 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
7020
7021         PR target/39767
7022         * config/sh/predicates.md (arith_operand): Check if the operand
7023         of TRUNCATE is a REG.
7024
7025 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7026
7027         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
7028         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
7029
7030 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7031
7032         * tree-iterator.c (tsi_split_statement_list_after,
7033         tsi_split_statement_list_before): Remove.
7034         * tree-iterator.h: Remove the prototypes for
7035         tsi_split_statement_list_after and tsi_split_statement_list_before.
7036
7037 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7038
7039         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
7040         * tree-ssa-propagate.h: Remove the prototype for
7041         stmt_makes_single_load.
7042
7043 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7044
7045         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
7046         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
7047
7048 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7049
7050         * tree-iterator.c (EXPR_LAST_BODY): Remove.
7051
7052 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7053
7054         * except.c (eh_region_outer_p): Remove.
7055         * except.h: Remove the prototype for eh_region_outer_p.
7056
7057 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
7058
7059         * function.c (current_function_assembler_name): Remove.
7060         * function.h: Remove the prototype for
7061         current_function_assembler_name.
7062
7063 2009-04-16  Ian Lance Taylor  <iant@google.com>
7064
7065         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
7066         (add_reg_note): Call alloc_reg_note.
7067         * rtl.h (alloc_reg_note): Declare.
7068         * combine.c (try_combine): Use alloc_reg_note.
7069         (recog_for_combine, move_deaths): Likewise.
7070         (distribute_notes): Use alloc_reg_note and add_reg_note.
7071         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
7072         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
7073         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
7074
7075 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
7076
7077         PR rtl-optimization/39762
7078         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
7079         ira_may_move_out_cost): Add comments about way of their usage.
7080         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
7081
7082         * ira-conflicts.c (process_regs_for_copy): Use function
7083         ira_get_register_move_cost instead of global
7084         ira_register_move_cost.
7085
7086         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
7087         color_pass, move_spill_restore, update_curr_costs): Ditto.
7088
7089         * ira-lives.c (process_single_reg_class_operands): Ditto.
7090
7091         * ira-emit.c (emit_move_list): Ditto.
7092
7093         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
7094         (record_reg_classes): Ditto.  Use functions
7095         ira_get_register_move_cost and ira_get_may_move_cost instead of
7096         global vars ira_register_move_cost, ira_may_move_out_cost and
7097         ira_may_move_in_cost.
7098         (record_address_regs): Don't call ira_init_register_move_cost.
7099         Use function ira_get_may_move_cost instead of global
7100         ira_may_move_in_cost.
7101         (process_bb_node_for_hard_reg_moves): Use function
7102         ira_get_register_move_cost instead of global ira_register_move_cost.
7103         (ira_costs): Don't call ira_init_register_move_cost.
7104
7105 2009-04-16  Richard Guenther  <rguenther@suse.de>
7106
7107         * tree-cfg.c (verify_gimple_assign_binary):
7108         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
7109         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
7110         (create_general_new_stmt): Note that this function is broken.
7111
7112 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
7113
7114         * common.opt (fhelp): Add Var(help_flag).
7115         * gcc-plugin.h (plugin_info): Add help.
7116         * plugin.c (plugin_name_args): Add help.
7117         (register_plugin_info): Set plugin->help.
7118         (print_help_one_plugin): New.
7119         (print_plugins_help): New.
7120         * plugin.h (print_plugins_help): New.
7121         * toplev.c (toplev_main): Call print_plugins_help if needed.
7122
7123 2009-04-16  Richard Guenther  <rguenther@suse.de>
7124
7125         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
7126         (gimple_ior_addresses_taken_1): New function.
7127         (gimple_ior_addresses_taken): Likewise.
7128         * gimple.h (struct gimple_statement_with_ops_base): Remove
7129         addresses_taken member.
7130         (gimple_ior_addresses_taken): Declare.
7131         (gimple_addresses_taken, gimple_addresses_taken_ptr,
7132         gimple_set_addresses_taken): Remove.
7133         * ipa-reference.c (mark_address): New function.
7134         (scan_stmt_for_static_refs): Use it for marking addresses taken.
7135         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
7136         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
7137         (gimple_add_to_addresses_taken): Remove.
7138         (get_tmr_operands): Call mark_address_taken.
7139         (get_asm_expr_operands): Likewise.
7140         (get_expr_operands): Likewise.
7141         (build_ssa_operands): Do not clear the addresses_taken bitmap.
7142         (free_stmt_operands): Do not free it.
7143         * tree-ssa.c (delete_tree_ssa): Likewise.
7144         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
7145
7146 2009-04-16  Richard Guenther  <rguenther@suse.de>
7147
7148         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
7149         (walk_stmt_load_store_ops): Likewise.
7150         * gimple.c (get_base_loadstore): New function.
7151         (walk_stmt_load_store_addr_ops): Likewise.
7152         (walk_stmt_load_store_ops): Likewise.
7153         * ipa-pure-const.c (check_op): Simplify.
7154         (check_load, check_store): New functions.
7155         (check_stmt): Use walk_stmt_load_store_ops.
7156         * ipa-reference.c (mark_load): Adjust signature.
7157         (mark_store): Likewise.
7158         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
7159
7160 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
7161
7162         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
7163         (plugin_info): New.
7164         * opts.c (common_handle_option): Don't call print_version.
7165         * plugin.c (plugin_name_args): Add version.
7166         (register_plugin_info): New.
7167         (register_callback): Handle PLUGIN_INFO.
7168         (try_init_one_plugin): New.
7169         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
7170         if failed to init.
7171         (finalize_one_plugin): New.
7172         (finalize_plugins): New.
7173         (print_one_plugin): New.
7174         (print_plugins_versions): New.
7175         * plugin.h (print_plugins_versions): New.
7176         (finalize_plugins): New.
7177         * toplev.c (compile_file): Don't call initialize_plugins.
7178         (print_version): Call print_plugins_versions.
7179         (toplev_main): Call initialize_plugins. Print version if needed.
7180         Call finalize_plugins.
7181
7182 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
7183
7184         * common.opt (fversion): New.
7185         * gcc.c (print_version): New.
7186         (process_command): Don't print the version. Just set print_version.
7187         (main): Print version. Call subprocesses if print_version and
7188         verbose_flag are set.
7189         * opts.c (common_handle_option): Handle OPT_fversion.
7190
7191 2009-04-16  Richard Guenther  <rguenther@suse.de>
7192             Ira Rosen  <irar@il.ibm.com>
7193
7194         PR tree-optimization/39698
7195         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7196         type of the reduction variable.  Only generate the def if
7197         it is needed.
7198
7199         * omp-low.c (expand_omp_for_generic): When converting to a pointer
7200         make sure to first convert to an integer of the same precision.
7201         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7202         the type of the evolution correctly in computing the new
7203         induction variable base.
7204
7205 2009-04-16  Richard Guenther  <rguenther@suse.de>
7206
7207         PR middle-end/39625
7208         * tree-cfg.c (make_blocks): Split statements with to-be
7209         abnormal SSA names on the lhs.
7210
7211 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
7212
7213         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
7214         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
7215         * c-typeck.c (really_start_incremental_init): Likewise.
7216         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
7217         (TARGET_INITIALIZER): Remove it.
7218         * target.h (struct target): Remove vector_opaque_p.
7219         * tree.c (build_opaque_vector_type): New.
7220         * tree.h (TYPE_VECTOR_OPAQUE): New.
7221         (build_opaque_vector_type): Declare.
7222         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
7223         * config/rs6000/rs6000.c (build_opaque_vector_type,
7224         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
7225         (rs6000_init_builtins): Use build_opaque_vector_type for
7226         opaque_V4SI_type_node.
7227
7228 2009-04-15  Catherine Moore  <clm@codesourcery.com>
7229
7230         * debug.h (set_name):  Declare.
7231         * dwarf2out.c (dwarf2out_set_name): Declare.
7232         (dwarf2_debug_hooks): Add set_name.
7233         (find_AT_string): New.
7234         (add_AT_string): Call find_AT_string.
7235         (dwarf2out_set_name): New.
7236         * cp/decl.c (grokdeclarator): Call set_name.
7237         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
7238         * debug.c (do_nothing_debug_hooks):  Likewise.
7239         * dbxout.c (dbx_debug_hooks): Likewise.
7240         * sdbout.c (sdb_debug_hooks): Likewise.
7241
7242 2009-04-15  Michael Eager  <eager@eagercon.com>
7243
7244         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
7245         reg for single-precision FPU.
7246         * config/rs6000/rs6000.md (movsi_internal1): Only for
7247         !TARGET_SINGLE_FPU.
7248         (movsi_internal1_single): New. Add pattern to move SI values to/from
7249         single-precision FP regs.
7250
7251 2009-04-15  Richard Guenther  <rguenther@suse.de>
7252
7253         * omp-low.c (lower_rec_input_clauses): Build correct address
7254         expressions.
7255         (expand_omp_for_generic): Fix multiplication type.
7256         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
7257         (generate_memset_zero): Fix types.
7258         * tree-profile.c (prepare_instrumented_value): Correctly
7259         widen a pointer.
7260
7261 2009-04-15  Ian Lance Taylor  <iant@google.com>
7262
7263         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
7264         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
7265         for -Wall and for -Wc++-compat.
7266         (c_common_post_options): For C++, set warn_enum_compare if not
7267         already set.
7268         * c-tree.h (struct c_expr): Add field original_type.
7269         (build_external_ref): Update declaration.
7270         * c-parser.c (c_parser_braced_init): Set original_type.
7271         (c_parser_initelt): Likewise.
7272         (c_parser_expr_no_commas): Likewise.
7273         (c_parser_conditional_expression): Likewise.
7274         (c_parser_cast_expression): Likewise.
7275         (c_parser_unary_expression): Likewise.  Pull setting of
7276         original_code to top of function.
7277         (c_parser_sizeof_expression): Set original_type.
7278         (c_parser_alignof_expression): Likewise.
7279         (c_parser_postfix_expression): Likewise.  Pull setting of
7280         original_code to top of function.
7281         (c_parser_postfix_expression_after_paren_type): Set original_type.
7282         (c_parser_postfix_expression_after_primary): Likewise.
7283         (c_parser_expression): Likewise.
7284         * c-typeck.c (build_external_ref): Add type parameter.  Change all
7285         callers.
7286         (c_expr_sizeof_expr): Set original_type field.
7287         (parser_build_unary_op): Likewise.
7288         (parser_build_binary_op): Likewise.  Optionally warn about
7289         comparisons of enums of different types.
7290         (digest_init): Set original_type field.
7291         (really_start_incremental_init): Likewise.
7292         (push_init_level, pop_init_level): Likewise.
7293         * doc/invoke.texi (Warning Options): -Wenum-compare now
7294         supported in C.
7295
7296 2009-04-15  Richard Guenther  <rguenther@suse.de>
7297
7298         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
7299         out a necessary conversion.
7300         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
7301         names we didn't value number.
7302         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
7303
7304 2009-04-15  Richard Guenther  <rguenther@suse.de>
7305
7306         PR tree-optimization/39764
7307         * tree-ssa-ccp.c (get_value): Canonicalize value with
7308         canonicalize_float_value.
7309
7310 2009-04-15  Jan Hubicka  <jh@suse.cz>
7311
7312         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
7313         Wrong version of patch.
7314
7315 2009-04-15  Jan Hubicka  <jh@suse.cz>
7316
7317         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
7318
7319 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
7320
7321         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
7322         our distinct integral and vector types.
7323
7324 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
7325
7326         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
7327         * init.c (build_vtbl_address): Remove call to assemble_external.
7328
7329 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
7330
7331         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
7332         output for other floating point modes.
7333
7334 2009-04-14  Diego Novillo  <dnovillo@google.com>
7335
7336         * diagnostic.c (diagnostic_report_diagnostic): Do not
7337         warn about loaded plugins for DK_ERROR and DK_WARNING.
7338         * c-decl.c (declspecs_add_type): Move call to
7339         invoke_plugin_callbacks ...
7340         * c-parser.c (c_parser_declspecs): ... here.
7341         * plugin.c (dump_active_plugins): Tidy output.
7342
7343 2009-04-14  Diego Novillo  <dnovillo@google.com>
7344             Le-Chun Wu  <lcwu@google.com>
7345
7346         * configure.ac: Add --enable-plugin support.
7347         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
7348         * Makefile.in (PLUGIN_H): Define.
7349         Export ENABLE_PLUGIN and GMPINC to site.exp.
7350         Add PLUGINLIBS to link command.
7351         Add/modify dependencies for plugin.o and files including plugin.h.
7352         (plugin.o): New.
7353         * config.in: Regenerate.
7354
7355         * opts.c (common_handle_option): Handle OPT_fplugin_ and
7356         OPT_fplugin_arg_.
7357
7358 2009-04-14  Le-Chun Wu  <lcwu@google.com>
7359
7360         * tree-pass.h (register_one_dump_file): Add a prototype for
7361         register_one_dump_file.
7362         * toplev.c (compile_file): Call initialize_plugins.
7363         (do_compile): Call invoke_plugin_callbacks.
7364         (toplev_main): Call invoke_plugin_callbacks.
7365         * common.opt: Add -fplugin= and -fplugin-arg-.
7366         * gcc-plugin.h: New public header file for plugins to include.
7367         * plugin.c: New source file.
7368         * plugin.h: New internal header file.
7369         * passes.c (register_one_dump_file): Make it external.
7370
7371         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
7372
7373 2009-04-14  Diego Novillo  <dnovillo@google.com>
7374
7375         * doc/plugins.texi: New.
7376         * doc/gccint.texi: Add reference to Plugins chapter.
7377         * doc/invoke.texi: Document -fplugin and -fplugin-arg
7378         * diagnostic.c (diagnostic_report_diagnostic): Warn about
7379         loaded plugins, if any.
7380         * timevar.def (TV_PLUGIN_INIT): Define.
7381         (TV_PLUGIN_RUN): Define.
7382         * plugin.c: Include timevar.h
7383         (plugins_active_p): New.
7384         (dump_active_plugins): New.
7385         (debug_active_plugins): New.
7386
7387 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
7388
7389         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
7390         library paths.
7391         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
7392
7393 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
7394
7395         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
7396         the same as a minus without a shift.
7397
7398 2009-04-14  Nick Clifton  <nickc@redhat.com>
7399
7400         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
7401         comparisons with small integers will always produce a short
7402         branch.
7403
7404 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
7405
7406         Merge:
7407         2008-12-19  Diego Novillo  <dnovillo@google.com>
7408
7409         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
7410
7411 2009-04-14  Richard Guenther  <rguenther@suse.de>
7412
7413         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
7414         verification.
7415         (verify_gimple_assign_binary): Likewise.  Handle shifts and
7416         rotates correctly.
7417         (verify_gimple_phi): Print the mismatched argument position.
7418         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7419         Fix types.
7420         (vect_update_init_of_dr): Likewise.
7421         * matrix-reorg.c (transform_access_sites): Do what the
7422         comment suggests.
7423         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
7424
7425 2009-04-13  Michael Eager  <eager@eagercon.com>
7426
7427         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
7428         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
7429         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
7430         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
7431         remove duplicate config
7432
7433 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
7434
7435         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
7436         file_name:line_number type locator of the call site.
7437
7438 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
7439
7440         * genautomata.c: Put blank after comma.
7441         (automaton_decls): New.
7442         (struct unit_usage): Add comments to member next.
7443         (store_alt_unit_usage): Keep the list ordered.
7444         (unit_present_on_list_p, equal_alternatives_p): New.
7445         (check_regexp_units_distribution): Check units distribution
7446         correctness correctly.
7447         (main): Don't write automata if error is found.  Return correct
7448         exit code.
7449
7450         * config/m68k/cf.md (cfv4_ds): Remove.
7451         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
7452         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
7453
7454         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
7455         power4-load-ext, power4-store, power4-store-update,
7456         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
7457         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
7458         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
7459         power4-sqrt, power4-isync): Modify reservation to make correct
7460         unit distribution to automata.
7461
7462         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
7463         power5-store-update, power5-two, power5-three, power5-lmul,
7464         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
7465
7466 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
7467
7468         * except.c (pass_set_nothrow_function_flags): Set name and add
7469         TODO_dump_func.
7470         (set_nothrow_function_flags): Mention in the dump file when
7471         changing a function to nothrow.
7472
7473 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
7474
7475         PR/39066
7476         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
7477         instead of unsigned long.
7478
7479 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7480
7481         * config/arm/arm.c (return_used_this_function): Remove.
7482         (arm_output_function_prologue): Remove use of
7483         return_used_this_function.
7484         (output_return_instruction): Replace use of
7485         return_used_this_function
7486         by cfun->machine->return_used_this_function.
7487         (arm_output_epilogue): Likewise.
7488         (arm_output_function_epilogue): Likewise.
7489         (thumb_unexpanded_epilogue): Likewise.
7490         * config/arm/arm.h (struct machine_function):
7491         New member return_used_this_function.
7492
7493 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
7494
7495         * doc/install.texi: Correct description of default directory for
7496         --with-gxx-include-dir.
7497
7498 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
7499
7500         * fold-const.c (build_range_check): Properly deal with enumeral and
7501         boolean base types.
7502
7503 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
7504
7505         * doc/invoke.texi (max_gcse_passes): Remove documentation.
7506         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
7507         * params.h (MAX_GCSE_PASSES): Remove.
7508         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
7509         in sequence.  Remove ability to run multiple passes.
7510         (bypass_jumps): Report run as third CPROP pass.
7511
7512 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
7513
7514         PR middle-end/39651
7515         * except.c (can_throw_external): Look at each insn in a SEQUENCE
7516         when deciding whether the whole SEQUENCE can throw.
7517
7518 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
7519
7520         PR target/39740
7521         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
7522         offseted label references.
7523
7524 2009-04-11  Jan Hubicka  <jh@suse.cz>
7525
7526         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
7527
7528 2009-04-11  Richard Guenther  <rguenther@suse.de>
7529
7530         PR middle-end/39732
7531         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
7532         return variables as TREE_ADDRESSABLE.
7533
7534 2009-04-11  Richard Guenther  <rguenther@suse.de>
7535
7536         PR tree-optimization/39713
7537         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
7538         reference trees have SSA_NAME operands.
7539
7540 2009-04-11  Richard Guenther  <rguenther@suse.de>
7541
7542         PR c/39712
7543         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
7544         address expressions.
7545
7546 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
7547
7548         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
7549         match changes in Cygwin 1.7
7550         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
7551         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
7552
7553 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
7554
7555         PR tree-optimization/39701
7556         * doc/invoke.texi (Optimization Options): Document change in
7557         meaning and initialization of -fdelete-null-pointer-checks.
7558
7559 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
7560
7561         PR middle-end/39701
7562         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
7563
7564         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
7565         here.
7566
7567         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
7568
7569 2009-04-10  Chao-ying Fu  <fu@mips.com>
7570
7571         * doc/tm.texi (Instruction Output): Document
7572         TARGET_ASM_FINAL_POSTSCAN_INSN.
7573         * target.h (final_postscan_insn): New field in asm_out.
7574         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7575         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
7576         * final.c (final_scan_insn): Call
7577         targetm.asm_out.final_postscan_insn after outputting
7578         an asm macro and a normal instruction.
7579
7580         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
7581         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
7582         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
7583         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
7584         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7585
7586 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
7587
7588         PR middle-end/39701
7589         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
7590         variables as non-NULL even with -fdelete-null-pointer-checks.
7591
7592 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
7593
7594         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
7595
7596 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
7597
7598         PR target/39678
7599         * config/i386/i386.c (classify_argument): Handle SCmode with
7600         (bit_offset % 64) != 0.
7601
7602 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
7603
7604         * doc/invoke.texi (Optimize Options): Add cross-reference to
7605         -Q --help=optimizers examples.
7606
7607 2009-04-10  Ben Elliston  <bje@au.ibm.com>
7608
7609         PR target/36800
7610         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
7611         regalign for the reg == fpr and TDmode case.
7612
7613 2009-04-09  David Ayers  <ayers@fsfe.org>
7614
7615         PR objc/29200
7616         * objc/objc-act.c (warn_with_method): Remove helper function.
7617         (check_duplicates): Call warning and inform directly.
7618         (really_start_method): Likewise.
7619
7620 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
7621
7622         * expmed.c (expand_divmod): Always use a comparison for a division
7623         by a large unsigned integer.
7624
7625         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
7626         for things others than variables or functions as nonzero.
7627
7628 2009-04-09  Nick Clifton  <nickc@redhat.com>
7629
7630         * unwind-compat.c: Change copyright header to refer to version
7631         3 of the GNU General Public License with version 3.1 of the
7632         GCC Runtime Library Exception and to point readers at the
7633         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
7634         * config/alpha/crtfastmath.c: Likewise.
7635         * config/alpha/linux-unwind.h: Likewise.
7636         * config/alpha/qrnnd.asm: Likewise.
7637         * config/alpha/vms-crt0-64.c: Likewise.
7638         * config/alpha/vms-crt0.c: Likewise.
7639         * config/alpha/vms-dwarf2.asm: Likewise.
7640         * config/alpha/vms-dwarf2eh.asm: Likewise.
7641         * config/alpha/vms-psxcrt0-64.c: Likewise.
7642         * config/alpha/vms-psxcrt0.c: Likewise.
7643         * config/alpha/vms_tramp.asm: Likewise.
7644         * config/arc/initfini.c: Likewise.
7645         * config/arc/lib1funcs.asm: Likewise.
7646         * config/arm/bpabi-v6m.S: Likewise.
7647         * config/arm/bpabi.S: Likewise.
7648         * config/arm/bpabi.c: Likewise.
7649         * config/arm/crti.asm: Likewise.
7650         * config/arm/crtn.asm: Likewise.
7651         * config/arm/ieee754-df.S: Likewise.
7652         * config/arm/ieee754-sf.S: Likewise.
7653         * config/arm/lib1funcs.asm: Likewise.
7654         * config/arm/libunwind.S: Likewise.
7655         * config/arm/linux-atomic.c: Likewise.
7656         * config/arm/mmintrin.h: Likewise.
7657         * config/arm/pr-support.c: Likewise.
7658         * config/arm/unaligned-funcs.c: Likewise.
7659         * config/arm/unwind-arm.c: Likewise.
7660         * config/arm/unwind-arm.h: Likewise.
7661         * config/avr/libgcc.S: Likewise.
7662         * config/bfin/crti.s: Likewise.
7663         * config/bfin/crtlibid.s: Likewise.
7664         * config/bfin/crtn.s: Likewise.
7665         * config/bfin/lib1funcs.asm: Likewise.
7666         * config/bfin/linux-unwind.h: Likewise.
7667         * config/cris/arit.c: Likewise.
7668         * config/cris/cris_abi_symbol.c: Likewise.
7669         * config/darwin-64.c: Likewise.
7670         * config/darwin-crt2.c: Likewise.
7671         * config/darwin-crt3.c: Likewise.
7672         * config/darwin.h: Likewise.
7673         * config/dbxelf.h: Likewise.
7674         * config/dfp-bit.c: Likewise.
7675         * config/dfp-bit.h: Likewise.
7676         * config/elfos.h: Likewise.
7677         * config/fixed-bit.c: Likewise.
7678         * config/fixed-bit.h: Likewise.
7679         * config/fp-bit.c: Likewise.
7680         * config/fp-bit.h: Likewise.
7681         * config/fr30/crti.asm: Likewise.
7682         * config/fr30/crtn.asm: Likewise.
7683         * config/fr30/lib1funcs.asm: Likewise.
7684         * config/freebsd-spec.h: Likewise.
7685         * config/frv/cmovd.c: Likewise.
7686         * config/frv/cmovh.c: Likewise.
7687         * config/frv/cmovw.c: Likewise.
7688         * config/frv/frvbegin.c: Likewise.
7689         * config/frv/frvend.c: Likewise.
7690         * config/frv/lib1funcs.asm: Likewise.
7691         * config/glibc-stdint.h: Likewise.
7692         * config/h8300/clzhi2.c: Likewise.
7693         * config/h8300/crti.asm: Likewise.
7694         * config/h8300/crtn.asm: Likewise.
7695         * config/h8300/ctzhi2.c: Likewise.
7696         * config/h8300/fixunssfsi.c: Likewise.
7697         * config/h8300/lib1funcs.asm: Likewise.
7698         * config/h8300/parityhi2.c: Likewise.
7699         * config/h8300/popcounthi2.c: Likewise.
7700         * config/i386/ammintrin.h: Likewise.
7701         * config/i386/att.h: Likewise.
7702         * config/i386/avxintrin.h: Likewise.
7703         * config/i386/biarch64.h: Likewise.
7704         * config/i386/bmmintrin.h: Likewise.
7705         * config/i386/cpuid.h: Likewise.
7706         * config/i386/cross-stdarg.h: Likewise.
7707         * config/i386/crtfastmath.c: Likewise.
7708         * config/i386/crtprec.c: Likewise.
7709         * config/i386/cygming-crtbegin.c: Likewise.
7710         * config/i386/cygming-crtend.c: Likewise.
7711         * config/i386/cygwin.asm: Likewise.
7712         * config/i386/emmintrin.h: Likewise.
7713         * config/i386/gmm_malloc.h: Likewise.
7714         * config/i386/gthr-win32.c: Likewise.
7715         * config/i386/i386.h: Likewise.
7716         * config/i386/immintrin.h: Likewise.
7717         * config/i386/linux-unwind.h: Likewise.
7718         * config/i386/linux64.h: Likewise.
7719         * config/i386/mm3dnow.h: Likewise.
7720         * config/i386/mmintrin-common.h: Likewise.
7721         * config/i386/mmintrin.h: Likewise.
7722         * config/i386/nmmintrin.h: Likewise.
7723         * config/i386/pmm_malloc.h: Likewise.
7724         * config/i386/pmmintrin.h: Likewise.
7725         * config/i386/smmintrin.h: Likewise.
7726         * config/i386/sol2-c1.asm: Likewise.
7727         * config/i386/sol2-ci.asm: Likewise.
7728         * config/i386/sol2-cn.asm: Likewise.
7729         * config/i386/sol2-gc1.asm: Likewise.
7730         * config/i386/tmmintrin.h: Likewise.
7731         * config/i386/unix.h: Likewise.
7732         * config/i386/w32-unwind.h: Likewise.
7733         * config/i386/wmmintrin.h: Likewise.
7734         * config/i386/x86-64.h: Likewise.
7735         * config/i386/x86intrin.h: Likewise.
7736         * config/i386/xmmintrin.h: Likewise.
7737         * config/ia64/crtbegin.asm: Likewise.
7738         * config/ia64/crtend.asm: Likewise.
7739         * config/ia64/crtfastmath.c: Likewise.
7740         * config/ia64/crti.asm: Likewise.
7741         * config/ia64/crtn.asm: Likewise.
7742         * config/ia64/fde-glibc.c: Likewise.
7743         * config/ia64/lib1funcs.asm: Likewise.
7744         * config/ia64/linux-unwind.h: Likewise.
7745         * config/ia64/quadlib.c: Likewise.
7746         * config/ia64/unwind-ia64.c: Likewise.
7747         * config/linux.h: Likewise.
7748         * config/m32c/m32c-lib1.S: Likewise.
7749         * config/m32c/m32c-lib2-trapv.c: Likewise.
7750         * config/m32c/m32c-lib2.c: Likewise.
7751         * config/m32r/initfini.c: Likewise.
7752         * config/m68hc11/larith.asm: Likewise.
7753         * config/m68hc11/m68hc11-crt0.S: Likewise.
7754         * config/m68k/cf.md: Likewise.
7755         * config/m68k/crti.s: Likewise.
7756         * config/m68k/crtn.s: Likewise.
7757         * config/m68k/lb1sf68.asm: Likewise.
7758         * config/m68k/linux-unwind.h: Likewise.
7759         * config/mcore/crti.asm: Likewise.
7760         * config/mcore/crtn.asm: Likewise.
7761         * config/mcore/lib1.asm: Likewise.
7762         * config/mips/linux-unwind.h: Likewise.
7763         * config/mips/loongson.h: Likewise.
7764         * config/mips/mips16.S: Likewise.
7765         * config/mmix/crti.asm: Likewise.
7766         * config/mmix/crtn.asm: Likewise.
7767         * config/pa/fptr.c: Likewise.
7768         * config/pa/hpux-unwind.h: Likewise.
7769         * config/pa/lib2funcs.asm: Likewise.
7770         * config/pa/linux-atomic.c: Likewise.
7771         * config/pa/linux-unwind.h: Likewise.
7772         * config/pa/milli64.S: Likewise.
7773         * config/pa/quadlib.c: Likewise.
7774         * config/pa/stublib.c: Likewise.
7775         * config/picochip/libgccExtras/adddi3.asm: Likewise.
7776         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
7777         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
7778         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
7779         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
7780         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
7781         * config/picochip/libgccExtras/divmod15.asm: Likewise.
7782         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
7783         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
7784         * config/picochip/libgccExtras/longjmp.asm: Likewise.
7785         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
7786         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
7787         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
7788         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
7789         * config/picochip/libgccExtras/setjmp.asm: Likewise.
7790         * config/picochip/libgccExtras/subdi3.asm: Likewise.
7791         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
7792         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
7793         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
7794         * config/rs6000/750cl.h: Likewise.
7795         * config/rs6000/altivec.h: Likewise.
7796         * config/rs6000/biarch64.h: Likewise.
7797         * config/rs6000/crtresfpr.asm: Likewise.
7798         * config/rs6000/crtresgpr.asm: Likewise.
7799         * config/rs6000/crtresxfpr.asm: Likewise.
7800         * config/rs6000/crtresxgpr.asm: Likewise.
7801         * config/rs6000/crtsavfpr.asm: Likewise.
7802         * config/rs6000/crtsavgpr.asm: Likewise.
7803         * config/rs6000/darwin-asm.h: Likewise.
7804         * config/rs6000/darwin-fallback.c: Likewise.
7805         * config/rs6000/darwin-fpsave.asm: Likewise.
7806         * config/rs6000/darwin-ldouble.c: Likewise.
7807         * config/rs6000/darwin-tramp.asm: Likewise.
7808         * config/rs6000/darwin-unwind.h: Likewise.
7809         * config/rs6000/darwin-vecsave.asm: Likewise.
7810         * config/rs6000/darwin-world.asm: Likewise.
7811         * config/rs6000/e500crtres32gpr.asm: Likewise.
7812         * config/rs6000/e500crtres64gpr.asm: Likewise.
7813         * config/rs6000/e500crtres64gprctr.asm: Likewise.
7814         * config/rs6000/e500crtrest32gpr.asm: Likewise.
7815         * config/rs6000/e500crtrest64gpr.asm: Likewise.
7816         * config/rs6000/e500crtresx32gpr.asm: Likewise.
7817         * config/rs6000/e500crtresx64gpr.asm: Likewise.
7818         * config/rs6000/e500crtsav32gpr.asm: Likewise.
7819         * config/rs6000/e500crtsav64gpr.asm: Likewise.
7820         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
7821         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
7822         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
7823         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
7824         * config/rs6000/eabi-ci.asm: Likewise.
7825         * config/rs6000/eabi-cn.asm: Likewise.
7826         * config/rs6000/eabi.asm: Likewise.
7827         * config/rs6000/linux-unwind.h: Likewise.
7828         * config/rs6000/linux64.h: Likewise.
7829         * config/rs6000/paired.h: Likewise.
7830         * config/rs6000/paired.md: Likewise.
7831         * config/rs6000/ppc64-fp.c: Likewise.
7832         * config/rs6000/ppu_intrinsics.h: Likewise.
7833         * config/rs6000/rs6000.h: Likewise.
7834         * config/rs6000/si2vmx.h: Likewise.
7835         * config/rs6000/sol-ci.asm: Likewise.
7836         * config/rs6000/sol-cn.asm: Likewise.
7837         * config/rs6000/spe.h: Likewise.
7838         * config/rs6000/spu2vmx.h: Likewise.
7839         * config/rs6000/sysv4.h: Likewise.
7840         * config/rs6000/tramp.asm: Likewise.
7841         * config/rs6000/vec_types.h: Likewise.
7842         * config/s390/linux-unwind.h: Likewise.
7843         * config/s390/tpf-unwind.h: Likewise.
7844         * config/score/crti.asm: Likewise.
7845         * config/score/crtn.asm: Likewise.
7846         * config/sh/crt1.asm: Likewise.
7847         * config/sh/crti.asm: Likewise.
7848         * config/sh/crtn.asm: Likewise.
7849         * config/sh/divtab-sh4-300.c: Likewise.
7850         * config/sh/divtab-sh4.c: Likewise.
7851         * config/sh/divtab.c: Likewise.
7852         * config/sh/lib1funcs-4-300.asm: Likewise.
7853         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
7854         * config/sh/lib1funcs.asm: Likewise.
7855         * config/sh/lib1funcs.h: Likewise.
7856         * config/sh/linux-atomic.asm: Likewise.
7857         * config/sh/linux-unwind.h: Likewise.
7858         * config/sh/shmedia.h: Likewise.
7859         * config/sh/sshmedia.h: Likewise.
7860         * config/sh/ushmedia.h: Likewise.
7861         * config/sparc/crtfastmath.c: Likewise.
7862         * config/sparc/linux-unwind.h: Likewise.
7863         * config/sparc/sol2-c1.asm: Likewise.
7864         * config/sparc/sol2-ci.asm: Likewise.
7865         * config/sparc/sol2-cn.asm: Likewise.
7866         * config/spu/divmodti4.c: Likewise.
7867         * config/spu/divv2df3.c: Likewise.
7868         * config/spu/float_disf.c: Likewise.
7869         * config/spu/float_unsdidf.c: Likewise.
7870         * config/spu/float_unsdisf.c: Likewise.
7871         * config/spu/float_unssidf.c: Likewise.
7872         * config/spu/mfc_multi_tag_release.c: Likewise.
7873         * config/spu/mfc_multi_tag_reserve.c: Likewise.
7874         * config/spu/mfc_tag_release.c: Likewise.
7875         * config/spu/mfc_tag_reserve.c: Likewise.
7876         * config/spu/mfc_tag_table.c: Likewise.
7877         * config/spu/multi3.c: Likewise.
7878         * config/spu/spu_internals.h: Likewise.
7879         * config/spu/spu_intrinsics.h: Likewise.
7880         * config/spu/spu_mfcio.h: Likewise.
7881         * config/spu/vec_types.h: Likewise.
7882         * config/spu/vmx2spu.h: Likewise.
7883         * config/stormy16/stormy16-lib2.c: Likewise.
7884         * config/svr4.h: Likewise.
7885         * config/sync.c: Likewise.
7886         * config/v850/lib1funcs.asm: Likewise.
7887         * config/vxlib-tls.c: Likewise.
7888         * config/vxlib.c: Likewise.
7889         * config/vxworks-dummy.h: Likewise.
7890         * config/xtensa/crti.asm: Likewise.
7891         * config/xtensa/crtn.asm: Likewise.
7892         * config/xtensa/ieee754-df.S: Likewise.
7893         * config/xtensa/ieee754-sf.S: Likewise.
7894         * config/xtensa/lib1funcs.asm: Likewise.
7895         * config/xtensa/lib2funcs.S: Likewise.
7896         * config/xtensa/linux-unwind.h: Likewise.
7897         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7898         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
7899         * coretypes.h: Likewise.
7900         * crtstuff.c: Likewise.
7901         * defaults.h: Likewise.
7902         * dwarf2.h: Likewise.
7903         * emutls.c: Likewise.
7904         * gbl-ctors.h: Likewise.
7905         * gcov-io.h: Likewise.
7906         * ginclude/float.h: Likewise.
7907         * ginclude/iso646.h: Likewise.
7908         * ginclude/stdarg.h: Likewise.
7909         * ginclude/stdbool.h: Likewise.
7910         * ginclude/stddef.h: Likewise.
7911         * ginclude/stdfix.h: Likewise.
7912         * ginclude/stdint-gcc.h: Likewise.
7913         * ginclude/tgmath.h: Likewise.
7914         * gthr-aix.h: Likewise.
7915         * gthr-dce.h: Likewise.
7916         * gthr-gnat.c: Likewise.
7917         * gthr-gnat.h: Likewise.
7918         * gthr-lynx.h: Likewise.
7919         * gthr-mipssde.h: Likewise.
7920         * gthr-nks.h: Likewise.
7921         * gthr-posix.c: Likewise.
7922         * gthr-posix.h: Likewise.
7923         * gthr-posix95.h: Likewise.
7924         * gthr-rtems.h: Likewise.
7925         * gthr-single.h: Likewise.
7926         * gthr-solaris.h: Likewise.
7927         * gthr-tpf.h: Likewise.
7928         * gthr-vxworks.h: Likewise.
7929         * gthr-win32.h: Likewise.
7930         * gthr.h: Likewise.
7931         * libgcc2.c: Likewise.
7932         * libgcc2.h: Likewise.
7933         * libgcov.c: Likewise.
7934         * tsystem.h: Likewise.
7935         * typeclass.h: Likewise.
7936         * unwind-c.c: Likewise.
7937         * unwind-compat.h: Likewise.
7938         * unwind-dw2-fde-compat.c: Likewise.
7939         * unwind-dw2-fde-darwin.c: Likewise.
7940         * unwind-dw2-fde-glibc.c: Likewise.
7941         * unwind-dw2-fde.c: Likewise.
7942         * unwind-dw2-fde.h: Likewise.
7943         * unwind-dw2.c: Likewise.
7944         * unwind-dw2.h: Likewise.
7945         * unwind-generic.h: Likewise.
7946         * unwind-pe.h: Likewise.
7947         * unwind-sjlj.c: Likewise.
7948         * unwind.inc: Likewise.
7949         * config/arm/neon-gen.ml: Change generated copyright header to
7950         refer to version 3 of the GNU General Public License with
7951         version 3.1 of the GCC Runtime Library Exception and to point
7952         readers at the COPYING3 and COPYING3.RUNTIME files and the
7953         FSF's license web page.
7954         * config/arm/arm_neon.h: Regenerate.
7955
7956 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
7957
7958         * config/cris/cris.md: Change copyright header to refer to version
7959         3 of the GNU General Public License.
7960         * doc/install.texi2html: Change copyright header to refer to version
7961         3 of the GNU General Public License and to point readers at the
7962         COPYING3 file and the FSF's license web page.
7963         * config/vax/linux.h: Likewise.
7964
7965 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
7966
7967         * config/i386/i386.md (cmpcc): New.
7968         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
7969         (sync_compare_and_swap_cc*): Delete.
7970
7971         * config/s390/s390.c (s390_compare_emitted): Remove.
7972         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
7973         s390_compare_emitted used to be handled.  Assert that modes match.
7974         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
7975         refer to sync_compare_and_swap_ccsi.
7976         * config/s390/s390.h (s390_compare_emitted): Remove.
7977         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
7978         instead of s390_compare_emitted.
7979         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
7980         instead of s390_compare_emitted.
7981         * config/s390/s390.md (cmpcc): New.
7982         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
7983         CC_REGNUM, do not pretend it's set.
7984         (sync_compare_and_swap_cc*): Delete.
7985         * config/s390/predicates.md (cc_reg_operand): New.
7986
7987         * expr.c (sync_compare_and_swap_cc): Delete.
7988         * optabs.h (sync_compare_and_swap_cc): Delete.
7989         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
7990         is being used with can_compare_p.
7991         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
7992         (find_cc_set): New.
7993         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
7994         look for a MODE_CC set instead.  Use emit_store_flag.
7995         (expand_compare_and_swap_loop): Likewise, with some additional
7996         complication to avoid a force_reg when useless.  Use
7997         emit_cmp_and_jump_insns.
7998         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
7999         * doc/md.texi (sync_compare_and_swap_cc): Merge with
8000         sync_compare_and_swap documentation.
8001
8002 2009-04-09  Jan Hubicka  <jh@suse.cz>
8003
8004         * except.c (find_prev_try): Break out from ....
8005         (duplicate_eh_regions): ... here; properly update prev_try pointers
8006         when duplication part of tree.
8007         (dump_eh_tree): Improve dumping.
8008         (verify_eh_region): New.
8009         (verify_eh_tree): Use it.
8010
8011 2009-04-06  Richard Guenther  <rguenther@suse.de>
8012
8013         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
8014         &ARRAY addresses by adjusting their types and prepending
8015         a conversion.
8016         * tree-cfg.c (verify_gimple_assign_single): Verify that
8017         addresses are correct.
8018
8019 2009-04-09  Richard Guenther  <rguenther@suse.de>
8020
8021         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
8022         indices into an array reference if possible.
8023         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8024         Fold POINTER_PLUS_EXPR statements with invariant address.
8025
8026 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
8027
8028         PR target/39634
8029         * config.gcc (powerpc64-*-linux*): Always build biarch.
8030
8031 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
8032
8033         PR c/39613
8034         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
8035         it and pedwarn if this results in an INTEGER_CST.
8036
8037 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8038
8039         * doc/install.texi: Update minimum GMP version.  Remove obsolete
8040         text in MPFR section.
8041
8042 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
8043
8044         * dwarf2out.c (class_scope_p): New static inline.
8045         (class_or_namespace_scope_p): Use it.
8046         (gen_variable_die): Use DW_TAG_member tag for static data member
8047         declarations instead of DW_TAG_variable.
8048
8049         PR middle-end/39573
8050         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
8051         variables.
8052
8053 2009-04-08  Richard Guenther  <rguenther@suse.de>
8054
8055         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
8056         valueize random data.
8057
8058 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
8059
8060         * config.gcc (aix tm_file):  Add aix-stdint.h.
8061         (aix tm clause use_gcc_stdint):  Set to wrap.
8062         * config/rs6000/aix-stdint.h:  New file.
8063
8064 2009-04-08  Richard Guenther  <rguenther@suse.de>
8065
8066         PR middle-end/36291
8067         * tree-dfa.c (add_referenced_var): Do not recurse into
8068         global initializers.
8069         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
8070         exposed variables.
8071         (fold_const_aggregate_ref): Likewise.
8072
8073 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
8074
8075         * recog.c (ordered_comparison_operator): New.
8076         * gensupport.c (std_preds): Add it.
8077         * doc/md.texi (Machine-Independent Predicates): Document it.
8078
8079 2009-04-08  Jan Hubicka  <jh@suse.cz>
8080
8081         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
8082         * function.h (rtl_eh): Remove exception_handler_label_map.
8083         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
8084         remove_exception_handler_label, for_each_eh_label_1): Remove.
8085         (rtl_remove_unreachable_regions): Remove.
8086         (convert_from_eh_region_ranges): Do not remove unreachable regions.
8087         (find_exception_handler_labels): Don't build the hashtable.
8088         (maybe_remove_eh_handler): Remove.
8089         (for_each_eh_label): Rewrite to walk the tree.
8090         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
8091         * except.h (maybe_remove_eh_handler): Remove.
8092         * passes.c (init_optimization_passes): Schedule second EH cleanup
8093         before out-of-ssa.
8094         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
8095         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
8096
8097 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
8098
8099         * genoutput.c (validate_optab_operands): New.
8100         (gen_insn, gen_expand): Call it.
8101
8102         * genflags.c (gen_insn): Detect misused iterators.
8103         (main): Pass line_no to gen_insn, exit with status 1 on error.
8104
8105         * genextract.c (line_no): Make global.
8106         (VEC_safe_set_locstr): Change assertion to error message.
8107         (main): Exit with status 1 on error.
8108
8109 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
8110
8111         PR c/39614
8112         PR c/39673
8113         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8114         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8115         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
8116         * c-convert.c (convert): Do not call fold on results of conversion
8117         functions when the result is a C_MAYBE_CONST_EXPR.
8118         * c-parser.c (c_parser_postfix_expression): Do not fold condition
8119         of __builtin_choose_expr.
8120         * c-typeck.c (remove_c_maybe_const_expr): New.
8121         (build_unary_op, build_conditional_expr, build_compound_expr,
8122         build_binary_op, c_objc_common_truthvalue_conversion): Call
8123         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
8124         integer operands.
8125
8126 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
8127
8128         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
8129         CODE to produce a new one. Add a prototype to use fold_convert_const
8130
8131 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
8132
8133         PR bootstrap/39660
8134         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
8135         mix declarations and code.
8136
8137 2009-04-08  Ben Elliston  <bje@au.ibm.com>
8138
8139         * gcc.c: Replace `CC' with `GCC' throughout.
8140
8141 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
8142
8143         * doc/invoke.texi: Document Atom support.
8144
8145 2009-04-07  Jason Merrill  <jason@redhat.com>
8146
8147         PR c++/25185
8148         * c-common.h, c-common.c: Add flag_pretty_templates.
8149         * c-opts.c (c_common_handle_option): Set it.
8150         * c.opt: Add -fno-pretty-templates.
8151         * doc/invoke.texi (C++ Dialect Options): Likewise.
8152
8153 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
8154
8155         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
8156         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
8157         (ia64_expand_builtin): Likewise.
8158
8159 2009-04-07  Martin Jambor  <mjambor@suse.cz>
8160
8161         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
8162         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
8163         ADDR_EXPRS are include too.
8164
8165 2009-04-07  Richard Guenther  <rguenther@suse.de>
8166
8167         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
8168         decls are only used if passes as parameters or if they are
8169         local statics and the call is not to a builtin.
8170         (call_may_clobber_ref_p_1): Likewise.
8171
8172 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8173
8174         * expr.c (do_store_flag): Remove last argument.  Simplify code
8175         to avoid duplication of tests already done by can_compare_p.
8176         (expand_expr_real_1): Adjust caller.
8177
8178 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8179
8180         * optabs.c (can_compare_p): Test the predicate of a
8181         cbranch and cstore pattern.
8182
8183 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8184
8185         * expr.c (convert_move): Use emit_store_flag instead of
8186         "emulating" it.
8187
8188 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
8189
8190         * config/i386/i386.c (ix86_compare_emitted): Remove.
8191         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8192         ix86_compare_op0 like ix86_compare_emitted used to be handled.
8193         * config/i386/i386.h (ix86_compare_emitted): Remove.
8194         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8195         instead of ix86_compare_emitted.
8196         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
8197
8198 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
8199
8200         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8201         Add t-sysroot-suffix to tmake_file.
8202         * config/print-sysroot-suffix.sh: New file.
8203         * config/t-sysroot-suffix: New file.
8204
8205 2009-04-07  Ben Elliston  <bje@au.ibm.com>
8206
8207         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8208         as the latter produces a warning when the target does not support
8209         infinity.
8210
8211 2009-04-07  Ben Elliston  <bje@au.ibm.com>
8212
8213         * dfp.c: Replace type punning assignments with memcpy throughout.
8214         * Makefile.in (dfp.o-warn): Remove.
8215
8216 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
8217
8218         PR target/39634
8219         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
8220         Include soft-fp/t-softfp after rs6000/t-linux64.
8221
8222 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
8223
8224         * stor-layout.c (set_sizetype): Use the full precision of their
8225         machine mode for bitsize types.
8226
8227 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
8228
8229         * config/i386/i386.md: Revert 2 accidental checkins.
8230
8231 2009-04-06  Joey Ye  <joey.ye@intel.com>
8232             Xuepeng Guo  <xuepeng.guo@intel.com>
8233             H.J. Lu  <hongjiu.lu@intel.com>
8234
8235         Atom pipeline model, tuning and insn selection.
8236         * config.gcc (atom): Add atom config options and target.
8237
8238         * config/i386/atom.md: New.
8239
8240         * config/i386/i386.c (atom_cost): New cost.
8241         (m_ATOM): New macro flag.
8242         (initial_ix86_tune_features): Set m_ATOM.
8243         (x86_accumulate_outgoing_args): Likewise.
8244         (x86_arch_always_fancy_math_387): Likewise.
8245         (processor_target): Add Atom cost.
8246         (cpu_names): Add Atom cpu name.
8247         (override_options): Set Atom ISA.
8248         (ix86_issue_rate): New case PROCESSOR_ATOM.
8249         (ix86_adjust_cost): Likewise.
8250
8251         * config/i386/i386.h (TARGET_ATOM): New target macro.
8252         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
8253         (TARGET_OPT_AGU): New target option.
8254         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
8255         (processor_type): Add PROCESSOR_ATOM.
8256
8257         * config/i386/i386.md (cpu): Add new value "atom".
8258         (use_carry, movu): New attr.
8259         (atom.md): Include atom.md.
8260         (adddi3_carry_rex64): Set attr "use_carry".
8261         (addqi3_carry): Likewise.
8262         (addhi3_carry): Likewise.
8263         (addsi3_carry): Likewise.
8264         (*addsi3_carry_zext): Likewise.
8265         (subdi3_carry_rex64): Likewise.
8266         (subqi3_carry): Likewise.
8267         (subhi3_carry): Likewise.
8268         (subsi3_carry): Likewise.
8269         (x86_movdicc_0_m1_rex64): Likewise.
8270         (*x86_movdicc_0_m1_se): Likewise.
8271         (x86_movsicc_0_m1): Likewise.
8272         (*x86_movsicc_0_m1_se): Likewise.
8273         (*adddi_1_rex64): Emit add insn as much as possible.
8274         (*addsi_1): Likewise.
8275         (return_internal): Set atom_unit.
8276         (return_internal_long): Likewise.
8277         (return_pop_internal): Likewise.
8278         (*rcpsf2_sse): Set atom_sse_attr attr.
8279         (*qrt<mode>2_sse): Likewise.
8280         (*prefetch_sse): Likewise.
8281
8282         * config/i386/i386-c.c (ix86_target_macros_internal): New case
8283         PROCESSOR_ATOM.
8284         (ix86_target_macros_internal): Likewise.
8285
8286         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
8287         (*prefetch_sse_rex): Likewise.
8288         (sse_rcpv4sf2): Likewise.
8289         (sse_vmrcpv4sf2): Likewise.
8290         (sse_sqrtv4sf2): Likewise.
8291         (<sse>_vmsqrt<mode>2): Likewise.
8292         (sse_ldmxcsr): Likewise.
8293         (sse_stmxcsr): Likewise.
8294         (*sse_sfence): Likewise.
8295         (sse2_clflush): Likewise.
8296         (*sse2_mfence): Likewise.
8297         (*sse2_lfence): Likewise.
8298         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
8299         (<sse>_movup<ssemodesuffixf2c>): Likewise.
8300         (avx_movdqu<avxmodesuffix>): Likewise.
8301         (avx_lddqu<avxmodesuffix>): Likewise.
8302         (sse2_movntv2di): Change attr "type" to "ssemov".
8303         (sse2_movntsi): Likewise.
8304         (rsqrtv8sf2): Change attr "type" to "sseadd".
8305         (sse3_addsubv2df3): Set attr "atom_unit".
8306         (sse3_h<plusminus_insn>v4sf3): Likewise.
8307         (*sse2_pmaddwd): Likewise.
8308         (*vec_extractv2di_1_rex64): Likewise.
8309         (*vec_extractv2di_1_avx): Likewise.
8310         (sse2_psadbw): Likewise.
8311         (ssse3_phaddwv8hi3): Likewise.
8312         (ssse3_phaddwv4hi3): Likewise.
8313         (ssse3_phadddv4si3): Likewise.
8314         (ssse3_phadddv2si3): Likewise.
8315         (ssse3_phaddswv8hi3): Likewise.
8316         (ssse3_phaddswv4hi3): Likewise.
8317         (ssse3_phsubwv8hi3): Likewise.
8318         (ssse3_phsubwv4hi3): Likewise.
8319         (ssse3_phsubdv4si3): Likewise.
8320         (ssse3_phsubdv2si3): Likewise.
8321         (ssse3_phsubswv8hi3): Likewise.
8322         (ssse3_phsubswv4hi3): Likewise.
8323         (ssse3_pmaddubsw128): Likewise.
8324         (sse3_pmaddubsw: Likewise.
8325         (ssse3_palignrti): Likewise.
8326         (ssse3_palignrdi): Likewise.
8327
8328 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
8329
8330         * doc/install.texi (Specific): Fix two cross-references to MinGW.
8331
8332 2009-04-06  Richard Guenther  <rguenther@suse.de>
8333
8334         PR tree-optimization/28868
8335         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
8336         of which PHI results we inserted.
8337         (insert_into_preds_of_block): Record inserted PHIs.
8338         (eliminate): Eliminate redundant PHI nodes.
8339         (init_pre): Init inserted_phi_names.
8340
8341 2009-04-06  Richard Guenther  <rguenther@suse.de>
8342
8343         PR tree-optimization/39643
8344         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
8345         IMAGPART_EXPRs of complex constants.
8346         (execute_fold_all_builtins): If we folded a call queue
8347         TODO_update_address_taken.
8348
8349 2009-04-06  Jan Hubicka  <jh@suse.cz>
8350
8351         PR middle-end/39659
8352         * except.c (remove_unreachable_regions): Propagate may_contain_throw
8353         flag.
8354
8355 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
8356
8357         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
8358         delay slot.
8359         (ic_invalidate_array): Likewise.
8360
8361 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
8362
8363         * calls.c (emit_library_call_value_1): Fix a problem with parameter
8364         alignment for library calls.
8365
8366 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
8367
8368         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
8369         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
8370         * config/i386/mingw-stdint.h:  New file.
8371
8372 2009-04-05  Richard Guenther  <rguenther@suse.de>
8373
8374         PR tree-optimization/39648
8375         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
8376         our &A vs. &A[0] IL deficiencies.
8377
8378 2009-04-04  Jan Hubicka  <jh@suse.cz>
8379
8380         * except.c (sjlj_find_directly_reachable_regions): Be ready for
8381         removed toplevel regions.
8382         (sjlj_mark_call_sites): Likewise.
8383
8384 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
8385
8386         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
8387         (cygwin tm clause use_gcc_stdint):  Set to wrap.
8388         * config/i386/cygwin-stdint.h:  New file.
8389
8390 2009-04-04  Richard Guenther  <rguenther@suse.de>
8391
8392         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
8393         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
8394         single-argument PHIs if we are in loop-closed SSA form.
8395         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
8396         for the pre-condition.
8397         (slpeel_tree_peel_loop_to_edge): Likewise.
8398         (vect_build_loop_niters): Take an optional sequence to append stmts.
8399         (vect_generate_tmps_on_preheader): Likewise.
8400         (vect_do_peeling_for_loop_bound): Take extra guards for the
8401         pre-condition.
8402         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
8403         the cost model check.
8404         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
8405         guards if we are going to peel.  Do not apply versioning in that case.
8406         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
8407         (vect_do_peeling_for_loop_bound): Likewise.
8408         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
8409         loop bound only record extra pre-conditions, do not apply loop
8410         versioning.
8411
8412 2009-04-04  Richard Guenther  <rguenther@suse.de>
8413
8414         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
8415         renaming code.
8416
8417 2009-04-04  Jan Hubicka  <jh@suse.cz>
8418
8419         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
8420         last_basic_block for size of bb->index indexed array.
8421         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
8422         compute_out, link_btr_uses, build_btr_def_use_webs,
8423         build_btr_def_use_webs, migrate_btr_defs): Likewise.
8424
8425 2009-04-04  Jan Hubicka  <jh@suse.cz>
8426
8427         * except.c (remove_eh_handler_and_replace): Break out from ...
8428         (remove_eh_handler): ... here.
8429         (bring_to_root): New function.
8430         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
8431         handled ones, bring others to root of tree.
8432
8433 2009-04-04  Jan Hubicka  <jh@suse.cz>
8434
8435         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
8436         (all_phis_safe_to_merge): New function.
8437         (update_info): New structure.
8438         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
8439         (cleanup_empty_eh): Update SSA if possible.
8440
8441 2009-04-04  Richard Guenther  <rguenther@suse.de>
8442
8443         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
8444         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
8445         (append_vuse): Likewise.
8446
8447 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
8448
8449         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
8450         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
8451         instead of REG_UNSAVED for DW_CFA_undefined.
8452         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
8453         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
8454         outermost frame.
8455
8456 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
8457
8458         PR target/39501
8459         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
8460         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
8461         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
8462
8463 2009-04-04  Richard Guenther  <rguenther@suse.de>
8464
8465         PR tree-optimization/8781
8466         PR tree-optimization/37892
8467         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
8468         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
8469         (valueize_refs): Call it for *& valueizations.
8470         (shared_reference_ops_from_ref): Rename to ...
8471         (valueize_shared_reference_ops_from_ref): ... this and valueize.
8472         (shared_reference_ops_from_call): Rename to ...
8473         (valueize_shared_reference_ops_from_call): ... this and valueize.
8474         (vn_reference_lookup): Update.
8475         (visit_reference_op_call): Likewise.
8476         * tree-ssa-pre.c (phi_translate_1): Fold *&.
8477         (eliminate): Value-replace the call address in call statements.
8478
8479 2009-04-04  Richard Guenther  <rguenther@suse.de>
8480
8481         PR tree-optimization/39636
8482         * tree-ssa-forwprop.c
8483         (forward_propagate_addr_into_variable_array_index): Check for
8484         GIMPLE_ASSIGN before accessing the rhs code.
8485
8486 2009-04-03  Jason Merrill  <jason@redhat.com>
8487
8488         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
8489
8490 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
8491
8492         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
8493         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
8494         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
8495         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
8496         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
8497         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
8498         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
8499         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
8500         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
8501         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
8502         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
8503         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
8504         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
8505         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
8506         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
8507         Use fr_reg_or_fp01_operand instead of fr_register_operand
8508
8509         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
8510         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
8511         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
8512
8513 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
8514
8515         PR rtl-optimization/39607
8516         PR rtl-optimization/39631
8517
8518         Revert:
8519
8520         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8521         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8522         instead of DF_LR_OUT.
8523         * ira-lives.c (process_bb_node_lives): Ditto.
8524         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8525         instead of DF_LR_{OUT,IN}.
8526         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8527         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8528
8529 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
8530
8531         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
8532         (execute_lower_omp): Always run but take the short way out if -fopenmp
8533         is not given.
8534         (gate_lower_omp): Remove, forcing the pass manager to always run the
8535         pass and always set PROP_gimple_lomp.
8536         (pass_lower_omp): Remove gate function.
8537         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
8538         PROP_trees.  Instead, require it.
8539         * ipa-cp.c (pass_ipa_cp): Likewise.
8540         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
8541         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
8542         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
8543         and PROP_gimple_leh.
8544
8545 2009-04-03  Richard Guenther  <rguenther@suse.de>
8546
8547         PR middle-end/13146
8548         PR tree-optimization/23940
8549         PR tree-optimization/33237
8550         PR middle-end/33974
8551         PR middle-end/34093
8552         PR tree-optimization/36201
8553         PR tree-optimization/36230
8554         PR tree-optimization/38049
8555         PR tree-optimization/38207
8556         PR tree-optimization/38230
8557         PR tree-optimization/38301
8558         PR tree-optimization/38585
8559         PR middle-end/38895
8560         PR tree-optimization/38985
8561         PR tree-optimization/39299
8562         * tree-ssa-structalias.h: Remove.
8563         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
8564         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
8565         (struct vuse_element_d): Remove.
8566         (struct vuse_vec_d): Likewise.
8567         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
8568         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
8569         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
8570         VUSE_ELEMENT_VAR): Likewise.
8571         (struct voptype_d): Likewise.
8572         (NUM_VOP_FREE_BUCKETS): Likewise.
8573         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
8574         (struct stmt_operands_d): Remove.
8575         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
8576         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
8577         VDEF_NUM, VDEF_VECT): Likewise.
8578         (copy_virtual_operands): Remove.
8579         (operand_build_cmp): Likewise.
8580         (create_ssa_artificial_load_stmt): Likewise.
8581         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
8582         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
8583         vuse_index and mayuse_index members.  Pack and move done and iter_type
8584         members to the front.
8585         (SSA_OP_VMAYUSE): Remove.
8586         (SSA_OP_VIRTUAL_USES): Adjust.
8587         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
8588         (unlink_stmt_vdef): Declare.
8589         (add_to_addressable_set): Remove.
8590         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
8591         (vrp_visit_stmt): Likewise.
8592         * doc/tree-ssa.texi (Alias analysis): Update.
8593         * doc/invoke.texi (max-aliased-vops): Remove docs.
8594         (avg-aliased-vops): Likewise.
8595         * tree-into-ssa.c (syms_to_rename): Remove.
8596         (need_to_update_vops_p): Likewise.
8597         (need_to_initialize_update_ssa_p): Rename to ...
8598         (update_ssa_initialized_fn): ... this.  Track function we are
8599         initialized for.
8600         (symbol_marked_for_renaming): Simplify.
8601         (add_new_name_mapping): Do not set need_to_update_vops_p.
8602         (dump_currdefs): Use SYMS_TO_RENAME.
8603         (rewrite_update_stmt): Always walk all uses/defs.
8604         (dump_update_ssa): Adjust.
8605         (init_update_ssa): Take function argument.  Track what we are
8606         initialized for.
8607         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
8608         (create_new_def_for): Initialize for cfun, assert we are initialized
8609         for cfun.
8610         (mark_sym_for_renaming): Simplify.
8611         (mark_set_for_renaming): Do not initialize update-ssa.
8612         (need_ssa_update_p): Simplify.  Take function argument.
8613         (name_mappings_registered_p): Assert we ask for the correct function.
8614         (name_registered_for_update_p): Likewise.
8615         (ssa_names_to_replace): Likewise.
8616         (release_ssa_name_after_update_ssa): Likewise.
8617         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
8618         (dump_decl_set): Do not print a newline.
8619         (debug_decl_set): Do it here.
8620         (dump_update_ssa): And here.
8621         * tree-ssa-loop-im.c (move_computations): Adjust.
8622         (movement_possibility): Likewise.
8623         (determine_max_movement): Likewise.
8624         (gather_mem_refs_stmt): Likewise.
8625         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
8626         or NAME_MEMORY_TAG.
8627         * tree-complex.c (update_all_vops): Remove.
8628         (expand_complex_move): Adjust.
8629         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
8630         Simplify test for memory referencing statement.  Exclude
8631         non-invariant ADDR_EXPRs.
8632         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
8633         * tree-loop-distribution.c (generate_memset_zero): Adjust.
8634         (rdg_flag_uses): Likewise.
8635         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
8636         related code.
8637         (tree_optimize_tail_calls_1): Also split the
8638         edge from the entry block if we have degenerate PHI nodes in
8639         the first basic block.
8640         * tree.c (init_ttree): Remove memory-tag related code.
8641         (tree_code_size): Likewise.
8642         (tree_node_structure): Likewise.
8643         (build7_stat): Re-write to be build6_stat.
8644         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
8645         (SSA_VAR_P): Adjust.
8646         (struct tree_memory_tag): Remove.
8647         (struct tree_memory_partition_tag): Likewise.
8648         (union tree_node): Adjust.
8649         (build7): Re-write to be build6.
8650         * tree-pass.h (pass_reset_cc_flags): Remove.
8651         (TODO_update_address_taken): New flag.
8652         (pass_simple_dse): Remove.
8653         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
8654         * params.h (MAX_ALIASED_VOPS): Remove.
8655         (AVG_ALIASED_VOPS): Likewise.
8656         * omp-low.c (expand_omp_taskreg): Update SSA form.
8657         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
8658         aliases the lhs in a copy stmt.
8659         * tree-ssa-dse.c (struct address_walk_data): Remove.
8660         (memory_ssa_name_same): Likewise.
8661         (memory_address_same): Likewise.
8662         (get_kill_of_stmt_lhs): Likewise.
8663         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
8664         unused stores.  Look through PHI nodes into post-dominated regions.
8665         (dse_optimize_stmt): Simplify.  Properly remove stores.
8666         (tree_ssa_dse): Compute dominators.
8667         (execute_simple_dse): Remove.
8668         (pass_simple_dse): Likewise.
8669         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
8670         gimple_loaded_syms and gimple_stored_syms computation.
8671         * toplev.c (dump_memory_report): Dump alias and pta stats.
8672         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
8673         (vn_reference_eq): Likewise.
8674         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
8675         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
8676         valueize_vuses): Remove.
8677         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
8678         (get_def_ref_stmt_vuse): ... this.
8679         (vn_reference_lookup_2): New function.
8680         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
8681         walking equivalent vuses.  Simplify.
8682         (vn_reference_lookup): Likewise.
8683         (vn_reference_insert): Likewise.
8684         (vn_reference_insert_pieces): Likewise.
8685         (visit_reference_op_call): Simplify.
8686         (visit_reference_op_load): Likewise.
8687         (visit_reference_op_store): Likewise.
8688         (init_scc_vn): Remove shared_lookup_vuses initialization.
8689         (free_scc_vn): Remove shared_lookup_vuses freeing.
8690         (sort_vuses, sort_vuses_heap): Remove.
8691         (get_ref_from_reference_ops): Export.
8692         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
8693         vector with single vuse pointer.
8694         (vn_reference_lookup_pieces, vn_reference_lookup,
8695         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
8696         (shared_vuses_from_stmt): Remove.
8697         (get_ref_from_reference_ops): Declare.
8698         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
8699         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
8700         memory-tag related code.
8701         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
8702         (likely_value): Add comment, skip static-chain of call statements.
8703         (surely_varying_stmt_p): Adjust.
8704         (gimplify_and_update_call_from_tree): Likewise.
8705         (execute_fold_all_builtins): Do not rebuild alias info.
8706         (gimplify_and_update_call_from_tree): Properly update VOPs.
8707         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
8708         (copy_ref_info): Remove memory-tag related code.
8709         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
8710         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
8711         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
8712         computation.
8713         * tree-ssa-dom.c (gimple_p): Remove typedef.
8714         (eliminate_redundant_computations): Adjust.
8715         (record_equivalences_from_stmt): Likewise.
8716         (avail_expr_hash): Likewise.
8717         (avail_expr_eq): Likewise.
8718         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
8719         (stmt_makes_single_load): Likewise.
8720         (stmt_makes_single_store): Likewise.
8721         * tree-ssa-alias.c: Rewrite completely.
8722         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
8723         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
8724         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
8725         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
8726         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
8727         Remove public functions.
8728         (pass_reset_cc_flags): Remove.
8729         (pass_build_alias): Move ...
8730         * tree-ssa-structalias.c (pass_build_alias): ... here.
8731         * tree-ssa-alias.c (may_be_aliased): Move ...
8732         * tree-flow-inline.h (may_be_aliased): ... here.
8733         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
8734         count_uses_and_derefs): Move ...
8735         * gimple.c: ... here.
8736         * gimple.h (count_uses_and_derefs): Declare.
8737         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
8738         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
8739         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
8740         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
8741         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
8742         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
8743         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
8744         New functions.
8745         * tree-dfa.c (refs_may_alias_p): Move ...
8746         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
8747         * tree-ssa-alias.h: New file.
8748         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
8749         (statement_sink_location): Likewise.
8750         * opts.c (decode_options): Do not adjust max-aliased-vops or
8751         avg-aliased-vops values.
8752         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
8753         (TV_CALL_CLOBBER): Likewise.
8754         (TV_FLOW_SENSITIVE): Likewise.
8755         (TV_FLOW_INSENSITIVE): Likewise.
8756         (TV_MEMORY_PARTITIONING): Likewise.
8757         (TV_ALIAS_STMT_WALK): New timevar.
8758         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
8759         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
8760         (get_address_description): Remove memory-tag related code.
8761         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
8762         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
8763         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
8764         and immediate uses in statements.  Document.
8765         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
8766         (dump_symbols): Remove.
8767         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
8768         * alias.c (get_deref_alias_set): New function split out from ...
8769         (get_alias_set): ... here.
8770         * alias.h (get_deref_alias_set): Declare.
8771         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
8772         type parameter.  Remove restrict pointer handling.  Create a
8773         ref-all pointer in case type-based alias sets do not conflict.
8774         (vect_analyze_data_refs): Remove SMT related code.
8775         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
8776         (vectorizable_load): Likewise.
8777         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
8778         (DR_SYMBOL_TAG, DR_VOPS): Remove.
8779         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
8780         Ignore vops and SMTs.
8781         (dr_analyze_alias): Likewise..
8782         (free_data_ref): Likewise.
8783         (create_data_ref): Likewise.
8784         (analyze_all_data_dependences): Likewise.
8785         (get_references_in_stmt): Adjust.
8786         * tree-flow-inline.h (gimple_aliases_computed_p,
8787         gimple_addressable_vars, gimple_call_clobbered_vars,
8788         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
8789         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
8790         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
8791         gimple_mem_ref_stats): Remove.
8792         (gimple_vop): New function.
8793         (op_iter_next_use): Remove vuses and mayuses cases.
8794         (op_iter_next_def): Remove vdefs case.
8795         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
8796         (clear_and_done_ssa_iter): Do not set removed fields.
8797         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
8798         Assert we are not iterating over vuses or vdefs if not also
8799         iterating over uses or defs.
8800         (op_iter_init_use): Likewise.
8801         (op_iter_init_def): Likewise.
8802         (op_iter_next_vdef): Remove.
8803         (op_iter_next_mustdef): Likewise.
8804         (op_iter_init_vdef): Likewise.
8805         (compare_ssa_operands_equal): Likewise.
8806         (link_use_stmts_after): Handle vuse operand.
8807         (is_call_used): Use is_call_clobbered.
8808         (is_call_clobbered): Global variables are always call clobbered,
8809         query the call-clobbers bitmap.
8810         (mark_call_clobbered): Ignore global variables.
8811         (clear_call_clobbered): Likewise.
8812         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
8813         virtual operands sanity check.
8814         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
8815         Remove.
8816         (TARGET_MEM_REF): Remove TMR_TAG operand.
8817         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
8818         Remove call-clobber related code.
8819         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
8820         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
8821         partitions or escape reason.
8822         (get_single_def_stmt, get_single_def_stmt_from_phi,
8823         get_single_def_stmt_with_phi): Remove.
8824         (dump_referenced_vars): Tidy.
8825         (get_ref_base_and_extent): Allow bare decls.
8826         (collect_dfa_stats): Adjust.
8827         * graphite.c (rename_variables_in_stmt): Adjust.
8828         (graphite_copy_stmts_from_block): Likewise.
8829         (translate_clast): Likewise.
8830         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
8831         (EXPR_DIES): New.
8832         (translate_vuse_through_block): Use the oracle.
8833         (phi_translate_1): Adjust.
8834         (value_dies_in_block_x): Use the oracle.  Cache the outcome
8835         in EXPR_DIES.
8836         (valid_in_sets): Check if the VUSE for
8837         a REFERENCE is available.
8838         (eliminate): Do not remove stmts during elimination,
8839         instead queue and remove them afterwards.
8840         (do_pre): Do not rebuild alias info.
8841         (pass_pre): Run TODO_rebuild_alias before PRE.
8842         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
8843         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
8844         (mark_all_v_defs_stmt): Remove.
8845         (mark_all_v_defs_seq): Adjust.
8846         (sra_replace): Likewise.
8847         (scalarize_use): Likewise.
8848         (scalarize_copy): Likewise.
8849         (scalarize_init): Likewise.
8850         (scalarize_ldst): Likewise.
8851         (todoflags): Remove.
8852         (tree_sra): Do not rebuild alias info.
8853         (tree_sra_early): Adjust.
8854         (pass_sra): Run TODO_update_address_taken before SRA.
8855         * tree-predcom.c (set_alias_info): Remove.
8856         (prepare_initializers_chain): Do not call it.
8857         (mark_virtual_ops_for_renaming): Adjust.
8858         (mark_virtual_ops_for_renaming_list): Remove.
8859         (initialize_root_vars): Adjust.
8860         (initialize_root_vars_lm): Likewise.
8861         (prepare_initializers_chain): Likewise.
8862         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
8863         (may_propagate_copy_into_stmt): Likewise.
8864         (merge_alias_info): Do nothing for now.
8865         (propagate_tree_value_into_stmt): Adjust.
8866         (stmt_may_generate_copy): Likewise.
8867         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
8868         not mark symbols for renaming.
8869         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
8870         with the same statement, make sure to update the new pointed-to one.
8871         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
8872         call statements, do not mark symbols for renaming.
8873         (mark_operand_necessary): Dump something.
8874         (ref_may_be_aliased): New function.
8875         (mark_aliased_reaching_defs_necessary_1): New helper function.
8876         (mark_aliased_reaching_defs_necessary): Likewise.
8877         (mark_all_reaching_defs_necessary_1): Likewise.
8878         (mark_all_reaching_defs_necessary): Likewise.
8879         (propagate_necessity): Do not process virtual PHIs.  For
8880         non-aliased loads mark all reaching definitions as necessary.
8881         For aliased loads and stores mark the immediate dominating
8882         aliased clobbers as necessary.
8883         (visited): New global static.
8884         (perform_tree_ssa_dce): Free visited bitmap after propagating
8885         necessity.
8886         (remove_dead_phis): Perform simple dead virtual PHI removal.
8887         (remove_dead_stmt): Properly unlink virtual operands when
8888         removing stores.
8889         (eliminate_unnecessary_stmts): Schedule PHI removal after
8890         stmt removal.
8891         * tree-ssa-ter.c (is_replaceable_p): Adjust.
8892         (process_replaceable): Likewise.
8893         (find_replaceable_in_bb): Likewise.
8894         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
8895         based on the single gimple vop.
8896         (verify_flow_insensitive_alias_info): Remove.
8897         (verify_flow_sensitive_alias_info): Likewise.
8898         (verify_call_clobbering): Likewise.
8899         (verify_memory_partitions): Likewise.
8900         (verify_alias_info): Likewise.
8901         (verify_ssa): Adjust..
8902         (execute_update_addresses_taken): Export.  Update SSA
8903         manually.  Optimize only when optimizing.  Use a local bitmap.
8904         (pass_update_address_taken): Remove TODO_update_ssa, add
8905         TODO_dump_func.
8906         (pass_update_address_taken): Just use TODO_update_address_taken.
8907         (init_tree_ssa): Do not initialize addressable_vars.
8908         (verify_ssa): Verify new VUSE / VDEF properties.
8909         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
8910         Do not call verify_alias_info.
8911         (delete_tree_ssa): Clear the VUSE, VDEF operands.
8912         Do not free the loaded and stored syms bitmaps.  Reset the escaped
8913         and callused solutions.  Do not free addressable_vars.
8914         Remove memory-tag related code.
8915         (warn_uninitialized_var): Aliases are always available.
8916         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
8917         * lambda-code.c (can_put_in_inner_loop): Adjust.
8918         (can_put_after_inner_loop): Likewise.
8919         (perfect_nestify): Likewise.
8920         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
8921         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
8922         (vectorizable_conversion): Do not mark symbols for renaming.
8923         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
8924         (expand_call_inline): Unlink the calls virtual operands before
8925         replacing it.
8926         (tree_function_versioning): Do not call update_ssa if we are not
8927         updating clones.  Simplify.
8928         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
8929         (propagate_with_phi): Likewise..
8930         * tree-outof-ssa.c (create_temp): Remove memory tag and call
8931         clobber code.  Assert we are not aliased or global.
8932         * tree-flow.h: Include tree-ssa-alias.h
8933         (enum escape_type): Remove.
8934         (struct mem_sym_stats_d): Likewise.
8935         (struct mem_ref_stats_d): Likewise.
8936         (struct gimple_df): Add vop member.  Remove global_var,
8937         call_clobbered_vars, call_used_vars, addressable_vars,
8938         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
8939         escaped and callused members.
8940         (struct ptr_info_def): Remove all members, add points-to solution
8941         member pt.
8942         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
8943         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
8944         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
8945         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
8946         (tree-ssa-alias.o): Likewise.
8947         (toplev.o): Add tree-ssa-alias.h
8948         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
8949         * gimple.c (gimple_set_bb): Fix off-by-one error.
8950         (is_gimple_reg): Do not handle memory tags.
8951         (gimple_copy): Also copy virtual operands.
8952         Delay updating the statement.  Do not reset loaded and stored syms.
8953         (gimple_set_stored_syms): Remove.
8954         (gimple_set_loaded_syms): Likewise.
8955         (gimple_call_copy_skip_args): Copy the virtual operands
8956         and mark the new statement modified.
8957         * tree-ssa-structalias.c (may_alias_p): Remove.
8958         (set_uids_in_ptset): Take the alias set to prune with as
8959         parameter.  Fold in the alias test of may_alias_p.
8960         (compute_points_to_sets): Compute whether a ptr is dereferenced
8961         in a local sbitmap.
8962         (process_constraint): Deal with &ANYTHING on the lhs, reject all
8963         other ADDRESSOF constraints on the lhs.
8964         (get_constraint_for_component_ref): Assert that we don't get
8965         ADDRESSOF constraints from the base of the reference.
8966         Properly generate UNKNOWN_OFFSET for DEREF if needed.
8967         (struct variable_info): Remove collapsed_to member.
8968         (get_varinfo_fc): Remove.
8969         (new_var_info): Do not set collapsed_to.
8970         (dump_constraint): Do not follow cycles.
8971         (dump_constraint_graph): Likewise.
8972         (build_pred_graph): Likewise.
8973         (build_succ_graph): Likewise.
8974         (rewrite_constraints): Likewise.
8975         (do_simple_structure_copy): Remove.
8976         (do_rhs_deref_structure_copy): Remove.
8977         (do_lhs_deref_structure_copy): Remove.
8978         (collapse_rest_of_var): Remove.
8979         (do_structure_copy): Re-implement.
8980         (pta_stats): New global variable.
8981         (dump_pta_stats): New function.
8982         (struct constraint_expr): Make offset signed.
8983         (UNKNOWN_OFFSET): Define special value.
8984         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
8985         (solution_set_expand): New helper function split out from ...
8986         (do_sd_constraint): ... here.
8987         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
8988         (do_ds_constraint): Likewise.
8989         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
8990         and CALLUSED = *CALLUSED.
8991         (set_union_with_increment): Make inc argument signed.
8992         (type_safe): Remove.
8993         (get_constraint_for_ptr_offset): Handle unknown and negative
8994         constant offsets.
8995         (first_vi_for_offset): Handle offsets before start.  Bail
8996         out early for offsets beyond the variable extent.
8997         (first_or_preceding_vi_for_offset): New function.
8998         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
8999         Together with ESCAPED = *ESCAPED this properly computes reachability.
9000         (find_what_var_points_to): New function.
9001         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
9002         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
9003         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
9004         pt_solutions_intersect): New functions.
9005         (compute_call_used_vars): Remove.
9006         (compute_may_aliases): New main entry into PTA computation.
9007         * gimple.h (gimple_p): New typedef.
9008         (struct gimple_statement_base): Remove references_memory_p.
9009         (struct gimple_statement_with_memory_ops_base): Remove
9010         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
9011         members.
9012         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
9013         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
9014         gimple_set_references_memory): Remove.
9015         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
9016         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
9017         New functions.
9018         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
9019         (verify_expr): Allow RESULT_DECL.
9020         (gimple_duplicate_bb): Do not copy virtual operands.
9021         (gimple_duplicate_sese_region): Adjust.
9022         (gimple_duplicate_sese_tail): Likewise.
9023         (mark_virtual_ops_in_region): Remove.
9024         (move_sese_region_to_fn): Do not call it.
9025         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
9026         and pass_simple_dse.
9027         (execute_function_todo): Handle TODO_update_address_taken,
9028         call execute_update_addresses_taken for TODO_rebuild_alias.
9029         (execute_todo): Adjust.
9030         (execute_one_pass): Init dump files early.
9031         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
9032         call-clobbered.
9033         (create_general_new_stmt): Clear vops.
9034         * tree-ssa-reassoc.c (get_rank): Adjust.
9035         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
9036         symbols for renaming.
9037         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
9038         (PARAM_AVG_ALIASED_VOPS): Likewise.
9039         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
9040         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
9041         * tree-ssa-operands.c: Simplify for new virtual operand representation.
9042         (operand_build_cmp, copy_virtual_operands,
9043         create_ssa_artificial_load_stmt, add_to_addressable_set,
9044         gimple_add_to_addresses_taken): Remove public functions.
9045         (unlink_stmt_vdef): New function.
9046
9047 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
9048
9049         * config.gcc (powerpc-*-linux*): Merge variants.
9050
9051 2009-04-02  Chao-ying Fu  <fu@mips.com>
9052             James Grosbach  <james.grosbach@microchip.com>
9053
9054         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
9055         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
9056         cop0_sp_offset.
9057         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
9058         keep_interrupts_masked_p, use_debug_exception_return_p.
9059         (mips_attribute_table): Add interrupt, use_shadow_register_set,
9060         keep_interrupts_masked, use_debug_exception_return.
9061         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
9062         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
9063         New functions.
9064         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
9065         (mips_print_operand): Process COP0 registers to print $0 .. $31
9066         correctly for GAS to process.
9067         (mips_interrupt_extra_call_saved_reg_p): New function.
9068         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
9069         extra registers.
9070         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
9071         (mips_compute_frame_info): Add supports for interrupt context that
9072         includes doubleword accumulators and COP0 registers.
9073         (mips_for_each_saved_acc): New function.
9074         (mips_for_each_saved_gpr_and_fpr): Change the function name from
9075         mips_for_each_saved_reg.
9076         (mips_save_reg): Save accumulators.
9077         (mips_kernel_reg_p): A new for_each_rtx callback.
9078         (mips_expand_prologue): Support interrupt handlers.
9079         (mips_restore_reg): Restore accumulators.
9080         (mips_expand_epilogue): Support interrupt handlers.
9081         (mips_can_use_return_insn): Return false for interrupt handlers.
9082         (mips_epilogue_uses): New function.
9083         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
9084         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
9085         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
9086         cop0_move): New instructions.
9087         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
9088         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
9089         defines.
9090         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
9091         New defines.
9092         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
9093         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
9094         interrupt handlers, we use K0 as the temporary register.
9095         (EPILOGUE_USES): Change to a function call.
9096         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
9097         handlers, we use K0 as the temporary register.
9098
9099         * doc/extend.texi (Function Attributes): Document interrupt,
9100         use_shadow_register_set, keep_interrupts_masked,
9101         use_debug_exception_return for MIPS attributes.
9102
9103 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
9104
9105         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
9106         Remove a number of t-files from tmake_file.
9107         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
9108         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
9109         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
9110         target_prototype, not TARGET_PROTOTYPE.
9111         (LINK_OS_GNU_SPEC): Define.
9112         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
9113         and darwin-ldoubdle.c.
9114
9115 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
9116
9117         PR driver/39293
9118         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
9119         (cpp_options): Ditto.
9120         (default_compilers): Ditto.
9121         (display_help): Ditto.
9122         (process_command): Ditto.
9123         (do_spec_1): Ditto.
9124         (set_input): Use lbasename instead of duplicate code.
9125         (save_temps_prefix): New static for -save-temps=obj.
9126         (save_temps_length): Ditto.
9127
9128         * doc/invoke.texi (-save-temps=obj): Document new variant to
9129         -save-temps switch.
9130
9131 2009-04-02  Jeff Law  <law@redhat.com>
9132
9133         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
9134         variable.
9135
9136 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
9137
9138         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
9139         * configure: Regenerated.
9140
9141 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
9142
9143         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
9144         share the argument list.
9145
9146 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
9147
9148         Merge
9149
9150         2009-02-12  Diego Novillo  <dnovillo@google.com>
9151
9152         * varpool.c (debug_varpool): New.
9153         * cgraph.h (debug_varpool): Declare.
9154
9155 2009-04-02  Jan Hubicka  <jh@suse.cz>
9156
9157         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
9158         pass.
9159
9160 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
9161
9162         * config/i386/i386.c (ix86_abi): Move initialization to ...
9163         (override_options): Here.
9164
9165 2009-04-02  Christian Bruel  <christian.bruel@st.com>
9166
9167         * config/sh/sh.c (sh_dwarf_register_span): New function.
9168         (TARGET_DWARF_REGISTER_SPAN): Define.
9169         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
9170
9171 2009-04-02  Ira Rosen  <irar@il.ibm.com>
9172
9173         PR tree-optimization/39595
9174         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
9175         interleaved loads group is not  greater than the SLP group size.
9176
9177 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
9178
9179         * builtins.c (is_builtin_name): New.
9180         (called_as_built_in): Use is_builtin_name.
9181         * tree.h (is_builtin_name): New.
9182         * varasm.c (incorporeal_function_p): Use is_builtin_name
9183
9184 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
9185
9186         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9187
9188 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
9189
9190         PR c++/26693
9191         * c-decl.c (clone_underlying_type): Move this ...
9192         * c-common.c (set_underlying_type): ... here.
9193         Also, make sure the function properly sets TYPE_STUB_DECL() on
9194         the newly created typedef variant type.
9195         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
9196         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9197         points.
9198
9199 2009-04-02  Richard Guenther  <rguenther@suse.de>
9200
9201         PR tree-optimization/37221
9202         * tree-flow.h (degenerate_phi_result): Declare.
9203         * tree-ssa-dom.c (degenerate_phi_result): Export.
9204         * tree-scalar-evolution.c (analyze_initial_condition): If
9205         the initial condition is defined by a degenerate PHI node
9206         use the degenerate value.
9207
9208 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
9209
9210         PR rtl-optimization/39588
9211         * combine.c (merge_outer_ops): Do not set the constant when this
9212         is not necessary.
9213         (simplify_shift_const_1): Do not modify it either in this case.
9214
9215 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
9216
9217         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
9218         tuning is deprecated if -mtune value is set to an Itanium1 variant.
9219
9220 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
9221
9222         PR c/29027
9223         * c-lex.c (interpret_float): Default (no suffix) is double.
9224
9225 2009-04-1  Xinliang David Li  <davidxl@google.com>
9226
9227         * config/i386/i386.c (legitimate_constant_p): Recognize
9228         all one vector constant.
9229
9230 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9231
9232         * config/vax/vax.c: Add #includes to silence warnings.
9233         Change #include order to silence two warnings.
9234
9235 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9236
9237         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
9238         (ASM_SPEC): Pass -k to the assembler for PIC code.
9239
9240 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9241
9242         * config.gcc: Add vax-*-linux* to the switch.
9243         * config/vax/linux.h: New file. (TARGET_VERSION,
9244         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
9245
9246 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9247
9248         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
9249         Use predicate macros instead of GET_CODE() == foo.
9250         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
9251         ashlsi3, rotrsi3, <unnamed>): Likewise.
9252
9253 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9254
9255         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
9256         jbbccihi, jbbccisi): Remova trailing whitespace.
9257         * config/vax/constraints.md: Likewise.
9258         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
9259         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
9260         * config/vax/predicates.md: Likewise.
9261         * config/vax/vax.c (print_operand_address, vax_output_int_move,
9262         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
9263         * config/vax/vax.h: Likewise.
9264         * config/vax/vax.md (nonlocal_goto): Likewise.
9265
9266 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9267
9268         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
9269         (indirectable_address_p, adjacent_operands_p): Add spaces around
9270         braces.
9271         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
9272
9273 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9274
9275         * config/vax/vax.c (legitimate_constant_address_p,
9276         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
9277         index_term_p, reg_plus_index_p, legitimate_address_p,
9278         vax_mode_dependent_address_p): Update comments to match functions
9279         modified by the recent int->bool conversion.
9280
9281 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9282
9283         * config/vax/builtins.md: Update copyright message.
9284         * config/vax/constraints.md: Likewise.
9285         * config/vax/netbsd-elf.h: Likewise.
9286         * config/vax/predicates.md: Likewise.
9287         * config/vax/vax-protos.h: Likewise.
9288         * config/vax/vax.c: Likewise.
9289         * config/vax/vax.h: Likewise.
9290         * config/vax/vax.md: Likewise.
9291         * config/vax/vax.opt: Likewise.
9292
9293 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
9294
9295         * config/vax/builtins.md (ffssi2, ffssi2_internal,
9296         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
9297         * config/vax/constraints.md (B, R): Likewise.
9298         * config/vax/predicates.md (external_memory_operand,
9299         nonimmediate_addsub_di_operand): Likewise.
9300         * config/vax/vax.c (vax_output_int_add): Likewise.
9301         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
9302         untyped_call): Likewise.
9303
9304 2009-04-01  Matt Thomas  <matt@3am-software.com>
9305
9306         * config/vax/predicates.md: New file.
9307         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
9308         external_const_operand, nonsymbolic_operand, external_memory_operand,
9309         indirect_memory_operand, indexed_memory_operand,
9310         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
9311         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
9312         predicate.
9313         * config/vax/constraints.md: New file.
9314         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
9315         New constraint.
9316         * config/vax/builtins.md: New file.
9317         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
9318         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
9319         jbbccisi): Define.
9320         * config/vax/vax.opt (mqmath): Add option.
9321         * config/vax/vax.md (isfx): Extend with DI.
9322         (VAXintQH, VAXintQHSD): Define.
9323         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
9324         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
9325         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
9326         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
9327         (movdi): Update constraints and use vax_output_int_move().
9328         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
9329         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
9330         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
9331         nonlocal_goto): New.
9332         (mov<mode>): Extend accepted operand types.
9333         (subdi3_old): Rename from subdi3, change update constraints and use
9334         a new implementation.
9335         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
9336         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
9337         MOVE_RATIO, CLEAR_RATIO): Define.
9338         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
9339         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9340         (PRINT_OPERAND): Redefine using a function instead of inlined code.
9341         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
9342         (split_quadword_operands): Make static and really allow variable
9343         splitting.
9344         (print_operand_address): Update for PIC generation.
9345         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
9346         indexable_address_p, fixup_mathdi_operand,
9347         vax_expand_addsub_di_operands, adjacent_operands_p): New.
9348         (vax_float_literal, legitimate_constant_p,
9349         indirectable_constant_address_p, index_term_p,
9350         reg_plus_index_p): Return bool instead of int.
9351         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
9352         where needed.
9353         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
9354         generation.
9355         (vax_output_conditional_branch): Indent.
9356         (legitimate_constant_address_p, indirectable_constant_address_p,
9357         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
9358         vax_mode_dependent_address_p): Return bool instead of int, update for
9359         PIC generation.
9360         * config/vax/vax-protos.h (legitimate_constant_address_p,
9361         legitimate_constant_p, legitimate_address_p,
9362         vax_mode_dependent_address_p): Change declaration to bool.
9363         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
9364         vax_expand_addsub_di_operands, vax_output_int_subtract,
9365         vax_output_movmemsi): Declare.
9366         (split_quadword_operands, vax_float_literal): Delete declaration.
9367         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
9368         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
9369         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
9370         ASM_OUTPUT_DWARF_PCREL): Define.
9371         (ASM_SPEC): Change definition to allow PIC generation.
9372
9373 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
9374
9375         * doc/sourcebuild.texi: Update front-end requirements.
9376
9377 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
9378
9379         PR target/39226
9380         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
9381         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
9382         (booldi3_internal3): Use boolean_or_operator instead of
9383         boolean_operator.
9384
9385 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
9386
9387         PR c/39605
9388         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
9389         declarator whose size is not an integer constant expression but
9390         folds to an integer constant, then treat it as a constant
9391         subsequently.
9392
9393 2009-04-01  Richard Guenther  <rguenther@suse.de>
9394
9395         * fold-const.c (fold_plusminus_mult_expr): Do not fold
9396         i * 4 + 2 to (i * 2 + 1) * 2.
9397
9398 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
9399
9400         PR c/37772
9401         * c-parser.c (c_parser_asm_statement): Skip until close paren and
9402         return if c_parser_asm_string_literal returned NULL.
9403
9404 2009-04-01  Nick Clifton  <nickc@redhat.com>
9405
9406         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
9407         already defined.
9408         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
9409         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
9410         other typedefs to avoid conflicts with libgcc2.c.  Define labels
9411         to gain 16-bit bit-manipulation functions from libgcc2.c and then
9412         include it.
9413         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
9414         to gain 16-bit trapping arithmetic functions from libgcc2.c and
9415         then include it.
9416
9417 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
9418
9419         * varasm.c (default_function_rodata_section): Declare DOT as
9420         const char*.
9421
9422 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
9423             Andrey Galkin  <agalkin@hypercom.com>
9424
9425         PR/39492
9426         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
9427         Make object_name unique for each process.
9428
9429 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
9430
9431         PR other/39591
9432         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
9433         addressable variables in the parallel that could go out of scope while
9434         running queued tasks.
9435
9436 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
9437
9438         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
9439         (CASE_VALUES_THRESHOLD): Redefine.
9440         * config/avr/avr.c (avr_override_options): Remove initialization of
9441         avr_case_values_threshold variable.
9442         (avr_case_values_threshold): Remove variable. Add new function.
9443         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
9444         * config/avr/avr.opt (mno-tablejump): Remove option.
9445         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
9446
9447 2009-04-01  DJ Delorie  <dj@redhat.com>
9448
9449         * varasm.c (default_function_rodata_section): Don't assume
9450         anything about where the first '.' in the section name is.
9451
9452 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
9453
9454         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
9455         rs6000_emit_stack_tie.
9456
9457 2009-03-31  Ian Lance Taylor  <iant@google.com>
9458
9459         * tree-eh.c (tree_remove_unreachable_handlers): Compare
9460         gimple_code with GIMPLE_RESX, not RESX.
9461
9462 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
9463
9464         * c-common.c (c_get_ident): New.
9465         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
9466
9467 2009-04-01  Ben Elliston  <bje@au.ibm.com>
9468
9469         * config/rs6000/sysv4.opt (msdata): Improve option description.
9470
9471 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
9472
9473         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
9474         (divdf3_internal_lat): Remove.
9475         (divxf3_internal_lat): Remove.
9476         (divxf3_internal_thr): Remove.
9477         (divxf): Use divxf3_internal.
9478         * config/ia64/div.md (divsf3_internal_lat): New.
9479         (divdf3_internal_lat): New.
9480         (divxf3_internal): New.
9481
9482 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
9483
9484         PR c/448
9485         * Makefile.in (USE_GCC_STDINT): Define.
9486         (stmp-int-hdrs): Install stdint.h if applicable.
9487         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
9488         if known.
9489         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
9490         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
9491         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9492         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9493         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9494         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9495         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9496         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9497         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9498         (c_common_nodes_and_builtins): Initialize
9499         underlying_wchar_type_node.  Do not initialize
9500         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
9501         nodes for new types.
9502         (c_stddef_cpp_builtins): Define macros for new types.
9503         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
9504         Remove.
9505         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
9506         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
9507         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
9508         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
9509         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
9510         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
9511         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
9512         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
9513         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
9514         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
9515         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
9516         int16_type_node, int32_type_node, int64_type_node,
9517         uint8_type_node, uint16_type_node, c_uint32_type_node,
9518         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
9519         int_least32_type_node, int_least64_type_node,
9520         uint_least8_type_node, uint_least16_type_node,
9521         uint_least32_type_node, uint_least64_type_node,
9522         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
9523         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
9524         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
9525         uintptr_type_node): Define.
9526         * c-cppbuiltin.c (builtin_define_constants,
9527         builtin_define_type_minmax): New.
9528         (builtin_define_stdint_macros): Define more macros.
9529         (c_cpp_builtins): Define more limit macros.
9530         (type_suffix): New.
9531         (builtin_define_type_max): Define in terms of
9532         builtin_define_type_minmax.  Remove is_long parameter.  All
9533         callers changed.
9534         * config.gcc (use_gcc_stdint): Define.
9535         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
9536         Add newlib-stdint.h for generic targets.
9537         * config/glibc-stdint.h, config/newlib-stdint.h,
9538         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
9539         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
9540         * config/score/score.h (UINTPTR_TYPE): Define.
9541         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
9542         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
9543         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9544         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9545         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9546         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9547         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9548         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9549         * config/spu/spu.h (STDINT_LONG32): Define.
9550         * configure.ac (use_gcc_stdint): Substitute.
9551         * configure: Regenerate.
9552         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
9553         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
9554         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
9555         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
9556         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
9557         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
9558         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
9559         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
9560         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
9561         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
9562         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
9563         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
9564         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
9565         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
9566         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
9567         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
9568         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
9569         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
9570         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
9571         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
9572         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
9573         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
9574         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9575         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9576         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9577         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9578         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9579         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9580         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
9581
9582 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
9583
9584         * loop-iv.c (suitable_set_for_replacement): Renamed from
9585         simplify_using_assignment; changed to return bool and to accept new
9586         args DEST and SRC.  Return true iff we find a source/destination pair
9587         that can be used to make a replacement, and fill SRC and DEST if so.
9588         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
9589         changed.
9590         (simplify_using_initial_values): Deal with altered regs here and track
9591         more precisely the effect they have on the validity of our expression.
9592
9593         * loop-iv.c (simplify_using_condition): A condition of the form
9594         (EQ REG CONST) can be used to simply make a substitution.
9595         (simplify_using_initial_values): Keep track of conditions we have seen
9596         and keep using them to simplify new expressions, while applying the
9597         same substitutions to them as to the expression.
9598
9599         * simplify-rtx.c (simplify_relational_operation_1): Simplify
9600         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
9601         GEU/LTU reversed.
9602
9603         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
9604         changed.  Use this when trying to improve the upper bound.
9605         Generate the comparison by using simplify_gen_relational.
9606
9607         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
9608
9609         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
9610         functions.
9611         (simplify_using_assignment, simplify_using_initial_values): Call
9612         replace_in_expr to make replacements.  Call replace_single_def_regs
9613         once on the initial version of the expression.
9614
9615 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9616
9617         PR target/27237
9618         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
9619
9620 2009-03-31  Richard Guenther  <rguenther@suse.de>
9621
9622         PR middle-end/31029
9623         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
9624         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
9625
9626 2009-03-31  Richard Guenther  <rguenther@suse.de>
9627
9628         * tree.h (div_if_zero_remainder): Declare.
9629         * fold-const.c (div_if_zero_remainder): Export.
9630         * tree-ssa-forwprop.c
9631         (forward_propagate_addr_into_variable_array_index): Handle
9632         constant array index addition outside of the variable index.
9633
9634 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
9635
9636         PR target/39592
9637         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
9638         define_splits, floatunssi<mode>2): Require x87 conversions from
9639         DImode to be permitted.
9640
9641 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
9642
9643         PR preprocessor/15638
9644         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
9645
9646 2009-03-31  Richard Guenther  <rguenther@suse.de>
9647
9648         PR middle-end/23401
9649         PR middle-end/27810
9650         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
9651         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
9652         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
9653         a separate statement.
9654         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
9655         (lookup_tmp_var): Likewise.
9656         (is_gimple_formal_tmp_or_call_rhs): Remove.
9657         (is_gimple_reg_or_call_rhs): Rename to ...
9658         (is_gimple_reg_rhs_or_call): ... this.
9659         (is_gimple_mem_or_call_rhs): Rename to ...
9660         (is_gimple_mem_rhs_or_call): ... this.
9661         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
9662         DECL_GIMPLE_REG_P only if is_formal is true.
9663         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
9664         for non-proper post-modify expression gimplification.
9665         (gimplify_self_mod_expr): For post-modify expressions gimplify
9666         the lvalue to a minimal lvalue.
9667         (rhs_predicate_for): Remove formal temp case.
9668         (gimplify_modify_expr_rhs): Likewise.
9669         (gimplify_addr_expr): Use is_gimple_reg.
9670         (gimplify_expr): Remove formal temp cases.
9671         (gimple_regimplify_operands): Likewise.
9672         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
9673         and FILTER_EXPR like constants.
9674         * gimple.c (walk_gimple_op): Fix val_only initialization, use
9675         is_gimple_reg.
9676         (is_gimple_formal_tmp_rhs): Remove.
9677         (is_gimple_reg_rhs): Remove special casing.
9678         (is_gimple_mem_rhs): Fix.
9679         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
9680         (is_gimple_formal_tmp_var): Remove.
9681         (is_gimple_formal_tmp_reg): Likewise.
9682         (is_gimple_min_lval): Allow invariant component ref parts.
9683         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
9684         is_gimple_formal_tmp_reg): Remove declarations.
9685         * tree-cfg.c (verify_expr): Verify that variables with address
9686         taken do not have DECL_GIMPLE_REG_P set.
9687         * tree-mudflap.c (mf_build_check_statement_for): Use
9688         force_gimple_operand instead of gimplify_expr.
9689
9690 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
9691
9692         * modulo-sched.c (sms_schedule_by_order): Pass the actual
9693         schedulable rows to compute_split_row.
9694
9695 2009-03-31  Ben Elliston  <bje@au.ibm.com>
9696
9697         PR target/31635
9698         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
9699         OPT_mvrsave.
9700
9701 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
9702
9703         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
9704         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
9705         * configure: Regenerate.
9706         * config.in: Regenerate.
9707         * config/rs6000/rs6000.opt (mtls-markers): Add.
9708         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
9709         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
9710         (tls_ld_aix, tls_ld_sysv): Likewise.
9711         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
9712         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
9713
9714 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
9715
9716         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
9717
9718 2009-03-30  Jan Hubicka  <jh@suse.cz>
9719
9720         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
9721         out of RESX.
9722         (tree_remove_unreachable_handlers): Cleanup EH predecestor
9723         detection and label handling.
9724
9725 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
9726
9727         * ira-int.h (ira_allocno): Rename left_conflicts_num to
9728         left_conflicts_size.
9729         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
9730         ALLOCNO_LEFT_CONFLICTS_SIZE.
9731
9732         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
9733         remove_allocno_from_bucket_and_push,
9734         allocno_spill_priority_compare, push_allocnos_to_stack,
9735         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9736         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
9737         (setup_allocno_left_conflicts_num): Ditto.  Rename to
9738         setup_allocno_left_conflicts_size.
9739         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9740         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
9741         setup_allocno_left_conflicts_size instead of
9742         setup_allocno_left_conflicts_num.
9743
9744         * ira-build.c (ira_create_allocno): Use
9745         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
9746         ALLOCNO_LEFT_CONFLICTS_NUM.
9747
9748 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
9749
9750         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9751         instead of DF_LR_OUT.
9752
9753         * ira-lives.c (process_bb_node_lives): Ditto.
9754
9755         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9756         instead of DF_LR_{OUT,IN}.
9757
9758         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9759
9760         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9761
9762 2009-03-30  Jan Hubicka  <jh@suse.cz>
9763
9764         * except.c (label_to_region_map): Fix thinko.
9765
9766 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
9767
9768         PR middle-end/38237
9769         * tree.h (tree_find_value): New declaration.
9770         * tree.c (tree_find_value): New function.
9771         * varasm.c (assemble_external): Avoid duplicate entries on lists.
9772
9773 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
9774
9775         PR debug/39563
9776         * c-decl.c (struct c_binding): Add locus field.
9777         (bind): Add locus argument, set locus field from it.
9778         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
9779         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
9780         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
9781         implicitly_declare, undeclared_variable, lookup_label,
9782         declare_label, c_make_fname_decl, c_builtin_function,
9783         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
9784         bind callers.
9785
9786 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
9787
9788         PR target/38781
9789         * config/i386/i386.c (classify_argument): Check total size of
9790         structure.
9791
9792 2009-03-30  Martin Jambor  <mjambor@suse.cz>
9793
9794         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
9795         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
9796         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
9797         respectively.
9798
9799         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
9800         seen_variable_array_ref while also traversing a union.
9801
9802         * tree-inline.c (optimize_inline_calls): Do not call
9803         cgraph_node_remove_callees.
9804         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
9805         (pass_remove_cgraph_callee_edges): New variable.
9806         * passes.c (init_optimization_passes): Add
9807         pass_remove_cgraph_callee_edges after early inlining and before all
9808         late intraprocedural passes.
9809
9810         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
9811
9812 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9813
9814         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
9815         Fix typos in names.
9816
9817 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9818
9819         * combine.c (simplify_comparison): Use have_insn_for.
9820         * dojump.c (do_jump): Likewise.
9821
9822 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9823
9824         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
9825         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
9826         sparc_compare_op0 like sparc_compare_emitted used to be handled.
9827         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
9828         instead of sparc_compare_emitted.
9829         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
9830         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
9831         instead of sparc_compare_emitted.
9832
9833 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9834
9835         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
9836         enter/exit cfglayout mode.
9837         (pass_partition_block): Require it.
9838         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
9839         (combine_instructions): Track basic blocks instead of labels.
9840         (update_cfg_for_uncondjump): New.
9841         (try_combine): Use it.  Update jumps after rescanning.
9842         (pass_combine): Require PROP_cfglayout.
9843         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
9844
9845 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9846
9847         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
9848         Provide/destroy PROP_cfglayout respectively.
9849         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
9850         * tree-pass.h (PROP_cfglayout): New.
9851
9852 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
9853
9854         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
9855         fold_convert_const_fixed_from_fixed,
9856         fold_convert_const_fixed_from_int,
9857         fold_convert_const_fixed_from_real, fold_negate_const): Do not
9858         set TREE_CONSTANT_OVERFLOW.
9859         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
9860         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
9861
9862 2009-03-30  Ira Rosen  <irar@il.ibm.com>
9863
9864         * tree-vect-loop-manip.c: New file.
9865         * tree-vectorizer.c: Update documentation and included files.
9866         (vect_loop_location): Make extern.
9867         (rename_use_op): Move to tree-vect-loop-manip.c
9868         (rename_variables_in_bb, rename_variables_in_loop,
9869         slpeel_update_phis_for_duplicate_loop,
9870         slpeel_update_phi_nodes_for_guard1,
9871         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
9872         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
9873         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
9874         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
9875         find_loop_location): Likewise.
9876         (new_stmt_vec_info): Move to tree-vect-stmts.c.
9877         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
9878         get_vectype_for_scalar_type, vect_is_simple_use,
9879         supportable_widening_operation, supportable_narrowing_operation):
9880         Likewise.
9881         (bb_in_loop_p): Move to tree-vect-loop.c.
9882         (new_loop_vec_info, destroy_loop_vec_info,
9883         reduction_code_for_scalar_code, report_vect_op,
9884         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
9885         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
9886         (vect_supportable_dr_alignment): Likewise.
9887         * tree-vectorizer.h (tree-data-ref.h): Include.
9888         (vect_loop_location): Declare.
9889         Reorganize function declarations according to the new file structure.
9890         * tree-vect-loop.c: New file.
9891         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
9892         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
9893         * tree-vect-data-refs.c: New file.
9894         * tree-vect-patterns.c (timevar.h): Don't include.
9895         * tree-vect-stmts.c: New file.
9896         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
9897         tree-vect-slp.c, tree-vect-loop.c.
9898         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
9899         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
9900         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
9901         (tree-vect-analyze.o): Remove.
9902         (tree-vect-transform.o): Likewise.
9903         (tree-vect-data-refs.o): Add rule.
9904         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
9905         tree-vect-slp.o): Likewise.
9906         (tree-vect-patterns.o): Remove redundant dependencies.
9907         (tree-vectorizer.o): Likewise.
9908         * tree-vect-slp.c: New file.
9909
9910 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9911
9912         * optc-gen.awk: Warn if an option flag has multiple different
9913         help strings.
9914
9915 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
9916
9917         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
9918         -floop-block): Document dependences on PPL, CLooG and Graphite.
9919
9920 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
9921
9922         PR rtl-optimization/323
9923         * c-common.c (c_fully_fold, convert_and_check,
9924         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
9925         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
9926         * c-common.def (EXCESS_PRECISION_EXPR): New.
9927         * c-cppbuiltin.c (builtin_define_float_constants): Define
9928         constants with enough digits for long double.
9929         * c-lex.c (interpret_float): Interpret constant with excess
9930         precision where appropriate.
9931         * c-opts.c (c_common_post_options): Set
9932         flag_excess_precision_cmdline.  Give an error for
9933         -fexcess-precision=standard for C++ for processors where the
9934         option is significant.
9935         * c-parser.c (c_parser_conditional_expression): Handle excess
9936         precision in condition.
9937         * c-typeck.c (convert_arguments): Handle arguments with excess
9938         precision.
9939         (build_unary_op): Move excess precision outside operation.
9940         (build_conditional_expr): Likewise.
9941         (build_compound_expr): Likewise.
9942         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
9943         (build_modify_expr): Handle excess precision in RHS.
9944         (convert_for_assignment): Handle excess precision in converted
9945         value.
9946         (digest_init, output_init_element, process_init_element): Handle
9947         excess precision in initializer.
9948         (c_finish_return): Handle excess precision in return value.
9949         (build_binary_op): Handle excess precision in operands and add
9950         excess precision as needed for operation.
9951         * common.opt (-fexcess-precision=): New option.
9952         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
9953         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9954         For standard excess precision, output explicit conversion to and
9955         truncation from XFmode.
9956         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
9957         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
9958         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
9959         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
9960         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
9961         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
9962         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
9963         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
9964         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
9965         define_splits, sqrt<mode>2): Disable where appropriate for
9966         standard excess precision.
9967         * convert.c (convert_to_real): Do not shorten arithmetic to type
9968         for which excess precision would be used.
9969         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
9970         * doc/invoke.texi (-fexcess-precision=): Document option.
9971         (-mfpmath=): Correct index entry.
9972         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
9973         flag_excess_precision): New.
9974         * langhooks.c (lhd_post_options): Set
9975         flag_excess_precision_cmdline.
9976         * opts.c (common_handle_option): Handle -fexcess-precision=.
9977         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
9978         init_excess_precision): New.
9979         (lang_dependent_init_target): Call init_excess_precision.
9980         * tree.c (excess_precision_type): New.
9981         * tree.h (excess_precision_type): Declare.
9982
9983 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
9984
9985         PR c/35235
9986         * c-typeck.c (build_component_ref): Do not copy qualifiers from
9987         non-lvalue to component.
9988
9989 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
9990
9991         PR preprocessor/34695
9992         * Makefile.in (c-opts.o): Depend on c-tree.h.
9993         * c-common.c: Move down include of diagnostic.h.
9994         (done_lexing, c_cpp_error): New.
9995         * c-common.h (done_lexing): Declare.
9996         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
9997         (parse_in).
9998         * c-opts.c: Include c-tree.h.
9999         (c_common_init_options): Set preprocessor error callback.
10000         (c_common_handle_option): Do not set preprocessor
10001         inhibit_warnings, warnings_are_errors, warn_system_headers,
10002         pedantic_errors or inhibit_warnings flags.
10003         (c_common_post_options): Do not check cpp_errors (parse_in).
10004         (c_common_finish): Do not output dependencies if there were
10005         errors.  Do not check return value of cpp_finish.
10006         * c-ppoutput.c (pp_file_change): Set input_location.
10007         * c-tree.h (c_cpp_error): Declare.
10008         * diagnostic.c (diagnostic_set_info_translated): Also initialize
10009         override_column.
10010         (diagnostic_build_prefix): Check override_column.
10011         * diagnostic.h (diagnostic_info): Add override_column field.
10012         (diagnostic_override_column): Define.
10013
10014 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
10015
10016         * c-common.c (c_expand_expr, c_staticp): Remove.
10017         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
10018         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
10019         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
10020         * c-gimplify.c (gimplify_compound_literal_expr,
10021         optimize_compound_literals_in_ctor): Remove.
10022         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
10023         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
10024         * c-semantics.c (emit_local_var): Remove.
10025
10026         * langhooks-def.h (lhd_expand_expr): Remove.
10027         * langhooks.c (lhd_expand_expr): Remove.
10028         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
10029
10030         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
10031         handling from c-semantics.c; don't call into langhook.
10032         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
10033         * gimplify.c (gimplify_compound_literal_expr,
10034         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
10035         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
10036         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
10037         as was done in c-gimplify.c.
10038         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
10039         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
10040         Move from c-common.h.
10041         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
10042
10043         * tree.c (staticp): Do not call langhook.
10044         * langhooks.c (lhd_staticp): Delete.
10045         * langhooks-def.h (lhd_staticp): Delete prototype.
10046         (LANG_HOOKS_STATICP): Delete.
10047         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
10048
10049         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
10050         instead of DECL_STMTs.
10051
10052 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
10053
10054         PR c/456
10055         PR c/5675
10056         PR c/19976
10057         PR c/29116
10058         PR c/31871
10059         PR c/35198
10060         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
10061         void_type_node.
10062         (fold_call_expr): Return a NOP_EXPR from folding rather than the
10063         contained expression.
10064         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
10065         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
10066         conditional expressions for C.
10067         (decl_constant_value_for_optimization): Move from
10068         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
10069         whether optimizing and that the expression is a VAR_DECL not of
10070         array type instead of doing such checks in the caller.  Do not
10071         check pedantic.  Call gcc_unreachable for C++.
10072         * c-common.def (C_MAYBE_CONST_EXPR): New.
10073         * c-common.h (c_fully_fold, c_save_expr,
10074         decl_constant_value_for_optimization): New prototypes.
10075         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10076         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10077         EXPR_INT_CONST_OPERANDS): Define.
10078         * c-convert.c (convert): Strip nops from expression.
10079         * c-decl.c (groktypename): Take extra parameters expr and
10080         expr_const_operands.  Update call to grokdeclarator.
10081         (start_decl): Update call to grokdeclarator.  Add statement for
10082         expressions used in type of decl.
10083         (grokparm): Update call to grokdeclarator.
10084         (push_parm_decl): Update call to grokdeclarator.
10085         (build_compound_literal): Add parameter non_const and build a
10086         C_MAYBE_COSNT_EXPR if applicable.
10087         (grokdeclarator): Take extra parameters expr and
10088         expr_const_operands.  Track expressions used in declaration
10089         specifiers and declarators.  Fold array sizes and track whether
10090         they are constant expressions and whether they are integer
10091         constant expressions.
10092         (parser_xref_tag): Set expr and expr_const_operands fields in
10093         return value.
10094         (grokfield): Update call to grokdeclarator.
10095         (start_function): Update call to grokdeclarator.
10096         (build_null_declspecs): Set expr and expr_const_operands fields in
10097         return value.
10098         (declspecs_add_type): Handle expressions in typeof specifiers.
10099         * c-parser.c (c_parser_declspecs): Set expr and
10100         expr_const_operands fields for declaration specifiers.
10101         (c_parser_enum_specifier): Likewise.
10102         (c_parser_struct_or_union_specifier): Likewise.
10103         (c_parser_typeof_specifier): Likewise.  Update call to
10104         groktypename.  Fold expression as needed.  Return expressions with
10105         type instead of adding statements.
10106         (c_parser_attributes): Update calls to c_parser_expr_list.
10107         (c_parser_statement_after_labels): Fold expression before passing
10108         to objc_build_throw_stmt.
10109         (c_parser_condition): Fold expression.
10110         (c_parser_asm_operands): Fold expression.
10111         (c_parser_conditional_expression): Use c_save_expr.  Update call
10112         to build_conditional_expr.
10113         (c_parser_alignof_expression): Update call to groktypename.
10114         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
10115         original_code.  Fold expression argument of va_arg.  Create
10116         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
10117         argument to va_arg.  Update calls to groktypename.  Fold array
10118         index for offsetof.  Verify that first argument to
10119         __builtin_choose_expr has integer type.
10120         (c_parser_postfix_expression_after_paren_type): Update calls to
10121         groktypename and build_compound_literal.  Handle expressions with
10122         side effects in type name.
10123         (c_parser_postfix_expression_after_primary): Update call to
10124         c_parser_expr_list.  Set original_code for calls to
10125         __builtin_constant_p.
10126         (c_parser_expr_list): Take extra parameter fold_p.  Fold
10127         expressions if requested.
10128         (c_parser_objc_type_name): Update call to groktypename.
10129         (c_parser_objc_synchronized_statement): Fold expression.
10130         (c_parser_objc_receiver): Fold expression.
10131         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
10132         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
10133         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
10134         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
10135         (struct c_typespec): Add elements expr and expr_const_operands.
10136         (struct c_declspecs): Add elements expr and expr_const_operands.
10137         (groktypename, build_conditional_expr, build_compound_literal):
10138         Update prototypes.
10139         (in_late_binary_op): Declare.
10140         * c-typeck.c (note_integer_operands): New function.
10141         (in_late_binary_op): New variable.
10142         (decl_constant_value_for_broken_optimization): Move to c-common.c
10143         and rename to decl_constant_value_for_optimization.
10144         (default_function_array_conversion): Do not strip nops.
10145         (default_conversion): Do not call
10146         decl_constant_value_for_broken_optimization.
10147         (build_array_ref): Do not fold result.
10148         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
10149         result when operand is a VLA.
10150         (c_expr_sizeof_type): Update call to groktypename.  Handle
10151         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
10152         result when operand names a VLA type.
10153         (build_function_call): Update call to build_compound_literal.
10154         Only fold result for calls to __builtin_* functions.  Strip
10155         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
10156         the function designator.
10157         (convert_arguments): Fold arguments.  Update call to
10158         convert_for_assignment.
10159         (build_unary_op): Handle increment and decrement of
10160         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
10161         decrement earlier.  Fold operand of increment and decrement.
10162         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
10163         built for integer operand.  Wrap returns that are INTEGER_CSTs
10164         without being integer constant expressions or that have integer
10165         constant operands without being INTEGER_CSTs.
10166         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
10167         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
10168         result is an integer constant expression or can be used in
10169         unevaluated parts of one and avoid folding and wrap as
10170         appropriate.  Fold operands before possibly doing -Wsign-compare
10171         warnings.
10172         (build_compound_expr): Wrap result for C99 if operands can be used
10173         in integer constant expressions.
10174         (build_c_cast): Update call to digest_init.  Do not ignore
10175         overflow from casting floating-point constants to integers.  Wrap
10176         results that could be confused with integer constant expressions,
10177         null pointer constants or floating-point constants.
10178         (c_cast_expr): Update call to groktypename.  Handle expressions
10179         included in type name.
10180         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
10181         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
10182         Update calls to convert_for_assignment.
10183         (convert_for_assignment): Take new parameter
10184         null_pointer_constant.  Do not strip nops or call
10185         decl_constant_value_for_broken_optimization.  Set
10186         in_late_binary_op for conversions to boolean.
10187         (store_init_value): Update call to digest_init.
10188         (digest_init): Take new parameter null_pointer_constant.  Do not
10189         call decl_constant_value_for_broken_optimization.  pedwarn for
10190         initializers not constant expressions.  Update calls to
10191         convert_for_assignment.
10192         (constructor_nonconst): New.
10193         (struct constructor_stack): Add nonconst element.
10194         (really_start_incremental_init, push_init_level, pop_init_level):
10195         Handle constructor_nonconst and nonconst element.
10196         (set_init_index): Call constant_expression_warning for array
10197         designators.
10198         (output_init_element): Fold value.  Set constructor_nonconst as
10199         applicable.  pedwarn for initializers not constant expressions.
10200         Update call to digest_init.  Call constant_expression_warning
10201         where constant initializers are required.
10202         (process_init_element): Use c_save_expr.
10203         (c_finish_goto_ptr): Fold expression.
10204         (c_finish_return): Fold return value.  Update call to
10205         convert_for_assignment.
10206         (c_start_case): Fold switch expression.
10207         (c_process_expr_stmt): Fold expression.
10208         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
10209         ensure statement expression is not evaluated in constant expression.
10210         (build_binary_op): Track whether results are integer constant
10211         expressions or may occur in such, disable folding and wrap results
10212         as applicable.  Fold operands for -Wsign-compare warnings unless
10213         in_late_binary_op.
10214         (c_objc_common_truthvalue_conversion): Handle results folded to
10215         integer constants that are not integer constant expressions.
10216         * doc/extend.texi: Document when typeof operands are evaluated,
10217         that condition of __builtin_choose_expr is an integer constant
10218         expression, and more about use of __builtin_constant_p in
10219         initializers.
10220
10221 2009-03-29  Richard Guenther  <rguenther@suse.de>
10222
10223         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
10224         propagate addresses of array references.
10225
10226 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
10227
10228         * regmove.c (perhaps_ends_bb_p): Remove.
10229         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
10230         from INSN and check that the main loop stays within that basic block.
10231         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
10232         (regmove_forward_pass): Split out from regmove_optimize.  Use
10233         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
10234         (regmove_backward_pass): Split out from regmove_optimize.  Use
10235         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
10236         (regmove_optimize): Simplify.
10237
10238 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
10239
10240         PR target/39545
10241         * config/i386/i386.c (classify_argument): Ignore flexible array
10242         member in struct and warn ABI change.
10243
10244 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
10245
10246         * config/i386/i386-protos.h (ix86_agi_dependent): New.
10247
10248         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
10249         (ix86_adjust_cost): Updated.
10250
10251 2009-03-29  Jan Hubicka  <jh@suse.cz>
10252
10253         PR middle-end/28850
10254         * tree-pass.h (pass_cleanup_eh): New function.
10255         (remove_unreachable_regions): Break code handling RTL
10256         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
10257         that can not be reached by runtime.
10258         (can_be_reached_by_runtime): New function.
10259         (label_to_region_map): New function.
10260         (num_eh_regions): New function.
10261         (rtl_remove_unreachable_regions): New function.
10262         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
10263         (remove_eh_region): New function.
10264         * except.h: Include sbitmap and vecprim.
10265         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
10266         num_eh_regions): Declare.
10267         * passes.c (init_optimization_passes): Schedule cleanup_eh.
10268         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
10269         * tree-eh.c (tree_remove_unreachable_handlers): New function.
10270         (tree_empty_eh_handler_p): New function.
10271         (cleanup_empty_eh): New function.
10272         (cleanup_eh): New function.
10273         (pass_cleanup_eh): New function.
10274
10275 2009-03-29  Jan Hubicka  <jh@suse.cz>
10276
10277         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
10278         for removed regions.
10279
10280 2009-03-29  Jan Hubicka  <jh@suse.cz>
10281
10282         * except.c (dump_eh_tree): Dump all datastructures.
10283
10284 2009-03-29  Jan Hubicka  <jh@suse.cz>
10285
10286         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
10287         (duplicate_eh_regions_1): Likewise.
10288         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
10289         vector; call EH verification.
10290         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10291         Be ready for region being removed.
10292
10293 2009-03-29  Jan Hubicka  <jh@suse.cz>
10294
10295         * bitmap.c (bitmap_last_set_bit): New function.
10296         * bitmap.h (bitmap_last_set_bit): Declare.
10297
10298 2009-03-29  David Ayers  <ayers@fsfe.org>
10299
10300         PR objc/27377
10301         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
10302         by calling objc_compare_types and surpress warnings about
10303         incompatible C pointers that are compatible ObjC pointers.
10304
10305 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
10306
10307         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
10308         call initialize_inline_failed.
10309         (initialize_inline_failed): Move it from here ...
10310         * cgraph.c (initialize_inline_failed): ... to here.
10311         (cgraph_create_edge): Call initialize_inline_failed rather than
10312         setting inline_failed directly.
10313
10314 2009-03-29  Ben Elliston  <bje@au.ibm.com>
10315
10316         PR target/32542
10317         * sysv4.opt (msdata): Improve comment.
10318         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
10319         * sysv4.h (SVR4_ASM_SPEC): Likewise.
10320
10321 2009-03-29  Ben Elliston  <bje@au.ibm.com>
10322
10323         PR target/30451
10324         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
10325         load and store attributes.
10326
10327 2009-03-29  Ben Elliston  <bje@au.ibm.com>
10328
10329         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
10330         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
10331         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
10332         * doc/extend.texi (X86 Built-in Functions): Add index entries for
10333         __builtin_infq and __builtin_huge_valq.
10334
10335 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
10336
10337         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
10338         atmega8m1 devices.
10339         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10340         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
10341
10342 2009-03-28  Xinliang David Li  <davidxl@google.com>
10343
10344         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
10345         (do_dbg_cnt): New function.
10346
10347 2009-03-28  Jan Hubicka  <jh@suse.cz>
10348
10349         Merge from pretty-ipa:
10350
10351         2009-03-27  Jan Hubicka  <jh@suse.cz>
10352
10353         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10354         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
10355         * passes.c (function_called_by_processed_nodes_p): New.
10356         * ipa-pure-const.c (check_call): Fix handling of operands.
10357         (analyze_function): Dump debug output for skipped bodies.
10358         (local_pure_const): Use function_called_by_processed_nodes_p.
10359         * dwarf2out.c (reference_to_unused): Use output.
10360         * passes.c (do_per_function_toporder): Likewise.
10361
10362         2008-11-12  Jan Hubicka  <jh@suse.cz>
10363
10364         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
10365         * ipa-pure-const.c (funct_state_d): Add can throw field; make
10366         state_set_in_source enum
10367         (check_decl): Ignore memory tags; do not set fake looping flags;
10368         dump diagnostics.
10369         (check_operand, check_tree, check_rhs_var, check_lhs_var,
10370         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
10371         (check_call, analyze_function): Rewrite.
10372         (check_stmt): New.
10373         (add_new_function): Update call of analyze_function.
10374         (generate_summary): Add call of analyze_function.
10375         (propagate): Propagate can_throw; handle state_set_in_source correctly.
10376         (local_pure_const): New function.
10377         (pass_local_pure_const): New pass.
10378         * ipa-inline.c (inline_transform): Set after_inlining.
10379         * tree-eh.c (stmt_can_throw_external): New.
10380         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
10381         work with aliasing built.
10382         * tree-flow.h (stmt_can_throw_external): New.
10383         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
10384         and local pure/const pass in early and late optimization queue.
10385
10386 2009-03-28  Martin Jambor  <mjambor@suse.cz>
10387
10388         * fold-const.c (get_pointer_modulus_and_residue): New parameter
10389         allow_func_align.
10390         (fold_binary): Allow function decl aligment consideration is the
10391         second argument is integer constant one.
10392         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
10393         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
10394         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
10395
10396 2009-03-28  Jan Hubicka  <jh@suse.cz>
10397
10398         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
10399         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
10400         * function.h (rtl_data): Add nothrow flag.
10401         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
10402         set DECL_NOTHROW for AVAILABLE functions.
10403
10404 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
10405
10406         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
10407         following vector keyword has expansion starting with pixel or bool
10408         keyword, expand vector to __vector and pixel or bool to __pixel or
10409         __bool.
10410
10411         PR c++/39554
10412         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
10413         warn_if_disallowed_function_p): Removed.
10414         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
10415         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
10416         warning_if_disallowed_function_p.
10417         * flags.h (warn_if_disallowed_function_p,
10418         warn_disallowed_functions): Removed.
10419         * common.opt (Wdisallowed-function-list=): Removed.
10420         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
10421
10422 2009-03-28  Richard Guenther  <rguenther@suse.de>
10423
10424         PR tree-optimization/38723
10425         * tree-ssa-pre.c (compute_avail): Add all default definitions to
10426         the entry block.
10427
10428 2009-03-28  Jan Hubicka  <jh@suse.cz>
10429
10430         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
10431         test introduced by my previous patch.
10432
10433 2009-03-28  Richard Guenther  <rguenther@suse.de>
10434
10435         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
10436         the PHIs value undefined.
10437
10438 2009-03-28  Jan Hubicka  <jh@suse.cz>
10439
10440         * tree-pass.h (pass_fixup_cfg): New pass.
10441         * ipa-inline.c (inline_transform): Set
10442         always_inline_functions_inlined/after_inlining.
10443         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
10444         (pass_fixup_cfg): New pass.
10445         * passes.c (init_optimization_passes): Add fixup_cfg.
10446
10447 2009-03-28  Richard Guenther  <rguenther@suse.de>
10448
10449         PR tree-optimization/38458
10450         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
10451         argument use the arguments copy-of value.
10452
10453 2009-03-28  Richard Guenther  <rguenther@suse.de>
10454
10455         PR tree-optimization/38180
10456         * tree-ssa-ccp.c (get_default_value): Simplify.
10457         (likely_value): Likewise.
10458         (surely_varying_stmt_p): Properly handle VOP case.
10459         (ccp_initialize): Likewise.
10460         (ccp_fold): Handle propagating through *&.
10461         (fold_const_aggregate_ref): Also handle decls.
10462
10463 2009-03-28  Jan Hubicka  <jh@suse.cz>
10464
10465         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10466         * cgraph.h (cgraph_node): Likewise.
10467         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
10468         (cgraph_reset_node): Use process flag.
10469         (cgraph_mark_functions_to_output): Likewise.
10470         (cgraph_expand_function): Likewise.
10471         (cgraph_expand_all_functions): Likewise.
10472         (cgraph_output_in_order): Likewise.
10473         * dwarf2out.c (reference_to_unused): Likewise.
10474         * passes.c do_per_function_toporder): Likewise.
10475
10476 2009-03-28  Jan Hubicka  <jh@suse.cz>
10477
10478         Bring from lto-branch:
10479
10480         2008-09-03  Doug Kwan  <dougkwan@google.com>
10481
10482         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
10483         enums instead of reason strings.
10484         * cgraph.c (cgraph_create_edge): Same.
10485         (cgraph_inline_failed_string): New function.
10486         * cgraph.h (cgraph_inline_failed_t): New enum type.
10487         (cgraph_inline_failed_string): New prototype.
10488         (struct cgraph_edge): Change type of INLINED_FAILED from constant
10489         char pointer to cgraph_inline_failed_t.
10490         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
10491         (cgraph_default_inline_p): Ditto.
10492         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
10493         to cgraph_inline_failed_t pointer.
10494         * cif-code.def: New file.
10495         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
10496         reason string.
10497         (cgraph_check_inline_limits): Change type of REASON to pointer to
10498         cgraph_inline_failed_t.  Replace reason strings with enums.
10499         (cgraph_default_inline_p): Ditto.
10500         (cgraph_recursive_inlining_p): Ditto.
10501         (update_caller_keys): Change type of FAILED_REASON to
10502         cgraph_inline_failed_t.
10503         (cgraph_set_inline_failed): Change type of REASON to pointer to
10504         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
10505         convert enums to strings for text output.
10506         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
10507         to be of type cgraph_inline_failed_t.  Replace reason strings with
10508         enums.  Call cgraph_inline_failed_string to covert enums
10509         to strings for text output.
10510         (cgraph_decide_inlining): Replace reason strings with enums.
10511         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
10512         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
10513         for text output.
10514         * tree-inline.c (expand_call_inline): Change type of REASON
10515         to cgraph_inline_failed_t.  Replace reason strings with enums.
10516         Call cgraph_inline_failed_string for text output.
10517         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
10518         (cgraph.o): Ditto.
10519
10520 2009-03-28  Jan Hubicka  <jh@suse.cz>
10521
10522         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
10523         cgraph_clone_node): Remove master clone handling.
10524         (cgraph_is_master_clone, cgraph_master_clone): Remove.
10525         * cgraph.h (master_clone): Remove.
10526         (cgraph_is_master_clone, cgraph_master_clone): Remove.
10527         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
10528         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
10529
10530 2009-03-28  Jan Hubicka  <jh@suse.cz>
10531
10532         * cgraph.c (cgraph_function_body_availability): Functions declared
10533         inline are always safe to assume that it is not going to be replaced.
10534
10535 2009-03-28  Richard Guenther  <rguenther@suse.de>
10536
10537         PR tree-optimization/38513
10538         * tree-ssa-pre.c (eliminate): Remove redundant stores.
10539         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10540         EXC_PTR_EXPR and FILTER_EXPR.
10541         (get_ref_from_reference_ops): Likewise.
10542
10543 2009-03-28  Richard Guenther  <rguenther@suse.de>
10544
10545         PR tree-optimization/38968
10546         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
10547         Use FLOOR_MOD_EXPR to compute misalignment.
10548
10549 2009-03-28  Richard Guenther  <rguenther@suse.de>
10550
10551         PR tree-optimization/37795
10552         * tree.h (combine_comparisons): Declare.
10553         * fold-const.c (combine_comparisons): Export.
10554         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
10555         comparisons.
10556         (ifcombine_iforif): Use combine_comparisons.
10557
10558 2009-03-28  Jan Hubicka  <jh@suse.cz>
10559
10560         * tree-eh.c (inlinable_call_p): New function.
10561         (make_eh_edges): Use it.
10562         (verify_eh_edges): Use it.
10563         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
10564         * except.c (reachable_next_level): Add inlinable_function argument
10565         (sjlj_find_directly_reachable_regions): Update.
10566         (add_reachable_handler): Do not set saw_any_handlers.
10567         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
10568         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10569         Add new inlinable call parameter.
10570         (can_throw_internal, can_throw_external): Update.
10571         * except.h (can_throw_internal_1, can_throw_external_1,
10572         foreach_reachable_handler): Update declaration.
10573
10574 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
10575
10576         * config/arm/t-arm-coff, config/h8300/coff.h,
10577         config/i386/i386-aout.h, config/i386/i386-coff.h,
10578         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
10579         config/pdp11/2bsd.h, config/rs6000/aix41.h,
10580         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
10581         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
10582         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
10583         sys-types.h: Remove.
10584         * Makefile.in: Remove protoize and fixproto support and references
10585         in comments.
10586         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
10587         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
10588         Remove.
10589         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
10590         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
10591         unprotoize$(exeext).
10592         (rest.encap): Don't depend on $(STMP_FIXPROTO)
10593         (.PHONY): Don't depend on proto.
10594         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
10595         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
10596         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
10597         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
10598         build/gen-protos.o, build/scan.o, xsys-protos.h,
10599         build/fix-header$(build_exeext), build/fix-header.o,
10600         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
10601         stmp-install-fixproto): Remove.
10602         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
10603         SYSCALLS.c or fixproto files.
10604         (install-common): Don't install protoize.
10605         (install-headers-tar, install-headers-cpio, install-headers-cp):
10606         Don't depend on $(STMP_FIXPROTO).
10607         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
10608         install fixproto files or write out fixproto settings.
10609         (uninstall): Don't uninstall protoize.
10610         * config.gcc (use_fixproto): Remove.
10611         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
10612         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
10613         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
10614         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
10615         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
10616         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
10617         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
10618         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
10619         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
10620         * config/t-vxworks (STMP_FIXPROTO): Remove.
10621         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
10622         STMP_FIXPROTO): Remove.
10623         * config.in, configure: Regenerate.
10624         * crtstuff.c (gid_t, uid_t): Don't undefine.
10625         * doc/install.texi: Change m68k-coff to m68k-elf in example.
10626         (arm-*-coff, arm-*-aout: Remove target entries.
10627         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
10628         Remove mention of AIX 4.1.
10629         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
10630         * doc/invoke.texi (Running Protoize): Remove.
10631         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
10632         (Protoize Caveats): Remove.
10633         * tsystem.h: Update comments on headers assumed to exist.
10634
10635 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
10636
10637         * genautomata.c: Add a new year to the copyright.  Add a new
10638         reference.
10639         (struct insn_reserv_decl): Add comments for member bypass_list.
10640         (find_bypass): Remove.
10641         (insert_bypass): New.
10642         (process_decls): Use insert_bypass.
10643         (output_internal_insn_latency_func): Output all bypasses with the
10644         same input insn in one switch case.
10645
10646         * rtl.def (define_bypass): Describe bypass choice.
10647         * doc/md.texi (define_bypass): Ditto.
10648
10649 2009-03-27  Richard Guenther  <rguenther@suse.de>
10650
10651         * gimplify.c (mark_addressable): Export.
10652         * tree-flow.h (mark_addressable): Declare.
10653         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
10654         * tree-ssa.c (verify_phi_args): Verify that address taken
10655         variables have TREE_ADDRESSABLE set.
10656
10657 2009-03-27  Richard Guenther  <rguenther@suse.de>
10658
10659         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
10660         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
10661         Do not mark decls TREE_ADDRESSABLE.
10662         (build_fold_addr_expr): Adjust.
10663         (fold_addr_expr): Remove.
10664         (fold_unary): Use build_fold_addr_expr.
10665         (fold_comparison): Likewise.
10666         (split_address_to_core_and_offset): Likewise.
10667         * coverage.c (tree_coverage_counter_addr): Mark the array decl
10668         TREE_ADDRESSABLE.
10669         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
10670         (gimplify_modify_expr_to_memcpy): Mark source and destination
10671         addressable.
10672         * omp-low.c (create_omp_child_function): Mark the object decl
10673         TREE_ADDRESSABLE.
10674         (lower_rec_input_clauses): Mark the var we take the address of
10675         TREE_ADDRESSABLE.
10676         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
10677
10678 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10679
10680         PR middle-end/39315
10681         * cfgexpand.c (expand_one_stack_var_at): Change alignment
10682         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
10683
10684 2009-03-27  Richard Guenther  <rguenther@suse.de>
10685
10686         PR tree-optimization/39120
10687         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
10688         constraints.
10689         (handle_lhs_call): Process return constraints.  Add escape
10690         constraints if necessary.
10691         (handle_const_call): Fill out return constraints.  Make nested
10692         case more precise.  Avoid consttmp if possible.
10693         (handle_pure_call): Fill out return constraints.  Avoid
10694         callused if possible.
10695         (find_func_aliases): Simplify call handling.
10696
10697 2009-03-27  Richard Guenther  <rguenther@suse.de>
10698
10699         PR tree-optimization/39120
10700         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
10701         as a representative.
10702         (solve_graph): Do propagate CALLUSED.
10703         (handle_pure_call): Use a scalar constraint from CALLUSED for
10704         the return value.
10705         (find_what_p_points_to): CALLUSED shall not appear in poins-to
10706         solutions.
10707
10708 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10709
10710         PR c/39323
10711         * c-common.c (handle_aligned_attribute): Properly check alignment
10712         overflow.  Use (1U << i) instead of (1 << i).
10713
10714         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
10715
10716         * expr.h (get_mem_align_offset): Updated.
10717
10718         * tree.h (tree_decl_common): Change align to "unsigned int" and
10719         move it before pointer_alias_set.
10720
10721 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10722             Jakub Jelinek  <jakub@redhat.com>
10723
10724         PR target/38034
10725         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
10726         gr_register_operand with gr_reg_or_0_operand.
10727         (cmpxchg_rel_di): Likewise.
10728         (sync_lock_test_and_set<mode>): Likewise.
10729
10730 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10731
10732         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
10733         (true_regnum): Likewise.
10734
10735         * rtlanal.c (subreg_info): Moved to ...
10736         * rtl.h (subreg_info): Here.  New.
10737         (subreg_get_info): New.
10738
10739         * rtlanal.c (subreg_get_info): Make it extern.
10740
10741 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10742
10743         PR target/39472
10744         * config/i386/i386.c (ix86_abi): New.
10745         (override_options): Handle -mabi=.
10746         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
10747         (ix86_call_abi_override): Likewise.
10748         (init_cumulative_args): Likewise.
10749         (function_arg_advance): Likewise.
10750         (function_arg_64): Likewise.
10751         (function_arg): Likewise.
10752         (ix86_pass_by_reference): Likewise.
10753         (ix86_function_value_regno_p): Likewise.
10754         (ix86_build_builtin_va_list_abi): Likewise.
10755         (setup_incoming_varargs_64): Likewise.
10756         (is_va_list_char_pointer): Likewise.
10757         (ix86_init_machine_status): Likewise.
10758         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
10759         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
10760         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
10761         (ix86_function_abi): Make it static and return enum calling_abi.
10762         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
10763         with ix86_abi.
10764         (ix86_fn_abi_va_list): Updated.
10765
10766         * config/i386/i386.h (ix86_abi): New.
10767         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
10768         (CONDITIONAL_REGISTER_USAGE): Likewise.
10769         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
10770         (machine_function): Likewise.
10771
10772         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
10773         with ix86_abi.
10774         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
10775         (STACK_BOUNDARY): Likewise.
10776         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
10777
10778         * config/i386/i386.opt (mabi=): New.
10779
10780         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
10781         return enum calling_abi.
10782         (ix86_function_type_abi): Likewise.
10783         (ix86_function_abi): Removed.
10784
10785         * doc/invoke.texi: Document -mabi= option for x86.
10786
10787 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10788
10789         * builtins.c (real_dconstp): Delete.
10790         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
10791
10792 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
10793             Jakub Jelinek  <jakub@redhat.com>
10794
10795         PR debug/37959
10796         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
10797         (gen_subprogram_die): When a function is explicit, generate the
10798         DW_AT_explicit attribute.
10799         * langhooks.h (struct lang_hooks_for_decls): Add
10800         function_decl_explicit_p langhook.
10801         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
10802         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
10803
10804 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
10805
10806         * builtins.c (fold_builtin_memory_op): Optimize memmove
10807         into memcpy if we can prove source and destination don't overlap.
10808
10809         * tree-inline.c: Include gt-tree-inline.h.
10810         (clone_fn_id_num): New variable.
10811         (clone_function_name): New function.
10812         (tree_function_versioning): Use it.
10813         * Makefile.in (GTFILES): Add tree-inline.c.
10814
10815 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
10816
10817         * BASE-VER: Change to 4.5.0.
10818
10819 2009-03-27  Xinliang David Li  <davidxl@google.com>
10820
10821         PR tree-optimization/39557
10822         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
10823
10824 2009-03-27  Xinliang David Li  <davidxl@google.com>
10825
10826         PR tree-optimization/39548
10827         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
10828         candidate check.
10829
10830 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10831
10832         * c-common.c (pointer_int_sum): Use %wd on return from
10833         tree_low_cst.
10834
10835 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10836
10837         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
10838         on return from tree_low_cst.
10839
10840 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10841
10842         PR c++/36799
10843         * ginclude/stdarg.h (va_copy): Define also for
10844         __GXX_EXPERIMENTAL_CXX0X__.
10845
10846 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10847
10848         PR c++/35652
10849         * builtins.h (c_strlen): Do not warn here.
10850         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
10851         * c-common.c (pointer_int_sum): Take an explicit location.
10852         Warn about offsets out of bounds.
10853         * c-common.h (pointer_int_sum): Adjust declaration.
10854
10855 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10856
10857         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
10858         markup glitch.
10859
10860 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
10861
10862         PR c++/39554
10863         * opts.c (warn_if_disallowed_function_p): Don't assume
10864         get_callee_fndecl must return non-NULL.
10865
10866 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
10867
10868         PR rtl-optimization/39522
10869         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
10870         when reg_reloaded_valid is set.
10871
10872 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10873
10874         * config/spu/divv2df3.c: New file.
10875         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
10876         (DPBIT_FUNCS): Filter out _div_df.
10877
10878 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
10879
10880         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
10881         a jump insn, count that jump in the distance to the loop start.
10882
10883 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
10884
10885         PR target/39523
10886         * config/sh/sh.c (calc_live_regs): Fix condition for global
10887         registers except PIC_OFFSET_TABLE_REGNUM.
10888
10889 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
10890
10891         PR/39518
10892         * doc/invoke.texi (-mconsole): New.
10893         (-mcygwin): New.
10894         (-mno-cygwin): New.
10895         (-mdll): New.
10896         (-mnop-fun-dllimport): New.
10897         (-mthread): New.
10898         (-mwin32): New.
10899         (-mwindows): New.
10900         (sub section "i386 and x86-64 Windows Options"): New.
10901
10902 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
10903
10904         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
10905         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
10906
10907 2009-03-25  Richard Guenther  <rguenther@suse.de>
10908
10909         PR middle-end/39497
10910         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
10911         of -Wno-error.
10912
10913 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
10914
10915         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
10916         neither of haifa/selective schedulers are working.
10917
10918 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10919
10920         * doc/invoke.texi (Debugging Options): Fix description of
10921         -fno-merge-debug-strings.
10922
10923 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
10924
10925         * config/cris/libgcc.ver: New version-script.
10926         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
10927
10928         * configure.ac <GAS features, nop mnemonic>: Add pattern
10929         crisv32-*-* for "nop".
10930         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
10931         * configure: Regenerate.
10932
10933 2009-03-24  Ira Rosen  <irar@il.ibm.com>
10934
10935         PR tree-optimization/39529
10936         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
10937         mark_sym_for_renaming for the tag copied to the new vector
10938         pointer.
10939
10940 2009-03-24  Arthur Loiret  <aloiret@debian.org>
10941
10942         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
10943         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
10944         EXTRA_SPEC_FUNCTIONS.
10945         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
10946         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
10947         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
10948         -march and -mtune options.
10949
10950 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
10951
10952         * config/m68k/t-rtems: Add m5329 multilib.
10953
10954 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
10955             Jakub Jelinek  <jakub@redhat.com>
10956
10957         PR debug/39524
10958         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
10959         nodes.
10960
10961 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
10962
10963         PR c/39495
10964         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
10965         instead of c_parser_expression_conv, if original_code isn't one of the
10966         4 allowed comparison codes, fail.
10967
10968 2009-03-23  Richard Guenther  <rguenther@suse.de>
10969
10970         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
10971         * tree.h (struct tree_type): Likewise.
10972         * reload.h (struct insn_chain): Likewise.
10973         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
10974         * function.h (struct function): Likewise.
10975         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
10976
10977 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
10978
10979         PR tree-optimization/39516
10980         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
10981
10982 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
10983
10984         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
10985         should be set true if BITS_PER_WORD of target is bigger than 32
10986
10987 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
10988
10989         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
10990         Translate -B-options to -rpath-link.  Correct existing
10991         rpath-link and conditionalize on !nostdlib.
10992
10993 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10994
10995         * doc/extend.texi (Function Attributes, Variable Attributes):
10996         Fix typos.
10997         * doc/invoke.texi (Debugging Options, Optimize Options)
10998         (i386 and x86-64 Options, MCore Options): Likewise.
10999
11000 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
11001
11002         PR debug/37890
11003         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
11004         it for block local namespace aliases.
11005         (gen_decl_die): Pass context_die to gen_namespace_die.
11006
11007 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
11008
11009         PR c/39495
11010         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
11011         minimum or maximum value.
11012
11013 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
11014
11015         * reginfo.c (globalize_reg): Recompute derived reg sets.
11016
11017 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
11018
11019         PR target/39063
11020         * libgcc2.c (mprotect): Do not use signed arguments for
11021         VirtualProtect, use DWORD arguments.  Also fix the 'may
11022         be used uninitialized' warning for the np variable.
11023
11024 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
11025
11026         PR target/39496
11027         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
11028         functions using regparm calling conventions when not optimizing.
11029         (ix86_function_sseregparm): Similarly for sseregparm calling
11030         conventions.
11031
11032 2009-03-19  Li Feng  <nemokingdom@gmail.com>
11033
11034         PR middle-end/39500
11035         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
11036         dependence if the first conflict is after niter iterations.
11037
11038 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
11039
11040         PR middle-end/38609
11041         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
11042         functions with dynamic stack-pointer adjustments.
11043
11044 2009-03-19  Ben Elliston  <bje@au.ibm.com>
11045
11046         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
11047         option; change to -msdata=data.
11048
11049 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11050
11051         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
11052         and -fopenmp.
11053
11054 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
11055
11056         PR target/35180
11057         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
11058
11059 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
11060
11061         * doc/invoke.texi (Code Gen Options): Expand discussion of
11062         -fno-common.
11063
11064 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
11065
11066         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
11067         * matrix-reorg.c (struct matrix_info): Likewise.
11068         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
11069         * rtl.h (struct mem_attrs): Likewise.
11070         * df.h (struct df): Likewise.
11071         * tree-data-ref.h (struct data_dependence_relation): Likewise.
11072         * ira-int.h (struct ira_allocno): Likewise.
11073         * df-scan.c (struct df_collection_rec): Likewise.
11074         * ira.c (struct equivalence): Likewise.
11075         * function.c (struct temp_slot): Likewise.
11076         * cfgloop.h (struct loop): Likewise.
11077
11078         PR debug/39485
11079         * function.c (use_register_for_decl): When not optimizing, disregard
11080         register keyword for variables with types containing methods.
11081
11082 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
11083
11084         PR middle-end/39447
11085         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
11086         (is_simple_operand): Call contains_component_ref_p before calling data
11087         reference analysis that would fail on COMPONENT_REFs.
11088
11089         * tree-vrp.c (search_for_addr_array): Fix formatting.
11090
11091 2009-03-18  Richard Guenther  <rguenther@suse.de>
11092
11093         * tree-vect-transform.c (vect_loop_versioning): Fold the
11094         generated comparisons.
11095         * tree-vectorizer.c (set_prologue_iterations): Likewise.
11096         (slpeel_tree_peel_loop_to_edge): Likewise.
11097
11098 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11099
11100         PR middle-end/37805
11101         * opts.c (print_specific_help): In addition to `undocumented',
11102         accept `separate' and `joined' flags if passed alone.  Describe
11103         output by the first matched one of those.
11104         (common_handle_option): Skip over empty strings.
11105         * gcc.c (display_help): Fix help string for `--help='.
11106         * doc/invoke.texi (Option Summary, Overall Options): With
11107         `--help=', classes and qualifiers can both be repeated, but
11108         only the latter can be negated.  One should not pass only
11109         negated qualifiers.  Fix markup and examples.
11110
11111         Revert
11112         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
11113         PR middle-end/37805
11114         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
11115         and -fhelp=separate.
11116
11117 2009-03-17  Jing Yu  <jingyu@google.com>
11118
11119         PR middle-end/39378
11120         * function.h (struct rtl_data): Move is_thunk from here...
11121         (struct function): ...to here.
11122         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
11123         * varasm.c (assemble_start_function): Change is_thunk from crtl to
11124         cfun.
11125         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
11126         cfun.
11127         (alpha_does_function_need_gp, alpha_start_function): Likewise.
11128         (alpha_output_function_end_prologue): Likewise.
11129         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
11130         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
11131         (rs6000_output_function_epilogue): Likewise.
11132         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
11133
11134 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
11135
11136         PR target/39482
11137         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
11138         from different units in a single alternative.
11139         (*truncdfsf_i387): Ditto.
11140         (*truncxfsf2_mixed): Ditto.
11141         (*truncxfdf2_mixed): Ditto.
11142
11143 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
11144
11145         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
11146         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
11147
11148         PR debug/39474
11149         * tree-ssa-live.c (remove_unused_locals): Don't remove local
11150         unused non-artificial variables when not optimizing.
11151
11152         PR debug/39471
11153         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
11154         DW_TAG_imported_module even if decl is IMPORTED_DECL with
11155         NAMESPACE_DECL in its DECL_INITIAL.
11156
11157         PR middle-end/39443
11158         * optabs.c (set_user_assembler_libfunc): New function.
11159         * expr.h (set_user_assembler_libfunc): New prototype.
11160         * c-common.c: Include libfuncs.h.
11161         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
11162         for memcmp, memset, memcpy, memmove and abort.
11163         * Makefile.in (c-common.o): Depend on libfuncs.h.
11164
11165         PR debug/39412
11166         * dwarf2out.c (gen_inlined_enumeration_type_die,
11167         gen_inlined_structure_type_die, gen_inlined_union_type_die,
11168         gen_tagged_type_instantiation_die): Removed.
11169         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
11170         do nothing.
11171
11172 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
11173
11174         PR testsuite/38526
11175         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11176         its use.
11177         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11178         (check-parallel-%): Ditto.
11179         (check-consistency): Ditto.
11180
11181 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
11182
11183         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11184         local variable rhs by NULL_TREE.
11185
11186 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11187
11188         PR target/39477
11189         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
11190
11191 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11192
11193         PR target/39476
11194         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
11195
11196 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
11197
11198         PR target/39473
11199         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11200         for ms->sysv ABI calls only in 64bit mode.
11201
11202         * config/i386/i386.md (untyped_call): Support 32bit.
11203
11204 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
11205
11206         * doc/extend.texi: Replace x86_65 with x86_64.
11207
11208 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
11209
11210         PR tree-optimization/39455
11211         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
11212         mismatches for POINTER_TYPE_P (type).
11213         (number_of_iterations_le): Likewise.
11214
11215 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
11216
11217         * config/picochip/picochip.c: Removed profiling support.
11218         * config/picochip/picochip.md: Removed profiling instruction.
11219         * config/picochip/picochip.h: Removed profiling builtin.
11220
11221 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
11222
11223         * doc/install.texi (--with-host-libstdcxx): Document.
11224
11225 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
11226
11227         PR target/34299
11228         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
11229         generate a warning if the function name does not begin with
11230         "__vector" and the function has either the 'signal' or 'interrupt'
11231         attribute, from here to ...
11232         (avr_declare_function_name): ...here. New function.
11233         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
11234         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
11235
11236 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
11237
11238         PR bootstrap/39454
11239         * cse.c (fold_rtx): Don't modify original const_arg1 when
11240         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
11241         separate variable instead.
11242         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
11243         from out of range shift counts.
11244         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
11245
11246 2009-03-13  Catherine Moore  <clm@codesourcery.com>
11247
11248         * config/i386/x-mingw32 (host-mingw32.o): Replace
11249         diagnostic.h with $(DIAGNOSTIC_H).
11250
11251 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
11252
11253         PR target/39431
11254         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
11255         predicate.
11256         * config/i386/sync.md (sync_compare_and_swap<mode>,
11257         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
11258         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
11259         into a register.
11260         (sync_double_compare_and_swapdi_pic,
11261         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
11262         cmpxchg8b_pic_memory_operand instead of just memory_operand.
11263
11264 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
11265
11266         PR target/39445
11267         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
11268
11269 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
11270
11271         PR target/39327
11272         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11273         (avx_addsubv4df3): Likewise.
11274         (*avx_addsubv4sf3): Likewise.
11275         (sse3_addsubv4sf3): Likewise.
11276
11277 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
11278
11279         PR target/38824
11280         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
11281
11282 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
11283
11284         PR debug/39432
11285         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
11286         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11287         registers for allocnos created from user-defined variables.
11288
11289 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11290
11291         PR target/39181
11292         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
11293         of non-integer mode as well.
11294
11295 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
11296
11297         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
11298         for functions for which the parameter types are unknown.
11299
11300 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
11301
11302         PR target/39137
11303         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
11304         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
11305         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
11306         * config/i386/i386.c (ix86_local_alignment): For
11307         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
11308         long long variables on the stack to avoid dynamic realignment.
11309         Allow the first argument to be a decl rather than type.
11310         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
11311
11312 2009-03-11  Nick Clifton  <nickc@redhat.com>
11313
11314         PR target/5362
11315         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
11316         options.
11317         Add description to mno-lsim option.
11318         * config/mcore/mcore.h: Remove comment about deprecated m4align
11319         option.
11320         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
11321         * doc/invoke.texi: Add description of mno-lsim and
11322         mstack-increment options.
11323
11324         * config/fr30/fr30.opt: Document the -mno-lsim option.
11325         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
11326         and -mno-lsim options.
11327
11328 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11329
11330         * fold-const.c (fold_comparison): Only call fold_inf_compare
11331         if the mode supports infinities.
11332
11333 2009-03-11  Jason Merrill  <jason@redhat.com>
11334
11335         PR debug/39086
11336         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
11337         end already did.  Notice GIMPLE_CALL modifications of the result.
11338         Don't copy debug information from an ignored decl or a decl from
11339         another function.
11340
11341 2009-03-10  Richard Guenther  <rguenther@suse.de>
11342             Nathan Froyd  <froydnj@codesourcery.com>
11343
11344         PR middle-end/37850
11345         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
11346         (__divMODE3): Likewise.
11347
11348 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
11349
11350         PR tree-optimization/39394
11351         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
11352         DECL_SIZE_UNIT of variable length FIELD_DECLs.
11353
11354 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11355
11356         * recog.c (verfiy_changes): Disallow renaming of hard regs in
11357         inline asms for register asm ("") declarations.
11358
11359 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
11360
11361         * fold-const.c (fold_unary): Fix comment.
11362
11363 2009-03-07  Jan Hubicka  <jh@suse.cz>
11364
11365         PR target/39361
11366         * tree-inline.c (setup_one_parameter): Do replacement of const
11367         argument by constant in SSA form.
11368
11369 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11370
11371         PR middle-end/38028
11372         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
11373         determine alignment passed to assign_stack_local.
11374         (assign_parms_unsplit_complex): Likewise.
11375         * except.c (sjlj_build_landing_pads): Likewise.
11376
11377 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
11378
11379         PR middle-end/39360
11380         * tree-flow.h (add_referenced_var): Return bool instead of void.
11381         * tree-dfa.c (add_referenced_var): Return result of
11382         referenced_var_check_and_insert call.
11383         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
11384         of referenced_var_check_and_insert.
11385
11386         PR debug/39372
11387         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
11388         (gen_variable_die): Emit DW_AT_location on abstract static variable's
11389         DIE, don't emit it if abstract origin already has it.
11390         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
11391         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
11392
11393 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
11394
11395         * genpreds.c (needs_variable): Fix parentheses at variable name
11396         detection.
11397         (write_tm_constrs_h): Indent generated code.
11398
11399 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11400
11401         * doc/extend.texi (Function Attributes): Add documentation
11402         for isr attributes.
11403
11404 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
11405
11406         PR debug/39387
11407         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
11408         take locus from its DECL_SOURCE_LOCATION instead of input_location.
11409
11410 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
11411
11412         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
11413         the loop as bad.
11414
11415 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
11416
11417         PR debug/39379
11418         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
11419         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
11420
11421 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
11422
11423         * config/i386/i386.md (R8_REG, R9_REG): New constants.
11424         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
11425         constants instead of magic numbers.
11426         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
11427         (QI_REG_P): Ditto.
11428         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
11429         (x86_64_ms_abi_int_parameter_registers): Ditto.
11430         (x86_64_int_return_registers): Ditto.
11431         (ix86_maybe_switch_abi): Ditto.
11432         (ix86_expand_call): Ditto for clobbered_registers array.
11433         (ix86_hard_regno_mode_ok): Ditto.
11434         (x86_extended_QIreg_mentioned_p): Ditto.
11435
11436 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
11437
11438         PR tree-optimization/39349
11439         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
11440
11441         * combine.c (gen_lowpart_for_combine): Use omode when generating
11442         clobber.
11443
11444 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
11445
11446         PR rtl-optimization/39235
11447         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
11448
11449 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
11450
11451         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
11452
11453 2009-03-04  Richard Guenther  <rguenther@suse.de>
11454
11455         PR tree-optimization/39362
11456         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
11457         that occur in abnormal PHIs should be varying.
11458
11459 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
11460
11461         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
11462         Extend comments.
11463         (simple_iv):  Take loop as an argument instead of statement.
11464         * tree-scalar-evolution.h (simple_iv): Declaration changed.
11465         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
11466         to simple_iv.
11467         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
11468         Ditto.
11469         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
11470         * matrix-reorg.c (analyze_transpose): Ditto.
11471         * tree-data-ref.c (dr_analyze_innermost): Ditto.
11472         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
11473         * tree-predcom.c (ref_at_iteration): Ditto.
11474         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
11475
11476 2009-03-04  Richard Guenther  <rguenther@suse.de>
11477
11478         PR tree-optimization/39358
11479         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
11480         escaped_id and callused_id.
11481         (solve_graph): Likewise.
11482
11483 2009-03-04  Richard Guenther  <rguenther@suse.de>
11484
11485         PR tree-optimization/39339
11486         * tree-sra.c (try_instantiate_multiple_fields): Make it
11487         no longer ICE on the above.
11488
11489 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
11490
11491         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
11492         that fits within Pmode.
11493
11494 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
11495
11496         PR middle-end/10109
11497         * tm.texi (LIBCALL_VALUE): Update description.
11498
11499 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
11500
11501         PR middle-end/34443
11502         * doc/extend.texi (section): Update description.
11503
11504 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
11505
11506         PR middle-end/39345
11507         * tree-inline.c (remapped_type): New.
11508         (can_be_nonlocal): Call remapped_type instead of remap_type.
11509
11510 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
11511
11512         PR fortran/39354
11513         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
11514         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
11515
11516 2009-03-03  Richard Guenther  <rguenther@suse.de>
11517
11518         PR middle-end/39272
11519         * tree.c (tree_nonartificial_location): New function.
11520         * tree.h (tree_nonartificial_location): Declare.
11521         * builtins.c (expand_builtin_memory_chk): Provide location
11522         of the call location for artificial function pieces.
11523         (maybe_emit_chk_warning): Likewise.
11524         (maybe_emit_sprintf_chk_warning): Likewise.
11525         (maybe_emit_free_warning): Likewise.
11526         * expr.c (expand_expr_real_1): Likewise.
11527
11528 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
11529
11530         PR tree-optimization/39343
11531         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
11532         COMPONENT_REF t has ARRAY_TYPE.
11533
11534 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
11535
11536         PR middle-end/39335
11537         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
11538         when the type precision of the induction variable should be
11539         larger than the type precision of nit.
11540         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
11541         * graphite.c (graphite_loop_normal_form): Same.
11542         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
11543
11544 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
11545
11546         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
11547         (*call_1_rex64_ms_sysv): Use named constants instead of magic
11548         numbers to describe clobbered registers.
11549         (*call_value_0_rex64_ms_sysv): Ditto.
11550         * config/i386/mmx.md (mmx_emms): Ditto.
11551         (mmx_femms): Ditto.
11552
11553 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
11554
11555         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
11556         of ABI_64.
11557
11558 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11559
11560         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
11561         (spu_section_type_flags): New function.
11562
11563 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
11564
11565         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
11566         reg_class_contents of FLOAT_REGS into a temporary.
11567
11568 2009-03-02  Richard Guenther  <rguenther@suse.de>
11569             Ira Rosen  <irar@il.ibm.com>
11570
11571         PR tree-optimization/39318
11572         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
11573         information to the vectorized statement.
11574
11575 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
11576
11577         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
11578         variable.  Use defined names instead of magic constants for REX SSE
11579         registers.
11580
11581 2009-03-01  Richard Guenther  <rguenther@suse.de>
11582
11583         PR tree-optimization/39331
11584         * omp-low.c (lower_send_shared_vars): Do not receive new
11585         values for the reference of DECL_BY_REFERENCE parms or results.
11586
11587 2009-03-01  Jan Hubicka  <jh@suse.cz>
11588
11589         PR debug/39267
11590         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
11591         BLOCK_NONLOCALIZED_VAR): New macros.
11592         (tree_block): Add nonlocalized_vars.
11593         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
11594         gen_decl_die): Add origin argument.  Allow generation of die with
11595         origin at hand only.
11596         (gen_member_die, gen_type_die_with_usage, force_decl_die,
11597         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
11598         of gen_*.
11599         (gen_block_die): Fix checking for unused blocks.
11600         (process_scope_var): Break out from .... ; work with origins only.
11601         (decls_for_scope) ... here; process nonlocalized list.
11602         (dwarf2out_ignore_block): Look for nonlocalized vars.
11603         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
11604         vars.
11605         (dump_scope_block): Dump them.
11606         * tree-inline.c (remap_decls): Handle nonlocalized vars.
11607         (remap_block): Likewise.
11608         (can_be_nonlocal): New predicate.
11609         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
11610
11611 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11612
11613         * configure: Regenerate.
11614
11615 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11616
11617         * optc-gen.awk: No need to duplicate option flags twice.
11618         Reuse help texts for duplicate options which do not have any.
11619
11620         * gcc.c (display_help): Document --version.
11621
11622         * gcc.c (main): If print_help_list and verbose_flag, ensure
11623         driver output comes before subprocess output.
11624
11625         * optc-gen.awk: Assign all remaining fields to help string,
11626         space-separated, for multi-line help in *.opt.
11627
11628         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
11629         -Wno-pedantic-ms-format is for MinGW targets only.
11630
11631         * doc/options.texi (Option file format): Fix bad indentation,
11632         restoring dropped sentence.
11633
11634 2009-02-28  Jan Hubicka  <jh@suse.cz>
11635
11636         * tree-inline.c (tree_function_versioning): Output debug info.
11637
11638 2009-02-28  Jan Hubicka  <jh@suse.cz>
11639
11640         PR debug/39267
11641         * tree-inline.c (setup_one_parameter): Do not copy propagate
11642         arguments when not optimizing.
11643
11644 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
11645
11646         PR target/39327
11647         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11648         (avx_addsubv4df3): Likewise.
11649         (*avx_addsubv4sf3): Likewise.
11650         (sse3_addsubv4sf3): Likewise.
11651         (*avx_addsubv2df3): Likewise.
11652         (sse3_addsubv2df3): Likewise.
11653         (avx_unpckhps256): Correct item selectors.
11654         (avx_unpcklps256): Likewise.
11655         (avx_unpckhpd256): Likewise.
11656         (avx_unpcklpd256): Likewise.
11657
11658 2009-02-28  Jan Hubicka  <jh@suse.cz>
11659
11660         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
11661         static vars.
11662         (copy_arguments_for_versioning): If var is declared don't declare it.
11663         (tree_function_versioning): First setup substitutions and then copy
11664         args.
11665
11666 2009-02-27  Jan Hubicka  <jh@suse.cz>
11667
11668         PR debug/39267
11669         * cgraph.h (varpool_output_debug_info): Remove.
11670         * cgraphunit.c (varpool_output_debug_info): Remove.
11671         * dwarf2out.c (deferred_locations_struct): New struct
11672         (deferred_locations): New type.
11673         (deferred_locations_list): New static var.
11674         (deffer_location): New function.
11675         (gen_variable_die): Use it.
11676         (decls_for_scope): Output info on local static vars.
11677         (dwarf2out_finish): Process deferred locations.
11678         * varpool.c (varpool_output_debug_info): Remove.
11679
11680 2009-02-27  Jan Hubicka  <jh@suse.cz>
11681
11682         PR debug/39267
11683         * tree.h (TREE_PROTECTED): Fix comment.
11684         (BLOCK_HANDLER_BLOCK): Remove.
11685         (struct tree_block): Remove handler_block add body_block.
11686         (inlined_function_outer_scope_p): New.
11687         (is_body_block): Remove.
11688         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
11689         * dwarf2out.c (is_inlined_entry_point): Remove.
11690         (add_high_low_attributes): Use inlined_function_outer_scope_p.
11691         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
11692         code.
11693         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
11694         * gimplify.c (gimplify_expr): Gimplify body blocks.
11695         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
11696         block with multiple subblocks.
11697         (dump_scope_block): Prettier output; dump more flags and info.
11698         (dump_scope_blocks): New.
11699         (remove_unused_locals): Use dump_scope_blocks.
11700         * tree-flow.h (dump_scope_blocks): Declare.
11701         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
11702         * stmt.c (is_body_block): Remove.
11703         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
11704         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
11705
11706 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
11707
11708         PR middle-end/39308
11709         * graphite.c (graphite_loop_normal_form): Do not call
11710         number_of_iterations_exit from a gcc_assert.
11711
11712 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11713
11714         * config/s390/s390.c (s390_swap_cmp): Look for conditional
11715         jumps if COND is NULL.
11716         (find_cond_jump): New function.
11717         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
11718         * config/s390/s390.md: Remove z10_cobra attribute value.
11719
11720 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
11721
11722         * config/alpha/alpha.h (alpha_expand_mov): Return false if
11723         force_const_mem returns NULL_RTX.
11724
11725 2009-02-26  Jan Hubicka  <jh@suse.cz>
11726
11727         PR debug/39267
11728         * cgraph.h (varpool_output_debug_info): Remove.
11729         * cgraphunit.c (varpool_output_debug_info): Remove.
11730         * dwarf2out.c (deferred_locations_struct): New struct
11731         (deferred_locations): New type.
11732         (deferred_locations_list): New static var.
11733         (deffer_location): New function.
11734         (gen_variable_die): Use it.
11735         (decls_for_scope): Output info on local static vars.
11736         (dwarf2out_finish): Process deferred locations.
11737         * varpool.c (varpool_output_debug_info): Remove.
11738
11739 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
11740
11741         PR rtl-optimization/39241
11742         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
11743         to subreg_offset_representable_p.
11744
11745 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
11746
11747         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
11748         execute function prototype.  Get f and nregs from max_reg_num
11749         and get_insns.  Remove the first backward pass as it's dead,
11750         guard the forward pass by flag_expensive_optimizations.
11751         (rest_of_handle_regmove): Delete.
11752         (pass_regmove): Replace it with regmove_optimize.
11753
11754 2009-02-25  Martin Jambor  <mjambor@suse.cz>
11755
11756         PR tree-optimization/39259
11757         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
11758         calls_alloca function flags.
11759         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
11760         calls are detected.
11761
11762 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
11763
11764         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
11765         flags_set_1_rtx, flags_set_1_set): Delete.
11766         (regmove_optimize): Do not call mark_flags_life_zones.
11767
11768 2009-02-24  Julian Brown  <julian@codesourcery.com>
11769
11770         PR target/35965
11771         * config/arm/arm.c (require_pic_register): Only set
11772         cfun->machine->pic_reg once per function.
11773
11774 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
11775
11776         * doc/invoke.texi (Link Options): Document an easier way to pass
11777         options that take arguments to the GNU linker using -Xlinker and -Wl.
11778
11779 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
11780
11781         PR target/33785
11782         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
11783
11784 2009-02-24  Richard Guenther  <rguenther@suse.de>
11785
11786         PR debug/39285
11787         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
11788
11789 2009-02-24  Richard Guenther  <rguenther@suse.de>
11790             Zdenek Dvorak  <ook@ucw.cz>
11791
11792         PR tree-optimization/39233
11793         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
11794         from converting them to a generic type.
11795
11796 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
11797
11798         PR tree-optimization/39260
11799         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
11800         contains a condition with a real type.
11801         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
11802
11803 2009-02-23  Jason Merrill  <jason@redhat.com>
11804
11805         PR c++/38880
11806         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
11807         narrowing_initializer_constant_valid_p.
11808         (narrowing_initializer_constant_valid_p): Don't return
11809         null_pointer_node for adding a pointer to itself.
11810
11811 2009-02-23  Jan Hubicka  <jh@suse.cz>
11812
11813         PR c/12245
11814         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
11815         resizing.
11816
11817 2009-02-23  Jan Hubicka  <jh@suse.cz>
11818
11819         PR tree-optimization/37709
11820         * tree.c (block_ultimate_origin): Move here from dwarf2out.
11821         * tree.h (block_ultimate_origin): Declare.
11822         * dwarf2out.c (block_ultimate_origin): Move to tree.c
11823         * tree-ssa-live.c (remove_unused_scope_block_p):
11824         Eliminate blocks containig no instructions nor live variables nor
11825         nested blocks.
11826         (dump_scope_block): New function.
11827         (remove_unused_locals): Enable removal of dead blocks by default;
11828         enable dumping at TDF_DETAILS.
11829
11830 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
11831
11832         * config/i386/i386.c (classify_argument): Don't allow COImode
11833         and OImode.
11834         (function_arg_advance_32): Don't allow OImode.
11835         (function_arg_32): Likewise.
11836         (function_value_32): Likewise.
11837         (return_in_memory_32): Likewise.
11838         (function_arg_64): Remove OImode comment.
11839
11840 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
11841
11842         PR target/39261
11843         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11844         ix86_expand_vector_set for V4DImode in 64bit mode only.
11845         (ix86_expand_vector_init_one_var): Likewise.
11846
11847 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
11848
11849         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
11850
11851 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
11852
11853         PR bootstrap/39257
11854         * loop-iv.c: Revert last change.
11855         * emit-rtl.c: Likewise.
11856
11857 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
11858
11859         PR target/39256
11860         * config/i386/i386.c (type_natural_mode): Remove an extra
11861         space in the warning message.
11862         (function_value_32): Handle 32-byte vector modes.
11863         (return_in_memory_32): Likewise.
11864
11865 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
11866
11867         * loop-iv.c (truncate_value): New function.
11868         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
11869         of lowpart_subreg.
11870         (lowpart_subreg): Move to...
11871         * emit-rtl.c: ...here.
11872
11873 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
11874
11875         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
11876         accidental and undocumented change at revision 140860.
11877
11878 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
11879
11880         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
11881         take gimple_seq * arguments.
11882         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
11883         types_compatible_p langhook.
11884
11885 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
11886             Joseph Myers  <joseph@codesourcery.com>
11887
11888         * config/arm/arm.c (arm_builtin_va_list): New function.
11889         (arm_expand_builtin_va_start): Likewise.
11890         (arm_gimplify_va_arg_expr): Likewise.
11891         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
11892         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
11893         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
11894         (va_list_type): New variable.
11895         (arm_mangle_type): Mangle va_list_type appropriately.
11896
11897 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
11898
11899         PR middle-end/39157
11900         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
11901         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
11902         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
11903         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
11904         parameter to 1000 for -O1 by default.
11905         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
11906         parameter.
11907         * loop-invariant.c: Include params.h.
11908         (move_loop_invariants): Don't call move_single_loop_invariants on
11909         very large loops.
11910
11911 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
11912
11913         * calls.c (emit_library_call_value_1): Use slot_offset instead of
11914         offset when calculating bounds for indexing stack_usage_map.  Fixes
11915         a buffer overflow with certain target setups.
11916
11917 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
11918
11919         PR target/39240
11920         * calls.c (expand_call): Clear try_tail_call if caller and callee
11921         disagree in promotion of function return value.
11922
11923 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
11924
11925         PR target/39175
11926         * c-common.c (c_determine_visibility): If visibility changed and
11927         DECL_RTL has been already set, call make_decl_rtl to update symbol
11928         flags.
11929
11930 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
11931
11932         PR c++/39188
11933         * varasm.c (assemble_variable): Don't check DECL_NAME when
11934         globalizing a variable.
11935
11936 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
11937
11938         PR c/38483
11939         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
11940         expression before any __builtin_trap call.
11941         * c-typeck.c (build_function_call): Convert and check function
11942         arguments before generating a call to a trap.  Evaluate the
11943         function arguments before the trap.
11944
11945 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
11946
11947         PR target/39228
11948         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
11949         (UNSPEC_FXAM_MEM): New unspec.
11950         (fxam<mode>2_i387_with_temp): New insn and split pattern.
11951         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
11952         memory using fxam<mode>2_i387_with_temp to remove excess precision.
11953
11954 2009-02-19  Richard Guenther  <rguenther@suse.de>
11955
11956         PR tree-optimization/39207
11957         PR tree-optimization/39074
11958         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
11959         storedanything_tree): New.
11960         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
11961         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
11962         (build_succ_graph): Add edges from STOREDANYTHING to all
11963         non-direct nodes.
11964         (init_base_vars): Initialize STOREDANYTHING.
11965         (compute_points_to_sets): Free substitution info after
11966         building the succ graph.
11967         (ipa_pta_execute): Likewise.
11968
11969         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
11970         field.
11971         (do_ds_constraint): Do not add to special var or non-pointer
11972         field solutions.
11973         (type_could_have_pointers): Split out from ...
11974         (could_have_pointers): ... here.  For arrays use the element type.
11975         (create_variable_info_for): Initialize may_have_pointers.
11976         (new_var_info): Likewise.
11977         (handle_lhs_call): Make the HEAP variable unknown-sized.
11978         (intra_create_variable_infos): Use a type with pointers for
11979         PARM_NOALIAS, make it unknown-sized.
11980
11981 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
11982
11983         PR target/39224
11984         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
11985
11986 2009-02-18  Jason Merrill  <jason@redhat.com>
11987
11988         PR target/39179
11989         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
11990         value if DECL_EXTERNAL.
11991         * tree-sra.c (sra_walk_gimple_assign): Likewise.
11992         * target.h (gcc_target::binds_local_p): Clarify "module".
11993         * tree.h (TREE_PUBLIC): Clarify "module".
11994
11995 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
11996
11997         PR target/38891
11998         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
11999         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
12000
12001 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
12002
12003         PR target/39082
12004         * c.opt (Wabi): Support C and ObjC.
12005         (Wpsabi): New.
12006
12007         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
12008
12009         * config/i386/i386.c (classify_argument): Warn once about the ABI
12010         change when passing union with long double.
12011
12012         * doc/invoke.texi: Update -Wabi for warning psABI changes.
12013
12014 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
12015
12016         PR c/35447
12017         * c-parser.c (c_parser_compound_statement): Always enter and leave
12018         a scope.
12019
12020 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12021
12022         PR target/34587
12023         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
12024
12025 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
12026
12027         PR tree-optimization/36922
12028         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
12029         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
12030         Likewise.
12031
12032 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
12033
12034         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
12035         to 0 for EABI64.
12036
12037 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
12038
12039         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
12040
12041 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
12042
12043         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
12044         tree sharing.
12045
12046 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
12047             Richard Sandiford  <rdsandiford@googlemail.com>
12048
12049         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
12050         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
12051         (loongson_biadd): ...this.
12052
12053 2009-02-17  Richard Guenther  <rguenther@suse.de>
12054
12055         PR tree-optimization/39202
12056         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
12057         a var make sure to follow existing collapses.
12058
12059 2009-02-17  Richard Guenther  <rguenther@suse.de>
12060
12061         PR middle-end/39214
12062         * langhooks.c (lhd_print_error_function): Check for NULL block.
12063
12064 2009-02-17  Richard Guenther  <rguenther@suse.de>
12065
12066         PR tree-optimization/39204
12067         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
12068         of the PHI arg.
12069
12070 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
12071
12072         * config/soft-fp/double.h: Update from glibc CVS.
12073
12074 2009-02-17  Richard Guenther  <rguenther@suse.de>
12075
12076         PR tree-optimization/39207
12077         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
12078         strict-aliasing warnings for pointers pointing to NULL.
12079
12080 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
12081
12082         PR c/35446
12083         * c-parser.c (c_parser_braced_init): Call pop_init_level when
12084         skipping until next close brace.
12085
12086 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
12087
12088         PR target/37049
12089         * config/i386/i386.c (ix86_expand_push): Set memory alignment
12090         to function argument boundary.
12091
12092 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
12093
12094         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
12095         in the lea_add. Reload eventually constraints it properly.
12096         * config/picochip/constraints.md: Remove the target constraint
12097         "b", since it is not needed anymore.
12098
12099 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
12100
12101         * gthr-dce.h: Uglify function parameter and local variable names.
12102         * gthr-gnat.h: Likewise.
12103         * gthr-mipssde.h: Likewise.
12104         * gthr-nks.h: Likewise.
12105         * gthr-posix95.h: Likewise.
12106         * gthr-posix.h: Likewise.
12107         * gthr-rtems.h: Likewise.
12108         * gthr-single.h: Likewise.
12109         * gthr-solaris.h: Likewise.
12110         * gthr-tpf.h: Likewise.
12111         * gthr-vxworks.h: Likewise.
12112         * gthr-win32.h: Likewise.
12113
12114 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
12115
12116         PR target/39196
12117         * config/i386/i386.md: Restrict the new peephole2 to move
12118         between MMX/SSE registers.
12119
12120 2009-02-15  Richard Guenther  <rguenther@suse.de>
12121
12122         Revert
12123         2009-02-13  Richard Guenther  <rguenther@suse.de>
12124
12125         * configure.ac: Enable LFS.
12126         * configure: Re-generate.
12127         * config.in: Likewise.
12128
12129 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12130
12131         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
12132         spu_srqwbyte, spu_srqwbytebc): Define.
12133         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
12134         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
12135         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
12136         "shrqby_<mode>"): New insn-and-split patterns.
12137         * config/spu/spu.c (expand_builtin_args): Determine and return
12138         number of operands using spu_builtin_description data.
12139         (spu_expand_builtin_1): Use it.
12140
12141 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
12142
12143         PR target/38056
12144         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
12145         TARGET_CONST_GP.
12146
12147 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
12148
12149         PR target/39149
12150         * config/i386/i386.c (override_options): Correct warning
12151         messages for -malign-loops, -malign-jumps and -malign-functions.
12152
12153 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
12154
12155         PR target/39152
12156         * config/i386/i386.md: Restrict the new peephole2 to move
12157         between the general purpose registers.
12158
12159 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
12160
12161         PR target/39162
12162         * config/i386/i386.c (type_natural_mode): Add a new argument.
12163         Return the original mode and warn ABI change if vector size is 32byte.
12164         (function_arg_advance): Updated.
12165         (function_arg): Likewise.
12166         (ix86_function_value): Likewise.
12167         (ix86_return_in_memory): Likewise.
12168         (ix86_sol10_return_in_memory): Likewise.
12169         (ix86_gimplify_va_arg): Likewise.
12170         (function_arg_32): Don't warn ABX ABI change here.
12171         (function_arg_64): Likewise.
12172
12173 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
12174
12175         * loop-iv.c (implies_p): In the final case, test that operands 0
12176         of the two comparisons match.
12177
12178         * config/bfin/bfin.c (find_prev_insn_start): New function.
12179         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12180         (find_next_insn_start): Move.
12181
12182 2009-02-13  Richard Guenther  <rguenther@suse.de>
12183
12184         * configure.ac: Enable LFS.
12185         * configure: Re-generate.
12186         * config.in: Likewise.
12187
12188 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
12189
12190         PR c/35444
12191         * c-parser.c (c_parser_parms_list_declarator): Discard pending
12192         sizes on syntax error after some arguments have been parsed.
12193
12194 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
12195
12196         * doc/invoke.texi (-fira): Remove.
12197
12198 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
12199
12200         * caller-save.c: Replace regclass.c with reginfo.c in comments.
12201         * recog.c: Likewise.
12202         * rtl.h: Likewise.
12203
12204 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
12205
12206         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12207         (umul_ppmm): Likewise.
12208         (count_leading_zeros): Likewise.
12209         (count_trailing_zeros): Likewise.
12210         (UMUL_TIME): Likewise.
12211
12212 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
12213
12214         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
12215         soft-fp/t-softfp to tmake_file.
12216
12217         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
12218         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
12219         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
12220         IA64_BUILTIN_INFQ]: New.
12221         (ia64_init_builtins): Initialize __builtin_infq,
12222         __builtin_fabsq and __builtin_copysignq if not HPUX.
12223         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
12224         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
12225
12226         * config/ia64/lib1funcs.asm (__divtf3): Define only if
12227         SHARED is defined.
12228         (__fixtfti): Likewise.
12229         (__fixunstfti): Likewise.
12230         (__floattitf): Likewise.
12231
12232         * config/ia64/libgcc-glibc.ver: New.
12233         * config/ia64/t-fprules-softfp: Likewise.
12234         * config/ia64/sfp-machine.h: Likewise.
12235
12236         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
12237         (LIBGCC2_TF_CEXT): Likewise.
12238         (TF_SIZE): Likewise.
12239         (TARGET_INIT_LIBFUNCS): Likewise.
12240
12241         * config/ia64/t-glibc (SHLINB_MAPFILES):
12242         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
12243
12244 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
12245
12246         * config/i386/i386.c (construct_container): Rewrite processing
12247         BLKmode with X86_64_SSE_CLASS.
12248
12249 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
12250
12251         PR target/39152
12252         * config/i386/i386.md: Replace simplify_replace_rtx with
12253         replace_rtx in the new peephole2.
12254
12255 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
12256
12257         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
12258         loop unrolling do not happen at -O2.
12259
12260 2009-02-12  Michael Matz  <matz@suse.de>
12261
12262         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
12263
12264 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
12265
12266         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
12267         for -g3.
12268
12269 2009-02-12  Ben Elliston  <bje@au.ibm.com>
12270
12271         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
12272         patterns when updating the back chain.  Missed in the 2009-02-10
12273         change.
12274
12275 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
12276
12277         * doc/extend.texi (Decimal Floating Types): Update identifier of
12278         draft TR and list of missing support.
12279
12280 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
12281
12282         PR middle-end/39154
12283         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
12284         bit to variable length decl's flags, add it also to its
12285         pointer replacement variable.
12286
12287 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
12288             Jakub Jelinek  <jakub@redhat.com>
12289
12290         PR target/39118
12291         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
12292         (memory_blockage): New expander.
12293         (*memory_blockage): New insn pattern.
12294         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
12295         instead of general blockage at the end of function prologue when
12296         frame pointer is used to access red zone area.  Do not emit blockage
12297         when profiling, it is emitted in generic code.
12298         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
12299         function epilogue when frame pointer is used to access red zone area.
12300
12301 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
12302
12303         PR target/38824
12304         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
12305         by arithmetic with memory operands.
12306         * config/i386/predicates.md (commutative_operator): New.
12307
12308 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
12309
12310         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
12311         bulleted lists.
12312
12313 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
12314
12315         * alias.h (record_alias_subset): Declare.
12316         * alias.c (record_alias_subset): Make global.
12317
12318 2009-02-10  Nick Clifton  <nickc@redhat.com>
12319
12320         * tree-parloops.c: Change license to GPLv3.
12321         * ipa-struct-reorg.c: Change license to GPLv3.
12322         * ipa-struct-reorg.h: Change license to GPLv3.
12323
12324 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
12325
12326         PR c/39084
12327         * c-decl.c (start_struct): Return NULL on error.
12328
12329 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
12330
12331         PR middle-end/39124
12332         * cfgloopmanip.c (remove_path): Call remove_bbs after
12333         cancel_loop_tree, not before it.
12334
12335         PR target/39139
12336         * function.h (struct function): Add has_local_explicit_reg_vars bit.
12337         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
12338         VAR_DECLs were seen.
12339         * tree-ssa-live.c (remove_unused_locals): Recompute
12340         cfun->has_local_explicit_reg_vars.
12341         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
12342         copies or clearings if cfun->has_local_explicit_reg_vars.
12343
12344 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
12345
12346         PR target/39118
12347         * config/i386/i386.c (expand_prologue): Emit blockage at the end
12348         of function prologue when frame pointer is used to access
12349         red zone area.
12350
12351 2009-02-10  Richard Guenther  <rguenther@suse.de>
12352
12353         PR middle-end/39127
12354         * gimplify.c (gimple_regimplify_operands): Always look if
12355         we need to create a temporary.
12356
12357 2009-02-10  Richard Guenther  <rguenther@suse.de>
12358
12359         PR tree-optimization/39132
12360         * tree-loop-distribution.c (todo): New global var.
12361         (generate_memset_zero): Trigger TODO_rebuild_alias.
12362         (tree_loop_distribution): Return todo.
12363
12364 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
12365
12366         PR target/39119
12367         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
12368         (x86_64_reg_class_name): Removed.
12369         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
12370         first one isn't X86_64_SSE_CLASS or any other ones aren't
12371         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
12372         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
12373         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
12374         and 3 X86_64_SSEUP_CLASS.
12375         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
12376         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
12377
12378 2009-02-10  Ben Elliston  <bje@au.ibm.com>
12379
12380         * config/rs6000/rs6000.md (allocate_stack): Always use an update
12381         form instruction to update the stack back chain word, even if the
12382         user has disabled the generation of update instructions.
12383         (movdi_<mode>_update_stack): New.
12384         (movsi_update_stack): Likewise.
12385         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
12386         always use an update form instruction to update the stack back
12387         chain word.
12388
12389 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
12390
12391         PR middle-end/38953
12392         * graphite.c (if_region_set_false_region): After moving a region in
12393         the false branch of a condition, remove the empty dummy basic block.
12394         (gloog): Remove wrong fix for PR38953.
12395
12396 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12397
12398         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
12399         generation due to implicit sign extension.
12400
12401 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
12402
12403         PR middle-end/38981
12404         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
12405         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
12406
12407 2009-02-09  Richard Guenther  <rguenther@suse.de>
12408
12409         PR middle-end/35202
12410         * convert.c (convert_to_real): Disable (float)fn((double)x)
12411         to fnf(x) conversion if errno differences may occur and
12412         -fmath-errno is set.
12413
12414 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
12415
12416         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
12417         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12418         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12419
12420 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
12421
12422         PR c/35434
12423         * c-common.c (handle_alias_attribute): Disallow attribute for
12424         anything not a FUNCTION_DECL or VAR_DECL.
12425
12426 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
12427
12428         PR c/39035
12429         * real.c (do_compare): Special-case compare of zero against
12430         decimal float value.
12431
12432 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
12433
12434         PR c/36432
12435         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
12436         as indicating flexible array members unless the field itself is
12437         being declarared as the incomplete array.
12438
12439 2009-02-06  Jan Hubicka  <jh@suse.cz>
12440
12441         PR tree-optimization/38844
12442         * ipa-inline.c (try_inline): Stop inlining recursion when edge
12443         is already inlined.
12444
12445 2009-02-06  Richard Guenther  <rguenther@suse.de>
12446
12447         PR middle-end/38977
12448         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
12449         fork because we may expand it as __gcov_fork.
12450
12451 2009-02-06  Nick Clifton  <nickc@redhat.com>
12452
12453         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
12454
12455 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
12456
12457         PR tree-optimization/35659
12458         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
12459         vn_phi_eq): Shortcut if hashcode does not match.
12460         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
12461         NULL operands.
12462         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
12463         and avoid iterative_hash_expr.
12464         (FOR_EACH_VALUE_ID_IN_SET): New.
12465         (value_id_compare): Remove.
12466         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
12467         sort expressions by value id.
12468
12469 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
12470
12471         PR target/38991
12472         * config/sh/predicates.md (general_movsrc_operand): Don't check
12473         the subreg of system registers here.
12474
12475 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
12476
12477         PR c++/39106
12478         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
12479         on the copied decl.
12480
12481 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
12482
12483         PR rtl-optimization/39110
12484         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
12485         addresses, not aligned ones.
12486
12487 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
12488             Richard Guenther  <rguenther@suse.de>
12489
12490         PR tree-optimization/39100
12491         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
12492         comment says and add edges.
12493
12494 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
12495
12496         PR c/35435
12497         * c-common.c (handle_tls_model_attribute): Ignore attribute for
12498         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
12499
12500 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
12501
12502         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
12503         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
12504         register_bb_in_sese, new_sese, free_sese): Moved.
12505         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
12506         outermost_loop_in_scop, build_scop_iteration_domain,
12507         expand_scalar_variables_ssa_name, get_vdef_before_scop,
12508         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
12509         Use loop_in_sese_p instead of loop_in_scop_p.
12510         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
12511         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
12512         (scopdet_basic_block_info): Fix bug in scop detection.
12513         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
12514         eq_loop_to_cloog_loop): Remove.
12515         (nb_loops_around_loop_in_scop, nb_loop
12516         ref_nb_loops): Moved here...
12517         * graphite.h (ref_nb_loops): ... from here.
12518         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
12519         (loop_domain_dim, loop_iteration_vector_dim): Remove.
12520         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
12521         * testsuite/gcc.dg/graphite/scop-19.c: New
12522
12523 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
12524             Hans-Peter Nilsson  <hp@axis.com>
12525
12526         PR rtl-optimization/37889
12527         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
12528         Move offset handling from PLUS to before the switch.  Use new
12529         arguments when considering SYMBOL_REFs too.
12530         (rtx_addr_can_trap_p): Pass dummy offset and size.
12531         (enum may_trap_p_flags): Remove.
12532         (may_trap_p_1): Pass size from MEM_SIZE.
12533
12534         PR rtl-optimization/38921
12535         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
12536         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
12537         * rtlanal.c (may_trap_after_code_motion_p): Delete.
12538         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
12539
12540 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
12541
12542         AVX Programming Reference (January, 2009)
12543         * config/i386/sse.md (*vpclmulqdq): New.
12544
12545 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
12546
12547         PR tree-optimization/38977
12548         PR gcov-profile/38292
12549         * calls.c (special_function_p): Disregard __builtin_ prefix.
12550
12551 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
12552
12553         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
12554         non-indexable addresses even before reload.
12555
12556 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
12557
12558         PR c/29129
12559         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
12560         as having variable size.  Do not give an error for unnamed
12561         parameters with [*] declarators.  Give a warning for type names
12562         with [*] declarators and mark them as variable size.
12563         * c-parser.c (c_parser_sizeof_expression): Do not give an error
12564         for sizeof applied to [*] type names.
12565
12566 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12567
12568         PR C++/36607
12569         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
12570
12571 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
12572
12573         * gcc.c (process_command): Update copyright notice dates.
12574         * gcov.c (print_version): Likewise.
12575         * gcov-dump.c (print_version): Likewise.
12576         * mips-tfile.c (main): Likewise.
12577         * mips-tdump.c (main): Likewise.
12578
12579 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
12580
12581         PR c/35433
12582         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
12583         for composite type involving a zero-length array type.
12584
12585 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
12586
12587         PR target/35318
12588         * function.c (match_asm_constraints_1): Skip over
12589         initial optional % in the constraint.
12590
12591         PR inline-asm/39059
12592         * c-parser.c (c_parser_postfix_expression): If fixed point is not
12593         supported, don't accept FIXED_CSTs.
12594         * c-decl.c (finish_declspecs): Error if fixed point is not supported
12595         and _Sat is used without _Fract/_Accum.  Set specs->type to
12596         integer_type_node for cts_fract/cts_accum if fixed point is not
12597         supported.
12598
12599 2009-02-02  Catherine Moore  <clm@codesourcery.com>
12600
12601         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
12602
12603 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
12604
12605         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
12606         (ABI_HAS_64BIT_SYMBOLS): Use it.
12607         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
12608
12609 2009-02-02  Paul Brook  <paul@codesourcery.com>
12610
12611         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
12612
12613 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
12614
12615         PR inline-asm/39058
12616         * recog.h (asm_operand_ok): Add constraints argument.
12617         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
12618         recurse on matching constraint.
12619         (check_asm_operands): Pass constraints as 3rd argument to
12620         asm_operand_ok.  Don't look up matching constraint here.
12621         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
12622         to asm_operand_ok.
12623
12624 2009-02-02  Ben Elliston  <bje@au.ibm.com>
12625
12626         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
12627         TARGET_NARROW_VOLATILE_BITFIELD macro names.
12628
12629 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12630
12631         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
12632         information.  Remove some obsolete information.  Reorganize.
12633
12634         * config/pa/fptr.c: Revert license to GPL 2.
12635         * config/pa/milli64.S: Likewise.
12636
12637 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
12638
12639         PR target/38904
12640         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
12641         LIBRARY name in, instead of hard-coding it.
12642         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
12643         extra target make frag to tmake_files according to EH model.
12644         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
12645         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
12646         frags that define makefile variable EH_MODEL appropriately.
12647         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
12648         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
12649         to "-sjlj" according to type of EH configured.
12650         (LIBGCC_SONAME):  Concatenate it to shared library base name.
12651         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
12652         to "_sjlj" according to type of EH configured.
12653         (LIBGCC_SONAME):  Concatenate it to shared library base name.
12654         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
12655         (SHLIB_LINK):  Add missing semicolon to if-else construct.
12656         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
12657         string value of "pe_dll" command-line option.
12658         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
12659         (SHLIB_SONAME):  Use it when overriding t-cygming default.
12660         (SHLIB_IMPLIB):  Override t-cygming default.
12661         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
12662         string value of "pe_dll" command-line option.
12663
12664 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
12665
12666         PR target/38952
12667         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
12668         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
12669
12670 2009-01-31  Richard Guenther  <rguenther@suse.de>
12671
12672         PR tree-optimization/38937
12673         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
12674         computing the transitive closure.
12675
12676 2009-01-30  Richard Guenther  <rguenther@suse.de>
12677
12678         PR tree-optimization/39041
12679         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
12680         Propagate variable indices only if the types match for this stmt.
12681
12682 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
12683
12684         PR target/39013
12685         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
12686         inline but never defined.
12687
12688 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
12689
12690         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
12691         (*insv_h_di_reg_extimm): New insn.
12692         (*insv_l<mode>_reg_extimm): New insn.
12693
12694 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12695
12696         * config/picochip/picochip.c (flag_conserve_stack): set
12697         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
12698         fconserve-stack. Reduce call-overhead used by inliner.
12699
12700 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
12701
12702         PR/38157
12703         * common.opt (flag_conserve_stack): Initialised to zero.
12704
12705 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
12706
12707         PR/39002
12708         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
12709         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
12710         method.
12711
12712 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
12713
12714         * ira-color.c (allocno_reload_assign): Update comments.
12715         * regmove.c (regmove_optimize): Likewise.
12716
12717         * ra.h: Removed.
12718
12719 2009-01-29  Robert Millan  <rmh@aybabtu.com>
12720
12721         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
12722         * config/i386/kopensolaris-gnu.h: New file.  Undefine
12723         `MD_UNWIND_SUPPORT'.
12724         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
12725
12726 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
12727
12728         PR tree-optimization/39007
12729         * tree-loop-distribution.c (generate_builtin): Use
12730         recompute_dominator to compute the immediate dominator of the
12731         basic block just after the loop.
12732
12733 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12734
12735         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
12736         (ASM_OUTPUT_DWARF_PCREL): Define.
12737
12738 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
12739
12740         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
12741         * doc/passes.texi: Remove entries about regclass, local-alloc, and
12742         global.  Modify entries about regmove and IRA.
12743
12744         * ra-conflict.c: Remove the file.
12745
12746         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
12747
12748         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
12749         (pass_regclass_init): Rename to pass_reginfo_init.
12750
12751         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
12752
12753         * toplev.h (flag_ira): Remove.
12754
12755         * caller-save.c (setup_save_areas): Remove flag_ira.
12756
12757         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
12758
12759         * global.c: Remove the file.
12760
12761         * opts.c (decode_options): Remove flag_ira.
12762
12763         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
12764
12765         * regmove.c: Modify file description.
12766         (find_use_as_address, try_auto_increment): Define them only if
12767         AUTO_INC_DEC is defined.
12768         (replacement_quality, replace_in_call_usage, fixup_match_1,
12769         stable_and_no_regs_but_for_p): Remove.
12770         (reg_set_in_bb): Make it static.
12771         (regmove_optimize): Remove flag_ira and code which worked for
12772         !flag_ira.
12773
12774         * local-alloc.c: Remove the file.
12775
12776         * common.opt (fira): Remove.
12777
12778         * ira.c: Include except.h.
12779         (eliminable_regset): Move from global.c.
12780         (mark_elimination): Ditto.  Remove flag_ira.
12781         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
12782         equiv_mem_modified, validate_equiv_mem_from_store,
12783         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
12784         contains_replace_regs, memref_referenced_p, memref_used_between_p,
12785         no_equiv, recorded_label_ref): Move from local-alloc.c.
12786         (update_equiv_regs): Ditto.  Make it static.
12787         (print_insn_chain, print_insn_chains): Move it from global.c.
12788         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
12789         (build_insn_chain): Ditto.  Make it static.
12790         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
12791         Rename to init_live_subregs.
12792         (gate_ira): Remove flag_ira.
12793
12794         * regclass.c: Rename reginfo.c.  Change file description.
12795         (FORBIDDEN_INC_DEC_CLASSES): Remove.
12796         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
12797         (init_reg_sets_1): Remove code for evaluation of
12798         reg_class_superclasses and losing_caller_save_reg_set.
12799         (init_regs): Remove init_reg_autoinc.
12800         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
12801         ok_for_base_p_nonstrict): Remove.
12802         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
12803         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
12804         corresponding entries.
12805         (dump_regclass, record_operand_costs, scan_one_insn,
12806         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
12807         record_address_regs, auto_inc_dec_reg_p): Remove.
12808         (gt-regclass.h): Rename to gt-reginfo.h.
12809
12810         * rtl.h (dump_global_regs, retry_global_alloc,
12811         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
12812
12813         * Makefile.in (RA_H): Remove.
12814         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
12815         Rename regclass.o to reginfo.o.
12816         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
12817         gt-reginfo.h.
12818         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
12819         (GTFILES): Rename regclass.c to reginfo.c.
12820
12821         * passes.c (init_optimization_passes): Remove pass_local_alloc and
12822         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
12823
12824         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
12825         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
12826         Remove flag_ira.
12827         (finish_spills): Ditto.  Remove code for !flag_ira.
12828
12829 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
12830
12831         PR middle-end/35854
12832         * doc/invoke.texi (rtl debug options): Complete rewrite.
12833         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
12834         to auto_inc_dec".
12835         * mode-switching.c (pass_mode_switching): Rename pass from
12836         "mode-sw" to "mode_sw".
12837         * except.c (pass_convert_to_eh_ranges): Rename pass from
12838         "eh-ranges" to "eh_ranges".
12839         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
12840         to "subreg1".
12841
12842
12843 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
12844             Alexander Monakov  <amonakov@ispras.ru>
12845
12846         PR middle-end/38857
12847         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
12848         register.
12849         (move_exprs_to_boundary): Change return type and pass through
12850         should_move from move_op.  Relax assert.  Update usage ...
12851         (schedule_expr_on_boundary): ... here.  Use should_move instead of
12852         cant_move.
12853         (move_op_orig_expr_found): Indicate that insn was disconnected from
12854         stream.
12855         (code_motion_process_successors): Do not call after_merge_succs
12856         callback if original expression was not found when traversing any of
12857         the branches.
12858         (code_motion_path_driver): Change return type.  Update prototype.
12859         (move_op): Update comment.  Add a new parameter (should_move).  Update
12860         prototype.  Set *should_move based on indication provided by
12861         move_op_orig_expr_found.
12862
12863 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
12864
12865         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
12866         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
12867         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
12868         * config/rs6000/rs6000.c (rs6000_override_options): Default
12869         avoid-indexed-addresses on for Power6, off for everything else.
12870         (avoiding_indexed_address_p): New function.
12871         (rs6000_legitimize_address): Use it.
12872         (rs6000_legitimate_address): Likewise.
12873         * config/rs6000/rs6000.md (movXX_updateX): Likewise
12874
12875 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
12876
12877         PR tree-optimization/38997
12878         * tree-loop-distribution.c (generate_memset_zero): Use
12879         POINTER_PLUS_EXPR for a pointer addition.
12880
12881 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
12882
12883         * config/s390/s390.md (bswap<mode>2): New pattern added.
12884
12885 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
12886
12887         * config/s390/s390.md (*tls_load_31): Added type attribute.
12888
12889 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
12890
12891         * config/s390/s390.md: Fix a few comments.
12892
12893 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
12894
12895         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
12896         (*tm<mode>_full): Fixed z10prop attribute.
12897         (*tst<mode>_extimm): Fixed z10prop attribute.
12898         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
12899         (*tstqiCCT_cconly): Fixed z10prop attribute.
12900         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
12901         (*movsi_larl): Fixed z10prop attribute.
12902         (*movsi_zarch): Fixed z10prop attribute.
12903         (*movsi_eas): Fixed z10prop attribute.
12904         (*movhi): Fixed z10prop attribute.
12905         (*movqi): Fixed z10prop attribute.
12906         (*movstrictqi): Fixed z10prop attribute.
12907         (*mov<mode>): Fixed z10prop attribute.
12908         (*movcc): Fixed z10prop attribute.
12909         (*sethighpartdi_64): Fixed z10prop attribute.
12910         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
12911         (*negdi2_sign_cc): Fixed z10prop attribute.
12912         (*negdi2_sign): Fixed z10prop attribute.
12913         (*absdi2_sign_cc): Fixed z10prop attribute.
12914         (*absdi2_sign): Fixed z10prop attribute.
12915         (*negabsdi2_sign_cc): Fixed z10prop attribute.
12916         (*negabsdi2_sign): Fixed z10prop attribute.
12917         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
12918         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
12919         (doloop_si64): Fixed z10prop attribute.
12920         (doloop_si31): Fixed z10prop attribute.
12921         (doloop_long): Fixed z10prop attribute.
12922         (indirect_jump): Fixed z10prop attribute.
12923         (nop): Fixed z10prop attribute.
12924         (main_base_64): Fixed z10prop attribute.
12925         (reload_base_64): Fixed z10prop attribute.
12926
12927 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
12928
12929         PR rtl-optimization/38740
12930         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
12931         if !optimize.
12932         * config/mips/mips.c (mips_reorg): Likewise.
12933
12934 2009-01-28  Richard Guenther  <rguenther@suse.de>
12935
12936         PR tree-optimization/38926
12937         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
12938         with the correct value id to a value.
12939         (do_regular_insertion): Use the value number of edoubleprime
12940         for the value number of the expr.
12941
12942         Revert
12943         2008-08-21  Richard Guenther  <rguenther@suse.de>
12944
12945         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
12946         a PHI ask VN if it is already available.
12947         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
12948         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
12949
12950 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
12951
12952         PR middle-end/38934
12953         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
12954         set to varying whenever max has TREE_OVERFLOW set, similarly
12955         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
12956
12957 2009-01-28  Richard Guenther  <rguenther@suse.de>
12958
12959         PR middle-end/38908
12960         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
12961         uninitialized aggregate uses in call arguments.
12962
12963 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
12964
12965         PR tree-optimization/38984
12966         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
12967         the nothing_id variable if -fno-delete-null-pointer-checks.
12968
12969 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
12970
12971         PR target/38988
12972         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
12973         (set_got_offset_rex64): Ditto.
12974
12975 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
12976
12977         PR target/38941
12978         * doc/extend.texi: Improve local variable with asm reg.
12979
12980 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
12981
12982         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
12983         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
12984         was not supplied then set warn_packed_bitfield_compat to the
12985         default value of 1.
12986         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
12987         against 1.
12988
12989 2009-01-27  Richard Guenther  <rguenther@suse.de>
12990
12991         PR tree-optimization/38503
12992         * cfgexpand.c (expand_gimple_basic_block): Ignore
12993         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
12994         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
12995         variables that cannot have TBAA applied.
12996         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
12997         statements.
12998
12999 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
13000
13001         PR middle-end/38969
13002         * calls.c (initialize_argument_information): Do not wrap complex
13003         arguments in SAVE_EXPR.
13004
13005 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
13006
13007         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
13008         (INSTALL_LIBGCC): Revert typo commit.
13009
13010 2009-01-26  Richard Guenther  <rguenther@suse.de>
13011
13012         PR tree-optimization/38745
13013         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
13014         from special handling.
13015
13016 2009-01-26  Richard Guenther  <rguenther@suse.de>
13017
13018         PR tree-optimization/38745
13019         * tree-ssa.c (execute_update_addresses_taken): Do not include
13020         variables that cannot possibly be a register in not_reg_needs.
13021         Do not clear TREE_ADDRESSABLE on vars that may not become
13022         registers.
13023         * tree-ssa.c (update_alias_info_1): Include those in the set
13024         of addressable vars.
13025
13026 2009-01-26  Richard Guenther  <rguenther@suse.de>
13027
13028         PR middle-end/38851
13029         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
13030         * tree-ssa-dse.c: Include langhooks.h
13031         (execute_simple_dse): Remove stores with zero size.
13032
13033 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
13034
13035         PR c/38957
13036         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
13037         as PLUS_EXPR.
13038
13039 2009-01-24  Julian Brown  <julian@codesourcery.com>
13040
13041         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
13042         config/arm/linux-atomic.c.
13043         * config/arm/linux-atomic.c: New.
13044
13045 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
13046
13047         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
13048         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
13049         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
13050
13051 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
13052
13053         PR c/38938
13054         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
13055         properly.
13056
13057 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
13058
13059         PR tree-optimization/38953
13060         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
13061         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
13062         (gloog): Split the exit of the scop when the scop exit is a loop exit.
13063         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
13064         changed the CFG.
13065
13066 2009-01-24  Paul Brook  <paul@codesourcery.com>
13067
13068         * config/arm/neon.md (neon_type): Move to arm.md.
13069         (neon_mov<VSTRUCT>): Add neon_type attribute.
13070         * config/arm/arm.md (neon_type): Move to here.
13071         (conds): Add "unconditioal" and use as default for NEON insns.
13072
13073 2009-01-24  Ben Elliston  <bje@au.ibm.com>
13074
13075         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
13076         void *' warning from -Wc++-compat.
13077         * Makefile.in (dominance.o-warn): Remove.
13078
13079 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
13080
13081         PR tree-optimization/38932
13082         * fold-const.c (fold_unary_ignore_overflow): New.
13083         * tree.h (fold_unary_ignore_overflow): Declare.
13084         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
13085         * tree-ssa-sccvn.c (visit_reference_op_load,
13086         simplify_unary_expression): Likewise.
13087
13088 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
13089
13090         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
13091         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
13092         regardless of their type.
13093         * c-common.c (handle_packed_attribute): Don't ignore packed on
13094         bitfields.
13095         * c.opt (Wpacked-bitfield-compat): New warning option.
13096         * stor-layout.c (place_field): Warn if offset of a field changed.
13097         * doc/extend.texi (packed): Mention the ABI change.
13098         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
13099         (Warning Options): Add it to the list.
13100
13101 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
13102
13103         * c-opts.c (c_common_post_options): Fix a typo in comments.
13104
13105 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
13106
13107         PR middle-end/38615
13108         * gimplify.c (gimplify_init_constructor): Fix promotion of const
13109         variables to static.
13110         * doc/invoke.texi (-fmerge-all-constants): Update description.
13111
13112 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
13113
13114         PR target/38931
13115         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
13116         (*movdi_1_rex64): Use type "mmx" for alternative 5.
13117
13118 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
13119
13120         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
13121         a word boundary.
13122         (LOCAL_ALIGNMENT): Similarly.
13123
13124 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
13125             Joseph Myers  <joseph@codesourcery.com>
13126
13127         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
13128         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
13129         * config/arm/arm-tune.md: Regenerate.
13130         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
13131         -march=iwmmxt2.
13132
13133 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
13134
13135         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
13136         version number to five.
13137
13138 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
13139
13140         PR c++/38930
13141         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
13142         * c-common.c (set_underlying_type): Likewise.
13143         (is_typedef_decl ): Likewise
13144         * tree.h: Likewise
13145         (set_underlying_type): Likewise.
13146         (is_typedef_type): Likewise.
13147
13148 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
13149
13150         PR middle-end/38587
13151         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
13152         crossing setjmps.
13153
13154 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
13155
13156         PR bootstrap/37660
13157         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
13158         (LIBGCC_SPEC):  Don't define.
13159         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
13160
13161 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
13162
13163         PR rtl-optimization/38879
13164         * alias.c (base_alias_check): Unaligned access via AND address can
13165         alias all surrounding object types except those with sizes equal
13166         or wider than the size of unaligned access.
13167
13168 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
13169
13170         PR c++/26693
13171         * c-decl.c (clone_underlying_type): Move this ...
13172         * c-common.c (set_underlying_type): ... here.
13173         Also, make sure the function properly sets TYPE_STUB_DECL() on
13174         the newly created typedef variant type.
13175         (is_typedef_decl ): New entry point.
13176         * tree.h: Added a new member member_types_needing_access_check to
13177         struct tree_decl_non_common.
13178         (set_underlying_type): New entry point.
13179         (is_typedef_type): Likewise.
13180
13181 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
13182
13183         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13184         Check whether two instructions have memory references that
13185         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
13186         are helper functions for traversing.
13187         * alias.h (insn_alias_sets_confilict_p): New prototypes.
13188         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13189         not to draw dependency edge for instructions with non-conflicting
13190         alias sets.
13191
13192 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
13193
13194         PR other/38758
13195         * longlong.h: Update copyright years.  Use soft-fp license notice.
13196         Sync __clz_tab declaration with glibc.
13197
13198 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
13199
13200         PR target/30687
13201         * doc/extend.texi (syscall_linkage): New.
13202         (version_id): Modify.
13203
13204 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13205             Richard Guenther  <rguenther@suse.de>
13206
13207         PR tree-optimization/38747
13208         PR tree-optimization/38748
13209         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13210         conversion if the base address is an indirect reference and the
13211         aliasing sets could cause issues.
13212
13213 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
13214
13215         * common.opt (fgraphite, fgraphite-identity): Add comment for
13216         explaining why these options are not documented.
13217
13218 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
13219
13220         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
13221         gimple_call_lhs is NULL.
13222
13223 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
13224
13225         PR target/38868
13226         * emit-rtl.c (adjust_address_1): Make sure memref is never
13227         overwritten.
13228
13229 2009-01-20  Ben Elliston  <bje@au.ibm.com>
13230
13231         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13232         const qualifier from arg parameter. Remove unnecessary cast to char *.
13233         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13234         const qualifier from arg 2.
13235
13236 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
13237
13238         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
13239
13240 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
13241
13242         PR c/38869
13243         * rtl.h (reinit_regs): New prototype.
13244         * regclass.c: Include ira.h.
13245         (reinit_regs): New.
13246         * Makefile.in (regclass.o): Add ira.h.
13247         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
13248
13249 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
13250
13251         PR target/38736
13252         * c-common.c (handle_aligned_attribute): Use
13253         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
13254         default alignment value.
13255
13256         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
13257
13258         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
13259         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
13260
13261         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
13262         __BIGGEST_ALIGNMENT__.
13263
13264         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
13265
13266 2009-01-18  Richard Guenther  <rguenther@suse.de>
13267
13268         PR tree-optimization/38819
13269         * tree-flow.h (operation_could_trap_helper_p): Declare.
13270         * tree-eh.c (operation_could_trap_helper_p): Export.
13271         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
13272         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
13273         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
13274         are about to insert a possibly trapping instruction and fail
13275         in this case.
13276
13277 2009-01-18  Andreas Schwab  <schwab@suse.de>
13278
13279         * doc/install.texi (Configuration): Remove obsolete paragraph
13280         about use of --with-gnu-ld with --with-gnu-as.
13281
13282 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
13283
13284         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
13285         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
13286         Follow spelling conventions.
13287
13288 2009-01-18  Ben Elliston  <bje@au.ibm.com>
13289
13290         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
13291         C++ warning about implicit conversion from void * to struct
13292         bitmap_head_def *.
13293         (bitmap_obstack_free): Likewise for bitmap_element *.
13294         * Makefile.in (bitmap.o-warn): Remove.
13295
13296 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
13297
13298         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
13299
13300 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
13301             Tobias Grosser  <tobi.grosser@amd.com>
13302
13303         * graphite.c (graphite_trans_scop_block): Do not block single
13304         nested loops.
13305
13306 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
13307
13308         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
13309         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
13310         test with assertion.
13311
13312 2009-01-16  Richard Guenther  <rguenther@suse.de>
13313
13314         PR tree-optimization/38835
13315         PR middle-end/36227
13316         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
13317         and INT + PTR -> (INT)(PTR p+ INT) folding.
13318         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
13319
13320 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
13321
13322         PR target/38554
13323         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
13324         the subreg from a lowpart subreg if it is also casting the value.
13325
13326 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13327             Tobias Grosser  <tobi.grosser@amd.com>
13328
13329         * graphite.c (compare_prefix_loops): New.
13330         (build_scop_canonical_schedules): Rewritten.
13331         (graphite_transform_loops): Move build_scop_canonical_schedules
13332         after build_scop_iteration_domain.
13333
13334 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
13335             Tobias Grosser  <tobi.grosser@amd.com>
13336
13337         * graphite.c (add_conditions_to_domain): Add the loops to
13338         the dimension of the iteration domain.  Do copy the domain
13339         only when it exists.
13340         (build_scop_conditions_1): Do not call add_conditions_to_domain.
13341         (add_conditions_to_constraints): New.
13342         (can_generate_code_stmt, can_generate_code): Removed.
13343         (gloog): Do not call can_generate_code.
13344         (graphite_transform_loops): Call add_conditions_to_constraints
13345         after building the iteration domain.
13346
13347 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
13348
13349         PR tree-optimization/38789
13350         * tree-ssa-threadedge.c
13351         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
13352         __builtin_constant_p.
13353
13354 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
13355
13356         * dce.c (delete_unmarked_insns): Reversed the order that insns are
13357         examined before deleting them.
13358
13359 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
13360
13361         * function.c (aggregate_value_p): Correctly extract the function
13362         type from CALL_EXPR_FN lookup.
13363
13364 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
13365
13366         * config/picochip/picochip.c (picochip_override_options): Revert
13367         CFI asm flag disable commited previously.
13368
13369 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
13370             Tobias Grosser  <tobi.grosser@amd.com>
13371             Jan Sjodin  <jan.sjodin@amd.com>
13372
13373         * graphite.c (scan_tree_for_params): On substractions negate
13374         all the coefficients of the term.
13375         (clast_to_gcc_expression_red): New.  Handle reduction expressions
13376         of more than two operands.
13377         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
13378         (get_vdef_before_scop): Handle also the case of default definitions.
13379
13380 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
13381
13382         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
13383         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
13384         Also use them when walking CALL_INSN_FUNCTION_USAGE.
13385
13386 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
13387             Joey Ye  <joey.ye@intel.com>
13388
13389         PR middle-end/37843
13390         * cfgexpand.c (expand_stack_alignment): Don't update stack
13391         boundary nor check incoming stack boundary here.
13392         (gimple_expand_cfg): Update stack boundary and check incoming
13393         stack boundary here.
13394
13395 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
13396
13397         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
13398
13399 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
13400
13401         PR rtl-optimization/38245
13402         * calls.c (expand_call): Add stack arguments to
13403         CALL_INSN_FUNCTION_USAGE even for pure calls (when
13404         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
13405         in regs and partially in memory or BLKmode arguments.
13406         (emit_library_call_value_1): Add stack arguments to
13407         CALL_INSN_FUNCTION_USAGE even for pure calls (when
13408         ACCUMULATE_OUTGOING_ARGS).
13409         * dce.c: Include tm_p.h.
13410         (find_call_stack_args): New function.
13411         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
13412         argument.
13413         (mark_insn): Call find_call_stack_args for CALL_Ps.
13414         (prescan_insns_for_dce): Walk insns backwards in bb rather than
13415         forwards.  Allocate and free arg_stores bitmap if needed, pass it
13416         down to deletable_insn_p, don't mark stores set in arg_stores
13417         bitmap, clear the bitmap at the beginning of each bb.
13418         * Makefile.in (dce.o): Depend on $(TM_P_H).
13419
13420 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
13421
13422         PR target/22599
13423         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
13424         to make sure the insn is a conditional test (bug 22599).  Reformat a
13425         few long lines.
13426
13427 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
13428
13429         PR middle-end/38431
13430         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
13431         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
13432         (gloog): Do not call cleanup_tree_cfg.
13433         (graphite_transform_loops): Call cleanup_tree_cfg after all
13434         scops have been code generated.
13435
13436 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
13437         * doc/gty.texi (Invoking the garbage collector): Added new node
13438         and section documenting ggc_collect.
13439
13440 2009-01-14  Richard Guenther  <rguenther@suse.de>
13441
13442         PR tree-optimization/38826
13443         PR middle-end/38477
13444         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
13445         initialization notes only if we actually emitted a warning.
13446         (intra_create_variable_infos): Add constraints for a result decl
13447         that is passed by hidden reference.
13448         (build_pred_graph): Mark all related variables non-direct on
13449         address-taking.
13450
13451 2009-01-14  Nick Clifton  <nickc@redhat.com>
13452
13453         * ira-conflicts.c: Include addresses.h for the definition of
13454         base_reg_class.
13455         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
13456         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
13457
13458 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
13459
13460         PR target/38811
13461         * Makefile.in (ira-lives.o): Add except.h.
13462
13463         * ira-lives.c: Include except.h.
13464         (process_bb_node_lives): Process can_throw_internal.
13465
13466 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
13467
13468         PR rtl-optimization/38774
13469         * combine.c (simplify_set): When undoing cc_use change, don't do
13470         PUT_CODE on the newly created comparison, but instead put back the
13471         old comparison.
13472
13473 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
13474
13475         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
13476         values.  Remove duplicate arm8 entry.
13477
13478 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
13479
13480         PR tree-optimization/38786
13481         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
13482         the SSA_NAME case of expand_scalar_variables_expr.
13483         Set the type of an expression to the type of its assign statement.
13484         (expand_scalar_variables_expr): Also gather the scalar computation
13485         used to index the memory access.  Do not pass loop_p.
13486         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
13487         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
13488         the gimple_stmt_iterator where it inserts new code.
13489         Do not pass loop_p.
13490         (copy_bb_and_scalar_dependences): Do not pass loop_p.
13491         (translate_clast): Update call to copy_bb_and_scalar_dependences.
13492
13493 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
13494
13495         * graphite.h (debug_value): Removed.
13496         * graphite.c (debug_value): Removed.
13497
13498 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
13499
13500         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
13501         ldrd/strd with two 32-bit instructions.
13502
13503 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
13504
13505         * config/arm/arm.c (struct processors): Pass for speed down into
13506         cost helper functions.
13507         (const_ok_for_op): Handle COMPARE and inequality nodes.
13508         (arm_rtx_costs_1): Rewrite.
13509         (arm_size_rtx_costs): Update prototype.
13510         (arm_rtx_costs): Pass speed down to helper functions.
13511         (arm_slowmul_rtx_costs): Rework cost calculations.
13512         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
13513         (arm_9e_rtx_costs): Likewise.
13514
13515 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
13516
13517         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
13518         relocations of local symbols wider than UNITS_PER_WORD are not valid.
13519         (alpha_legitimize_address): Do not split local symbols wider than
13520         UNITS_PER_WORD into HIGH/LO_SUM parts.
13521
13522 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
13523
13524         PR bootstrap/38580
13525         * gcc.c (process_command): Replace call to execvp with calls
13526         to pex_one and exit.
13527
13528 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
13529
13530         PR target/29141
13531         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
13532         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
13533         variant for devices with 3-byte PC.
13534         (__tablejump_elpm__): New.
13535
13536 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
13537
13538         PR c/32041
13539         * c-parser.c (c_parser_postfix_expression): Allow `->' in
13540         offsetof member-designator, handle it as `[0].'.
13541
13542 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13543
13544         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
13545         function when not using named sections on targets with named sections
13546         if branch distance is less than 262132.
13547
13548 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
13549
13550         * combine.c (combine_instructions):  Recompute
13551         optimize_this_for_speed_p  for each BB in the main combine loop.
13552
13553 2009-01-12  Tomas Bily  <tbily@suse.cz>
13554
13555         PR middlend/38385
13556         * tree-loop-distribution.c (prop_phis): New function.
13557         (generate_builtin): Call prop_phis.
13558         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
13559
13560 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
13561
13562         PR tree-optimization/38807
13563         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
13564         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
13565
13566 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
13567
13568         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
13569         subreg of op0 to the original op0.
13570
13571 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
13572
13573         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
13574
13575 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
13576
13577         PR debug/7055
13578         * mips-tfile.c (parse_def): Fix parsing of def strings
13579         starting with digits.
13580
13581 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
13582
13583         PR target/38695
13584         * config/arm/arm.c (arm_is_long_call_p): Don't call
13585         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
13586
13587 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
13588
13589         * regrename.c (regrename_optimize): Fix dumping.
13590         (find_oldest_value_reg): Preserve REG_POINTER.
13591         (copy_hardreg_forward_1): Likewise.
13592
13593 2009-01-09  Diego Novillo  <dnovillo@google.com>
13594
13595         * gimple.h (struct gimple_statement_base) <uid>: Document
13596         the restrictions on its use.
13597         (gimple_uid): Tidy.
13598         (gimple_set_uid): Tidy.
13599
13600 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
13601
13602         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
13603         zero guard even if align_bytes != 0 and count is smaller than
13604         size_needed.
13605
13606 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
13607
13608         PR rtl-optimization/38495
13609         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
13610         (add_range_and_copies_from_move_list): Print all added ranges.
13611         Add ranges to memory optimized destination.
13612
13613 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
13614
13615         PR target/38686
13616         PR target/38708
13617         * config/i386/i386.c (override_options): Reject
13618         -mstringop-strategy=rep_8byte with -m32.
13619         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
13620         to 1.  Do count comparison against epilogue_size_needed at compile
13621         time even when count_exp was constant forced into register.  For
13622         size_needed don't jump to epilogue, instead just avoid aligning
13623         and invoke the body algorithm.  If need_zero_guard, add zero guard
13624         even if count is non-zero, but smaller than size_needed + number of
13625         bytes that could be stored for alignment.
13626         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
13627         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
13628         but smaller than size_needed + number of bytes that could be stored
13629         for alignment.  Compare size_needed with epilogue_size_needed instead
13630         of desired_align - align, don't adjust size_needed, pass
13631         epilogue_size_needed to the epilogue expanders.
13632
13633         PR c/35742
13634         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
13635
13636 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13637
13638         * pa.c (last_address): Change to unsigned.
13639         (update_total_code_bytes): Change argument to unsigned.  Don't
13640         check if insn addresses are set.
13641         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
13642         addresses are not set.
13643         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
13644
13645 2009-01-09  Nick Clifton  <nickc@redhat.com>
13646
13647         * config/sh/symbian.c: Replace uses of DECL_INLINE with
13648         DECL_DECLARED_INLINE_P.
13649
13650 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
13651
13652         PR middle-end/38347
13653         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
13654         GET_MODE (op0) in operand_subword_force calls.
13655
13656         PR middle-end/38771
13657         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
13658         fold_convert arg0 operands to TREE_TYPE (op0) first.
13659
13660 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
13661
13662         * params.def (ira-max-conflict-table-size): Decrease default value
13663         to 1000.
13664
13665 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
13666
13667         PR tree-optimization/37031
13668         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
13669         on parameter_set.
13670         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
13671         allocate it using gc instead of heap, use VEC_quick_push instead of
13672         VEC_safe_push.
13673         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
13674         instead of heap, use VEC_quick_push instead of VEC_safe_push.
13675         * tree-data-ref.h (struct access_matrix): Change matrix to gc
13676         allocated vector from heap allocated.
13677         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
13678         * tree-loop-linear.c (linear_transform_loops): Allocate nest
13679         vector only after perfect_loop_nest_depth call.
13680
13681 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
13682             Jan Sjodin  <jan.sjodin@amd.com>
13683
13684         PR tree-optimization/38559
13685         * graphite.c (debug_value, copy_constraint,
13686         swap_constraint_variables, scale_constraint_variable, ): New.
13687         (get_lower_bound, get_upper_bound): Removed.
13688         (graphite_trans_bb_strip_mine): Clean up this code that works
13689         only for constant number of iterations.  Fully copy upper and
13690         lower bound constraints, not only the constant part of them.
13691         * graphite.h (debug_value): Declared.
13692
13693 2009-01-08  Ira Rosen  <irar@il.ibm.com>
13694
13695         PR tree-optimization/37194
13696         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
13697         Don't add the cost of cost model guard in prologue to scalar
13698         outside cost in case of known number of iterations.
13699
13700 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
13701             Alan Modra  <amodra@bigpond.net.au>
13702
13703         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
13704         non-word-aligned REG+CONST addressing.
13705
13706 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
13707
13708         PR target/38706
13709         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
13710         free_after_compilation when outputting a thunk.
13711         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
13712         Do not call free_after_compilation here.
13713
13714 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
13715
13716         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
13717         (ix86_valid_target_attribute_inner_p): Ditto.
13718
13719 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
13720
13721         PR tree-optimization/38492
13722         PR tree-optimization/38498
13723         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
13724         * tree-chrec.h (scev_is_linear_expression): Declared.
13725         * graphite.c (graphite_cannot_represent_loop_niter): New.
13726         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
13727         (graphite_loop_normal_form): Use gcc_assert.
13728         (scan_tree_for_params): Use CASE_CONVERT.
13729         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
13730         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
13731         Use gcc_assert.  Discard scops that contain unhandled cases.
13732         (build_scop_conditions): Return a boolean status for unhandled cases.
13733         (strip_mine_profitable_p): Print the loop number, not its depth.
13734         (is_interchange_valid): Pass the depth of the loop nest, don't
13735         recompute it wrongly.
13736         (graphite_trans_bb_block): Same.
13737         (graphite_trans_bb_block): Print tentative of loop blocking.
13738         (graphite_trans_scop_block): Do not print that the loop has been
13739         blocked.
13740         (graphite_transform_loops): Do not handle scops that contain condition
13741         scalar phi nodes.
13742
13743 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
13744
13745         AVX Programming Reference (December, 2008)
13746         * config/i386/avxintrin.h (_mm256_stream_si256): New.
13747         (_mm256_stream_pd): Likewise.
13748         (_mm256_stream_ps): Likewise.
13749
13750         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
13751         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
13752         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
13753         (bdesc_special_args): Add __builtin_ia32_movntdq256,
13754         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
13755         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
13756         (ix86_expand_special_args_builtin): Likewise.
13757
13758         * config/i386/sse.md (AVXMODEDI): New.
13759         (avx_movnt<mode>): Likewise.
13760         (avx_movnt<mode>): Likewise.
13761         (<sse>_movnt<mode>): Remove AVX support.
13762         (sse2_movntv2di): Likewise.
13763
13764 2009-01-07  Richard Guenther  <rguenther@suse.de>
13765
13766         PR middle-end/38751
13767         * fold-const.c (extract_muldiv): Remove obsolete comment.
13768         (fold_plusminus_mult_expr): Undo MINUS_EXPR
13769         to PLUS_EXPR canonicalization for the canonicalization.
13770
13771 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
13772
13773         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
13774         hosted cross-compilers generating less efficient code.
13775
13776 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
13777
13778         * function.h (rtl_data): Add a dbr_scheduled_p field.
13779         * reorg.c (dbr_schedule): Set it.
13780         (gate_handle_delay_slots): Check it.
13781         * config/mips/mips.c (mips_base_delayed_branch): Delete.
13782         (mips_reorg): Check flag_delayed_branch instead of
13783         mips_base_delayed_branch.
13784         (mips_override_options): Don't set mips_base_delayed_branch
13785         or flag_delayed_branch.
13786
13787 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
13788
13789         PR rtl-optimization/38426.
13790         * ira.c (ira): Set current_function_is_leaf earlier.
13791
13792 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
13793
13794         PR rtl-optimization/38722
13795         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
13796         too early, only set a flag and modify after last possible
13797         undo_all point.
13798
13799 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
13800
13801         PR c/34252
13802         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
13803         * real.c (decimal_single_format): Correct values of emin and emax.
13804         (decimal_double_format): Ditto.
13805         (decimal_quad_format): Ditto.
13806         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
13807         computation of DECnn_MIN and DECnn_MAX for corrected values of
13808         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
13809         __DECnn_MIN__, and adjust its computation for the corrected value
13810         of emin.
13811
13812 2009-01-06  Jan Hubicka  <jh@suse.cz>
13813
13814         PR target/38744
13815         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
13816
13817 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
13818
13819         * doc/contrib.texi (Contributors): Slightly adjust the end note.
13820         Add Robert Clark to the list of testers.
13821
13822 2009-01-06  Jan Hubicka  <jh@suse.cz>
13823             Kai Tietz  <kai.tietz@onevision.com>
13824
13825         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
13826         * config/i386/i386.c (ix86_expand_call): Add clobbers.
13827
13828 2009-01-06  Jan Hubicka  <jh@suse.cz>
13829             Kai Tietz  <kai.tietz@onevision.com>
13830
13831         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
13832         for w64 ABI.
13833         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
13834         (ix86_nsaved_regs): Count only general purpose regs.
13835         (ix86_nsaved_sseregs): New.
13836         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
13837         to 16 for w64; compute padding and size of sse reg save area.
13838         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
13839         general purpose regs.
13840         (ix86_emit_save_sse_regs_using_mov): New.
13841         (ix86_expand_prologue): Save SSE regs if needed.
13842         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
13843         (ix86_emit_restore_sse_regs_using_mov): New.
13844         (ix86_expand_epilogue): Save SSE regs if needed.
13845
13846 2009-01-06  Jan Hubicka  <jh@suse.cz>
13847             Kai Tietz  <kai.tietz@onevision.com>
13848
13849         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
13850         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
13851         functions when accumulate outgoing args is off.
13852
13853 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
13854
13855         PR bootstrap/38742
13856         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
13857         before using pseudos_have_intersected_live_ranges_p.
13858
13859         * ira-int.h (ira_assert): Always define.
13860
13861 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
13862
13863         AVX Programming Reference (December, 2008)
13864         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
13865         (_mm256_permute2_pd): Likewise.
13866         (_mm_permute2_ps): Likewise.
13867         (_mm256_permute2_ps): Likewise.
13868         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
13869         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
13870
13871         * config/i386/i386.c (ix86_builtins): Remove
13872         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
13873         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
13874         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
13875         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
13876         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
13877         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
13878         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
13879         __builtin_ia32_vpermil2ps256.
13880         (ix86_init_mmx_sse_builtins): Updated.
13881         (ix86_expand_args_builtin): Likewise.
13882
13883 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13884
13885         * pa.c (output_call): Relocate non-jump insns in the delay slot of
13886         long absolute calls when generating PA 2.0 code.
13887
13888 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
13889
13890         PR rtl-optimization/38583
13891         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
13892
13893         * params.def (ira-max-conflict-table-size): New.
13894
13895         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
13896
13897         * ira.h (ira_conflicts_p): New external definition.
13898
13899         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
13900         table.  Report this.  Return result of building.
13901         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
13902         building conflict table.
13903
13904         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
13905         (ira_color): Use ira_conflicts_p.
13906
13907         * global.c: Include ira.h.
13908         (pseudo_for_reload_consideration_p, build_insn_chain): Use
13909         ira_conflicts_p.
13910
13911         * Makefile.in (global.o): Add ira.h.
13912
13913         * ira-build.c (mark_all_loops_for_removal,
13914         propagate_some_info_from_allocno): New.
13915         (remove_unnecessary_allocnos): Call
13916         propagate_some_info_from_allocno.
13917         (remove_low_level_allocnos): New.
13918         (remove_unnecessary_regions): Add parameter.  Call
13919         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
13920         parameter to remove_unnecessary_regions.
13921         (ira_build): Remove all regions but root if the conflict table was
13922         not built.  Update conflict hard regs for allocnos crossing calls.
13923
13924         * ira.c (ira_conflicts_p): New global.
13925         (ira): Define and use ira_conflicts_p.
13926
13927         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13928         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
13929         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
13930
13931 2009-01-06  Ben Elliston  <bje@au.ibm.com>
13932
13933         * gengtype-lex.l (YY_NO_INPUT): Define.
13934
13935 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13936
13937         PR c/34911
13938         * c-common.c (handle_vector_size_attribute): Also reject
13939         BOOLEAN_TYPE types.
13940
13941 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
13942
13943         PR tree-optimization/38492
13944         * graphite.c (rename_map_elt, debug_rename_elt,
13945         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
13946         rename_map_elt_info, eq_rename_map_elts,
13947         get_new_name_from_old_name, bb_in_sese_p): Moved around.
13948         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
13949         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
13950         (sese_build_livein_liveouts): New.
13951         (new_sese, free_sese): New.
13952         (new_scop): Call new_sese.
13953         (free_scop): Call free_sese.
13954         (rename_variables_from_edge, rename_phis_end_scop): Removed.
13955         (register_old_new_names): Renamed register_old_and_new_names.
13956         (register_scop_liveout_renames, add_loop_exit_phis,
13957         insert_loop_close_phis, struct igp,
13958         default_liveout_before_guard, add_guard_exit_phis,
13959         insert_guard_phis, copy_renames): New.
13960         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
13961         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
13962         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
13963         (scop_adjust_phis_for_liveouts): New.
13964         (gloog): Call scop_adjust_phis_for_liveouts.
13965
13966         * graphite.h (struct sese): Documented.  Added fields liveout,
13967         num_ver and livein.
13968         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
13969         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
13970         (struct scop): Added field liveout_renames.
13971         (SCOP_LIVEOUT_RENAMES): New.
13972
13973 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
13974
13975         PR tree-optimization/38510
13976         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
13977         (translate_clast): Call recompute_all_dominators before
13978         graphite_verify.
13979         (gloog): Call recompute_all_dominators before graphite_verify.
13980
13981 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
13982             Jan Sjodin  <jan.sjodin@amd.com>
13983
13984         PR tree-optimization/38500
13985         * graphite.c (create_sese_edges): Call fix_loop_structure after
13986         splitting blocks.
13987
13988 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
13989
13990         * config.gcc: Add m32r*-*-rtems*.
13991         * config/m32r/rtems.h: New file.
13992
13993 2009-01-05  Ben Elliston  <bje@au.ibm.com>
13994
13995         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
13996         (.po.pox): Likewise.
13997         (po/gcc.pot): Likewise.
13998
13999 2009-01-04  David S. Miller  <davem@davemloft.net>
14000
14001         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
14002         (STARTING_FRAME_OFFSET): Always set to zero.
14003
14004 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
14005
14006         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
14007         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
14008         fixed-point types, and vectors of the same.
14009
14010 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
14011
14012         * config/mips/sync.md (*mb_barrier): Rename to...
14013         (*memory_barrier): ...this.
14014
14015 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
14016
14017         * doc/extend.texi (Function Attributes): Move @cindex after @item
14018         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
14019         and put in alphabetical order. Fix 'target' name and put in order.
14020         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
14021         typos.
14022
14023 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
14024
14025         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
14026         (memory_barrier): Expand as unspec instead of unspec_volatile.
14027         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14028         (*memory_barrier): Define as unspec instead of unspec_volatile.
14029         Use (match_dup 0) as input operand.
14030
14031         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
14032         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
14033         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
14034         scratch register.  Remove operand 1.
14035         (*stbar): Define as unspec instead of unspec_volatile.
14036         Use (match_dup 0) as input operand, remove (const_int 8).
14037         (*membar): Define as unspec instead of unspec_volatile.
14038         Use (match_dup 0) as input operand, remove input operand 2.
14039
14040         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
14041         (memory_barrier): Expand as unspec instead of unspec_volatile.
14042         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14043         (*memory_barrier): Define as unspec instead of unspec_volatile.
14044         Use (match_dup 0) as input operand.
14045
14046         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
14047         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14048         Set volatile flag on operand 0.
14049         (*memory_barrier): New insn pattern.
14050
14051         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
14052         insn operands.
14053         (*memory_barrier): Use (match_dup 0) as input operand.
14054
14055         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
14056         Remove mem:BLK from insn operands.  Use Pmode scratch register.
14057         Set volatile flag on operand 0.
14058         (*mb_internal): New insn pattern.
14059
14060         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
14061
14062 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
14063
14064         PR middle-end/38586
14065         * function.c (struct temp_slot): Move to the section of the file
14066         that deals with temp slots.  Remove field 'address'.
14067         (temp_slot_address_table): New hash table of address -> temp slot.
14068         (struct temp_slot_address_entry): New struct, items for the table.
14069         (temp_slot_address_compute_hash, temp_slot_address_hash,
14070         temp_slot_address_eq, insert_temp_slot_address): Support functions
14071         for the new table.
14072         (find_temp_slot_from_address): Rewrite to use the new hash table.
14073         (remove_unused_temp_slot_addresses): Remove addresses of temp
14074         slots that have been made available.
14075         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
14076         worker function for remove_unused_temp_slot_addresses.
14077         (assign_stack_temp_for_type): Don't clear the temp slot address list.
14078         Add the temp slot address to the address -> temp slot map.
14079         (update_temp_slot_address): Update via insert_temp_slot_address.
14080         (free_temp_slots): Call remove_unused_temp_slot_addresses.
14081         (pop_temp_slots): Likewise.
14082         (init_temp_slots): Allocate the address -> temp slot map, or empty
14083         the map if it is already allocated.
14084         (prepare_function_start): Initialize temp slot processing.
14085
14086 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
14087
14088         PR middle-end/38584
14089         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
14090         Calculate the size of all stack vars assuming no packing of stack
14091         vars will happen, replacing a quadratic algorithm with a linear one.
14092
14093 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
14094
14095         PR target/38707
14096         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
14097         can't be used.
14098
14099 2009-01-03  Diego Novillo  <dnovillo@google.com>
14100
14101         * doc/contrib.texi: Update contributions.
14102
14103 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
14104
14105         PR c++/38705
14106         * builtins.c (fold_builtin_memory_op): Give up if either operand
14107         is volatile.  Set srctype or desttype to non-qualified version
14108         of the other type.
14109
14110         PR c/38700
14111         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
14112         and FUNCTION_DECLs.
14113
14114 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
14115
14116         PR rtl-optimization/35805
14117         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
14118         problem if fast dce is able to remove any instructions.
14119         * dce.c (dce_process_block): Fix dump message.
14120
14121 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
14122
14123         PR 33649
14124         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
14125
14126 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
14127
14128         PR middle-end/38690
14129         * tree-flow.h (op_code_prio, op_prio): New prototypes.
14130         * tree-pretty-print.c (op_code_prio): New function.
14131         (op_prio): No longer static.  Use op_code_prio.
14132         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
14133         Use op_prio and op_code_prio to determine if () should be
14134         printed around operand(s) or not.
14135
14136         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
14137         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
14138         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
14139         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
14140         pp_character instead of pp_string for single letter printing.
14141
14142 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
14143
14144         * doc/extend.texi: Fix '#pragma GCC option' typo.
14145
14146 2009-01-02  Richard Guenther  <rguenther@suse.de>
14147
14148         * doc/install.texi (--enable-checking): Mention different
14149         default for stage1.
14150         (--enable-stage1-checking): Document.
14151
14152 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
14153
14154         PR middle-end/30142
14155         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
14156         case to be an error.
14157
14158 2009-01-02  Ben Elliston  <bje@au.ibm.com>
14159
14160         * config/fp-bit.h (pack_d): Constify argument.
14161         * config/fp-bit.c (makenan): Constify return type. Remove casts.
14162         (isnan): Constify argument.
14163         (isinf): Likewise.
14164         (iszero): Likewise.
14165         (pack_d): Likewise.
14166         (_fpadd_parts): Constify return type.
14167         (_fpmul_parts): Likewise.
14168         (_fpdiv_parts): Likewise.
14169
14170 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
14171
14172         PR c/36489
14173         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
14174         warn about overwriting initializer with side-effects or
14175         -Woverride-init if !IMPLICIT.
14176         (output_init_element): Likewise.  Pass IMPLICIT down to
14177         add_pending_init.
14178         (process_init_element): Add IMPLICIT argument.  Pass it down
14179         to output_init_element.
14180         (push_init_element, pop_init_level, set_designator): Adjust
14181         process_init_element callers.
14182         (set_nonincremental_init, set_nonincremental_init_from_string):
14183         Adjust add_pending_init callers.
14184         (output_pending_init_elements): Adjust output_init_element callers.
14185         * c-tree.h (process_init_element): Adjust prototype.
14186         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14187         process_init_element callers.
14188
14189 \f
14190 Copyright (C) 2009 Free Software Foundation, Inc.
14191
14192 Copying and distribution of this file, with or without modification,
14193 are permitted in any medium without royalty provided the copyright
14194 notice and this notice are preserved.