]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
cfgcleanup.c (try_crossjump_to_edge): Only skip past NOTE_INSN_BASIC_BLOCK.
[gcc.git] / gcc / ChangeLog
CommitLineData
cd9c1ca8
RH
12009-05-29 Richard Henderson <rth@redhat.com>
2
3 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
4 NOTE_INSN_BASIC_BLOCK.
5 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
6 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
7 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
8 to be deleted.
9 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
10 add in_use field.
11 (add_cfi): Disable check redefining cfa away from drap.
12 (lookup_cfa_1): Add remember argument; handle remember/restore.
13 (lookup_cfa): Pass remember argument.
14 (cfa_remember): New.
15 (compute_barrier_args_size_1): Remove sibcall check.
16 (dwarf2out_frame_debug_def_cfa): New.
17 (dwarf2out_frame_debug_adjust_cfa): New.
18 (dwarf2out_frame_debug_cfa_offset): New.
19 (dwarf2out_frame_debug_cfa_register): New.
20 (dwarf2out_frame_debug_cfa_restore): New.
21 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
22 (dwarf2out_begin_epilogue): New.
23 (dwarf2out_frame_debug_restore_state): New.
24 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
25 DW_CFA_restore_state.
26 (output_cfi_directive): Likewise.
27 (convert_cfa_to_fb_loc_list): Likewise.
28 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
29 * dwarf2out.h: Update.
30 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
31 (copy_insn_1): Early out for null.
32 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
33 and dwarf2out_frame_debug_restore_state.
34 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
35 (prologue_insn_hash, epilogue_insn_hash): New.
36 (free_after_compilation): Adjust freeing accordingly.
37 (record_insns): Create hash table if needed; push insns into
38 hash instead of array.
39 (maybe_copy_epilogue_insn): New.
40 (contains): Search hash table instead of array.
41 (sibcall_epilogue_contains): Remove.
42 (thread_prologue_and_epilogue_insns): Split eh_return insns
43 and mark them as epilogues.
44 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
45 scanning in terms of basic blocks.
46 * insn-notes.def (CFA_RESTORE_STATE): New.
47 * jump.c (returnjump_p_1): Accept EH_RETURN.
48 (eh_returnjump_p_1, eh_returnjump_p): New.
49 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
50 CFA_REGISTER, CFA_RESTORE): New.
51 * rtl.def (EH_RETURN): New.
52 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
53
54 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
55 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
56
57 * config/i386/i386.c (gen_push): Update cfa state.
58 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
59 add a CFA_ADJUST_CFA note.
60 (ix86_dwarf_handle_frame_unspec): Remove.
61 (ix86_expand_prologue): Update cfa state.
62 (ix86_emit_restore_reg_using_pop): New.
63 (ix86_emit_restore_regs_using_pop): New.
64 (ix86_emit_leave): New.
65 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
66 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
67 * config/i386/i386.h (struct machine_cfa_state): New.
68 (ix86_cfa_state): New.
69 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
70 (eh_return_internal): Merge from eh_return_<mode>,
71 use eh_return rtx, split w/ epilogue.
72
72b5577d
ILT
732009-05-29 Ian Lance Taylor <iant@google.com>
74
75 * builtins.c (validate_gimple_arglist): Don't use va_arg with
76 enum type.
77 * calls.c (emit_library_call_value_1): Likewise.
78
79 * c-typeck.c (c_build_va_arg): New function.
80 * c-tree.h (c_build_va_arg): Declare.
81 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
82 instead of build_va_arg.
83
7a2faca1
EB
842009-05-29 Eric Botcazou <ebotcazou@adacore.com>
85
86 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
87 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
88 (ptr_difference_cost): Use affine combinations to compute it.
89 (difference_cost): Likewise.
90 (get_computation_cost_at): Compute more accurate cost for addresses
91 if the ratio is a multiplier allowed in addresses.
92 For non-addresses, consider that an additional offset or symbol is
93 added only once.
94
725fd454
JJ
952009-05-29 Jakub Jelinek <jakub@redhat.com>
96
a0987204
JJ
97 * config/i386/i386.c (ix86_decompose_address): Avoid useless
98 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
99
725fd454
JJ
100 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
101 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
102 (prefix_rex): For UNIT_MMX don't imply the prefix by default
103 if MODE_DI.
104 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
105 to 1 for TYPE_SSE{IADD1,CVT1}.
106 (prefix_vex_imm8): Removed.
107 (length_vex): Only pass 1 as second argument to
108 ix86_attr_length_vex_default if prefix_extra is 0.
109 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
110 (length): For prefix vex computation use length_immediate
111 attribute instead of prefix_vex_imm8.
112 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
113 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
114 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
115 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
116 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
117 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
118 a space in between the operands.
119 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
120 if one operand is 0xff and the other one si, di, bp or sp.
121 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
122 other one si, di, bp or sp.
123 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
124 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
125 type and mode attributes.
126 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
127 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
128 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
129 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
130 prefix_data16 attribute iff MODE_DF.
131 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
132 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
133 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
134 constm128_operand in length_immediate computation.
135 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
136 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
137 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
138 length_immediate attribute to 1.
139 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
140 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
141 for certain alternatives.
142 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
143 prefix_data16 attribute if MODE_V1DF.
144 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
145 length_immediate to 1.
146 (set_got_rex64, set_rip_rex64): Remove length attribute, set
147 length_address to 4, set mode attribute to MODE_DI.
148 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
149 (fxam<mode>2_i387): Set length attribute to 4.
150 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
151 *prefetch_3dnow_rex): Override length_address attribute.
152 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
153 attributes.
154 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
155 (constm128_operand): Removed.
156 * config/i386/i386.c (memory_address_length): For
157 disp && !index && !base in 64-bit mode account for SIB byte if
158 print_operand_address can't optimize disp32 into disp32(%rip)
159 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
160 for fs: or gs: segment.
161 (ix86_attr_length_immediate_default): When checking if shortform
162 is possible, truncate immediate to the length of the non-shortened
163 immediate.
164 (ix86_attr_length_address_default): Ignore MEM_P operands
165 with X constraint.
166 (ix86_attr_length_vex_default): Only check for DImode on
167 GENERAL_REG_P operands.
168 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
169 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
170 (sse_cvttps2pi): Clear prefix_rep attribute.
171 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
172 attribute.
173 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
174 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
175 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
176 iff operand 2 is const_int_operand.
177 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
178 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
179 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
180 instead of vex.
181 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
182 prefix_data16.
183 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
184 prefix_data16 attribute for movlpd and movhpd instructions.
185 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
186 length_immediate for shufpd instruction.
187 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
188 (avx_cmpp<avxmodesuffixf2c><mode>3,
189 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
190 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
191 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
192 *vec_dupv4sf_avx, *vec_dupv4sf): Set
193 length_immediate attribute to 1.
194 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
195 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
196 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
197 prefix_data16 attribute for the first alternative to 1.
198 (*avx_loadlps): Override length_immediate for the first alternative.
199 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
200 attributes for second alternative.
201 (*vec_concatv2sf_sse4_1): Override length_immediate and
202 prefix_data16 attributes for second alternative.
203 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
204 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
205 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
206 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
207 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
208 prefix_data16 and length_immediate to 1.
209 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
210 to 1.
211 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
212 prefix_extra attribute for variants that don't have 0f prefix
213 alone.
214 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
215 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
216 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
217 *sse4_1_pextrd): Set length_immediate to 1.
218 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
219 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
220 to 1.
221 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
222 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
223 length_immediate to 1 for second alternative.
224 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
225 prefix_extra and length_immediate attributes for the first
226 alternative.
227 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
228 first alternative.
229 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
230 to 1 for the first and third alternative.
231 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
232 alternative.
233 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
234 attribute.
235 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
236 attribute to 0.
237 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
238 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
239 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
240 *avx_psign<mode>3): Set prefix_extra attribute to 1.
241 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
242 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
243 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
244 ssse3_psign<mode>3): Override prefix_rex attribute.
245 (*avx_palignrti): Override prefix_extra and length_immediate
246 to 1.
247 (ssse3_palignrti): Override length_immediate to 1.
248 (ssse3_palignrdi): Override length_immediate to 1, override
249 prefix_rex attribute.
250 (abs<mode>2): Override prefix_rep to 0, override prefix_rex
251 attribute.
252 (sse4a_extrqi): Override length_immediate to 2.
253 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
254 (sse4a_insertq): Override prefix_data16 to 0.
255 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
256 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
257 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
258 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
259 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
260 and length_immediate to 1.
261 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
262 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
263 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
264 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
265 and length_immediate to 1.
266 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
267 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
268 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
269 avx_ptest256): Override prefix_extra to 1.
270 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
271 Override prefix_data16 and length_immediate to 1.
272 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
273 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
274 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
275 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
276 prefix_data16 to 0 and prefix_extra to 2.
277 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
278 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
279 attribute.
280 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
281 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
282 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
283 and prefix_extra to 2.
284 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
285 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
286 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
287 avx_vpermilvar<mode>3,
288 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
289 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
290 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
291 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
292 Override prefix_extra to 1.
293 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
294 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
295 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
296 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
297 prefix_extra and length_immediate to 1.
298 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
299 modrm to 0.
300 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
301 to 1 for the first alternative.
302 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
303 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
304 cases.
305 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
306 *movv2sf_internal_avx, *movv2sf_internal): Override
307 prefix_rep attribute for certain alternatives.
308 (*mov<mode>_internal): Override prefix_rep or prefix_data16
309 attributes for certain alternatives.
310 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
311 attributes for certain alternatives.
312 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
313 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
314 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
315 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
316 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
317 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
318 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
319 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
320 length_immediate to 1 if operand 2 is const_int_operand.
321 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
322 *vec_extractv2si_1): Set length_immediate
323 attribute to 1.
324 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
325 using old 3DNOW insn rather than SSE/3DNOW_A.
326 (mmx_emms, mmx_femms): Clear modrm attribute.
327
0674b9d0
MJ
3282009-05-29 Martin Jambor <mjambor@suse.cz>
329
330 * tree-sra.c: New implementation of SRA.
331
332 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
333 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
334 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
335 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
336 (SRA_MAX_STRUCTURE_COUNT): Removed.
337 (SRA_FIELD_STRUCTURE_RATIO): Removed.
338 * doc/invoke.texi (sra-max-structure-size): Removed.
339 (sra-field-structure-ratio): Removed.
340
616f21df
JJ
3412009-05-29 Jakub Jelinek <jakub@redhat.com>
342
343 PR middle-end/40291
344 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
345 before expansion.
346
da7ba240
AB
3472009-05-29 Andrey Belevantsev <abel@ispras.ru>
348
349 PR rtl-optimization/40101
350 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
351 seqno. Adjust comment.
352 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
353 inserting bookkeeping before a jump, the jump is not scheduled.
354 When no positive seqno found, provide a value. Add comment.
355
71dcd609
RG
3562009-05-29 Richard Guenther <rguenther@suse.de>
357
358 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
359 short-cutting on the first component.
360
a900ae6b
JJ
3612009-05-29 Jakub Jelinek <jakub@redhat.com>
362
363 PR middle-end/39958
364 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
365 for trees other than decls/types.
366
821bb7f8
RG
3672009-05-29 Richard Guenther <rguenther@suse.de>
368
369 * tree-ssa-operands.c (get_expr_operands): Do not handle
370 INDIRECT_REFs in the handled-component case. Remove
371 unused get_ref_base_and_extent case.
372 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
373 tree_low_cst and host_integerp where possible.
374 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
375 codes for equivalence.
376 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
377
e997fb9c
DB
3782009-05-29 David Billinghurst <billingd@gcc.gnu.org>
379
380 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
381 to tmake_file for i[34567]86-*-cygwin*.
382
58195b74
JJ
3832009-05-29 Jakub Jelinek <jakub@redhat.com>
384
385 PR target/40017
386 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
387 (altivec_categorize_keyword, init_vector_keywords,
388 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
389 similar to bool.
390
055df276
KT
3912009-05-29 Kai Tietz <kai.tietz@onevision.com>
392
393 * tree.c (handle_dll_attribute): Check if node is
394 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
395
f5939ef3
RE
3962009-05-29 Richard Earnshaw <rearnsha@arm.com>
397
398 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
399 component.
400 (thumb2_zero_extendqidi2): Likewise.
401
c185de40
KK
4022009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
403
404 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
405 instead of gen_movrt.
406 * config/sh/sh.md (movrt): Remove.
407
bf3c6caf
SE
4082009-05-28 Steve Ellcey <sje@cup.hp.com>
409
410 * doc/invoke.texi (IA-64 Options)
411 Add -msdata, -mfused-madd, -mno-inline-float-divide,
412 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
413 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
414 -msched-prefer-non-control-spec-insns,
415 -msched-stop-bits-after-every-cycle,
416 -msched-count-spec-in-critical-path,
417 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
418 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns
419 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
420 and -msched-spec-verbose.
421
8a66e987
JM
4222009-05-28 Joseph Myers <joseph@codesourcery.com>
423
424 * config/arm/lib1funcs.asm (__clear_cache): Define if
425 L_clear_cache.
426 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
427 error if used.
428 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
429
b45d2719
RG
4302009-05-28 Richard Guenther <rguenther@suse.de>
431
432 * tree-ssa-alias.c (ao_ref_init): New function.
433 (ao_ref_base): Likewise.
434 (ao_ref_base_alias_set): Likewise.
435 (ao_ref_alias_set): Likewise.
436 (refs_may_alias_p_1): Change signature.
437 (refs_may_alias_p): Adjust.
438 (refs_anti_dependent_p): Likewise.
439 (refs_output_dependent_p): Likewise.
440 (call_may_clobber_ref_p_1): Change signature.
441 (call_may_clobber_ref_p): Adjust.
442 (stmt_may_clobber_ref_p_1): New function split out from ...
443 (stmt_may_clobber_ref_p): ... here.
444 (maybe_skip_until): Adjust signature.
445 (get_continuation_for_phi): Likewise.
446 (walk_non_aliased_vuses): Likewise.
447 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
448 (ao_ref_init): Declare.
449 (ao_ref_base): Likewise.
450 (ao_ref_alias_set): Likewise.
451 (stmt_may_clobber_ref_p_1): Likewise.
452 (walk_non_aliased_vuses): Adjust.
453 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
454 (get_ref_from_reference_ops): remove.
455 (vn_reference_lookup_2): Adjust signature.
456 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
457 (vn_reference_lookup_pieces): Adjust signature, do not re-build
458 trees.
459 (vn_reference_lookup): Adjust.
460 (vn_reference_insert): Likewise.
461 (vn_reference_insert_pieces): Adjust signature.
462 (visit_reference_op_call): Adjust.
463 * tree-ssa-pre.c (get_expr_type): Simplify.
464 (phi_translate_1): Adjust.
465 (compute_avail): Likewise.
466 (translate_vuse_through_block): Do not re-build trees.
467 (value_dies_in_block_x): Likewise.
468 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
469 fields.
470 (vn_reference_lookup_pieces): Adjust declaration.
471 (vn_reference_insert_pieces): Likewise.
472
554223b6
BK
4732009-05-28 Benjamin Kosnik <bkoz@redhat.com>
474
475 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
476 with checking disabled.
477
233215fe
DK
4782009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
479
480 PR target/37216
481
482 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
483 macro definition for support of three-operand format aligned
484 .comm directive in assembler on cygwin/pe/mingw target OS.
485 * configure: Regenerate.
486 * config.h: Regenerate.
487
488 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
489 aligned form of .comm directive if -mpe-aligned-commons is in effect.
490 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
491
492 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
493 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
494
24adb18f
IR
4952009-05-28 Ira Rosen <irar@il.ibm.com>
496
497 PR tree-optimization/40254
498 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
499 in analysis of basic blocks.
500
2c5bfdf7
AN
5012009-05-28 Adam Nemet <anemet@caviumnetworks.com>
502
503 PR middle-end/33699
504 * target.h (struct gcc_target): Fix indentation. Add
505 const_anchor.
506 * target-def.h (TARGET_CONST_ANCHOR): New macro.
507 (TARGET_INITIALIZER): Use it.
508 * cse.c (CHEAPER): Move it up to the other macros.
509 (insert): Rename this ...
510 (insert_with_costs): ... to this. Add cost parameters. Update
511 function comment.
512 (insert): New function. Call insert_with_costs.
513 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
514 find_reg_offset_for_const, try_const_anchors): New functions.
515 (cse_insn): Call try_const_anchors. Adjust cost of src_related
516 when using a const-anchor. Call insert_const_anchors.
517 * config/mips/mips.c (mips_set_mips16_mode): Set
518 targetm.const_anchor.
519 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
520
9e6aced0
AO
5212009-05-28 Alexandre Oliva <aoliva@redhat.com>
522
523 * tree-inline.c (remap_decls): Enable nonlocalized variables
524 when not optimizing.
525
89fbbe4e
AO
5262009-05-28 Alexandre Oliva <aoliva@redhat.com>
527
528 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
529 Simplify other tests involving optimize.
530
e455776a
TT
5312009-05-27 Tom Tromey <tromey@redhat.com>
532
533 * unwind-dw2.c (_Unwind_DebugHook): New function.
534 (uw_install_context): Call _Unwind_DebugHook.
535
cea32bca
TT
5362009-05-27 Tom Tromey <tromey@redhat.com>
537
538 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
539
c607156f
ILT
5402009-05-27 Ian Lance Taylor <iant@google.com>
541
542 * Makefile.in (LINKER, LINKER_FLAGS): Define.
543 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
544 (ALL_LINKERFLAGS): Define.
545 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
546 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
547 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
548 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
549 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
550 $(LINKER_FOR_BUILD).
551 (build/gcov-iov$(build_exeext)): Likewise.
552
ec0a1343
JB
5532009-05-27 Julian Brown <julian@codesourcery.com>
554
555 * gcse.c (target.h): Include.
556 (can_assign_to_reg_without_clobbers_p): Check that the target allows
557 copy of argument to a pseudo register.
558
ac80ba07
DN
5592009-05-27 Diego Novillo <dnovillo@google.com>
560
561 * tree-ssa-live.c (dump_scope_block): Document arguments.
562 (dump_scope_blocks): Document.
563 (debug_scope_blocks): New.
564 * tree-flow.h (debug_scope_blocks): Declare.
565
d1803a17
DC
5662009-05-21 Denis Chertykov <denisc@overta.ru>
567
ac80ba07 568 * doc/contrib.texi (Contributors): add myself to the list.
d1803a17 569
51fb7760 5702009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
571
572 * expr.c (target_align): New function. Alignment the TARGET of an
573 assignment may be assume to have.
574 (highest_pow2_factor_for_target): Use it instead of relying on
575 immediate tree attributes of TARGET, not necessarily honored when
576 intermediate bitfields are involved.
577
634fa334
L
5782009-05-27 H.J. Lu <hongjiu.lu@intel.com>
579
580 PR target/40266
581 * config/i386/driver-i386.c (host_detect_local_cpu): Support
582 AVX, SSE4, AES, PCLMUL and POPCNT.
583
65332587
DN
5842009-05-27 Diego Novillo <dnovillo@google.com>
585
586 * tree-pretty-print.c (dump_location): New.
587 (dump_generic_node): Call it.
588 Factor code to handle BLOCK nodes ...
589 (dump_block_node): ... here.
590
3e17e31d
RAE
5912009-05-27 Rafael Avila de Espindola <espindola@google.com>
592
593 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h with
594 it.
595 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
596 included.
597 * gcc-plugin.h: Include config.h and system.h.
598 (IN_GCC): Define if not defined.
599
5e370570
HPN
6002009-05-27 Hans-Peter Nilsson <hp@axis.com>
601
602 PR middle-end/40249
603 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
604 with -fno-inline.
605
d000f0d9
SZ
6062009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
607
608 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
609 applicable.
610 * config/m32r/m32r.h: Ditto.
611 * config/m32r/m32r.md: Ditto.
612 * config/m32r/predicates.md: Ditto.
613
82f331ff
AO
6142009-05-27 Alexandre Oliva <aoliva@redhat.com>
615
616 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
617
ae2392a9
BS
6182009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
619
620 * doc/plugins.texi
621 (Loading plugins): typo.
622 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
623 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
624 (Interacting with the GCC Garbage Collector): Added new section.
625 (Giving information about a plugin): Added new section for
626 PLUGIN_INFO.
627 * testsuite/gcc.dg/plugin/plugin.exp: Added ggcplug.c test plugin
628 with ggcplug-test-1.c for testing PLUGIN_GGC_MARKING etc...
629 * testsuite/gcc.dg/plugin/ggcplug-test-1.c: Added new file.
630 * testsuite/gcc.dg/plugin/ggcplug.c: Added new file.
631 * ggc.h (ggc_register_root_tab): Added declaration.
632 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
633 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
634 (register_callback): Improved comment in declaration.
635 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for
636 vectors.
637 (extra_root_vec) Added static variable for dynamic roots
638 registration.
639 (ggc_register_root_tab) Added new routine.
640 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
641 PLUGIN_GGC_MARKING event.
642 * ggc-zone.c: Include plugin.h.
643 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
644 * ggc-page.c: Include plugin.h.
645 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
646 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
647 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
648 (register_callback): check lack of callbacks for
649 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
650 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
651 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
652 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
653 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
654 dependency on plugin.h.
655 (plugin.o): Added dependency on ggc.h...
656
f0cfd3a8
RG
6572009-05-26 Richard Guenther <rguenther@suse.de>
658
659 PR middle-end/40248
660 Revert
661 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
662 with mismatched comparison modes.
663
664 * expr.c (expand_expr_real_1): Expand the operand of a
665 VIEW_CONVERT_EXPR in its natural mode.
666
7980bfb8
ILT
6672009-05-26 Ian Lance Taylor <iant@google.com>
668
669 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
670 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
671 (ALL_COMPILERFLAGS): Define.
672 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
673 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
674 (collect2$(exeext), collect2.o): Likewise.
675 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
676 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
677 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
678 (libbackend.o, intl.o, cppdefault.o): Likewise.
679 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
680 (build/%.o): Use $(COMPILER_FOR_BUILD).
681 (build/gen%$(build_exeext)): Likewise.
682 (build/gcov-iov$(build_exeext)): LIkewise.
683 * config/t-darwin (darwin.o): Use $(COMPILER).
684 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
685 * config/t-sol2 (sol2-c.o): Likewise.
686 (sol2.o): Likewise.
687 * config/t-vxworks (vxworks.o): Likewise.
688 * config/x-darwin (host-darwin.o): Likewise.
689 * config/x-hpux (host-hpux.o): Likewise.
690 * config/x-linux (host-linux.o): Likewise.
691 * config/x-solaris (host-solaris.o): Likewise.
692 * config/alpha/x-alpha (driver-alpha.o): Likewise.
693 * config/arm/t-arm (arm-c.o): Likewise.
694 * config/arm/t-pe (pe.o): Likewise.
695 * config/arm/t-wince-pe (pe.o): Likewise.
696 * config/i386/t-cygming (winnt.o): Likewise.
697 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
698 * config/i386/t-cygwin (cygwin1.o): Likewise.
699 (cygwin2.o): Likewise.
700 * config/i386/t-i386 (i386-c.o): Likewise.
701 * config/i386/t-interix (winnt.o): Likewise.
702 * config/i386/t-netware (netware.o): Likewise.
703 * config/i386/t-nwld (nwld.o): Likewise.
704 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
705 * config/i386/x-i386 (driver-i386.o): Likewise.
706 * config/i386/x-cygwin (host-cygwin.o): Likewise.
707 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
708 * config/ia64/t-ia64 (ia64-c.o): Likewise.
709 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
710 * config/mips/x-native (driver-native.o): Likewise.
711 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
712 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
713 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
714 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
715 * config/score/t-score-elf (score7.o): Likewise.
716 (score3.o): Likewise.
717 * config/sh/t-sh (sh-c.o): Likewise.
718 * config/sh/t-symbian (sh-c.o): Likewise.
719 (symbian.o): Likewise.
720 * config/spu/t-spu-elf (spu-c.o): Likewise.
721 * config/v850/t-v850 (v850-c.o): Likewise.
722 * config/v850/t-v850e (v850-c.o): Likewise.
723
23977d3c
RG
7242009-05-26 Richard Guenther <rguenther@suse.de>
725
726 PR tree-optimization/40122
727 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
728 VECTOR_CSTs if possible.
729 (fold_gimple_assign): Likewise.
730
3d62b895
RG
7312009-05-26 Richard Guenther <rguenther@suse.de>
732
733 PR middle-end/40252
734 * fold-const.c (fold_binary): Use the correct types for building
735 rotates.
736
12346147
RG
7372009-05-26 Richard Guenther <rguenther@suse.de>
738
739 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
740 redundant calls to merge_alias_info.
741 (bump_vector_ptr): Likewise.
742 * tree-ssa-copy.c (merge_alias_info): Remove.
743 (replace_exp_1): Remove call to merge_alias_info.
744 (propagate_tree_value): Likewise.
745 (fini_copy_prop): Propagate points-to info.
746 * tree-flow.h (merge_alias_info): Remove.
747
807d5e6f
HS
7482009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
749
750 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
751
85057983
JH
7522009-05-25 Jan Hubicka <jh@suse.cz>
753
754 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
755 * cgraph.h (struct inline_summary): New filed self_wize,
756 size_inlining_benefit, self_time and time_inlining_benefit.
757 (struct cgraph_global_info): Replace insns by time ans size fields.
758 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
759 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
760 (ipcp_update_callgraph): Do not touch function bodies.
761 * ipa-inline.c: Include except.h
762 (MAX_TIME): New constant.
763 (overall_insns): Remove.
764 (leaf_node_p): New.
765 (overall_size, max_benefit): New static variables.
766 (cgraph_estimate_time_after_inlining): New function.
767 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
768 (cgraph_clone_inlined_nodes): Update size.
769 (cgraph_mark_inline_edge): Update size.
770 (cgraph_estimate_growth): Use size info.
771 (cgraph_check_inline_limits): Check size.
772 (cgraph_default_inline_p): Likewise.
773 (cgraph_edge_badness): Compute badness based on benefit and size cost.
774 (cgraph_decide_recursive_inlining): Check size.
775 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
776 times.
777 (cgraph_decide_inlining): Likewise.
778 (cgraph_decide_inlining_incrementally): Likewise; honor
779 PARAM_EARLY_INLINING_INSNS.
780 (likely_eliminated_by_inlining_p): New predicate.
781 (estimate_function_body_sizes): New function.
782 (compute_inline_parameters): Use it.
783 * except.c (must_not_throw_labels): New function.
784 * except.h (must_not_throw_labels): Declare.
785 * tree-inline.c (init_inline_once): Kill inlining_weigths
786 * tree-ssa-structalias.c: Avoid uninitialized warning.
787 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
788 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
789 (PARAM_INLINE_CALL_COST): Remove.
790 (PARAM_EARLY_INLINING_INSNS): New.
791
01df5c8a
RG
7922009-05-25 Richard Guenther <rguenther@suse.de>
793
794 PR tree-optimization/36327
795 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
796 callback for reference translation or lookup at the point
797 of may-defs.
798 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
799 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
800 for union COMPONENT_REFs.
801 (vn_reference_lookup_3): New callback. Lookup from memset
802 and CONSTRUCTOR assignment, translate through struct copies.
803 (vn_reference_lookup_pieces): Make sure to not free the
804 passed operands array. Adjust walk_non_aliased_vuses call.
805 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
806 make sure we do not leak memory.
807
6b8ed145
RG
8082009-05-25 Richard Guenther <rguenther@suse.de>
809
810 * tree-ssa-alias.h (dump_points_to_solution): Declare.
811 * tree-inline.c (expand_call_inline): Reset the escaped and
812 callused solutions.
813 * tree-ssa-structalias.c (pass_build_ealias): New.
814 * tree-pass.h (pass_build_ealias): Declare.
815 * passes.c (init_optimization_passes): Add PTA during
816 early optimizations.
817 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
818 and CALLUSED solutions.
819 (dump_points_to_solution): New function, split out from ...
820 (dump_points_to_info_for): ... here.
821 * tree-parloops.c (parallelize_loops): Reset the escaped and
822 callused solutions.
823
0adcf178
RO
8242009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
825
826 PR bootstrap/40027
827 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
828 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
829
12aaf609
IR
8302009-05-25 Ira Rosen <irar@il.ibm.com>
831
832 PR tree-optimization/40238
833 * tree-vect-stmts.c (vect_init_vector): Insert initialization
834 statements after basic block's labels.
835 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
836 to free the allocated memory.
837
7f9a14e3
KK
8382009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
839
840 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
841 return address with a USE.
842
b842d478
RG
8432009-05-24 Richard Guenther <rguenther@suse.de>
844
845 PR middle-end/40233
846 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
847 array type from the main variant of the inner type.
848
8db7b33f
JBG
8492009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
850
851 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
852 definition to bool (from int) to un-break build.
853 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
854
cff4e50d
PB
8552009-05-24 Paolo Bonzini <bonzini@gnu.org>
856
857 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
858 discard_stmt_changes): Delete.
859 * tree-ssa-operands.c (scb_stack): Delete.
860 (init_ssa_operands): Do not initialize it.
861 (fini_ssa_operands): Do not free it.
862 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
863
864 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
865 update_stmt, remove the others. Fix comments.
866 * tree-dfa.c (optimize_stack_restore): Likewise.
867 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
868 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
869 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
870 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
871 Likewise.
872 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
873 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
874 (dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan.
875 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
876 (stmts_to_rescan): Change item type to gimple.
877 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
878
a70d6342
IR
8792009-05-24 Ira Rosen <irar@il.ibm.com>
880
881 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
882 * tree-pass.h (pass_slp_vectorize): New pass.
883 * params.h (SLP_MAX_INSNS_IN_BB): Define.
884 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
885 * tree-vectorizer.c (timevar.h): Include.
886 (user_vect_verbosity_level): Declare.
887 (vect_location): Fix comment.
888 (vect_set_verbosity_level): Update user_vect_verbosity_level
889 instead of vect_verbosity_level.
890 (vect_set_dump_settings): Add an argument. Ignore user defined
891 verbosity if dump flags require higher level of verbosity. Print to
892 stderr only for loop vectorization.
893 (vectorize_loops): Update call to vect_set_dump_settings.
894 (execute_vect_slp): New function.
895 (gate_vect_slp): Likewise.
896 (struct gimple_opt_pass pass_slp_vectorize): New.
897 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
898 access its members.
899 (vec_info_for_bb): New function.
900 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
901 (VECTORIZATION_ENABLED): New macro.
902 (SLP_ENABLED, SLP_DISABLED): Likewise.
903 (vect_is_simple_use): Add bb_vec_info argument.
904 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
905 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
906 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
907 vect_schedule_slp, vect_analyze_slp): Likewise.
908 (vect_analyze_stmt): Add slp_tree argument.
909 (find_bb_location): Declare.
910 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
911 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
912 (vect_analyze_loop_operations, vect_analyze_loop,
913 get_initial_def_for_induction, vect_create_epilog_for_reduction,
914 vect_finalize_reduction, vectorizable_reduction,
915 vectorizable_live_operation, vect_transform_loop): Likewise.
916 * tree-data-ref.c (dr_analyze_innermost): Update comment,
917 skip evolution analysis if analyzing a basic block.
918 (dr_analyze_indices): Likewise.
919 (initialize_data_dependence_relation): Skip the test whether the
920 object is invariant for basic blocks.
921 (compute_all_dependences): Skip dependence analysis for data
922 references in basic blocks.
923 (find_data_references_in_stmt): Don't fail in case of invariant
924 access in basic block.
925 (find_data_references_in_bb): New function.
926 (find_data_references_in_loop): Move code to
782dc37a 927 find_data_references_in_bb and add a call to it.
a70d6342
IR
928 (compute_data_dependences_for_bb): New function.
929 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
930 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
931 that STEP is 0.
932 (vect_analyze_data_ref_dependence): Check for interleaving in case of
933 unknown dependence in basic block and fail in case of dependence in
934 basic block.
935 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
936 dependence instances from either loop or basic block vectorization
937 info.
938 (vect_compute_data_ref_alignment): Check if it is loop vectorization
939 before calling nested_in_vect_loop_p.
940 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
941 dependence instances from either loop or basic block vectorization
942 info.
943 (vect_verify_datarefs_alignment): Likewise.
944 (vect_enhance_data_refs_alignment): Adjust function calls.
945 (vect_analyze_data_refs_alignment): Likewise.
946 (vect_analyze_group_access): Fix printing. Skip different checks if
947 DR_STEP is 0. Keep strided stores either in loop or basic block
948 vectorization data structure. Fix indentation.
949 (vect_analyze_data_ref_access): Fix comments, allow zero step in
950 basic blocks.
951 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
952 dependence instances from either loop or basic block vectorization
953 info.
954 (vect_analyze_data_refs): Update comment. Call
955 compute_data_dependences_for_bb to analyze basic blocks.
956 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
957 case of loop vectorization. In case of basic block vectorization use
782dc37a 958 data-ref itself as a base.
a70d6342
IR
959 (vect_create_data_ref_ptr): In case of basic block vectorization:
960 don't advance the pointer, add new statements before the current
961 statement. Adjust function calls.
962 (vect_supportable_dr_alignment): Support only aligned accesses in
963 basic block vectorization.
964 * common.opt (ftree-slp-vectorize): New flag.
965 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
966 (vect_pattern_recog_1): Likewise.
967 * tree-vect-stmts.c (process_use): Likewise.
968 (vect_init_vector): Add new statements in the beginning of the basic
969 block in case of basic block SLP.
970 (vect_get_vec_def_for_operand): Adjust function calls.
971 (vect_finish_stmt_generation): Likewise.
972 (vectorizable_call): Add assert that it is loop vectorization, adjust
973 function calls.
974 (vectorizable_conversion, vectorizable_assignment): Likewise.
975 (vectorizable_operation): In case of basic block SLP, take
976 vectorization factor from statement's type and skip the relevance
977 check. Adjust function calls.
978 (vectorizable_type_demotion): Add assert that it is loop
979 vectorization, adjust function calls.
980 (vectorizable_type_promotion): Likewise.
981 (vectorizable_store): Check for outer loop only in case of loop
982 vectorization. Adjust function calls. For basic blocks, skip the
983 relevance check and don't advance pointers.
984 (vectorizable_load): Likewise.
985 (vectorizable_condition): Add assert that it is loop vectorization,
986 adjust function calls.
987 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
988 that it is not reduction, get vector type, call only supported
782dc37a 989 functions, skip loop specific parts.
a70d6342
IR
990 (vect_transform_stmt): Check for outer loop only in case of loop
991 vectorization.
992 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
993 (vect_is_simple_use): Fix comment, add new argument, fix conditions
994 for external definition.
995 * passes.c (pass_slp_vectorize): New pass.
996 * tree-vect-slp.c (find_bb_location): New function.
997 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
998 check for patterns only in loops.
999 (vect_build_slp_tree): Add argument, adjust function calls, fail in
1000 case of multiple types in basic block SLP.
1001 (vect_mark_slp_stmts_relevant): New function.
1002 (vect_supported_load_permutation_p): Fix comment.
1003 (vect_analyze_slp_instance): Add argument. In case of basic block
1004 SLP, take vectorization factor from statement's type, check that
1005 unrolling factor is 1. Adjust function call. Save SLP instance in
1006 either loop or basic block vectorization structure. Return FALSE,
1007 if SLP failed.
1008 (vect_analyze_slp): Add argument. Get strided stores groups from
1009 either loop or basic block vectorization structure. Return FALSE
1010 if basic block SLP failed.
1011 (new_bb_vec_info): New function.
1012 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1013 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1014 (vect_schedule_slp): Add argument. Get SLP instances from either
1015 loop or basic block vectorization structure. Set vectorization factor
1016 to be 1 for basic block SLP.
1017 (vect_slp_transform_bb): New function.
1018 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1019
0676c393
MM
10202009-05-23 Mark Mitchell <mark@codesourcery.com>
1021
1022 * final.c (shorten_branches): Do not align labels for jump tables.
1023 (final_scan_insn): Use JUMP_TABLE_DATA_P.
1024
94324dae
EB
10252009-05-23 Eric Botcazou <ebotcazou@adacore.com>
1026
1027 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1028 Remove outdated reference to flow.c and fix nits.
1029 * doc/gccint.texi: Tweak RTL description.
1030 * doc/rtl.texi: Likewise.
1031
92bffc14
DC
10322009-05-23 Denis Chertykov <chertykov@gmail.com>
1033
1034 * config/avr/avr.c: Change my email address.
1035 * config/avr/avr.h: Likewise.
1036 * config/avr/avr.md: Likewise.
1037 * config/avr/avr-protos.h: Likewise.
1038 * config/avr/libgcc.S: Likewise.
1039
eec9405e
TS
10402009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1041
1042 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
1043 (spu_split_load, spu_split_store): Change return type to int.
1044 (spu_split_convert): Declare.
1045 * config/spu/predicates.md (spu_mem_operand): Remove.
1046 (spu_mov_operand): Update.
1047 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
1048 * config/spu/spu.c (regno_aligned_for_load): Remove.
1049 (reg_aligned_for_addr, spu_expand_load): Define.
1050 (spu_expand_extv): Reimplement and handle MEM.
1051 (spu_expand_insv): Handle MEM.
1052 (spu_sched_reorder): Handle insn's with length 0.
1053 (spu_legitimate_address_p): Reimplement.
1054 (store_with_one_insn_p): Return TRUE for any mode with size
1055 larger than 16 bytes.
1056 (address_needs_split): Define.
1057 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
1058 operands.
1059 (spu_convert_move): Define.
782dc37a 1060 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
1061 (spu_split_store): Change all MEM's to TImode.
1062 (spu_init_expanders): Preallocate registers that correspond to
1063 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
1064 mark_reg_pointer.
1065 (spu_split_convert): Define.
1066 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
1067 (_move<mode>, _movdi, _movti): Update predicate and condition.
1068 (load, store): Change to define_split.
1069 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
1070 extend<mode>ti2.
1071 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
1072 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
1073 define_insn_and_split of lshr<mode>3.
1074 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
1075 (<v>ashr<mode>3_imm): Define.
1076 (extv, extzv, insv): Allow MEM operands.
1077 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
1078 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
1079 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
1080 (_spu_convert2): Change to define_insn_and_split and remove the
1081 corresponding define_peephole2.
1082 (stack_protect_set, stack_protect_test, stack_protect_test_si):
1083 Change predicates to memory_operand.
1084
7d31a807
MM
10852009-05-22 Mark Mitchell <mark@codesourcery.com>
1086
1087 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 1088
d021d274
MM
10892009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1090
1091 PR tree-optimization/40219
1092 * tree.c (iterative_hash_expr): Make sure the builtin function is
1093 a normal builtin function and not a front end or back end builtin
1094 before indexing into the built_in_decls array.
1095
4d7a65ea
RG
10962009-05-22 Richard Guenther <rguenther@suse.de>
1097
1098 PR middle-end/38964
1099 * alias.c (write_dependence_p): Do not use TBAA for answering
1100 anti-dependence or output-dependence.
782dc37a 1101 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
1102 (emit_pointer_definition): Remove.
1103 (emit_alias_warning): Likewise.
1104 (find_what_var_points_to): Remove TBAA pruning code.
1105 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
1106 violations.
1107 (compute_points_to_sets): Remove code computing the set of
1108 dereferenced pointers.
1109 * tree-data-ref.c (dr_may_alias_p): Properly use the split
1110 oracle for querying anti and output dependencies.
1111 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
1112 if TBAA may be applied.
1113 (refs_anti_dependent_p): New function.
1114 (refs_output_dependent_p): Likewise.
1115 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
1116 (refs_output_dependent_p): Likewise.
1117 * doc/tree-ssa.texi (Memory model): New section.
1118 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1119 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1120 * cfgexpand.c (expand_gimple_basic_block): Do not handle
1121 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
1122 * expr.c (expand_expr_real_1): Likewise.
1123 * gimple-low.c (lower_stmt): Likewise.
1124 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
1125 (dump_gimple_cdt): Remove.
1126 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1127 (gimple_size): Likewise.
1128 (walk_gimple_op): Likewise.
1129 (is_gimple_stmt): Likewise.
1130 (walk_stmt_load_store_addr_ops): Likewise.
1131 (gimple_build_cdt): Remove.
1132 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1133 * gimple.h (gimple_cdt_new_type): Remove.
1134 (gimple_cdt_new_type_ptr): Likewise.
1135 (gimple_cdt_set_new_type): Likewise.
1136 (gimple_cdt_location): Likewise.
1137 (gimple_cdt_location_ptr): Likewise.
1138 (gimple_cdt_set_location): Likewise.
1139 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1140 * tree-cfg.c (remove_useless_stmts_1): Do not handle
1141 GIMPLE_CHANGE_DYNAMIC_TYPE.
1142 (verify_types_in_gimple_stmt): Likewise.
1143 * tree-inline.c (estimate_num_insns): Likewise.
1144 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
1145 (copy_decl_to_var): Likewise.
1146 (copy_result_decl_to_var): Likewise.
1147 * tree-pretty-print.c (dump_generic_node): Do not handle
1148 CHANGE_DYNAMIC_TYPE_EXPR.
1149 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1150 * tree-ssa-operands.c (get_expr_operands): Likewise.
1151 * tree-ssa-structalias.c (struct variable_info): Remove
1152 no_tbaa_pruning member.
1153 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
1154 (unify_nodes): Do not copy it.
1155 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1156 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
1157 (set_uids_in_ptset): Do not check it.
1158 (find_what_var_points_to): Likewise.
1159 (compute_tbaa_pruning): Remove.
1160 (compute_points_to_sets): Do not call it.
1161 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1162 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1163 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
1164 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
1165 (DECL_NO_TBAA_P): Likewise.
1166 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
1167 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
1168 (expand_omp_atomic_pipeline): Do not set it.
1169 * print-tree.c (print_node): Do not dump it.
1170 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1171 redundant check.
1172
83a6ac60
VM
11732009-05-22 Vladimir Makarov <vmakarov@redhat.com>
1174
1175 PR target/39856
1176 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
1177 for clobber.
1178
fe2978fb
MM
11792009-05-22 Mark Mitchell <mark@codesourcery.com>
1180
1181 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
1182 non-external.
1183
134ef638
BE
11842009-05-22 Ben Elliston <bje@au.ibm.com>
1185
1186 * Makefile.in (bversion.h, s-bversion): New targets.
1187 (TOPLEV_H): Add bversion.h.
1188 * toplev.h: Include "bversion.h".
1189 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
1190 the __format__ attribute only if compiling with the same version
1191 of GCC as the sources (the "build version").
1192
52fc669d
BE
11932009-05-22 Ben Elliston <bje@au.ibm.com>
1194
1195 * c-format.c (handle_format_attribute): Fix comment typo.
1196
583ca921
SE
11972009-05-21 Steve Ellcey <sje@cup.hp.com>
1198
1199 PR target/37846
1200 * config/ia64/ia64.opt (mfused-madd): New.
1201 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
1202 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
1203 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
1204 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
1205 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
1206 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
1207 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
1208 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
1209 instruction if !TARGET_FUSED_MADD.
1210 (fpma, fpms): Remove colon from name.
1211
150e3929
RG
12122009-05-22 Richard Guenther <rguenther@suse.de>
1213
1214 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
1215 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
1216 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
1217 TARGET_MEM_REF.
1218 (create_expression_by_pieces): Only convert if necessary.
1219 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
1220 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
1221
9a2b090c
AN
12222009-05-21 Adam Nemet <anemet@caviumnetworks.com>
1223
1224 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
1225 regular pattern from a template and rename it ...
1226 (*extzv_truncsi_exts): ... to this.
1227
33b92c9d
RG
12282009-05-21 Richard Guenther <rguenther@suse.de>
1229
1230 * cgraph.h (struct cgraph_node): Remove inline_decl member.
1231 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
1232 (cgraph_default_inline_p): Likewise.
1233 (cgraph_decide_inlining_incrementally): Likewise.
1234
cabf85c3
L
12352009-05-21 H.J. Lu <hongjiu.lu@intel.com>
1236 Uros Bizjak <ubizjak@gmail.com>
1237
1238 * config/i386/cpuid.h (bit_MOVBE): New.
1239
1240 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1241
1242 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
1243 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
1244 (ix86_handle_option): Handle OPT_mmovbe.
1245 (ix86_target_string): Add -mmovbe.
1246 (pta_flags): Add PTA_MOVBE.
1247 (processor_alias_table): Add PTA_MOVBE to "atom".
1248 (override_options): Handle PTA_MOVBE.
1249
1250 * config/i386/i386.h (TARGET_MOVBE): New.
1251
1252 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
1253 (*bswapsi_movbe): New.
1254 (*bswapdi_movbe): Likewise.
1255 (bswapdi2): Renamed to ...
1256 (*bswapdi_1): This.
1257 (bswapdi2): New expander.
1258
1259 * config/i386/i386.opt (mmovbe): New.
1260
1261 * doc/invoke.texi: Document -mmovbe.
1262
9fefa0aa
TG
12632009-05-21 Taras Glek <tglek@mozilla.com>
1264
1265 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
1266 * gcc-plugin.h (plugin_init): Updated signature.
1267 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
1268 * doc/plugins.texi (plugin_init): Updated documention to reflect
1269 API change.
9fefa0aa
TG
1270 * doc/plugins.texi (plugin_name_args): Added to documention.
1271
1ea9fe56
MM
12722009-05-21 Mark Mitchell <mark@codesourcery.com>
1273
1274 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
1275 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
1276
52f84254
SZ
12772009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
1278
1279 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
1280 JUMP_TABLE_DATA_P predicates where applicable.
1281 * config/i386/predicates.md: Ditto.
1282 * config/i386/sse.md: Ditto.
1283
a952487c
JJ
12842009-05-21 Jakub Jelinek <jakub@redhat.com>
1285
93cac287
JJ
1286 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
1287 operand2 -128 override length_immediate attribute to 1.
1288 * config/i386/predicates.md (constm128_operand): New predicate.
1289
a952487c
JJ
1290 * config/i386/i386.c (memory_address_length): Handle %r12
1291 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
1292 also check REGNO.
1293 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
1294 mode look through optional ZERO_EXTEND and SUBREG.
1295 * config/i386/i386.md (R12_REG): New define_constant.
1296 (prefix_data16): For sse unit set also for MODE_TI insns.
1297 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
1298 insns set if operand 1 is ext_QIreg_operand.
1299 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
1300 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
1301 immediate.
1302 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
1303 mode from MODE_DI to MODE_SI.
1304 (movdi_1_rex64): Override modrm and length_immediate attributes
1305 only for movabs (TYPE_IMOV, alternative 2).
1306 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
1307 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1308 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1309 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1310 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
1311 prefix_rex attribute if DImode.
1312 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
1313 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1314 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
1315 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
1316 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
1317 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
1318 Likewise. For TYPE_IMOV clear length_immediate attribute.
1319 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
1320 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
1321 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
1322 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1323 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
1324 or one operand TYPE_ISHIFT.
1325 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
1326 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
1327 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
1328 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
1329 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
1330 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
1331 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
1332 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
1333 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
1334 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
1335 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
1336 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
1337 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
1338 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
1339 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
1340 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
1341 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
1342 set mode attribute, don't override length attribute.
1343 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
1344 to 1.
1345 (return_internal_long): Set length attribute to 2 instead of 1.
1346 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
1347 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
1348 prefix_rex attribute.
782dc37a
UB
1349 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
1350 New predicates.
1351 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 1352
64af62c2
RR
13532009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1354
1355 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
1356
c166b898
ILT
13572009-05-20 Ian Lance Taylor <iant@google.com>
1358
1359 * tree.c (build_tree_list_vec_stat): New function.
1360 (ctor_to_vec): New function.
1361 (build_nt_call_vec): New function.
1362 (build_call_array): Change args to be a const pointer.
1363 (build_call_vec): New function.
1364 * tree.h (build_nt_call_vec): Declare.
1365 (build_tree_list_vec_stat): Declare.
1366 (build_tree_list_vec): Define.
1367 (build_call_array): Update declaration.
1368 (build_call_vec): Declare.
1369 (ctor_to_vec): Declare.
1370 * c-common.c (tree_vector_cache): New static variable.
1371 (make_tree_vector): New function.
1372 (release_tree_vector): New function.
1373 (make_tree_vector_single): New function.
1374 (make_tree_vector_copy): New function.
1375 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
1376 (make_tree_vector_single, make_tree_vector_copy): Declare.
1377 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
1378 (c_parser_expr_list): Don't manage cache here, instead call
1379 make_tree_vector.
1380 (c_parser_release_expr_list): Remove static function.
1381 (c_parser_vec_to_tree_list): Remove static function.
1382 (c_parser_attributes): Call build_tree_list_vec instead of
1383 c_parser_vec_to_tree_list. Call release_tree_vector instead of
1384 c_parser_release_expr_list.
1385 (c_parser_postfix_expression_after_primary): Likewise.
1386 (c_parser_objc_keywordexpr): Likewise.
1387
40449a90
SL
13882009-05-20 Sandra Loosemore <sandra@codesourcery.com>
1389
1390 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
1391 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
1392 TARGET_CONVERT_TO_TYPE.
1393 * hooks.c (hook_tree_const_tree_null): Define.
1394 * hooks.h (hook_tree_const_tree_null): Declare.
1395 * target.h (struct gcc_target): Add invalid_parameter_type,
1396 invalid_return_type, promoted_type, and convert_to_type fields.
1397 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
1398 (TARGET_INVALID_RETURN_TYPE): Define.
1399 (TARGET_PROMOTED_TYPE): Define.
1400 (TARGET_CONVERT_TO_TYPE): Define.
1401 (TARGET_INITIALIZER): Update for new fields.
1402 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
1403 (grokparms): Check targetm.invalid_parameter_type.
1404 * c-typeck.c (default_conversion): Check targetm.promoted_type.
1405 * c-convert.c (convert): Check targetm.convert_to_type.
1406
642d97ff
AN
14072009-05-20 Adam Nemet <anemet@caviumnetworks.com>
1408
1409 * config/mips/mips.md (*extenddi_truncate<mode>,
1410 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
1411 defintions.
1412 (*extendhi_truncateqi): New define_insn_and_sptit.
1413
776248b8
JJ
14142009-05-20 Jakub Jelinek <jakub@redhat.com>
1415
1416 PR middle-end/40204
1417 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 1418 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 1419
d98e8686
EB
14202009-05-20 Eric Botcazou <ebotcazou@adacore.com>
1421
1422 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
1423 the operand of VIEW_CONVERT_EXPR.
1424
37c50435
L
14252009-05-20 H.J. Lu <hongjiu.lu@intel.com>
1426
1427 * config/i386/driver-i386.c (host_detect_local_cpu): Check
1428 extended family and model for Intel processors. Support Intel
1429 Atom.
1430
dbb6088f
OH
14312009-05-20 Olivier Hainque <hainque@adacore.com>
1432
1433 * gstab.h (stab_code_type): Define, to be used instead of the
1434 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
1435 notice.
1436 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
1437 occurrences by stab_code_type.
1438 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
1439
7ec49257
MJ
14402009-05-20 Martin Jambor <mjambor@suse.cz>
1441
1442 * tree-flow.h (insert_edge_copies_seq): Undeclare.
1443 (sra_insert_before): Likewise.
1444 (sra_insert_after): Likewise.
1445 (sra_init_cache): Likewise.
1446 (sra_type_can_be_decomposed_p): Likewise.
1447 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
1448 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
1449 (sra_insert_before): Likewise.
1450 (sra_insert_after): Likewise.
1451 (sra_init_cache): Likewise.
1452 (insert_edge_copies_seq): Made static and moved upwards.
1453
1454 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
1455 case.
1456
1457 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
1458
1459 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
1460 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
1461 simple copies.
1462
0328ae4d
RG
14632009-05-20 Richard Guenther <rguenther@suse.de>
1464
1465 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1466 with mismatched comparison modes.
1467
a7994a57 14682009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 1469
a7994a57 1470 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
1471 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
1472 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
1473 with shifts for Thumb2.
1474 (orsi_notsi): New for orn.
1475 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
1476 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
1477 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
1478 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
1479 Don't invert remainder for IOR.
a7994a57 1480
e36dc339
ZD
14812009-05-19 Zdenek Dvorak <ook@ucw.cz>
1482
1483 PR tree-optimization/40087
1484 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
1485 number_of_iterations_ne): Rename never_infinite argument.
1486 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
1487 number_of_iterations_le): Handle pointer-type ivs when
1488 exit_must_be_taken is false.
1489 (number_of_iterations_cond): Do not always assume that
1490 exit_must_be_taken if the control variable is a pointer.
1491
5cfd5d9b
AP
14922009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
1493
1494 * c-typeck.c (build_binary_op): Allow % on integal vectors.
1495 * doc/extend.texi (Vector Extension): Document that % is allowed too.
1496
2f1c7156
L
14972009-05-19 H.J. Lu <hongjiu.lu@intel.com>
1498
1499 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
1500 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
1501
7bb27074
MLI
15022009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1503
1504 PR c/40172
1505 * c.opt (Wlogical-op): Disabled by default.
1506 * c-opt (c_common_post_options): Do not enable Wlogical-op with
1507 Wextra.
1508 * doc/invoke.texi (Wlogical-op): Likewise.
1509
5aefc6a0
EB
15102009-05-19 Eric Botcazou <ebotcazou@adacore.com>
1511
1512 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
1513 into CASE_CONVERT.
1514 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
1515 Propagate the type of the first operand.
1516 <ASSERT_EXPR>: Simplify.
1517 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
1518 Rewrite using the RHS code as discriminant.
1519 <NOP_EXPR>: Turn into CASE_CONVERT.
1520 <PLUS_EXPR>: Propagate the type of the first operand.
1521
f3a83111
SE
15222009-05-19 Steve Ellcey <sje@cup.hp.com>
1523
1524 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
1525 (ia64_dconst_0_375): New.
1526 * config/ia64/ia64.c (ia64_override_options): Remove
1527 -minline-sqrt-min-latency warning.
1528 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
1529 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
1530 * config/ia64/ia64.md (*sqrt_approx): Remove.
1531 (sqrtsf2): Remove #if 0.
1532 (sqrtsf2_internal_thr): Rewrite and move to div.md.
1533 (sqrtdf): Remove assert.
1534 (sqrtdf2_internal_thr): Rewrite and move to div.md.
1535 (sqrtxf2): Remove #if 0.
1536 (sqrtxf2_internal_thr): Rewrite and move to div.md.
1537 * div.md (sqrt_approx_rf): New.
1538 (sqrtsf2_internal_thr): New implementation.
1539 (sqrtsf2_internal_lat): New.
1540 (sqrtdf2_internal_thr: New implementation.
1541 (sqrtxf2_internal): New implementation.
1542
1ffc7157
FXC
15432009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
1544 Hans-Peter Nilsson <hp@axis.com>
1545
1546 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
1547 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
1548 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
1549 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
1550 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
1551 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
1552 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
1553 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
1554 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
1555 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
1556 * c-common.c: ...from here.
1557
db91d9ef
MLI
15582009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1559
1560 * c-common.c (warn_logical_operator): Remove unnecessary
1561 conditionals.
1562
bbb9d91f
KG
15632009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1564
1565 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
1566
ce883f54
BE
15672009-05-19 Ben Elliston <bje@au.ibm.com>
1568
1569 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
1570 assignments with memcpy calls.
1571 (add_fdes): Likewise.
1572 (binary_search_unencoded_fdes): Likewise.
1573 (linear_search_fdes): Eliminate type puns.
1574
377f099a
RG
15752009-05-19 Richard Guenther <rguenther@suse.de>
1576
1577 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
1578 not falsely claim to have propagated into all uses.
1579
848bc769
BE
15802009-05-19 Ben Elliston <bje@au.ibm.com>
1581
1582 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
1583 version to v3.0.
1584
1bb99877
KK
15852009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
1586
1587 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
1588 * config/sh/sh.c (sh_legitimate_address_p): Make static.
1589 (TARGET_LEGITIMATE_ADDRESS_P): New.
1590 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1591 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
1592
82725547
DS
15932009-05-18 Dodji Seketeli <dodji@redhat.com>
1594
1595 PR debug/40109
1596 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
1597 child of the containing namespace's DIE.
1598
f6a1e430
AN
15992009-05-18 Adam Nemet <anemet@caviumnetworks.com>
1600
1601 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
1602 *zero_extendhi_truncqi): Move after the zero_extend patterns.
1603 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
1604 extend patterns.
1605
6a90d232
L
16062009-05-18 H.J. Lu <hongjiu.lu@intel.com>
1607
1608 PR target/39942
1609 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
1610 gen_align with gen_pad.
1611 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
1612 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
1613
1614 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
1615 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
1616
1617 * config/i386/i386.md (align): Renamed to ...
1618 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
1619 ASM_OUTPUT_MAX_SKIP_PAD.
1620
c4406f74
AS
16212009-05-18 Andreas Schwab <schwab@linux-m68k.org>
1622
06555043
AS
1623 * config.gcc: Fix variable syntax.
1624
c4406f74
AS
1625 PR target/39531
1626 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
1627 before calling exact_log2.
1628 (output_iorsi3): Likewise.
1629 (output_xorsi3): Likewise.
1630
99052692
KK
16312009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
1632
1633 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
1634 for the none zero constant operand except for EQ and NE
1635 comprisons even when the first operand is R0.
1636
f4aa3848
AK
16372009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
1638
1639 * config/s390/2064.md: Remove trailing whitespaces.
1640 * config/s390/2084.md: Likewise.
1641 * config/s390/constraints.md: Likewise.
1642 * config/s390/fixdfdi.h: Likewise.
1643 * config/s390/libgcc-glibc.ver: Likewise.
1644 * config/s390/s390-modes.def: Likewise.
1645 * config/s390/s390-protos.h: Likewise.
1646 * config/s390/s390.c: Likewise.
1647 * config/s390/s390.h: Likewise.
1648 * config/s390/s390.md: Likewise.
1649 * config/s390/tpf-unwind.h: Likewise.
1650
ab7256e4
MK
16512009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
1652
1653 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
1654
75df395f
MK
16552009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
1656
1657 M68K TLS support.
1658 * configure.ac (m68k-*-*): Check if binutils support TLS.
1659 * configure: Regenerate.
1660 * config/m68k/predicates.md (symbolic_operand): Extend comment.
1661 * config/m68k/constraints.md (Cu): New constraint.
1662 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
1663 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
1664 (movsi): Handle TLS symbols.
1665 (addsi3_5200): Handle XTLS symbols, indent.
1666 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
1667 (m68k_tls_reference_p): Declare.
1668 (m68k_legitimize_address): Declare.
1669 (m68k_unwrap_symbol): Declare.
1670 * config/m68k/m68k.opt (mxtls): New option.
1671 * config/m68k/m68k.c (ggc.h): Include.
1672 (m68k_output_dwarf_dtprel): Implement hook.
1673 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
1674 (m68k_expand_prologue): Load GOT pointer when function needs it.
1675 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
1676 (m68k_legitimate_constant_address_p): Same.
1677 (m68k_decompose_address): Handle TLS references.
1678 (m68k_get_gp): New static function.
1679 (enum m68k_reloc): New contants.
1680 (TLS_RELOC_P): New macro.
1681 (m68k_wrap_symbol): New static function.
1682 (m68k_unwrap_symbol): New function.
1683 (m68k_final_prescan_insn_1): New static function.
1684 (m68k_final_prescan_insn): New function.
1685 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
1686 functions.
1687 (legitimize_pic_address): Handle TLS references..
1688 (m68k_tls_get_addr, m68k_get_tls_get_addr)
1689 (m68k_libcall_value_in_a0_p)
1690 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
1691 (m68k_call_m68k_read_tp): Helper variables and functions for ...
1692 (m68k_legitimize_tls_address): Handle TLS references.
1693 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
1694 New functions.
1695 (m68k_legitimize_address): Handle TLS symbols.
1696 (m68k_get_reloc_decoration): New static function.
1697 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
1698 UNSPEC_RELOC32.
1699 (m68k_output_dwarf_dtprel): Implement hook.
1700 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
1701 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
1702 m68k_call_* routines.
1703 (sched_attr_op_type): Handle TLS symbols.
1704 (gt-m68k.h): Include.
1705 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
1706 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
1707
8b75fc9b
MJ
17082009-05-18 Martin Jambor <mjambor@suse.cz>
1709
1710 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
1711 (visit_store_addr_for_mod_analysis): New function.
1712 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
1713 (determine_cst_member_ptr): Use gimple_assign_single_p.
1714 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
1715 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
1716 operands. Don't check number of operands of a NOP_EXPR.
1717
f133d4a2
EF
17182009-05-18 Eric Fisher <joefoxreal@gmail.com>
1719
1720 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
1721
ae8af500
L
17222009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
1723
1724 PR c/40172
1725 * c-common.c (warn_logical_operator): Don't warn if one of
1726 expression isn't always true or false.
1727
25e8fde8
KT
17282009-05-17 Kai Tietz <kai.tietz@onevision.com>
1729
ae8af500
L
1730 * config/i386/biarch32.h: New file.
1731 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 1732
ef67af22
AN
17332009-05-17 Adam Nemet <anemet@caviumnetworks.com>
1734
1735 * config/mips/mips.md (*zero_extend<mode>_trunchi,
1736 *zero_extend<mode>_truncqi): Merge these into ...
1737 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
1738 Name the pattern following this as *zero_extendhi_truncqi.
1739
e2d87023
BL
17402009-05-16 Brad Lucier <lucier@math.purdue.edu>
1741
1742 PR middle-end/39301
1743 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
1744 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
1745 (output_info): Make field HOST_WIDEST_INT.
1746 (print_statistics): Use HOST_WIDEST_INT_PRINT.
1747 (dump_bitmat_statistics): Same.
1748
428ddbf0
FXC
17492009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
1750
1751 * config.gcc (use_gcc_stdint): Set to wrap.
1752 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1753 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1754 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1755 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1756 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1757 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1758 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1759 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1760
1ab8a8c2
JM
17612009-05-16 Joseph Myers <joseph@codesourcery.com>
1762
1763 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
1764 tune_64.
1765 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
1766 Move definitions earlier.
1767 (OPT_ARCH64, OPT_ARCH32): Define.
1768 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
1769 and tune_64.
1770
70544f44
RE
17712009-05-16 Richard Earnshaw <rearnsha@arm.com>
1772
1773 PR target/40153
1774 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
1775 implies.
1776
6241ded1
RE
17772009-05-16 Richard Earnshaw <rearnsha@arm.com>
1778
1779 * arm.md (movdi2): Copy non-reg values to DImode registers.
1780
a99c6711
JJ
17812009-05-16 Jakub Jelinek <jakub@redhat.com>
1782
40a8f07a
JJ
1783 PR target/39942
1784 * final.c (label_to_max_skip): New function.
1785 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
1786 CODE_LABEL_NUMBER <= max_labelno.
1787 * output.h (label_to_max_skip): New prototype.
1788 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
1789 (ix86_avoid_jump_mispredicts): ... this. Don't define if
1790 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
1791 Handle CODE_LABELs with >= 16 byte alignment or with
1792 max_skip == (1 << align) - 1.
1793 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
1794 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
1795
a99c6711
JJ
1796 PR target/39942
1797 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
1798 .p2align 3 if MAX_SKIP is smaller than 7.
1799 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1800
7e5487a2
ILT
18012009-05-15 Ian Lance Taylor <iant@google.com>
1802
1803 * alias.c (struct alias_set_entry_d): Rename from struct
1804 alias_set_entry. Change all uses.
1805 * except.c (struct call_site_record_d): Rename from struct
1806 call_site_record. Change all uses.
1807 * except.h (struct eh_region_d): Rename from struct eh_region.
1808 Change all uses.
1809 * gcse.c (struct hash_table_d): Rename from struct hash_table.
1810 Change all uses.
1811 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
1812 ivtype_map_elt. Change all uses.
1813 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
1814 Change all uses.
1815 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
1816 * graphite.h (struct name_tree_d): Rename from struct name_tree.
1817 Change all uses.
1818 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
1819 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
1820 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
1821 * optabs.h (struct optab_d): Rename from struct optab. Change all
1822 uses.
1823 (struct convert_optab_d): Rename from struct convert_optab.
1824 Change all uses.
1825 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
1826 ipa_opt_pass. Change all uses.
1827 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
1828 all uses.
1829
1830 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
1831 defined as a typedef.
1832 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
1833 defined as a tag.
1834
a243fb4a
MLI
18352009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
1836
1837 PR 16302
1838 * fold-const.c (make_range,build_range_check,merge_ranges): Move
1839 declaration to...
1840 (merge_ranges): Returns bool.
1841 * tree.h (make_range): .. to here.
1842 (build_range_check): Likewise.
1843 (merge_ranges): Likewise. Renamed from merge_ranges.
1844 * c-typeck.c (parser_build_binary_op): Update calls to
1845 warn_logical_operator.
1846 * c-common.c (warn_logical_operator): Add new warning.
1847 * c-common.h (warn_logical_operator): Update declaration.
1848
1b53c5f3
MLI
18492009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
1850
782dc37a 1851 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 1852
c128599a
KG
18532009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1854
f9bab007
KG
1855 * doc/install.texi: Document MPC requirements, flags etc.
1856
c128599a
KG
1857 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
1858 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
1859 Evaluate constant arguments.
1860 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
1861 (fold_builtin_1): Likewise, also evaluate constant arguments.
1862 Remove superfluous break.
1863 (do_mpc_ckconv): New.
1864 * real.h: Include mpc.h.
1865 * toplev.c (print_version): Output MPC version info if available.
1866
d33e4b70
SL
18672009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1868
782dc37a 1869 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 1870
a02ab464
L
18712009-05-15 H.J. Lu <hongjiu.lu@intel.com>
1872
1873 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
1874 only once.
1875
796bda22
JH
18762009-05-15 Jan Hubicka <jh@suse.cz>
1877
1878 * doc/invoke.texi (max-early-inliner-iterations): New flag.
1879 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
1880 (try_inline): Fix return value.
1881 (cgraph_decide_inlining_incrementally): Honor new value.
1882 (cgraph_early_inlining): Handle indirect inlining.
1883 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
1884
d88e5c37
JH
18852009-05-15 Jan Hubicka <jh@suse.cz>
1886
1887 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
1888 * cgraphunit.c (cgraph_finalize_function): Set it.
1889 (cgraph_expand_function): Use it.
1890
ae63687c
SL
18912009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1892
1893 * real.c (encode_ieee_half): Define.
1894 (decode_ieee_half): Define.
1895 (ieee_half_format): Define.
1896 (arm_half_format): Define.
1897 * real.h (ieee_half_format): Declare.
1898 (arm_half_format): Declare.
1899
1bd74ad9
SL
19002009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1901
1902 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
1903 swapped, and reversed optabs exist before trying to use them.
1904
dc34db56
PB
19052009-05-15 Paul Brook <paul@codesourcery.com>
1906 Sandra Loosemore <sandra@codesourcery.com>
1907
dc34db56
PB
1908 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
1909 loads. Allow PRE_DEC.
1910 (output_move_neon): Handle PRE_DEC.
1911 (arm_print_operand): Add 'A' for neon structure loads.
1912 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
1913 * config/arm/neon.md (neon_mov): Update comment.
1914 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
1915 calls.
1916 (Um): New constraint.
1917
1d405d7b
JH
19182009-05-15 Jan Hubicka <jh@suse.cz>
1919
1920 Revert the following patch until testsuite fallout is fixed:
1921 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1922 * cgraph.h (struct inline_summary): New filed self_wize,
1923 size_inlining_benefit, self_time and time_inlining_benefit.
1924 (struct cgraph_global_info): Replace insns by time ans size fields.
1925 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1926 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1927 (ipcp_update_callgraph): Do not touch function bodies.
1928 * ipa-inline.c: Include except.h
782dc37a 1929 (MAX_TIME): New constant.
1d405d7b
JH
1930 (overall_insns): Remove
1931 (overall_size, max_benefit): New static variables.
1932 (cgraph_estimate_time_after_inlining): New function.
1933 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1934 (cgraph_clone_inlined_nodes): Update size.
1935 (cgraph_mark_inline_edge): Update size.
1936 (cgraph_estimate_growth): Use size info.
1937 (cgraph_check_inline_limits): Check size.
1938 (cgraph_default_inline_p): Likewise.
1939 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1940 (cgraph_decide_recursive_inlining): Check size.
00c5fa1b
EB
1941 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
1942 times.
1d405d7b 1943 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
1944 (cgraph_decide_inlining_incrementally): Likewise; honor
1945 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
1946 (likely_eliminated_by_inlining_p): New predicate.
1947 (estimate_function_body_sizes): New function.
1948 (compute_inline_parameters): Use it.
1949 * except.c (must_not_throw_labels): New function.
1950 * except.h (must_not_throw_labels): Declare.
1951 * tree-inline.c (init_inline_once): Kill inlining_weigths
1952 * tree-ssa-structalias.c: Avoid uninitialized warning.
1953 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1954 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1955 (PARAM_INLINE_CALL_COST): Remove.
1956 (PARAM_EARLY_INLINING_INSNS): New.
1957
7ffa47ca
RG
19582009-05-15 Richard Guenther <rguenther@suse.de>
1959
1960 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
1961 not TODO_update_ssa.
1962
828552ed
RG
19632009-05-15 Richard Guenther <rguenther@suse.de>
1964
1965 PR tree-optimization/39999
1966 * gimple.h (gimple_expr_type): Use the expression type looking
1967 through useless conversions.
1968 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
1969 (vn_nary_op_insert_stmt): Likewise.
1970 (simplify_binary_expression): Likewise.
1971
248fc9f3
RG
19722009-05-15 Richard Guenther <rguenther@suse.de>
1973
1974 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
1975 New options, enabled by default.
1976 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
1977 Document.
1978 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
1979 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
1980 * tree-ssa-structalias.c (gate_tree_pta): New function.
1981 (pass_build_alias): Use it.
1982
16b29cc4
JM
19832009-05-15 Joseph Myers <joseph@codesourcery.com>
1984
1985 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
1986 recurse on an invariant address if a conversion from a pointer
1987 type to a wider integer type is involved.
1988
125cae84
JH
19892009-05-15 Jan Hubicka <jh@suse.cz>
1990
1991 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1992 * cgraph.h (struct inline_summary): New filed self_wize,
1993 size_inlining_benefit, self_time and time_inlining_benefit.
1994 (struct cgraph_global_info): Replace insns by time ans size fields.
1995 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1996 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1997 (ipcp_update_callgraph): Do not touch function bodies.
1998 * ipa-inline.c: Include except.h
782dc37a 1999 (MAX_TIME): New constant.
125cae84
JH
2000 (overall_insns): Remove
2001 (overall_size, max_benefit): New static variables.
2002 (cgraph_estimate_time_after_inlining): New function.
2003 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2004 (cgraph_clone_inlined_nodes): Update size.
2005 (cgraph_mark_inline_edge): Update size.
2006 (cgraph_estimate_growth): Use size info.
2007 (cgraph_check_inline_limits): Check size.
2008 (cgraph_default_inline_p): Likewise.
2009 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2010 (cgraph_decide_recursive_inlining): Check size.
00c5fa1b
EB
2011 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
2012 times.
125cae84 2013 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2014 (cgraph_decide_inlining_incrementally): Likewise; honor
2015 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
2016 (likely_eliminated_by_inlining_p): New predicate.
2017 (estimate_function_body_sizes): New function.
2018 (compute_inline_parameters): Use it.
2019 * except.c (must_not_throw_labels): New function.
2020 * except.h (must_not_throw_labels): Declare.
2021 * tree-inline.c (init_inline_once): Kill inlining_weigths
2022 * tree-ssa-structalias.c: Avoid uninitialized warning.
2023 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2024 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2025 (PARAM_INLINE_CALL_COST): Remove.
2026 (PARAM_EARLY_INLINING_INSNS): New.
2027 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2028 (inline-call-cost): Remove.
2029 (early-inlining-insns): New.
2030
84fb43a1
EB
20312009-05-15 Eric Botcazou <ebotcazou@adacore.com>
2032
2033 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
2034 for bounds.
2035 (print_int_cst_bounds_in_octal_p): Likewise.
2036 (dbxout_type): Adjust calls to above functions. Be prepared to deal
2037 with subtypes.
2038 * dwarf2out.c (base_type_die): Likewise.
2039 (is_subrange_type): Delete.
2040 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
2041 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
2042 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
2043 the destination type is boolean.
2044 (build_range_check): Do not special-case subtypes.
2045 (fold_sign_changed_comparison): Likewise.
2046 (fold_unary): Likewise.
2047 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
2048 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
2049 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
2050 * tree.c (subrange_type_for_debug_p): New predicate based on the former
2051 is_subrange_type.
2052 * tree.h (subrange_type_for_debug_p): Declare.
2053 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
2054 (convert_affine_scev): Remove call to above function.
2055 (chrec_convert_aggressive): Likewise.
2056 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
2057 false for conversions involving subtypes.
2058 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
2059 (vrp_val_min): Likewise.
2060 (needs_overflow_infinity): Likewise.
2061 (extract_range_from_unary_expr): Likewise.
2062
331d9186
PB
20632009-05-15 Paolo Bonzini <bonzini@gnu.org>
2064
e9351712
L
2065 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2066 * config/frv/frv.c: Likewise.
2067 * config/s390/s390.c: Likewise.
2068 * config/sparc/sparc.h: Likewise.
2069 * config/i386/i386.h: Likewise.
2070 * config/i386/i386.c: Likewise.
2071 * config/crx/crx.c: Likewise.
2072 * config/m68hc11/m68hc11.h: Likewise.
2073 * config/iq2000/iq2000.c: Likewise.
2074 * config/mn10300/mn10300.h: Likewise.
2075 * config/mn10300/mn10300.c: Likewise.
2076 * config/m68k/m68k.c: Likewise.
2077 * config/rs6000/rs6000.c: Likewise.
2078 * config/rs6000/xcoff.h: Likewise.
2079 * config/rs6000/linux64.h: Likewise.
2080 * config/rs6000/sysv4.h: Likewise.
2081 * config/score/score3.c: Likewise.
2082 * config/score/score7.c: Likewise.
2083 * config/score/score.c: Likewise.
2084 * config/arm/arm.md: Likewise.
2085 * config/mips/mips.c: Likewise.
2086 * config/mips/mips.md: Likewise.
2087 * config/bfin/bfin.h: Likewise.
2088 * config/pa/pa.c: Likewise.
2089 * config/pa/constraints.md: Likewise.
2090
2091 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
2092 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
2093 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 2094
09639a83
ILT
20952009-05-14 Ian Lance Taylor <iant@google.com>
2096
2097 * passes.c (finish_optimization_passes): Change i to int.
2098 * plugin.c (plugins_active_p): Change event to int.
2099 (dump_active_plugins): Likewise.
2100 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
2101 Add cast.
2102 * tree.c (tree_range_check_failed): Change c to unsigned int.
2103 (omp_clause_range_check_failed): Likewise.
2104 (build_common_builtin_nodes): Change mode to int. Add cast.
2105 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
2106 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
2107
2108 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
2109 ++ or -- with a variable of enum type.
2110
c04a56bf
SB
21112009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2112
2113 PR driver/40144
2114 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
2115
237ee620
SB
21162009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2117
2118 * store-motion.c: Do not include params.h
2119 * Makefile.in: Fix dependencies for various files.
2120
1154c4fa
SB
21212009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2122
2123 * auto-inc-dec.c: Fix pass description, remove apparent
2124 accidental duplication.
2125
61c27353
L
21262009-05-14 H.J. Lu <hongjiu.lu@intel.com>
2127
2128 PR middle-end/40147
2129 * ipa-utils.h (memory_identifier_string): Moved to ...
2130 * tree.h (memory_identifier_string): Here. Add GTY(()).
2131
c6c3dba9
PB
21322009-05-14 Paolo Bonzini <bonzini@gnu.org>
2133
2134 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
2135 in the former documentation of...
2136 (GO_IF_LEGITIMATE_ADDRESS): ... this.
2137 * ira-conflicts.c (get_dup_num): Use address_operand.
2138 * targhooks.c (default_legitimate_address_p): New.
2139 * targhooks.h (default_legitimate_address_p): New.
2140 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
2141 Call hook.
2142 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
2143 * target.h (struct target): Add legitimate_address_p.
2144 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
2145 (TARGET_INITIALIZER): Include it.
2146
2147 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2148 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
2149 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
2150 (TARGET_LEGITIMATE_ADDRESS_P): New.
2151
2152 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2153 (REG_OK_STRICT_P): Delete.
2154 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
2155 (frv_legitimate_address_p_1): ... this.
2156 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
2157 (frv_legitimate_address_p_1): ... the renamed old
2158 frv_legitimate_address_p.
2159 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
2160 (TARGET_LEGITIMATE_ADDRESS_P): New.
2161
2162 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2163 * config/s390/s390-protos.h (legitimate_address_p): Remove.
2164 * config/s390/s390.c (legitimate_address_p): Rename to...
2165 (s390_legitimate_address_p): ... this, make static.
2166 (legitimize_address): Adjust call.
2167 (TARGET_LEGITIMATE_ADDRESS_P): New.
2168 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
2169
2170 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2171 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
2172 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
2173 (TARGET_LEGITIMATE_ADDRESS_P): New.
2174
2175 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2176 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
2177 * config/spu/spu.c (spu_legitimate_address): Rename to...
2178 (spu_legitimate_address_p): ... this, make static.
2179 (TARGET_LEGITIMATE_ADDRESS_P): New.
2180
2181 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2182 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
2183 * config/sparc/sparc.c (legitimate_address_p): Rename to...
2184 (sparc_legitimate_address_p): ... this, make static and return bool.
2185 (legitimize_address): Adjust call.
2186 (TARGET_LEGITIMATE_ADDRESS_P): New.
2187
2188 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2189 * config/i386/i386-protos.h (legitimate_address_p): Remove.
2190 * config/i386/i386.c (legitimate_address_p): Rename to...
2191 (ix86_legitimate_address_p): ... this, make static.
2192 (constant_address_p): Move after it, adjust call.
2193 (TARGET_LEGITIMATE_ADDRESS_P): New.
2194
2195 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2196 * config/avr/avr-protos.h (legitimate_address_p): Remove.
2197 * config/avr/avr.c (legitimate_address_p): Rename to...
2198 (avr_legitimate_address_p): ... this, make static.
2199 (legitimize_address): Adjust call.
2200 (TARGET_LEGITIMATE_ADDRESS_P): New.
2201
2202 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2203 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
2204 * config/crx/crx.c (crx_legitimate_address_p): Make static.
2205 (TARGET_LEGITIMATE_ADDRESS_P): New.
2206
2207 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2208 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
2209 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
2210 (TARGET_LEGITIMATE_ADDRESS_P): New.
2211
2212 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2213 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
2214 Remove.
2215 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
2216 Make static.
2217 (TARGET_LEGITIMATE_ADDRESS_P): New.
2218
2219 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2220 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
2221 Remove.
2222 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
2223 Rename to...
2224 (m68hc11_legitimate_address_p): ... this, make static.
2225 (go_if_legitimate_address_internal): Rename to...
2226 (m68hc11_legitimate_address_p_1): ... this.
2227 (legitimize_address): Adjust call.
2228 (TARGET_LEGITIMATE_ADDRESS_P): New.
2229
2230 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
2231 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
2232 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
2233 (TARGET_LEGITIMATE_ADDRESS_P): New.
2234
2235 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2236 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
2237 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
2238 (mn10300_legitimate_address_p): ... this, make static.
2239 (TARGET_LEGITIMATE_ADDRESS_P): New.
2240
2241 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2242 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
2243 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
2244 (TARGET_LEGITIMATE_ADDRESS_P): New.
2245
2246 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2247 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
2248 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
2249 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2250 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
2251 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
2252 (rs6000_legitimate_address_p): ... this, make static.
2253 (TARGET_LEGITIMATE_ADDRESS_P): New.
2254 (REG_MODE_OK_FOR_BASE_P): Delete.
2255 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
2256
2257 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2258 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
2259 Delete.
2260 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
2261 static, adjust types.
2262 (TARGET_LEGITIMATE_ADDRESS_P): New.
2263
2264 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2265 * config/score/score.c (score_address_p): Rename to...
2266 (score_legitimate_address_p): ... this.
2267 (TARGET_LEGITIMATE_ADDRESS_P): New.
2268 * config/score/score3.c (score3_address_p): Rename to...
2269 (score3_legitimate_address_p): ... this.
2270 * config/score/score7.c (score7_address_p): Rename to...
2271 (score7_legitimate_address_p): ... this.
2272
2273 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
2274 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
2275 GO_IF_LEGITIMATE_ADDRESS): Delete.
2276 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
2277 thumb2_legitimate_address_p): Delete.
2278 (arm_legitimate_address_p): Rename to...
2279 (arm_legitimate_address_outer_p): ... this.
2280 * config/arm/constraints.md ("Uq"): Adjust call.
2281 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
2282 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
2283 (arm_legitimate_address_outer_p): ... this.
2284 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
2285 (TARGET_LEGITIMATE_ADDRESS_P): New.
2286
2287 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2288 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
2289 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
2290 (TARGET_LEGITIMATE_ADDRESS_P): New.
2291
2292 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2293 * config/vax/vax-protos.h (legitimate_address_p): Remove.
2294 * config/vax/vax.c (legitimate_address_p): Rename to...
2295 (vax_legitimate_address_p): ... this, make static.
2296 (TARGET_LEGITIMATE_ADDRESS_P): New.
2297
2298 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2299 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
2300 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
2301 (TARGET_LEGITIMATE_ADDRESS_P): New.
2302
2303 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2304 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
2305 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
2306 (mmix_legitimate_address_p): ... this, make static.
2307 (TARGET_LEGITIMATE_ADDRESS_P): New.
2308
2309 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2310 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
2311 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
2312 (TARGET_LEGITIMATE_ADDRESS_P): New.
2313
3bd0d9c8
PB
23142009-05-14 Paolo Bonzini <bonzini@gnu.org>
2315
2316 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
2317 of MODE_COMPLEX_INT.
2318
fe049033
RO
23192009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2320
2321 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
2322 LCT_NORMAL in function call.
2323 * mips-tdump.c (print_file_desc): Add cast to enum type.
2324 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
2325 (mark_stabs): Add casts to enum types.
2326 (parse_stabs_common): Add casts to enum types.
16f7ad42 2327
b0907a6c
AN
23282009-05-13 Adam Nemet <anemet@caviumnetworks.com>
2329
2330 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
2331 Check for invalid values of LETTER.
2332
d1c8e08a
TG
23332009-05-13 Taras Glek <tglek@mozilla.com>
2334
16f7ad42
TG
2335 * attribs.c (register_attribute): moved out attribute registration into
2336 register_attribute.
2337 * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
2338 * gcc-plugin.h: Added forward decl for register_attribute.
2339 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
2340 * plugin.c (register_callback, invoke_plugin_callbacks): Added
2341 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 2342
4ed7f970
DK
23432009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
2344
2345 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
2346 values even in sentinel and empty entries.
2347 (ms_printf_flag_specs): Likewise.
2348 (ms_scanf_flag_specs): Likewise.
2349 (ms_strftime_flag_specs): Likewise.
2350 (ms_print_char_table): Likewise.
2351 (ms_scan_char_table): Likewise.
2352 (ms_time_char_table): Likewise.
2353
3d8fa148
DK
23542009-05-13 Doug Kwan <dougkwan@google.com>
2355
2356 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
2357
f06257d3
AN
23582009-05-13 Adam Nemet <anemet@caviumnetworks.com>
2359
2360 * config/mips/mips.md (store): Add attributes for QI and HI.
2361 Update comment.
2362 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
2363 (truncdi<mode>2): ... this new pattern.
2364
fb201767
BH
23652009-05-13 Brad Hards <bradh@kde.org>
2366
2367 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
2368
c7bda60e 23692009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
2370 Ben Elliston <bje@au.ibm.com>
2371
2372 PR middle-end/40035
2373 * dse.c (check_mem_read_rtx): Guard against width == -1.
2374
ce985b43
MM
23752009-05-13 Michael Matz <matz@suse.de>
2376
2377 PR middle-end/39976
2378 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
2379 (trivially_conflicts_p): New function.
2380 (insert_backedge_copies): Use it.
2381
7de1d221
JJ
23822009-05-13 Janis Johnson <janis187@us.ibm.com>
2383
2384 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
2385 (handle_stdc_pragma): Use new enum constant names.
2386 (handle_pragma_float_const_decimal64): Ditto.
2387
bfefafc6
ILT
23882009-05-13 Ian Lance Taylor <iant@google.com>
2389
2390 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
2391 tree.def.
2392
286c4fcb
NS
23932009-05-13 Nathan Sidwell <nathan@codesourcery.com>
2394
2395 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
2396 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
2397 multilibs.
2398 * config/m68k/m68k.h (FL_UCLINUX): Define.
2399
ebaa6ea7
JH
24002009-05-13 Jan Hubicka <jh@suse.cz>
2401
2402 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
2403
2b703e1a
KK
24042009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2405
2406 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
2407 unless -fschedule-insns is specified.
2408
c3537723
KK
24092009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2410
2411 PR target/39561
2412 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
2413 TARGET_EXPAND_CBRANCHDI4.
2414 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
2415 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
2416 (cmpeqdi): Fix comment.
2417
cdeed45a
KK
24182009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2419
2420 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
2421 (sh_legitimate_address_p): Likewise.
2422 * config/sh/sh.c (sh_legitimate_index_p): New.
2423 (sh_legitimate_address_p): Likewise.
2424 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
2425 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
2426 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
2427 (MAYBE_BASE_REGISTER_RTX_P): New macro.
2428 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
2429 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
2430 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
2431 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
2432 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
2433
02f0b13a
JH
24342009-05-12 Jan Hubicka <jh@suse.cz>
2435
2436 * tree-inline.c (estimate_operator_cost): Add operands;
2437 when division happens by constant, it is cheap.
2438 (estimate_num_insns): Loads and stores are not having cost of 0;
2439 EH magic stuff is cheap; when computing runtime cost of switch,
2440 use log2 base of amount of its cases; builtin_expect has cost of 0;
2441 compute cost for moving return value of call.
2442 (init_inline_once): Initialize time_based flags.
2443 * tree-inline.h (eni_weights_d): Add time_based flag.
2444
ecb7f6de
PB
24452009-05-12 Paolo Bonzini <bonzini@gnu.org>
2446
2447 * df-core.c: Update head documentation.
2448
c24151ce
MM
24492009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2450
2451 PR bootstrap/40118
2452 * rs6000.c (rs6000_generate_compare): Use op1b instead of
2453 shadowing exisiting variable op1.
2454
fbdf817d
UB
24552009-05-12 Uros Bizjak <ubizjak@gmail.com>
2456
704bf7c8 2457 PR target/37179
fbdf817d
UB
2458 * config/i386/driver-i386.c (processor_signatures): New enum.
2459 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
2460 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
2461 processor signature to detect geode processor.
2462
5e8d1826
PB
24632009-05-12 Paolo Bonzini <bonzini@gnu.org>
2464
2465 Revert:
2466
2467 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
2468
2469 * optabs.c (prepare_cmp_insn): Temporarily disable test that
2470 causes spurious differences between trunk and cond-optab branch.
2471
f90b7a5a
PB
24722009-05-12 Paolo Bonzini <bonzini@gnu.org>
2473
fbdf817d
UB
2474 * dojump.c (compare_from_rtx): Delete.
2475 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
2476 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
2477 if the comparison does not satisfy the predicate; test predicates for
2478 operands 2 and 3 of a cstore pattern. Don't try cstore optab
2479 further if one existing pattern fails.
fbdf817d 2480 * expr.h (compare_from_rtx): Delete.
f90b7a5a 2481 (prepare_operand): Declare it.
fbdf817d 2482 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 2483 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
2484 HAVE_conditional_trap, emit_cmp_insn): Delete.
2485 (can_compare_p): Delete cmp_optab case.
f90b7a5a 2486 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
2487 Accept other parameters by value.
2488 (prepare_operand): Make non-static.
2489 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
2490 other parameters by value. Try to widen operands here based on
2491 an optab_methods argument and looking at cbranch_optab.
2492 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
2493 loop. Use cbranch_optab directly.
2494 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
2495 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
2496 assertion.
2497 (emit_conditional_move, emit_conditional_add): Inline what's needed
2498 of compare_from_rtx, using new prepare_cmp_insn for the rest.
2499 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
2500 with COMPARE. Move cmov_optab and cstore_optab above
2501 with cbranch_optab, move cmp_optab down with ucmp_optab,
2502 remove tst_otpab. Do not initialize trap_rtx.
2503 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
2504 for trap code. Do not check HAVE_conditional_trap. Use
2505 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
2506 * optabs.h (OTI_cmp): Mark as used only for libcalls.
2507 (OTI_ctrap, ctrap_optab): New.
2508 (tst_optab): Delete.
2509 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
2510 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
2511 with lookup of ctrap_optab.
2512 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
2513 setcc_gen_code): Delete.
2514 (ctrap_optab): New.
2515
2516 * combine.c (combine_simplify_rtx, simplify_set): Do not
2517 special case comparing against zero for cc0 machines.
f90b7a5a
PB
2518 * simplify-rtx.c (simplify_binary_operation_1): Never remove
2519 COMPARE on cc0 machines.
2520 (simplify_relational_operation): Return a new expression when
2521 a COMPARE could be removed.
fbdf817d
UB
2522 * final.c (final_scan_insn): Compare cc_status values
2523 against LHS of a (compare FOO (const_int 0)) cc0 source.
2524 Also check if cc_status.value is the full compare.
f90b7a5a 2525
fbdf817d
UB
2526 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
2527 (cstoreMM4): Document.
f90b7a5a 2528 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 2529 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
2530 (Dependent Patterns): Eliminate obsolete information referring to
2531 the old jump optimization phase.
fbdf817d 2532 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
2533 of compares with 0 on cc0 machines.
2534 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
2535 avoiding references to cc0. Remove text about storing operands
2536 in cmpMM.
2537 * doc/tm.texi (Condition Codes): Include blurb on different
2538 condition code representations, separate into subsections for
2539 CC0, MODE_CC and conditional execution.
2540
fbdf817d
UB
2541 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
2542 alpha_emit_setcc): Accept operands and a machine mode.
2543 * config/alpha/alpha.c (alpha_emit_conditional_branch):
2544 Get code/op0/op1 from operands, use machine mode argument
2545 instead of alpha_compare.fp_p. Emit the branch here.
2546 (alpha_emit_setcc): Likewise, and return boolean.
2547 (alpha_emit_conditional_move): Likewise. Assert that
2548 cmp_op_mode == cmp_mode, and simplify accordingly.
2549 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
2550 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
2551 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
2552 Delete.
2553 (stack probe test): Use cbranchdi4.
2554 * config/alpha/predicates.md (alpha_cbranch_operator): New.
2555
2556 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
2557 * config/arc/arc.h (movsicc, movsfcc): Use it.
2558 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
2559 (cbranchsi4, cstoresi4): New.
2560 (cmpsi, bCC and sCC expanders): Remove.
2561
2562 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
2563 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
2564 * config/arm/predicates.md (arm_comparison_operator): Only include
2565 floating-point operators if there is a hardware floating-point unit.
2566 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
2567 deferring to cbranch_cc and cstore_cc respectively.
2568 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
2569 cbranch_cc, cstore_cc): New.
2570 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 2571 arm_compare_op1.
fbdf817d
UB
2572 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
2573
2574 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
2575 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
2576 as an argument.
2577 (adjust_insn_length): Adjust calls.
2578 (avr_reorg): Handle (compare (foo) (const_int 0)).
2579 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
2580 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
2581 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
2582 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
2583 (bCC): Remove.
2584 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
2585 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
2586
fbdf817d
UB
2587 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
2588 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 2589 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
2590 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
2591 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
2592 (bfin_optimize_loop): Use cbranch expander.
2593 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
2594 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
2595 (bfin_bimode_comparison_operator): ... this.
2596 (bfin_direct_comparison_operator): New.
f90b7a5a 2597
fbdf817d
UB
2598 * config/cris/cris.c (cris_normal_notice_update_cc): Look
2599 inside (compare FOO (const_int 0)).
2600 (cris_rtx_costs): Handle ZERO_EXTRACT.
2601 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
2602 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
2603 (*tstdi_v32): Delete.
2604 (*cmpdi_non_v32): Add M alternative for operand 1.
2605 (cmpsi, cmp<mode>): Make private.
2606 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
2607 with COMPARE.
2608 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
2609
2610 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
2611 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
2612 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
2613 (cc_reg_operand): New.
2614 (any_cond): Delete.
fbdf817d
UB
2615 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
2616 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
2617 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
2618 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
2619 crx_expand_scond): Delete.
2620
2621 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
2622 (cbranchsi4): New.
2623 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
2624 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
2625
2626 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
2627 cstoresi4, cstoresf4, cstoredf4): New.
2628 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
2629 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2630 Receive the entire operands array.
2631 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
2632 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
2633 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2634 Get test/op0/op1 from the operands array.
2635 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
2636
2637 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
2638 (h8300_expand_store): New.
2639 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
2640 (const_int 0)).
2641 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
2642 (h8300_expand_store): New.
2643 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
2644 or do not try to produce (set (cc0) REG).
2645 (peepholes): Wrap arguments with COMPARE. Add a peephole to
2646 change a compare into a move to a scratch register. Disable some
2647 peepholes when comparing with zero.
2648 (tstsi, tsthi, tstsi, cmpqi): Make private.
2649 (cmphi): Delete.
2650 (bCC, sCC): Delete.
2651 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
2652 cstoresi4): New.
f90b7a5a
PB
2653
2654 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
2655 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
2656 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
2657 (ix86_emit_i387_log1p): Use cbranchxf2.
2658 (ix86_expand_setcc): Return void.
2659 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
2660 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
2661 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
2662 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
2663 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
2664 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
2665 (sCC and bCC expanders): Remove.
2666 (stack_protect_test): Use cbranchcc4.
2667
fbdf817d
UB
2668 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
2669 Delete.
2670 (ia64_expand_compare): Accept three rtx by reference and return void.
2671 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
2672 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
2673 from *expr. Update *expr with the BImode comparison to do.
2674 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
2675 cmptf, bCC, sCC, conditional_trap): Delete.
2676 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
2677 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
2678 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
2679 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
2680 * config/ia64/predicates.md (ia64_cbranch_operator): New.
2681
2682 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
2683 type of last argument.
2684 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
2685 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
2686 use machine mode argument instead of branch_type. Remove dead
2687 code for floating-point comparisons.
2688 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
2689 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
2690 Remove.
2691 (cbranchsi4, cstoresi4): New.
2692 * config/iq2000/predicates.md (reg_or_const_operand): New.
2693
2694 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
2695 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
2696 (b<code>_op): Rewrite to...
2697 (bcc_op): ... this, using match_operator.
2698 (s<code>_op): Rewrite to...
2699 (scc_op): ... this, using match_operator.
2700 (s<code>_24_op): Rewrite to...
2701 (scc_op_24): ... this, using match_operator.
2702 (s<code>_<mode>): Rewrite to...
2703 (cstore<mode>4): ... this, using match_operator.
2704 (s<code>_<mode>_24): Rewrite to...
2705 (cstore<mode>4_24): ... this, using match_operator.
2706 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
2707 m32c_unpend_compare, m32c_expand_scc): Delete.
2708 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
2709 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
2710 (m32c_expand_movcc): Change NE to EQ if necessary.
2711 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
2712
2713 * config/m32r/m32r-protos.h (gen_cond_store): New.
2714 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
2715 (gen_cond_store): New, from sCC patterns.
2716 (m32r_expand_block_move): Use cbranchsi4.
2717 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
2718 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
2719 (cbranchsi4, cstoresi4): New.
2720
2721 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
2722 Delete.
2723 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 2724 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
2725 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
2726 Delete.
2727 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
2728 cmphi, cmpqi, bCC): Delete.
2729 (cbranchsi4, cbranchhi4, cbranchqi4): New.
2730 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
2731 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
2732 sets with COMPARE.
2733
2734 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
2735 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
2736 * config/m68k/constraints.md (H): New.
2737 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
2738 the define_insn below.
2739 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
2740 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
2741 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
2742 patterns): Wrap RHS with COMPARE.
2743 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
2744 (*cmpdi_internal): Name this pattern.
2745 (cmpdi): Change to define_insn.
2746 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
2747 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
2748 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
2749 predicate.
2750 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
2751 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
2752 (conditional_trap): Change to...
2753 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
2754 (*conditional_trap): Use the ordered_comparison_operator and
2755 const1_operand predicates.
2756 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
2757 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
2758 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
2759 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
2760
2761 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
2762 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
2763 (mcore_gen_compare): New.
2764 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
2765 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
2766 (mcore_gen_compare): ... this.
2767 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
2768 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
2769 (stack probe pattern): Use cbranchsi4.
2770
2771 * config/mips/predicates.md (mips_cstore_operator): New.
2772 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
2773 * config/mips/mips.md (any_cond): Delete.
2774 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
2775 always succeed.
2776 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
2777 fixuns_truncsfdi2): Use cbranch patterns.
2778 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
2779 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
2780 Adjust call to mips_expand_conditional_branch.
2781 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
2782 cstore<GPR:mode>4.
2783 * config/mips/mips-protos.h (mips_expand_conditional_branch,
2784 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
2785 * config/mips/mips.c (cmp_operands): Delete.
2786 (mips_emit_compare): Get comparison operands from *op0/*op1.
2787 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
2788 that it succeeds. Use op0/op1 instead of cmp_operands.
2789 (mips_expand_conditional_branch, mips_expand_conditional_move,
2790 mips_expand_conditional_trap): Likewise.
2791 (mips_block_move_loop): Use cbranch patterns.
2792 * config/mips/mips.h (cmp_operands): Delete.
2793
2794 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
2795 (mmix_gen_compare_reg): Just return a register in the right CC mode.
2796 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
2797 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
2798 (*cmpcc_folded): Rename to...
2799 (*cmpdi_folded): this.
2800 (*cmpcc): Rename to...
2801 (*cmps): ... this.
2802 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
2803 (bCC): Remove.
2804 (cbranchdi4): New.
2805 (cbranchdf4): New. Handle invalid comparisons here.
2806 * config/mmix/predicates.md (float_comparison_operator): New.
2807
2808 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
2809 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
2810 * config/mn10300/mn10300.md (tst): Delete.
2811 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
2812 Name these patterns and wrap RHS in a compare.
2813 (*cmpsi): Make this pattern private. Include tst.
2814 (*cmpsf): Make this pattern private.
2815 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
2816 (compare with zero peepholes): Likewise.
2817 (bCC): Remove.
2818 (cbranchsi4, cbranchsf4): New.
2819 (casesi): Use cbranchsi4.
2820
2821 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
2822 hppa_branch_type): Delete.
2823 (return_addr_rtx): Use cbranchsi4.
2824 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
2825 Emit CCFPmode comparison here.
2826 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
2827 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
2828 hppa_branch_type): Delete.
2829 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
2830 (movsicc, movdicc): Remove references to hppa_compare_op0,
2831 hppa_compare_op1 and compare_from_rtx.
2832 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
2833 (casesi): Use cbranchsi4.
2834
2835 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
2836 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
2837 * config/pdp11/pdp11.md (register_or_const0_operand): New.
2838 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
2839 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
2840 (bCC): Delete.
2841 (cbranchdf4, cbranchhi4, cbranchqi4): New.
2842 (*branch, *branch_inverted): New.
2843
2844 * config/picochip/picochip.md (cbranchhi4): Use
2845 ordered_comparison_operator.
2846 (cmphi, bCC): Remove.
2847
2848 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
2849 (trap_comparison_operator): Delete.
2850 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
2851 rs6000_emit_cbranch): Accept mode and operands.
2852 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
2853 rs6000_compare_fp_p): Delete.
2854 (rs6000_generate_compare): Accept mode and comparison. Extract code
2855 and op0/op1 from there. Replace references to rs6000_compare_op0
2856 and rs6000_compare_op1.
2857 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
2858 extract result from passed operands.
2859 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
2860 extract loc from passed operands.
2861 (rs6000_emit_cmove): Likewise.
2862 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
2863 rs6000_compare_fp_p): Delete.
2864 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
2865 (cbranch<GPR>4, cbranch<FP>4): New.
2866 (cstore<mode>4): New. Consolidate here all choices about when to use
2867 portable or specialized sCC sequences.
2868 (stack_protect_test): Use cbranchsi4.
2869 (conditional_trap): Replace with ctrap<GPR>4.
2870 (conditional trap insn): Replace trap_comparison_operator with
2871 ordered_comparison_operator.
2872
2873 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
2874 (s390_emit_prologue): Use ctrap.
2875 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
2876 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
2877 New predicates replacing...
2878 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
2879 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
2880 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
2881 (add<mode>cc): Do not use s390_compare_op0/op1.
2882 (s<code>): Change to...
2883 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
2884 (seq): Change to...
2885 (cstorecc4): ... this. Handle EQ or NE equally.
2886 (*sne): Un-privatize for use in cstorecc4.
2887 (b<code>): Change to...
2888 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
2889 (conditional_trap): Replace with...
2890 (ctrap<GPR>4, ctrap<FP>4): ... these.
2891 (stack_protect): Use cbranchcc4.
2892
2893 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
2894 * config/score/score-protos.h (score_gen_cmp): Delete.
2895 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
2896 (score_block_move-loop): Use cbranchsi4.
2897 * config/score/score.md (cbranchsi4): New.
2898 (cmpsi, bCC): Delete.
2899 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
2900 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
2901 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
2902 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
2903 * config/score/score3.h (score3_gen_cmp): Delete.
2904 * config/score/score7.h (score7_gen_cmp): Delete.
2905
2906 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
2907 (sh_emit_scc_to_t): ... this. Return void.
2908 (from_compare): Rename to...
2909 (sh_emit_compare_and_branch): ... this.
2910 (sh_emit_compare_and_set): New.
2911 (sh_expand_t_scc): Accept operands.
2912 * config/sh/predicates.md (sh_float_comparison_operator): New.
2913 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
2914 (prepare_scc_operands): Rename to...
2915 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
2916 arguments.
2917 (sh_emit_cheap_store_flag): New.
f90b7a5a 2918 (sh_emit_set_t_insn): New.
fbdf817d
UB
2919 (from_compare): Rename to...
2920 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
2921 handling of TARGET_SH2E floating point to avoid recursive call.
2922 Generate branch here.
2923 (sh_emit_compare_and_set): New.
2924 (sh_expand_t_scc): Get op0/op1 from arguments.
2925 (sh_emit_cheap_store_flag): New.
2926 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
2927 cases.
f90b7a5a 2928 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
2929 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
2930 (movsicc, movdicc): Do nothing when it recreated operands from
2931 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
2932 prepare_scc_operands (now sh_emit_scc_to_t).
2933 (udivdi3): Use cstoresi4.
2934 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
2935 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
2936 (cbranchint4_media, cbranchfp4_media): New.
2937 (casesi): Use cbranchdi4.
2938 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
2939 Delete.
2940 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
2941 (movnegt): Remove second operand.
2942 (cbranchsf4, cbranchdf4): New.
2943 (stack_protect): Use cbranchdi4/cbranchsi4.
2944
2945 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
2946 (gen_compare_reg): Accept comparison, extract part of it to...
2947 (gen_compare_reg_1): ... this.
2948 (gen_compare_operator): Delete.
2949 (gen_v9_scc): Accept separate destination, comparison code and arms.
2950 Do not use sparc_compare_op0/sparc_compare_op1.
2951 (emit_scc_insn, emit_conditional_branch_insn): New.
2952 (emit_v9_brxx): Make static. Remove useless assertion.
2953 (sparc_emit_float_lib_cmp): Return RTL instead of calling
2954 emit_cmp_insn.
2955 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
2956 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
2957 sparc_emit_float_lib_cmp): Adjust prototype.
2958 (emit_scc_insn, emit_conditional_branch_insn): New.
2959 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
2960 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
2961 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
2962 iterators to the top.
2963 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
2964 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 2965 snedi_special_trunc): Delete.
fbdf817d 2966 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 2967 and snedi_special_trunc.
fbdf817d
UB
2968 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
2969 cbranchdi4, cbranch<F:mode>4): New.
2970 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
2971 here. Use gen_compare_reg instead of gen_compare_operator.
2972 (conditional_trap): Replace with...
2973 (ctrapsi4, ctrapdi4): ... this.
2974 (stack_protect_test): Use cbranchcc4.
2975
2976 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
2977 argument to rtx.
2978 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
2979 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
2980 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
2981 from operands[0] or operands[3] depending on is_set.
2982 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
2983 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
2984 cmpdf, bCC), sCC: Remove.
2985 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
2986 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
2987 cstoredf4): New.
2988 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
2989 spu_emit_branch_or_set.
2990
2991 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
2992 Add two arguments.
2993 * config/stormy16/stormy16.h (xstormy16_compare_op0,
2994 xstormy16_compare_op1): Delete.
2995 * config/stormy16/stormy16.c (xstormy16_compare_op0,
2996 xstormy16_compare_op1): Delete.
2997 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
2998 Adjust calls.
2999 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3000 (cmphi, cmpsi, bCC): Remove.
3001
3002 * config/v850/v850.md (tstsi, cmpsi): Fold into...
3003 (*cmpsi): ... this one.
3004 (cbranchsi4, cstoresi4): New.
3005 (bCC expanders): Delete.
3006 (sCC insns): Fold into...
3007 (*setcc): ... this one.
3008 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
3009 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3010 (movsicc): Simplify.
3011 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3012
fbdf817d
UB
3013 * config/vax/vax-protos.h (cond_name): New.
3014 (vax_output_conditional_branch): Remove.
3015 * config/vax/vax.c (cond_name): New.
3016 (vax_output_conditional_branch): Remove.
3017 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3018 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3019 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
3020 (bit<VAXint>): Wrap source with (compare).
3021 (b<code> and following unnamed pattern): Rename to *branch and
3022 *branch_reversed. Change macroization to match_operator.
3023 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3024
3025 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3026 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3027 Change last argument to machine_mode.
3028 (xtensa_expand_scc): Add machine_mode argument.
3029 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3030 (gen_conditional_move, xtensa_expand_conditional_branch,
3031 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3032 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3033 Adjust operand numbers.
3034 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3035 Delete.
3036 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3037 (cmpsi, cmpsf, b<code>, s<code>): Delete.
3038 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 3039
16670495
PB
30402009-05-12 Paolo Bonzini <bonzini@gnu.org>
3041
3042 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3043 causes spurious differences between trunk and cond-optab branch.
3044
4a4a4e99
AO
30452009-05-12 Alexandre Oliva <aoliva@redhat.com>
3046
3047 PR target/37137
3048 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
3049
72b9acff
AO
30502009-05-12 Alexandre Oliva <aoliva@redhat.com>
3051
3052 * tree.c (iterative_hash_pointer): Delete.
3053 (iterative_hash_expr): Short-circuit handling of NULL pointer.
3054 Hash UIDs and versions of SSA names. Don't special-case built-in
3055 function declarations.
3056
b7dd69ac
ILT
30572009-05-11 Ian Lance Taylor <iant@google.com>
3058
3059 PR bootstrap/40103
3060 * graphite.c: Force -Wc++-compat to only be a warning before
3061 #including "cloog/cloog.h".
3062
ed102b70
MJ
30632009-05-11 Martin Jambor <mjambor@suse.cz>
3064
3065 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
3066
08f1af2e
JH
30672009-05-11 Jan Hubicka <jh@suse.cz>
3068
3069 * tree-ssa-loop-ivcanon.c: Include target.h
3070 (struct loop_size): new structure.
3071 (constant_after_peeling): New predicate.
3072 (tree_estimate_loop_size): New function.
3073 (estimated_unrolled_size): Rewrite for new estimates.
3074 (try_unroll_loop_completely): Use new estimates.
3075 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
3076
a7d39bd3
AP
30772009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
3078
3079 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
3080 libcpp interface change.
3081 (spu_macro_to_expand): Likewise.
3082
f5a1f0d0
PB
30832009-05-11 Paolo Bonzini <bonzini@gnu.org>
3084
3085 PR tree-optimization/40026
3086 * gimplify.c (gimplify_init_constructor): Change initial conditional
3087 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
3088 optimize_compound_literals_in_ctor.
3089
c260f01f
NS
30902009-05-11 Nathan Sidwell <nathan@codesourcery.com>
3091
3092 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
3093 New devices.
3094 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
3095
df398a37
L
30962009-05-11 H.J. Lu <hongjiu.lu@intel.com>
3097
3098 * tree-vect-data-refs.c (vect_analyze_group_access): Use
3099 HOST_WIDE_INT for gap.
3100
4da39468
IR
31012009-05-11 Ira Rosen <irar@il.ibm.com>
3102
3103 PR tree-optimization/40074
3104 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
3105 account in group size and step comparison.
3106
4effdf02
RG
31072009-05-11 Richard Guenther <rguenther@suse.de>
3108
3109 * passes.c (init_optimization_passes): Strip now incorrect comment.
3110 (execute_function_todo): Do not set PROP_alias.
3111 * tree-pass.h (PROP_alias): Remove.
3112 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
3113 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
3114 * tree-nrv.c (pass_return_slot): Likewise.
3115 * tree-object-size.c (pass_object_sizes): Likewise.
3116 * tree-ssa-dom.c (pass_dominator): Likewise.
3117 (pass_phi_only_cprop): Likewise.
3118 * tree-ssa-dse.c (pass_dse): Likewise.
3119 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
3120 (pass_cselim): Likewise.
3121 * tree-ssa-pre.c (pass_pre): Likewise.
3122 (pass_fre): Likewise.
3123 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
3124 * tree-ssa-sink.c (pass_sink_code): Likewise.
3125 * tree-stdarg.c (pass_stdarg): Likewise.
3126 * tree-tailcall.c (pass_tail_calls): Likewise.
3127 * tree-vrp.c (pass_vrp): Likewise.
3128
24b97832
ILT
31292009-05-10 Ian Lance Taylor <iant@google.com>
3130
3131 * basic-block.h (enum profile_status): Break out of struct
3132 control_flow_graph.
3133 * cgraph.h (struct inline_summary): Break out of struct
3134 cgraph_local_info.
3135 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
3136 of struct cgraph_order_sort.
fbdf817d 3137 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
3138 * cse.c (struct branch_path): Break out of struct
3139 cse_basic_block_data.
3140 * except.h (enum eh_region_type): Break out of struct eh_region.
3141 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 3142 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
3143 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
3144 ggc_pch_data.
fbdf817d
UB
3145 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
3146 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
3147 * sched-int.h (enum post_call_group): New enum, broken out of
3148 struct deps.
3149 (struct deps_reg): Break out of struct deps.
3150 * target.h (struct asm_int_op): Break out of struct gcc_target.
3151 * tree-eh.c (struct goto_queue_node): Break out of struct
3152 leh_tf_state.
3153 * tree-inline.h (enum copy_body_cge_which): Break out of
3154 copy_body_data.
3155 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
3156
3157 * c-decl.c (in_struct, struct_types): New static variables.
3158 (pushtag): Add loc parameter. Change all callers.
3159 (lookup_tag): Add ploc parameter. Change all callers.
3160 (check_compound_literal_type): New function.
3161 (parser_xref_tag): Add loc parameter. Change all callers. If
3162 -Wc++-compat, warn about struct/union/enum types defined within a
3163 struct or union.
3164 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
3165 and loc parameters. Change all callers. Change error calls to
3166 error_at, using loc. For a redefinition, if the location of the
3167 original definition is known, report it. Set in_struct and
fbdf817d 3168 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
3169 (finish_struct): Add new parameters enclosing_in_struct and
3170 enclosing_struct_types. Change all callers. Set
3171 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
3172 in the struct. If in a struct, add this struct to struct_types.
3173 (start_enum): Add loc parameter. Change all callers. Use
3174 error_at for errors, using loc. For a redefinition, if the
3175 location of the original definition is known, report it. If in a
3176 struct, add this enum type to struct_types. If -Wc++-compat warn
3177 if in sizeof, typeof, or alignof.
fbdf817d
UB
3178 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
3179 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
3180 (c_parser_enum_specifier): Get enum location for start_enum.
3181 (c_parser_struct_or_union_specifier): Get struct location for
3182 start_struct. Save in_struct and struct_types status between
3183 start_struct and finish_struct.
3184 (c_parser_cast_expression): Get location of cast.
3185 (c_parser_alignof_expression): Get location of type.
3186 (c_parser_postfix_expression): Likewise.
3187 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
3188 parameter. Change all callers. Call check_compound_literal_type.
3189 Use type_loc for error about variable size type.
3190 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
3191 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
3192 (c_cast_expr): Add loc parameter. Change all callers. If
3193 -Wc++-compat, warn about defining a type in a cast.
3194 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
3195 (start_enum, start_struct, finish_struct): Update declarations.
3196 (parser_xref_tag, c_cast_expr): Update declarations.
3197 (check_compound_literal_type): Declare.
3198
7a2738fa
BE
31992009-05-11 Ben Elliston <bje@au.ibm.com>
3200
3201 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
3202 for recent libcpp interface change.
3203 (rs6000_macro_to_expand): Likewise.
3204
af618949
MM
32052009-05-10 Michael Matz <matz@suse.de>
3206
3207 PR target/40031
3208 * config/arm/arm.c (require_pic_register): Emit on entry edge,
3209 not at entry of function.
3210
b7d7a473
RG
32112009-05-10 Richard Guenther <rguenther@suse.de>
3212
3213 PR tree-optimization/40081
3214 Revert
3215 * tree-sra.c (instantiate_element): Instantiate scalar replacements
3216 using the main variant of the element type. Do not fiddle with
3217 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3218
3219 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
3220 structs with volatile fields.
3221
078c3644
JH
32222009-05-10 Jan Hubicka <jh@suse.cz>
3223
3224 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
3225 (estimate_move_cost): Assert that it does not get called for
3226 VOID_TYPE_P.
078c3644
JH
3227 (estimate_num_insns): Skip VOID types in argument handling.
3228 (optimize_inline_calls): Delete unreachable blocks and verify that
3229 callgraph is valid.
3230
39ff5a96
JH
32312009-05-10 Jan Hubicka <jh@suse.cz>
3232
3233 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
3234 * cgraph.c (cgraph_mark_address_taken_node): New function.
3235 (dump_cgraph_node): Dump new flag.
3236 * cgraph.h (struct cgraph_node): Add address_taken.
3237 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
3238 * ipa.c (cgraph_postorder): Prioritize functions with address taken
3239 since new direct calls can be born.
3240
9a0c6187
JM
32412009-05-10 Joseph Myers <joseph@codesourcery.com>
3242
3243 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
3244 tok->val.node.node.
3245
4b685e14
JH
32462009-05-10 Jan Hubicka <jh@suse.cz>
3247
3248 PR middle-end/40084
fb0be169
EB
3249 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
3250 argument; rewrite.
4b685e14
JH
3251 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
3252 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
3253 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
3254 (fold_marked_statements): Update call to
3255 cgraph_update_edges_for_call_stmt.
4b685e14 3256
29d08eba
JM
32572009-05-10 Joseph Myers <joseph@codesourcery.com>
3258
3259 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
3260 identifiers in diagnostics.
3261 * config/arm/arm.c (arm_handle_fndecl_attribute,
3262 arm_handle_isr_attribute): Likewise.
3263 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 3264 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
3265 * config/bfin/bfin.c (handle_int_attribute,
3266 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
3267 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
3268 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
3269 Likewise.
3270 * config/darwin.c (darwin_handle_kext_attribute,
3271 darwin_handle_weak_import_attribute): Likewise.
3272 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
3273 h8300_handle_eightbit_data_attribute,
3274 h8300_handle_tiny_data_attribute): Likewise.
3275 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 3276 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
3277 * config/i386/winnt.c (ix86_handle_shared_attribute,
3278 ix86_handle_selectany_attribute): Likewise.
3279 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
3280 * config/m32c/m32c.c (function_vector_handler): Likewise.
3281 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
3282 m68hc11_handle_fntype_attribute): Likewise.
3283 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
3284 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
3285 * config/mips/mips.c (mips_insert_attributes,
3286 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
3287 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
3288 rs6000_handle_struct_attribute): Likewise.
3289 * config/sh/sh.c (sh_insert_attributes,
3290 sh_handle_resbank_handler_attribute,
3291 sh_handle_interrupt_handler_attribute,
3292 sh2a_handle_function_vector_handler_attribute,
3293 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3294 Likewise.
3295 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
3296 * config/spu/spu.c (spu_handle_fndecl_attribute,
3297 spu_handle_vector_attribute): Likewise.
3298 * config/stormy16/stormy16.c
3299 (xstormy16_handle_interrupt_attribute): Likewise.
3300 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
3301 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
3302
f41c4af3
JM
33032009-05-10 Joseph Myers <joseph@codesourcery.com>
3304
782dc37a 3305 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
3306 (pp_translate_identifiers): New.
3307 (pp_identifier): Only conditionally translate identifier to locale
3308 character set.
3309 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
3310 (pp_base_tree_identifier): Only conditionally translate identifier
3311 to locale character set.
3312 * c-pretty-print.c (M_): Define.
3313 (pp_c_type_specifier, pp_c_primary_expression): Mark English
3314 fragments for conditional translation with M_.
3315 * tree-pretty-print.c (maybe_init_pretty_print): Disable
3316 identifier translation.
3317
896d7dbd
RG
33182009-05-10 Richard Guenther <rguenther@suse.de>
3319
3320 PR tree-optimization/40081
3321 * tree-sra.c (instantiate_element): Instantiate scalar replacements
3322 using the main variant of the element type. Do not fiddle with
3323 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3324
9a23acef
JH
33252009-05-09 Jan Hubicka <jh@suse.cz>
3326
3327 PR middle-end/40080
3328 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
3329 indirect calls; verify cgraph afterwards.
3330
d563610d
JH
33312009-05-09 Jan Hubicka <jh@suse.cz>
3332
3333 PR bootstrap/40082
3334 * ipa.c (update_inlined_to_pointer): New function.
3335 (cgraph_remove_unreachable_nodes): Use it.
3336
f08a18d0
JH
33372009-05-09 Jan Hubicka <jh@suse.cz>
3338
3339 * tree-eh.c (struct leh_state): Remove prev_try.
3340 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
3341 not track prev_try.
3342 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
3343 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
3344 remove_eh_handler_and_replace, foreach_reachable_handler,
3345 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
3346 * except.h (struct eh_region): Remove eh_region_u_cleanup.
3347 (gen_eh_region_cleanup): Update prototype.
3348
0afd7219
JH
33492009-05-09 Jan Hubicka <jh@suse.cz>
3350
3351 PR middle-end/40043
3352 * except.c (copy_eh_region): Always set prev_try.
3353 (redirect_eh_edge_to_label): Find outer try.
3354 (foreach_reachable_handler): When looking for prev try
3355 handle case where previous try is not going to be taken.
3356
ad6c0864
MM
33572009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
3358
3359 PR tree-optimization/40049
3360 * tree-vect-stmts.c (vectorizable_operation): If the machine has
3361 only vector/vector shifts, convert the type of the constant to the
3362 appropriate type to avoid building incorrect trees, which
3363 eventually have problems with garbage collection.
3364
c94f9067
JM
33652009-05-08 Joseph Myers <joseph@codesourcery.com>
3366
3367 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
3368 -1 for complex floating-point types if honoring signed zeros.
3369
9187e02d
JH
33702009-05-08 Jan Hubicka <jh@suse.cz>
3371
20acb8a2
EB
3372 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
3373 argument; handle correctly when profile is absent.
9187e02d
JH
3374 (build_cgraph_edges): Update.
3375 (rebuild_cgraph_edges): Update.
20acb8a2
EB
3376 * cgraph.c: Do not include varray.h.
3377 (cgraph_set_call_stmt_including_clones): New function.
3378 (cgraph_create_edge_including_clones): Likewise
3379 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
3380 (cgraph_update_edges_for_call_stmt): Handle clones.
3381 (cgraph_remove_node): Handle clone tree.
3382 (cgraph_remove_node_and_inline_clones): New function.
3383 (dump_cgraph_node): Dump clone tree.
3384 (cgraph_clone_node): Handle clone tree.
20acb8a2 3385 (clone_function_name): Bring here from tree-inline.c.
9187e02d 3386 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
3387 * cgraph.h (ipa_replace_map): Move here from ipa.h.
3388 (cgraph_clone_info): New function.
9187e02d 3389 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
3390 (cgraph_remove_node_and_inline_clones,
3391 cgraph_set_call_stmt_including_clones,
3392 cgraph_create_edge_including_clones,
3393 cgraph_create_virtual_clone): Declare.
9187e02d
JH
3394 (cgraph_function_versioning): Use VEC argument.
3395 (compute_call_stmt_bb_frequency): Update prototype.
3396 (cgraph_materialize_all_clones): New function.
3397 * ipa-cp.c (ipcp_update_cloned_node): Remove.
3398 (ipcp_create_replace_map): Update to VECtors.
3399 (ipcp_update_callgraph): Use virtual clones.
3400 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
3401 (ipcp_update_profiling): Do not update local profiling.
3402 (ipcp_insert_stage): Use VECtors and virtual clones.
3403 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
3404 (clone_of_p): New function.
3405 (cgraph_preserve_function_body_p): Use clone tree.
3406 (cgraph_optimize): Materialize clones.
3407 (cgraph_function_versioning): Update for VECtors.
3408 (save_inline_function_body): Use clone tree.
20acb8a2
EB
3409 (cgraph_materialize_clone): New function.
3410 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
3411 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
3412 * ipa.c: Include gimple.h.
3413 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
3414 * ipa-prop.c (ipa_note_param_call): Update call to
3415 compute_call_stmt_bb_frequencycall.
9187e02d 3416 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 3417 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
3418 (copy_bb): Handle updating of clone tree; add new edge when new call
3419 appears.
3420 (expand_call_inline): Be strict about every call having edge.
3421 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
3422 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
3423 (tree_function_versioning): Use VECtors; always remove unreachable
3424 blocks and fold conditionals.
3425 * tree-inline.h: Do not include varray.h.
9187e02d
JH
3426 (tree_function_versioning): Remove.
3427 * Makefile.in (GTFILES): Remove tree-inline.c
3428 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
3429 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
3430 tree.
9187e02d 3431
9b86d6bb
L
34322009-05-08 H.J. Lu <hongjiu.lu@intel.com>
3433 Andrew Morrow <acm@google.com>
3434
3435 PR c/36892
3436 * c-common.c (c_common_attribute_table): Permit deprecated
3437 attribute to take an optional argument.
3438 (handle_deprecated_attribute): If the optional argument to
3439 __attribute__((deprecated)) is not a string ignore the attribute
3440 and emit a warning.
3441
3442 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
3443 * c-typeck.c (build_component_ref): Likewise.
3444 (build_external_ref): Likewise.
3445
3446 * toplev.c (warn_deprecated_use): Add an attribute argument.
3447 Emit the message associated with __attribute__((deprecated)).
3448
3449 * toplev.h (warn_deprecated_use): Updated.
3450
3451 * doc/extend.texi: Document new optional parameter to
3452 __attribute__((deprecated))
3453
82ad047f
ME
34542009-05-08 Michael Eager <eager@eagercon.com>
3455
3456 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
3457 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
3458
788d3075
RG
34592009-05-08 Richard Guenther <rguenther@suse.de>
3460
3461 PR tree-optimization/40062
3462 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
3463 Avoid exponential behavior.
3464
00952e97
PB
34652009-05-08 Paolo Bonzini <bonzini@gnu.org>
3466
3467 PR rtl-optimization/33928
3468 PR 26854
3469 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
3470 process_uses, build_single_def_use_links): New.
3471 (update_df): Update use_def_ref.
3472 (forward_propagate_into): Use get_def_for_use instead of use-def
3473 chains.
3474 (fwprop_init): Call build_single_def_use_links and let it initialize
3475 dataflow.
3476 (fwprop_done): Free use_def_ref.
3477 (fwprop_addr): Eliminate duplicate call to df_set_flags.
3478 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
3479 df_rd_simulate_one_insn): New.
3480 (df_rd_bb_local_compute_process_def): Update head comment.
3481 (df_chain_create_bb): Use the new RD simulation functions.
3482 * df.h (df_rd_simulate_artificial_defs_at_top,
3483 df_rd_simulate_one_insn): New.
3484 * opts.c (decode_options): Enable fwprop at -O1.
3485 * doc/invoke.texi (-fforward-propagate): Document this.
3486
2ca862e9
JM
34872009-05-08 Joseph Myers <joseph@codesourcery.com>
3488
3489 PR c/24581
3490 * c-typeck.c (build_binary_op): Handle arithmetic between one real
3491 and one complex operand specially.
3492 * tree-complex.c (some_nonzerop): Do not identify a real value as
3493 zero if flag_signed_zeros.
3494
3e807ffc
PB
34952009-05-08 Paolo Bonzini <bonzini@gnu.org>
3496
3497 PR rtl-optimization/33928
7925c06c 3498 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 3499
1bfdbb29
PB
35002009-05-08 Paolo Bonzini <bonzini@gnu.org>
3501
3502 PR rtl-optimization/33928
e913423f
EB
3503 * loop-invariant.c (struct use): Add addr_use_p.
3504 (struct def): Add n_addr_uses.
3505 (struct invariant): Add cheap_address.
3506 (create_new_invariant): Set cheap_address.
3507 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
3508 (record_uses): Pass df_ref to record_use.
3509 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
3510 used only as such.
1bfdbb29 3511
702cb2a0
KK
35122009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
3513
3514 * config/sh/sh.c: Do not include c-pragma.h.
3515
5e8df753
AP
35162009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
3517
3518 * config/spu/spu.c: Remove include of c-common.h.
3519
6ec637a4
JJ
35202009-05-07 Janis Johnson <janis187@us.ibm.com>
3521
3522 PR c/39037
3523 * c-common.h (mark_valid_location_for_stdc_pragma,
3524 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
3525 clear_float_const_decimal64, float_const_decimal64_p): New.
3526 * c.opt (Wunsuffixed-float-constants): New.
3527 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
3528 unsuffixed float constant, handle new warning.
3529 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
3530 * c-decl.c (c_scope): New flag float_const_decimal64.
3531 (set_float_const_decimal64, clear_float_const_decimal64,
3532 float_const_decimal64_p): New.
3533 (push_scope): Set new flag.
3534 * c-parser.c (c_parser_translation_unit): Mark when it's valid
3535 to use STDC pragmas.
3536 (c_parser_external_declaration): Ditto.
3537 (c_parser_compound_statement_nostart): Ditto.
3538 * c-pragma.c (valid_location_for_stdc_pragma,
3539 mark_valid_location_for_stdc_pragma,
3540 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
3541 handle_pragma_float_const_decimal64): New.
3542 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
3543 * cp/semantics.c (valid_location_for_stdc_pragma_p,
3544 set_float_const_decimal64, clear_float_const_decimal64,
3545 float_const_decimal64_p): New dummy functions.
3546 * doc/extend.texi (Decimal Float): Remove statement that the
3547 pragma, and suffix for double constants, are not supported.
3548 * doc/invoke.texi (Warning Options): List new option.
3549 (-Wunsuffixed-float-constants): New.
3550
45b9b2e9
SB
35512009-05-08 Steven Bosscher <steven@gcc.gnu.org>
3552
3553 * config/i386/i386.c: Do not include c-common.h.
3554
e71da632
MH
35552009-05-07 Mark Heffernan <meheff@google.com>
3556
3557 * doc/invoke.texi (Debugging Options): Document change of debugging
3558 dump location.
e913423f 3559 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
3560 aux_base_name directory.
3561
fe4c7bc6
HS
35622009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
3563
3564 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
3565 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
3566
3b3e44eb
RAE
35672009-05-07 Rafael Avila de Espindola <espindola@google.com>
3568
3569 * Makefile.in (install-plugin): Simplify a bit.
3570
fac41238
PB
35712009-05-07 Paolo Bonzini <bonzini@gnu.org>
3572
3573 * Makefile.in (OBJS-common): Add regcprop.o.
3574 (regcprop.o): New.
3575 * timevar.def (TV_CPROP_REGISTERS): New.
3576 * regrename.c (regrename_optimize): Return 0.
3577 (rest_of_handle_regrename): Delete.
3578 (pass_rename_registers): Point to regrename_optimize.
3579 (struct value_data_entry, struct value_data,
3580 kill_value_one_regno, kill_value_regno, kill_value,
3581 set_value_regno, init_value_data, kill_clobbered_value,
3582 kill_set_value, kill_autoinc_value, copy_value,
3583 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
3584 replace_oldest_value_reg, replace_oldest_value_addr,
3585 replace_oldest_value_mem, copyprop_hardreg_forward_1,
3586 debug_value_data, validate_value_data): Move...
3587 * regcprop.c: ... here.
3588 (rest_of_handle_cprop): Delete.
3589 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
3590
472e0df9
JJ
35912009-05-07 Jakub Jelinek <jakub@redhat.com>
3592
3593 PR middle-end/40057
3594 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
3595 GEN_INT for 1 << bitnum.
3596 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
3597 build_int_cst_type.
3598
0d50d55a
UB
35992009-05-07 Uros Bizjak <ubizjak@gmail.com>
3600
3601 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 3602 Remove wrong description of "nand" operation.
0d50d55a 3603
22f597f1
RG
36042009-05-06 Richard Guenther <rguenther@suse.de>
3605 Adam Nemet <anemet@caviumnetworks.com>
3606
3607 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
3608 comment. Add that if LHS is not a gimple register, then RHS1 has
3609 to be a single object (GIMPLE_SINGLE_RHS).
3610
641cac0b
AN
36112009-05-06 Adam Nemet <anemet@caviumnetworks.com>
3612
3613 * expr.c (get_def_for_expr): Move it up in the file.
3614 (store_field): When expanding a bit-field store, look at the
3615 defining gimple stmt for the masking conversion.
3616
5a5c6435
JJ
36172009-05-06 Janis Johnson <janis187@us.ibm.com>
3618
3619 PR middle-end/39986
3620 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
3621 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
3622 32-bit memcpy into long.
3623
96474f36
JJ
36242009-05-06 Jakub Jelinek <jakub@redhat.com>
3625
3626 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
3627 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
3628 new_reg_loc_descr.
3629 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
3630 instead of appending DW_OP_deref*.
3631
529ff441
MM
36322009-05-06 Michael Matz <matz@suse.de>
3633
3634 PR middle-end/40021
3635 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
3636 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
3637
9419a9fd
RAE
36382009-05-06 Rafael Avila de Espindola <espindola@google.com>
3639
3640 * Makefile.in (install-plugin): Fix srcdir handling.
3641
fff1894c
AB
36422009-05-06 Andrey Belevantsev <abel@ispras.ru>
3643
3644 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
3645 when processing for not_regs_needed bitmap.
3646 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
3647 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
3648 handling it for rhs.
3649
700ae70c
L
36502009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3651
ab3426a7 3652 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 3653 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
3654 * config/i386/predicates.md (incdec_operand): Likewise.
3655 (aligned_operand): Likewise.
3656 * config/i386/sse.md (divv8sf3): Likewise.
3657 (sqrtv8sf2): Likewise.
3658
67341fb5
L
36592009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3660
3661 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
3662
3663 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
3664
87946f42
L
36652009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3666
3667 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
3668 ssemodesuffixf2c with avxmodesuffixf2c.
3669
1202aec1
JM
36702009-05-06 Joseph Myers <joseph@codesourcery.com>
3671
3672 PR c/40032
aa016ff7 3673 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 3674
6e57a01d
JJ
36752009-05-05 Jakub Jelinek <jakub@redhat.com>
3676
3677 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
3678 (struct tree_base): Adjust spacing for 8 bit boundaries.
3679 (struct tree_decl_common): Add decl_by_reference_flag bit.
3680 (DECL_BY_REFERENCE): Adjust.
3681 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
3682 print DECL_BY_REFERENCE bit.
3683 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
3684 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
3685 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
3686 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
3687 unconditionally.
3688
32f579f6
JJ
3689 PR middle-end/39666
3690 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
3691 range of the type, but default label is missing, add it with one
3692 of the existing labels instead of adding a new label for it.
3693
617ab743
JM
36942009-05-05 Joseph Myers <joseph@codesourcery.com>
3695
3696 * dwarf.h: Remove.
3697
bf016de8
RAE
36982009-05-05 Rafael Avila de Espindola <espindola@google.com>
3699
3700 * Makefile.in (enable_plugin, plugin_includedir): New.
3701 (install): Depend on install-plugin.
3702 (PLUGIN_HEADERS): New.
3703 (install-plugin): New.
3704 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
3705
7f8fdb9f
RG
37062009-05-05 Richard Guenther <rguenther@suse.de>
3707
3708 PR tree-optimization/40022
3709 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
3710 the only vuse.
3711 (phivn_valid_p): Fix tuplification error, simplify.
3712 (phiprop_insert_phi): Add dumps.
3713 (propagate_with_phi): Simplify.
3714
8d972839
RG
37152009-05-05 Richard Guenther <rguenther@suse.de>
3716
3717 PR middle-end/40023
aa016ff7 3718 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 3719
66ba9b0b
SZ
37202009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
3721
3722 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
3723 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
3724 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
3725 block_ultimate_origin): Rearrange the declarations line to match the
3726 comment that indicates the .c file which the functions are defined.
3727 (dwarf2out_*, set_decl_rtl): Add comment.
3728 (get_base_address): Adjust comment.
3729 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
3730 declarations line and add comment.
3731 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 3732
4f1e4960
JM
37332009-05-04 Joseph Myers <joseph@codesourcery.com>
3734
3735 * attribs.c (decl_attributes): Use %qE for identifiers in
3736 diagnostics.
3737 * cgraphunit.c (verify_cgraph_node): Translate function names to
3738 locale character set in diagnostics.
3739 * coverage.c (get_coverage_counts): Use %qE for identifiers in
3740 diagnostics.
3741 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
3742 Document that functions are named in UTF-8.
3743 * expr.c (expand_expr_real_1): Translate function names to locale
3744 character set in diagnostics.
3745 * gimplify.c (omp_notice_variable, omp_is_private,
3746 gimplify_scan_omp_clauses): Use %qE for identifiers in
3747 diagnostics.
3748 * langhooks.c (lhd_print_error_function): Translate function names
3749 to locale character set.
3750 * langhooks.h (decl_printable_name): Document that return value is
3751 in internal character set.
3752 * stmt.c: Include pretty-print.h
3753 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
3754 diagnostics.
3755 (resolve_operand_name_1): Translate named operand name to locale
3756 character set.
3757 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
3758 diagnostics.
3759 * toplev.c (announce_function): Translate function names to locale
3760 character set.
3761 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
3762 (default_tree_printer): Use pp_identifier or translate identifiers
3763 to locale character set. Mark "<anonymous>" for translation.
3764 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
3765 for identifiers in diagnostics.
3766 * tree.c (handle_dll_attribute): Use %qE for identifiers in
3767 diagnostics.
3768 * varasm.c (output_constructor): Use %qE for identifiers in
3769 diagnostics.
3770
40540e68
RAE
37712009-05-04 Rafael Avila de Espindola <espindola@google.com>
3772
3773 * configure.ac: use ` ` instead of $()
3774 * configure: Regenerate.
3775
33fc884c
BE
37762009-05-05 Ben Elliston <bje@au.ibm.com>
3777
3778 * config/pa/linux-atomic.c: Eliminate conditional include of
3779 errno.h on non-LP64 systems to simplify build requirements.
3780
88388a52
JM
37812009-05-04 Joseph Myers <joseph@codesourcery.com>
3782
3783 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
3784 diagnostics.
3785 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
3786 and pass value to identifier_to_locale.
3787 (warn_variable_length_array): Make name a tree.
3788 (grokdeclarator): Separate diagnostic texts for named and unnamed
3789 declarators. Use %qE for named declarators.
3790 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
3791 diagnostics.
3792 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
3793 identifiers in diagnostics.
3794 * c-typeck.c (push_member_name, start_init): Pass identifiers to
3795 identifier_to_locale. Mark "anonymous" strings for translation.
3796
960c5c79
ME
37972009-05-04 Michael Eager <eager@eagercon.com>
3798
3799 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 3800 address for DImode/DFmode only if double-precision FP regs.
960c5c79 3801
d083fbba
ME
38022009-05-04 Michael Eager <eager@eagercon.com>
3803
3804 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
3805 TARGET_SINGLE_FLOAT check.
3806
c3ba8d32
ME
38072009-05-04 Michael Eager <eager@eagercon.com>
3808
3809 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
3810
edce9f18
ME
38112009-05-04 Michael Eager <eager@eagercon.com>
3812
3813 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
3814 * config/rs6000/t-xilinx: New
3815
506d7b68
PB
38162009-05-04 Paolo Bonzini <bonzini@gnu.org>
3817
e913423f 3818 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
3819 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
3820 * gcc/explow.c (memory_address): Use target hook.
3821 * gcc/targhooks.c (default_legitimize_address): New.
3822 * gcc/targhooks.h (default_legitimize_address): New.
3823 * gcc/target.h (legitimize_address): New.
3824 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
3825 (TARGET_INITIALIZER): Include it.
3826 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
3827
3828 * config/bfin/bfin-protos.h (legitimize_address): Remove.
3829 * config/bfin/bfin.c (legitimize_address): Remove.
3830 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
3831 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
3832 Remove.
506d7b68
PB
3833 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
3834 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
3835
3836 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
3837 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
3838 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
3839 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
3840 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
3841 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
3842 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
3843 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
3844 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
3845 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
3846 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
3847 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
3848 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
3849 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
3850 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
3851 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
3852 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
3853 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
3854 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
3855 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
3856 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
3857 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
3858 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
3859
3860 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
3861 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
3862 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
3863 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
3864 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
3865 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
3866 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
3867 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
3868 (thumb_legitimize_address): Delete.
3869 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
3870 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
3871 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
3872 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
3873 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
3874 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
3875 Delete.
3876 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
3877 Delete.
506d7b68
PB
3878
3879 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
3880 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
3881 * config/m32r/m32r.c (m32r_legitimize_address): New.
3882 * config/m68k/m68k.c (m68k_legitimize_address): New.
3883 * config/score/score.c (score_legitimize_address): Standardize.
3884 * config/score/score3.c (score3_legitimize_address): Standardize.
3885 * config/score/score3.h (score3_legitimize_address): Adjust.
3886 * config/score/score7.c (score7_legitimize_address): Standardize.
3887 * config/score/score7.h (score7_legitimize_address): Adjust.
3888 * config/sh/sh.c (sh_legitimize_address): New.
3889 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
3890
3891 * gcc/config/s390/s390.c (legitimize_address): Rename to...
3892 (s390_legitimize_address): ... this.
3893 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
3894 (sparc_legitimize_address): ... this.
3895 * gcc/config/i386/i386.c (legitimize_address): Rename to...
3896 (ix86_legitimize_address): ... this.
3897 * gcc/config/avr/avr.c (legitimize_address): Rename to...
3898 (avr_legitimize_address): ... this.
3899 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
3900 (mn10300_legitimize_address): ... this.
3901 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
3902 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
3903 (alpha_expand_mov): Adjust call.
3904
3905 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
3906 * config/spu/spu.c (spu_legitimize_address): Likewise.
3907 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
3908 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
3909
a3af5087
JM
39102009-05-04 Joseph Myers <joseph@codesourcery.com>
3911
3912 * intl.c (locale_encoding, locale_utf8): New.
3913 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
3914 * intl.h (locale_encoding, locale_utf8): Declare.
3915 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
3916 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
3917 New.
3918 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
3919 argument.
3920 (pp_tree_identifier): Define to call pp_base_tree_identifier.
3921 (pp_base_tree_identifier): Declare as function.
3922 (identifier_to_locale): Declare.
3923 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 3924 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 3925
ea5cd5f1
RG
39262009-05-04 Richard Guenther <rguenther@suse.de>
3927
3928 PR middle-end/40015
3929 * builtins.c (fold_builtin_memory_op): Do not decay to element
3930 type if the size matches the whole array.
3931
ddc2690a
KH
39322009-05-04 Kazu Hirata <kazu@codesourcery.com>
3933
3934 * expmed.c (synth_mult): When trying out a shift, pass the result
3935 of a signed shift.
3936
ef268d34
KH
39372009-05-04 Kazu Hirata <kazu@codesourcery.com>
3938
3939 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
3940 (shiftsub1_cost): New.
3941 (init_expmed): Compute shiftsub1_cost.
3942 (synth_mult): Optimize multiplications by constants of the form
3943 -(2^^m-1) for some constant positive integer m.
3944
255d3827
RG
39452009-05-03 Richard Guenther <rguenther@suse.de>
3946
3947 PR c/39983
3948 * c-typeck.c (array_to_pointer_conversion): Do not built
3949 ADDR_EXPRs of arrays of pointer-to-element type.
3950 * c-gimplify.c (c_gimplify_expr): Revert change fixing
3951 up wrong ADDR_EXPRs after-the-fact.
3952 * c-common.c (strict_aliasing_warning): Strip pointer
3953 conversions for obtaining the original type.
3954 * builtins.c (fold_builtin_memset): Handle array types.
3955 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
3956 and array types
3957
16c33770
RG
39582009-05-03 Richard Guenther <rguenther@suse.de>
3959
3960 PR middle-end/23329
3961 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
3962 Do not lose casts from array types with unknown extent to array
3963 types with known extent.
3964 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
3965 alias set compatibility.
3966
62a67c94
MLI
39672009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
3968
3969 * flags.h (extra_warnings): Delete.
3970 * toplev.c (process_options): Handle Wuninitialized here.
3971 * opts.c (extra_warnings): Delete.
3972 (set_Wextra): Delete.
3973 (common_handle_option): -Wextra can be handled automatically.
3974 * c-opts.c (c_common_handle_option): Delete obsolete code.
3975 (c_common_post_options): Simplify comment.
3976 * common.opt (W): Add Var.
3977 (Wextra): Add Var.
3978 (Wuninitialized): Initialize to -1.
3979
8c7926c4
AN
39802009-05-03 Adam Nemet <anemet@caviumnetworks.com>
3981 Richard Guenther <rguenther@suse.de>
3982
3983 * expr.c (get_def_for_expr): New function.
3984 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
3985 SSA rather than trees.
3986 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
3987 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
3988
fa5da7de
JM
39892009-05-03 Joseph Myers <joseph@codesourcery.com>
3990
3991 * c-common.c (reswords): Add _Imaginary.
3992 * c-common.c (enum rid): Add RID_IMAGINARY.
3993
2ddd5020
PB
39942009-05-03 Paolo Bonzini <bonzini@gnu.org>
3995
3996 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
3997 Patch by Richard Guenther.
3998
aea88c05
AS
39992009-05-03 Anatoly Sokolov <aesok@post.ru>
4000
4001 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4002 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4003 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4004 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4005 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4006 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4007 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4008 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4009 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4010 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4011 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4012 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4013 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4014 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4015 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4016 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4017 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4018 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4019
85e59f3a
RG
40202009-05-02 Richard Guenther <rguenther@suse.de>
4021
4022 PR tree-optimization/39940
4023 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4024 doing so.
4025
4636b850
RG
40262009-05-02 Richard Guenther <rguenther@suse.de>
4027
4028 PR middle-end/40001
4029 * tree-ssa.c (execute_update_addresses_taken): Properly check
4030 if we can mark a variable DECL_GIMPLE_REG_P.
4031 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4032 back to the end of the function.
4033 (is_gimple_reg_type): Remove complex type special casing.
4034 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4035 if not optimizing.
4036
5e10cb5a
BE
40372009-05-02 Ben Elliston <bje@au.ibm.com>
4038
4039 * doc/collect2.texi (Collect2): Document search path behaviour
4040 when configured with --with-ld.
4041
048bf48b
JH
40422009-05-02 Jan Hubicka <jh@suse.cz>
4043
4044 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
4045 parameter; update callers.
aa016ff7
UB
4046 (coalesce_cost_edge): EH edges are costier because they needs
4047 splitting even if not critical and even more costier when there are
4048 multiple EH predecestors.
048bf48b 4049
d5c5f9ab
JH
40502009-05-02 Jan Hubicka <jh@suse.cz>
4051
4052 * except.c (remove_eh_handler_and_replace): Handle updating after
4053 removing TRY blocks.
4054
2ed1959a
EB
40552009-05-02 Eric Botcazou <ebotcazou@adacore.com>
4056
4057 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4058
d363a7e7
SB
40592009-05-02 Steven Bosscher <steven@gcc.gnu.org>
4060
4061 * varasm.c: Do not include c-pragma.h.
4062 * attribs.c: Do not incude c-common.h.
4063
9c3d55b4
MM
40642009-05-01 Michael Matz <matz@suse.de>
4065
4066 * calls.c (initialize_argument_information): Handle SSA names like
4067 decls with a non MEM_P DECL_RTL.
4068
ea264ca5
SB
40692009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4070
4071 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
4072 * ipa-utils.c: Likewise.
4073 * ipa-type-escape.c: Likewise.
4074 * cgraphunit.c Do not include c-common.h.
4075 * ipa-pure-const.c: Likewise.
4076 * tree-if-conv.c: Likewise.
4077 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
4078 * ipa-struct-reorg.c: Likewise.
4079 * tree-nomudflap.c: Likewise.
4080 * tree-ssa-structalias.c: Likewise.
4081
6c5d4d1a
SB
40822009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4083
4084 * store-motion.c: Many cleanups to make this pass a first-class
4085 citizen instead of an appendix to gcse load motion. Add TODO list
4086 to make this pass faster/cleaner/better.
4087
4088 (struct ls_expr): Post gcse.c-split cleanups.
4089 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
4090 "stores" field to "avail_stores".
4091 (pre_ldst_mems): Rename to store_motion_mems.
4092 (pre_ldst_table): Rename to store_motion_mems_table.
4093 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
4094 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
4095 (ldst_entry): Rename to st_expr_entry, update users.
4096 (free_ldst_entry): Rename to free_st_expr_entry, update users.
4097 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
4098 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
4099 update caller.
6c5d4d1a
SB
4100 (first_ls_expr): Rename to first_st_expr, update users.
4101 (next_ls_expr): Rename to next_st_expr, update users.
4102 (print_ldst_list): Rename to print_store_motion_mems. Print names of
4103 fields properly for store motion instead of names inherited from load
4104 motion in gcse.c.
4105 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
4106 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
4107 are done with it.
4108
4109 (ae_kill): Rename to st_kill, update users.
4110 (ae_gen): Rename to st_avloc, update users.
4111 (transp): Rename to st_transp, update users.
4112 (pre_insert_map): Rename to st_insert_map, update users.
4113 (pre_delete_map): Rename to st_delete_map, update users.
4114 (insert_store, build_store_vectors, free_store_memory,
4115 one_store_motion_pass): Update for abovementioned changes.
4116
4117 (gcse_subst_count, gcse_create_count): Remove.
4118 (one_store_motion_pass): New statistics counters "n_stores_deleted"
4119 and "n_stores_created", local variables.
4120
4121 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
4122 use for_each_rtx.
4123
4124 (regvec, compute_store_table_current_insn): Remove.
4125 (reg_set_info, reg_clear_last_set): Remove.
4126 (compute_store_table): Use DF caches instead of local dataflow
4127 solvers.
4128
b02cec6e
JM
41292009-05-01 Joseph Myers <joseph@codesourcery.com>
4130
4131 * c-objc-common.c (c_tree_printer): Print identifiers with
4132 pp_identifier, not pp_string. Mark "({anonymous})" for
4133 translation.
4134 * c-pretty-print.c (pp_c_ws_string): New.
4135 (pp_c_cv_qualifier, pp_c_type_specifier,
4136 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
4137 pp_c_storage_class_specifier, pp_c_function_specifier,
4138 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
4139 pp_c_primary_expression, pp_c_postfix_expression,
4140 pp_c_unary_expression, pp_c_shift_expression,
4141 pp_c_relational_expression, pp_c_equality_expression,
4142 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
4143 use pp_string and pp_c_ws_string in place of pp_identifier and
4144 pp_c_identifier for non-identifiers. Mark English strings for
4145 translation.
4146 * c-pretty-print.h (pp_c_ws_string): Declare.
4147
cd533689
PP
41482009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
4149 Roland McGrath <roland@redhat.com>
4150
aa016ff7 4151 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
4152 (ENABLE_LD_BUILDID): New configuration option.
4153 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
4154 (LINK_BUILDID_SPEC): New macro.
4155 (init_spec): If defined, prepend it between LINK_EH_SPEC and
4156 link_spec.
4157 * doc/install.texi: Document --enable-linker-build-id option.
4158 * configure: Rebuild.
4159 * config.in: Rebuild.
4160
ba6adec4
AN
41612009-04-30 Adam Nemet <anemet@caviumnetworks.com>
4162
4163 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
4164 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
4165 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
4166 MIPS_GP_SAVE_AREA_SIZE.
4167 * config/mips/mips.c (struct mips_frame_info): Update comment
4168 before arg_pointer_offset and hard_frame_pointer_offset.
4169 (mips_compute_frame_info): Update diagram before function: to
4170 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
4171 indicate the position of frame_pointer_rtx with -fstack-protector and
4172 to show args_size. Don't allocate cprestore area for leaf functions
4173 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
4174 cprestore_size.
4175 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
4176
48f5b722
MM
41772009-04-30 Michael Matz <matz@suse.de>
4178
ba6adec4
AN
4179 PR tree-optimization/39955
4180 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 4181
b65d6744
DK
41822009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
4183
4184 * ira.c (setup_cover_and_important_classes): Use safe macro
4185 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
4186 directly.
4187 * genpreds.c (write_tm_preds_h): Output suitable definition of
4188 REG_CLASS_FOR_CONSTRAINT.
4189
f136c8ae
RAE
41902009-04-30 Rafael Avila de Espindola <espindola@google.com>
4191
4192 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
4193 instead of an int.
4194 * bitmap.c (bitmap_descriptor): Likewise.
4195 * ggc-common.c (loc_descriptor): Likewise.
4196 * varray.c (varray_descriptor): Likewise.
4197 * vec.c (vec_descriptor): Likewise.
4198
43fcece8 41992009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
4200
4201 * Makefile.in (dce.o): Add $(EXCEPT_H).
4202 * dce.c: Include except.h and delete redundant vector definitions.
4203 (deletable_insn_p): Return false for non-call insns that can throw
4204 if DF is running.
4205
df35c271
SB
42062009-04-30 Steven Bosscher <steven@gcc.gnu.org>
4207
4208 * gcse.c (ae_gen): Remove.
4209 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
4210 and make non-static function to make it available in store-motion.c.
4211 Update call sites with search-and-replace.
4212 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
4213 extract_mentioned_regs, extract_mentioned_regs_helper,
4214 find_moveable_store, compute_store_table, load_kills_store, find_loads,
4215 store_killed_in_insn, store_killed_after, store_killed_before,
4216 build_store_vectors, insert_insn_start_basic_block, insert-store,
4217 remove_reachable_equiv_notes, replace_store_insn, delete_store,
4218 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
4219 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
4220 * store-motion.c: ...new file. Also copy data structures from gcse.c
4221 and clean up to remove parts not used by store motion.
4222 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
4223 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
4224
f711a87a
RR
42252009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4226
4227 PR target/38571
4228 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
4229 when optimizing for size.
4230
fa5ed76e
HPN
42312009-04-30 Hans-Peter Nilsson <hp@axis.com>
4232
4233 * gcse.c (gcse_constant_p): Fix typo in last change.
4234
0acbbdb0
RAE
42352009-04-30 Rafael Avila de Espindola <espindola@google.com>
4236
4237 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
4238
82f5c05d
AK
42392009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
4240
4241 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
4242
6d8f135b
JW
42432009-04-29 James E. Wilson <wilson@codesourcery.com>
4244
4245 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
4246 CONST_HIGH_PART result.
4247
c21ca196
AS
42482009-04-29 Anatoly Sokolov <aesok@post.ru>
4249
4250 * config/avr/avr.c (initial_elimination_offset): Rename to
4251 avr_initial_elimination_offset.
4252 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
4253 change return type to bool.
4254 (avr_can_eliminate): New function.
4255 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
4256 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
4257 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 4258 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
4259 avr_initial_elimination_offset.
4260 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
4261 (avr_initial_elimination_offset): Define.
4262
2a34bece 42632009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 4264 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
4265
4266 PR rtl-optimization/39938
4267 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
4268 * cfgrtl.c: Include insn-attr.h.
4269 (rest_of_pass_free_cfg): New function.
4270 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
4271 * resource.c (init_resource_info): Remove call to df_analyze.
4272
5dc7911e
RG
42732009-04-29 Richard Guenther <rguenther@suse.de>
4274
4275 PR target/39943
4276 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
4277 allow conversion to signed integers.
4278
1fe479fd
RG
42792009-04-29 Richard Guenther <rguenther@suse.de>
4280
4281 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
4282 shifts of floating point vectors if the shift amount is
4283 a constant multiple of the element size.
4284
8e001680
AK
42852009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
4286 Michael Matz <matz@suse.de>
4287
4288 PR middle-end/39927
4289 PR bootstrap/39929
4290 * tree-outof-ssa.c (emit_partition_copy): New function.
4291 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4292 insert_part_to_rtx_on_edge): Perform the partition base var
4293 copy using emit_partition_copy.
4294 (insert_value_copy_on_edge): Convert constants to the right mode.
4295 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
4296 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
4297
e50e3081
BS
42982009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4299
4300 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
4301 scan backwards to try to find a constant to initialize it.
4302
4e5d521b
BS
4303 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
4304 insn before the loop_end instruction, don't look past labels.
4305
7c90021d
RG
43062009-04-29 Richard Guenther <rguenther@suse.de>
4307
4308 PR middle-end/39937
4309 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
4310 loose type conversions.
4311 (forward_propagate_addr_expr): Fix tuplification bug. Remove
4312 stmts only if there are no uses of its definition.
4313
97a988bc
BS
43142009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4315
4316 * config/bfin/bfin.h (splitting_loops): Declare.
4317 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
4318 Reorder bit definitions to be ascending.
4319 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
4320 * config/bfin/bfin.c (splitting_loops): New variable.
4321 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
4322 (struct loop_info): Remove members INIT and LOOP_INIT.
4323 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
4324 the LSETUP sequence. Allow LC to be loaded from any register, but
4325 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
4326 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
4327 set to 1.
4328 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
4329 of reload_completed.
aa016ff7 4330
97a988bc
BS
4331 From Jie Zhang:
4332 * config/bfin/bfin.md (movsi_insn): Refine constraints.
4333
0c463e16
RAE
43342009-04-29 Rafael Avila de Espindola <espindola@google.com>
4335
4336 * Makefile.in (PLUGIN_VERSION_H): New.
4337 (OBJS-common): Remove plugin-version.o.
4338 (plugin.o): Depend on (PLUGIN_VERSION_H).
4339 (plugin-version.o): Remove.
4340 * configure: Regenerate
4341 * configure.ac: Create plugin-version.h.
4342 * gcc-plugin.h (plugin_gcc_version): Remove.
4343 (plugin_default_version_check): Change signature.
4344 * plugin-version.c: Remove.
4345 * plugin.c: Include plugin-version.h.
4346 (str_plugin_gcc_version_name): Remove.
4347 (try_init_one_plugin): Pass gcc version to plugin_init.
4348 (plugin_default_version_check): Both gcc and plugin versions are now
4349 arguments.
4350
307e7eab
BS
43512009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4352
4353 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
4354 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
4355 Remove special case testing for last insn of inner loops. Don't fail
4356 if the loop ends with a jump, emit an extra nop instead.
307e7eab 4357
c5d96723
BS
4358 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
4359 DREGS rather than comparing directly. Remove code that tries to
4360 account for latencies.
4361
de0b4ad5
RG
43622009-04-29 Richard Guenther <rguenther@suse.de>
4363
4364 PR tree-optimization/39941
4365 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
4366 eliminating an indirect call.
4367
3a19701a
RG
43682009-04-29 Richard Guenther <rguenther@suse.de>
4369
4370 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
4371 parameter. Allow invariants as base if !require_lvalue.
4372 (verify_gimple_assign_single): Adjust.
4373
a0a31d1e
BS
43742009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4375
4376 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
4377 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
4378 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
4379 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
4380 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
4381 a VEC_SELECT.
aa016ff7
UB
4382 * config/bfin/bfin.c (bfin_expand_builtin,
4383 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 4384
795bd26a
RG
43852009-04-28 Richard Guenther <rguenther@suse.de>
4386
4387 * tree-vect-loop.c (get_initial_def_for_induction): Use
4388 correct types for pointer increment.
4389
04be270f
KG
43902009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4391
4392 * toplev.c (print_version): Update GMP version string calculation.
4393
e1a3b85c
EB
43942009-04-28 Eric Botcazou <ebotcazou@adacore.com>
4395
4396 PR rtl-optimization/39938
4397 * resource.c (init_resource_info): Add call to df_analyze.
4398
8224166e
UB
43992009-04-28 Uros Bizjak <ubizjak@gmail.com>
4400
4401 * config/alpha/alpha.md (usegp): Cast the result of
4402 alpha_find_lo_sum_using_gp to enum attr_usegp.
4403 * config/alpha/alpha.c (override_options): Remove end-of-structure
4404 marker element from cpu_table. Use array size of cpu_table to handle
4405 -mcpu and -mtune options.
4406 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
4407
c5f0fe67
JM
44082009-04-28 Joseph Myers <joseph@codesourcery.com>
4409
4410 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
4411 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
4412 tune_32 and tune_64.
4413 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4414 support on PowerPC.
4415 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
4416 * config/rs6000/option-defaults.h: ... here. New file.
4417 (OPT_64, OPT_32): Define.
4418 (MASK_64BIT): Define to 0 if not already defined.
4419 (OPT_ARCH64, OPT_ARCH32): Define.
4420 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
4421 and tune_64.
4422
0c48a567
RR
44232009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4424
4425 * config/arm/arm.c (arm_override_options): Emit error on using
4426 fpa with AAPCS.
4427
f1028b9d
UB
44282009-04-28 Uros Bizjak <ubizjak@gmail.com>
4429
4430 PR rtl-optimization/39914
4431 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
4432 registers for allocnos created from user-defined variables only
4433 when not optimizing.
4434
e0dd989a
RG
44352009-04-28 Richard Guenther <rguenther@suse.de>
4436
4437 PR middle-end/39937
4438 * fold-const.c (fold_binary): Use distribute_real_division only
4439 on float types.
4440
9a17c91d
SE
44412009-04-28 Steve Ellcey <sje@cup.hp.com>
4442
4443 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
4444 add hpux-stdint.h to tm_file.
4445 (hppa[12]*-*-hpux11*): Ditto.
4446 (ia64*-*-hpux*): Ditto.
4447 * config/hpux-stdint.h: New.
60839f5d 4448 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 4449 __STDC_EXT__ for all compiles.
60839f5d
EB
4450 * config/pa/pa-hpux.h: Ditto.
4451 * config/pa/pa-hpux10.h: Ditto.
4452 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 4453
af04e659
CM
44542009-04-28 Catherine Moore <clm@codesourcery.com>
4455
4456 * debug.h (set_name): Add comment.
4457
04ef80ce
AP
44582009-04-28 Andrew Pinski <pinskia@gmail.com>
4459
4460 PR target/39929
4461 * config/darwin.c (machopic_gen_offset): Check
4462 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
4463 * config/arm/arm.c (require_pic_register): Likewise.
4464
65ad77af
PB
44652009-04-28 Paolo Bonzini <bonzini@gnu.org>
4466
8224166e
UB
4467 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
4468 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
4469 m32c_promote_prototypes): Delete.
65ad77af 4470
1b15a008
MM
44712009-04-28 Michael Matz <matz@suse.de>
4472
4473 PR middle-end/39922
4474 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
4475 constants.
4476
7569a6cc
RG
44772009-04-28 Richard Guenther <rguenther@suse.de>
4478
f1028b9d 4479 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 4480
ead204d9
RR
44812009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4482
4483 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
4484 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
4485 * config/arm/arm-tune.md: Regenerate.
4486
f2c45f08 44872009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 4488
f2c45f08
AM
4489 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
4490 block if there are complex incoming edges.
4491 (sel_merge_blocks): Remove useless assert.
4492 (sel_redirect_edge_and_branch): Check that edge was redirected.
4493 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
4494 (sel_find_rgns): Delete declaration.
4495 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
4496 the region when it is not a preheader.
4497
7a00d767
UB
44982009-04-28 Uros Bizjak <ubizjak@gmail.com>
4499
4500 PR c/39323
4501 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
4502
448ee662
RG
45032009-04-28 Richard Guenther <rguenther@suse.de>
4504
4505 * tree.h (SSA_NAME_VALUE): Remove.
4506 (struct tree_ssa_name): Remove value_handle member.
4507 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
4508 array for jump threading.
4509 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
4510 SSA_NAME_VALUEs.
4511 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
4512 * tree-flow.h (threadedge_initialize_values): Declare.
4513 (threadedge_finalize_values): Likewise.
4514 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
4515 (SSA_NAME_VALUE): Define.
4516 (threadedge_initialize_values): New function.
4517 (threadedge_finalize_values): Likewise.
4518 * tree-ssa-dom.c (ssa_name_values): New global variable.
4519 (SSA_NAME_VALUE): Define.
f1028b9d 4520 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 4521
8644a673
IR
45222009-04-28 Ira Rosen <irar@il.ibm.com>
4523
4524 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4525 Use REPORT_VECTORIZED_LOCATIONS instead
4526 REPORT_VECTORIZED_LOOPS.
4527 * tree-vectorizer.c (vect_verbosity_level): Make static.
4528 (vect_loop_location): Rename to vect_location.
4529 (vect_set_verbosity_level): Update comment.
4530 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
4531 and vect_location.
4532 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
4533 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
4534 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
4535 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
4536 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 4537 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 4538 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
4539 REPORT_UNVECTORIZED_LOCATIONS.
4540 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
4541 and vect_used_in_loop and to vect_unused_in_scope and
4542 vect_used_in_scope.
4543 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
4544 (vect_verbosity_level): Remove declaration.
4545 (vect_analyze_operations): Likewise.
4546 (vect_analyze_stmt): Declare.
4547 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
4548 REPORT_UNVECTORIZED_LOCATIONS.
4549 (vect_get_loop_niters): Fix indentation.
4550 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
4551 (vect_analyze_loop_operations): New function.
4552 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
4553 vect_analyze_operations.
4554 (vect_is_simple_reduction): Use new names.
4555 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
4556 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
4557 to specify whether the data references can be a part of interleaving
4558 chain.
8644a673
IR
4559 (vect_analyze_data_ref_dependence): Use new names.
4560 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
4561 (vect_create_addr_base_for_vector_ref): Remove redundant code.
4562 * tree-vect-patterns.c (widened_name_p): Use new names.
4563 (vect_recog_dot_prod_pattern): Likewise.
4564 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
4565 (process_use, vect_mark_stmts_to_be_vectorized,
4566 vect_model_simple_cost, vect_model_store_cost,
4567 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
4568 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
4569 vectorizable_operation, vectorizable_type_demotion,
4570 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
4571 vectorizable_condition): Likewise.
4572 (vect_analyze_operations): Split into vect_analyze_loop_operations
4573 and ...
4574 (vect_analyze_stmt): ... new function.
4575 (new_stmt_vec_info): Use new names.
4576 (vect_is_simple_use): Use new names and fix comment.
4577 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
4578 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
4579
b91322f2
UB
45802009-04-28 Uros Bizjak <ubizjak@gmail.com>
4581
4582 PR target/39911
4583 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
4584 and integer modes for x87 operands. Do not ICE for unsupported size,
4585 generate error instead. Generate error for unsupported operand types.
4586 ['z']: Do not handle HImode memory operands specially. Warning
4587 for floating-point operands. Fallthru to 'Z' for unsupported operand
4588 types. Do not ICE for unsupported size, generate error instead.
4589 (output_387_binary_op): Use %Z to output operands.
4590 (output_fp_compare): Ditto.
4591 (output_387_reg_move): Ditto.
4592
b2ed71b6
BE
45932009-04-28 Ben Elliston <bje@au.ibm.com>
4594
4595 PR c++/35652
4596 Revert:
4597
4598 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4599
4600 * builtins.c (c_strlen): Do not warn here.
4601 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
4602 * c-common.c (pointer_int_sum): Take an explicit location.
4603 Warn about offsets out of bounds.
4604 * c-common.h (pointer_int_sum): Adjust declaration.
4605
81f40b79
ILT
46062009-04-27 Ian Lance Taylor <iant@google.com>
4607
4608 * collect2.c (is_ctor_dtor): Change type of ret field in struct
4609 names to symkind.
4610 * dce.c (run_fast_df_dce): Change type of old_flags to int.
4611 * df-core.c (df_set_flags): Change return type to int. Change
4612 type of old_flags to int.
4613 (df_clear_flags): Likewise.
4614 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
4615 (df_get_conditional_uses): Likewise.
4616 * df.h (df_set_flags, df_clear_flags): Update declarations.
4617 * dwarf2out.c (struct indirect_string_node): Change type of form
4618 field to enum dwarf_form.
4619 (AT_string_form): Change return type to enum dwarf_form.
4620 * fixed-value.c (fixed_compare): Add cast to enum type.
4621 * fwprop.c (update_df): Change 0 to VOIDmode.
4622 * gensupport.c: Change 0 to UNKNOWN.
4623 * gimple.h (gimple_cond_code): Add cast to enum type.
4624 * haifa-sched.c (reemit_notes): Add cast to enum type.
4625 * hooks.c (hook_int_void_no_regs): Remove function.
4626 * hooks.h (hook_int_void_no_regs): Remove declaration.
4627 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 4628 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
4629 * real.c (real_arithmetic): Add cast to enum type.
4630 (real_compare): Likewise.
4631 * target.h (struct gcc_target): Change return type of
4632 branch_target_register_class to enum reg_class.
4633 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
4634 default_branch_target_register_class.
7a00d767 4635 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 4636 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 4637 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
4638 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
4639 cast to int.
4640 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
4641 ERROR_MARK.
4642 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
4643 vect_uninitialized_def. Change 0 to ERROR_MARK.
4644 * tree-vect-stmts.c (supportable_widening_operation): Don't
4645 initialize icode1 and icode2.
7a00d767 4646 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
4647 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
4648 and to STD_C89.
4649 (cmn_err_flag_specs): Change 0 to STD_C89.
4650 (cmn_err_char_table): Likewise.
4651 * config/arm/arm.c (get_arm_condition_code): Change type of code
4652 to enum arm_cond_code.
4653 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
4654 (IWMMXT_BUILTIN2): Likewise.
4655 (neon_builtin_type_bits): Don't define typedef.
4656 (neon_builtin_datum): Change type of bits field to int.
4657 (arm_expand_neon_args): Add cast to enum type.
4658 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
4659 TLS_MODEL_NONE.
4660 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
4661 casts to enum type.
4662 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
4663 MIPS_FP_COND_f.
4664 * config/mips/mips.md (jal_macro): Return enum constant.
4665 (single_insn): Likewise.
4666 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
4667 CODE_FOR_nothing.
4668 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4669 casts to enum type.
4670 * config/s390/s390.c (s390_tune_flags): Change type to int.
4671 (s390_arch_flags): Likewise.
7a00d767 4672 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
4673 * config/s390/s390.h (s390_tune_flags): Update declaration.
4674 (s390_arch_flags): Likewise.
4675 * config/sh/sh.c (prepare_move_operands): Compare
4676 tls_symbolic_operand result with enum constant.
4677 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
4678 (sh_expand_prologue): Add cast to enum type.
4679 (sh_expand_epilogue): Likewise.
4680 (tls_symbolic_operand): Change return type to enum tls_model.
4681 (fpscr_set_from_mem): Add cast to enum type.
4682 (legitimize_pic_address): Compare tls_symbolic_operand result with
4683 enum constant.
4684 (sh_target_reg_class): Change return type to enum reg_class.
4685 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
4686 PROCESSOR_xxx.
7a00d767
UB
4687 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
4688 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
4689 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
4690 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
4691 (delayed_branch, tls_call_delay): Likewise.
4692 (eligible_for_sibcall_delay): Likewise.
4693 (eligible_for_return_delay): Likewise.
4694 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
4695 (spu_expand_builtin_1): Likewise.
4696
4697 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
4698 for all types of conversions.
4699 (output_init_element): Issue -Wc++-compat warning if needed when
4700 initializing a bitfield with enum type.
4701 * c-parser.c (c_parser_expression): Set original_type to
4702 original_type of right hand operand of comman operator.
4703
e4ae5e77
RW
47042009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4705
4706 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
4707 grammar nits.
7a00d767 4708 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
4709 * doc/cpp.texi (Standard Predefined Macros)
4710 (Implementation-defined behavior): Likewise.
7a00d767 4711 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
4712 * doc/gimple.texi (GIMPLE Exception Handling)
4713 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 4714 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
4715 * doc/invoke.texi (Warning Options, Optimize Options)
4716 (AVR Options, Darwin Options): Likewise.
4717 (Optimize Options): Reformulate -fwhole-program description.
4718 * doc/loop.texi (Lambda): Likewise.
4719 * doc/md.texi (Output Template, Define Constraints)
4720 (Standard Names, Insn Splitting): Likewise.
4721 * doc/options.texi (Option properties): Likewise.
4722 * doc/passes.texi (Tree-SSA passes): Likewise.
4723 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
4724 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
4725 (File Names and DBX): Likewise.
4726 * doc/trouble.texi (Incompatibilities): Likewise.
4727
1883802f 47282009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
4729
4730 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
4731 instruction is correct.
4732
1883802f 47332009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
4734
4735 Allow non-constant arguments to conversion intrinsics.
4736 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
4737 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
4738 * spu.c (print_operand): Handle 'v' and 'w'.
4739 (exp2_immediate_p, spu_gen_exp2): Define.
4740 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
4741 spu_convtf_1): Update parameter descriptions.
7a00d767 4742 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
4743 * constraints.md ('v', 'w'): New.
4744 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
4745 Remove.
4746 (i2f, I2F): New define_mode_attr.
4747 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
4748 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
4749 fixuns_truncv4sfv4si2): Update to use mode attribute.
4750 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
4751 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
4752 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
4753 patterns for combine.
4754
5f39ad47
SB
47552009-04-27 Steven Bosscher <steven@gcc.gnu.org>
4756
4757 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
4758 (cprop, hoist, pre, store_motion): New debug counters.
4759 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
4760 is not an RTL pass anymore.
4761 (pass_profiling): Remove extern decl for pass removed in 2005.
4762 (pass_gcse, pass_jump_bypass): Remove.
4763 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
4764 to 0 for clean state.
4765 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
4766 * cse.c (gate_handle_cse_after_global_opts,
4767 rest_of_handle_cse_after_global_opts): New functions.
4768 (pass_cse_after_global_opts): New pass, does local CSE.
4769 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
4770 (TV_CPROP): New timevar.
4771 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
4772 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
4773 (gcse_main, recompute_all_luids): Remove.
4774 (compute_hash_table_work): Call max_reg_num instead of reading
4775 max_gcse_regno.
4776 (cprop_jump): Don't set run_jump_opt_after_gcse.
4777 (constprop_register): Always allow to alter jumps.
4778 (cprop_insn): Likewise.
4779 (do_local_cprop): Likewise.
4780 (local_cprop_pass): Likewise. Return non-zero if something changed.
4781 (cprop): Remove function, fold interesting bits into one_cprop_pass.
4782 (find_implicit_sets): Add note about missed optimization opportunity.
4783 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
4784 pass_rtl_cprop execute function.
4785 Don't bother tracking the pass number, each pass gets its own dumpfile
4786 now anyway.
4787 Always allow to alter jumpsand bypass jumps.
4788 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
4789 will just find no suitable set.
4790 (pre_edge_insert): Fix dumping, this function is for PRE only.
4791 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
4792 pass_rtl_pre execute function.
4793 (hoist_code): Return non-zero if something changed. Keep track of
4794 substitutions and insertions for statistics gathering similar to PRE.
4795 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
4796 called from the pass_rtl_hoist execute function. Show pass statistics.
4797 (compute_store_table): Use max_reg_num directly instead of using the
4798 formerly global max_gcse_regno.
4799 (build_store_vectors): Likewise.
4800 (replace_store_insn): Fix dumping.
4801 (store_motion): Rename to ...
4802 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
4803 pass, called from the pass_rtl_store_motion execute function. Keep
4804 track of substitutions and insertions for statistics gathering similar
4805 to PRE.
4806 (bypass_jumps): Remove, fold interesting bits into ...
4807 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
4808 from the pass_rtl_cprop execute function.
4809 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
4810 pass_jump_bypass): Remove.
4811 (gate_handle_gcse, rest_of_handle_gcse): Remove.
4812 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
4813 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
4814 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
4815 (gate_rtl_store_motion, execute_rtl_store_motion,
4816 pass_rtl_store_motion): New.
4817 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
4818 make it clear that -fcse-skip-blocks is a no-op for backward compat.
4819 * passes.c (init_optimization_passes): Remove pass_gcse and
4820 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
4821 and cse_after_global_opts in place of pass_gcse. Schedule cprop
4822 instead of pass_jump_bypass.
4823
c685de4a
RG
48242009-04-27 Richard Guenther <rguenther@suse.de>
4825
4826 PR middle-end/39928
4827 * gimplify.c (gimplify_expr): If we are required to create
4828 a temporary make sure it ends up as register.
4829
72d41f29
L
48302009-04-27 H.J. Lu <hongjiu.lu@intel.com>
4831
4832 PR target/39903
4833 * config/i386/i386.c (construct_container): Don't call
4834 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
4835 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
4836
e97809c6
MM
48372009-04-27 Michael Matz <matz@suse.de>
4838
4839 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
4840 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
4841 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
4842 (dump_replaceable_exprs): Take a bitmap.
4843 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
4844 array.
4845 (expand_gimple_basic_block): Likewise.
4846 * tree-ssa-ter.c (struct temp_expr_table_d): Make
4847 replaceable_expressions member a bitmap.
4848 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
4849 (mark_replaceable): Likewise.
4850 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
4851 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
4852
211ca15c
RG
48532009-04-27 Richard Guenther <rguenther@suse.de>
4854
4855 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
4856 (verify_stmts): Dispatch to gimple/type verification code.
4857 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
4858 issue with call argument types.
4859
fca5f3d1
MM
48602009-04-27 Michael Matz <matz@suse.de>
4861
4862 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
4863 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
4864 to above.
4865
a1fa3e79 48662009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 4867 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
4868
4869 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
4870 a label's basic block.
4871 (mark_target_live_regs): Tidy and rework obsolete comments.
4872 Change back DF problem to LIVE. If a label starts a basic block,
4873 assume that all registers that used to be live then still are.
4874 (init_resource_info): If a label starts a basic block, set its
4875 BLOCK_FOR_INSN accordingly.
4876 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
4877
33b223c0
RG
48782009-04-27 Richard Guenther <rguenther@suse.de>
4879
4880 * tree-flow-inline.h (function_ann): Remove.
4881 (get_function_ann): Likewise.
4882 * tree-dfa.c (create_function_ann): Remove.
4883 * tree-flow.h (struct static_var_ann_d): Remove.
4884 (struct function_ann_d): Likewise.
4885 (union tree_ann_d): Remove fdecl member.
4886 (function_ann_t): Remove.
4887 (function_ann, get_function_ann, create_function_ann): Remove
4888 declarations.
4889
e3136fa2
UB
48902009-04-27 Uros Bizjak <ubizjak@gmail.com>
4891
4892 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
4893
f87c9042
JH
48942009-04-27 Jan Hubicka <jh@suse.cz>
4895
4896 * ipa-pure-const.c (struct funct_state_d): New fields
4897 state_previously_known, looping_previously_known; remove
4898 state_set_in_source.
4899 (analyze_function): Use new fields.
4900 (propagate): Avoid assumption that state_set_in_source imply
4901 nonlooping.
4902
4903 * tree-ssa-loop-niter.c (finite_loop_p): New function.
4904 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
4905 * cfgloop.h (finite_loop_p): Declare.
4906
33abd718
MM
49072009-04-26 Michael Matz <matz@suse.de>
4908
e3136fa2 4909 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 4910
ddc34084
MM
49112009-04-26 Michael Matz <matz@suse.de>
4912
4913 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
4914 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
4915 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
4916 pass_mark_used_blocks): Remove.
4917 * tree-optimize.c (pass_free_datastructures,
4918 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
4919 * passes.c (init_optimization_passes): Don't call
4920 pass_mark_used_blocks, remove dead code.
4921
1fec7ed4
L
49222009-04-26 H.J. Lu <hongjiu.lu@intel.com>
4923
4924 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
4925 * tree-ssa-live.h (register_ssa_partition): Likewise.
4926
4e3825db
MM
49272009-04-26 Michael Matz <matz@suse.de>
4928
4929 Expand from SSA.
4930 * builtins.c (fold_builtin_next_arg): Handle SSA names.
4931 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
4932 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
4933 SSA names.
4934 (compare_pairs): Swap cost comparison.
4935 (coalesce_ssa_name): Don't use change_partition_var.
4936 * tree-nrv.c (struct nrv_data): Add modified member.
4937 (finalize_nrv_r): Set it.
4938 (tree_nrv): Use it to update statements.
4939 (pass_nrv): Require PROP_ssa.
4940 * tree-mudflap.c (mf_decl_cache_locals,
4941 mf_build_check_statement_for): Use make_rename_temp.
4942 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
4943 * alias.c (find_base_decl): Handle SSA names.
4944 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
4945 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
4946 * rtl.h (set_reg_attrs_for_parm): Declare.
4947 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
4948 to "optimized", remove unused locals at finish.
4949 (execute_free_datastructures): Make global, call
4950 delete_tree_cfg_annotations.
4951 (execute_free_cfg_annotations): Don't call
4952 delete_tree_cfg_annotations.
4953
4954 * ssaexpand.h: New file.
4955 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 4956 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
4957 (expand_expr_real_1): Expand SSA names.
4958 * cfgexpand.c (toplevel): Include ssaexpand.h.
4959 (SA): New global variable.
4960 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
4961 (SSAVAR): New macro.
4962 (set_rtl): New helper function.
4963 (add_stack_var): Deal with SSA names, use set_rtl.
4964 (expand_one_stack_var_at): Likewise.
4965 (expand_one_stack_var): Deal with SSA names.
4966 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
4967 before unique numbers.
4968 (expand_stack_vars): Use set_rtl.
4969 (expand_one_var): Accept SSA names, add asserts for them, feed them
4970 to above subroutines.
4971 (expand_used_vars): Expand all partitions (without default defs),
4972 then only the local decls (ignoring those expanded already).
4973 (expand_gimple_cond): Remove edges when jumpif() expands an
4974 unconditional jump.
4975 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
4976 or remove abnormal edges. Ignore insns setting the LHS of a TERed
4977 SSA name.
4978 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
4979 members of SA; deal with PARM_DECL partitions here; expand
4980 all PHI nodes, free tree datastructures and SA. Commit instructions
4981 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
4982 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
4983 info and statements at start, collect garbage at finish.
4984 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
4985 (VAR_ANN_PARTITION) Remove.
4986 (change_partition_var): Don't declare.
4987 (partition_to_var): Always return SSA names.
4988 (var_to_partition): Only accept SSA names.
4989 (register_ssa_partition): Only check argument.
4990 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
4991 member.
4992 (delete_var_map): Don't free it.
4993 (var_union): Only accept SSA names, simplify.
4994 (partition_view_init): Mark only useful SSA names as used.
4995 (partition_view_fini): Only deal with SSA names.
4996 (change_partition_var): Remove.
4997 (dump_var_map): Use ssa_name instead of partition_to_var member.
4998 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
4999 basic blocks.
5000 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5001 (struct _elim_graph): New member const_dests; nodes member vector of
5002 ints.
5003 (set_location_for_edge): New static helper.
5004 (create_temp): Remove.
5005 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 5006 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
5007 (new_elim_graph): Allocate const_dests member.
5008 (clean_elim_graph): Truncate const_dests member.
5009 (delete_elim_graph): Free const_dests member.
5010 (elim_graph_size): Adapt to new type of nodes member.
5011 (elim_graph_add_node): Likewise.
5012 (eliminate_name): Likewise.
5013 (eliminate_build): Don't take basic block argument, deal only with
5014 partition numbers, not variables.
5015 (get_temp_reg): New static helper.
5016 (elim_create): Use it, deal with RTL temporaries instead of trees.
5017 (eliminate_phi): Adjust all calls to new signature.
5018 (assign_vars, replace_use_variable, replace_def_variable): Remove.
5019 (rewrite_trees): Only do checking.
5020 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5021 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5022 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5023 contains_tree_r, MAX_STMTS_IN_LATCH,
5024 process_single_block_loop_latch, analyze_edges_for_bb,
5025 perform_edge_inserts): Remove.
5026 (expand_phi_nodes): New global function.
5027 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
5028 functions, initialize new parameter, remember partitions having a
5029 default def.
5030 (finish_out_of_ssa): New global function.
5031 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
5032 don't reset in_ssa_p here, don't disable TER when mudflap.
5033 (pass_del_ssa): Remove.
5034 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5035 partition members.
5036 (execute_free_datastructures): Declare.
5037 * Makefile.in (SSAEXPAND_H): New variable.
5038 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5039 * basic-block.h (commit_one_edge_insertion): Declare.
5040 * passes.c (init_optimization_passes): Move pass_nrv and
5041 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
5042 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
5043 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
5044 (redirect_branch_edge): Deal with super block when expanding, split
5045 out jump patching itself into ...
5046 (patch_jump_insn): ... here, new static helper.
5047
17c665a9
MM
50482009-04-26 Michael Matz <matz@suse.de>
5049
5050 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
5051 beyond num_ssa_names.
5052 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5053 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5054
92061771
JJ
50552009-04-26 Jakub Jelinek <jakub@redhat.com>
5056
ce372372
JJ
5057 PR inline-asm/39543
5058 * fwprop.c (forward_propagate_asm): New function.
5059 (forward_propagate_and_simplify): Propagate also into __asm, if it
5060 doesn't increase the number of referenced registers.
5061
92061771
JJ
5062 PR c/39889
5063 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
5064
50652009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
5066
5067 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
5068 note_nonlocal_vla_type for nonlocal VLAs.
5069 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
5070 contains_remapped_vars, remap_vla_decls): New functions.
5071 (convert_nonlocal_reference_stmt): If not optimizing, call
5072 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
5073 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
5074 if it wasn't found in var_map.
5075 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
5076 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
5077 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
5078 declare_vars.
5079 * gimplify.c (nonlocal_vlas): New variable.
5080 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
5081 referenced VLAs.
5082 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 5083
4561e242
JJ
5084 * dwarf2out.c (loc_descr_plus_const): New function.
5085 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
5086 mem_loc_descriptor, loc_descriptor_from_tree_1,
5087 descr_info_loc, gen_variable_die): Use it.
5088
a9548ddf
JJ
5089 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
5090 !TREE_STATIC VAR_DECLs.
5091 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
5092 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
5093 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
5094 DECL_BY_REFERENCE is valid.
5095 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
5096 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
5097 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
5098 Copy DECL_BY_REFERENCE.
5099 (struct nesting_copy_body_data): New type.
5100 (nesting_copy_decl): New function.
5101 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
5102 if they have variable length.
5103
10555d08
MM
51042009-04-26 Michael Matz <matz@suse.de>
5105
5106 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
5107 mark new temporaries for renaming.
5108
e11187cc
JM
51092009-04-26 Joseph Myers <joseph@codesourcery.com>
5110
5111 PR c/39581
5112 * c-decl.c (global_bindings_p): Return negative value.
5113 (c_variable_size): New. Based on variable_size from
5114 stor-layout.c.
5115 (grokdeclarator): Call c_variable_size not variable_size.
5116
f6a51d31
UB
51172009-04-26 Uros Bizjak <ubizjak@gmail.com>
5118
5119 * config/i386/i386.c (print_operand) ['z']: Fix typo.
5120
4b97723d
KT
51212009-04-26 Kai Tietz <kai.tietz@onevision.com>
5122
5123 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
5124 Redefine it to just use mingw/include.
5125 (ASM_SPEC): Rules for -m32 and -m64.
5126 (LINK_SPEC): Use Likewise.
5127 (SPEC_32): New define.
5128 (SPEC_64): Likewise.
5129 (SUB_LINK_SPEC): Likewise.
5130 (MULTILIB_DEFAULTS): New define.
5131 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
5132 Add multilib options.
5133 (MULTILIB_DIRNAMES): Likewise.
5134 (MULTILIB_OSDIRNAMES): Likewise.
5135 (LIBGCC): Likewise.
5136 (INSTALL_LIBGCC): Likewise.
5137
991d6621
JM
51382009-04-26 Joseph Myers <joseph@codesourcery.com>
5139
5140 PR c/39556
5141 * c-tree.h (enum c_inline_static_type): New.
5142 (record_inline_static): Declare.
5143 * c-decl.c (struct c_inline_static, c_inline_statics,
5144 record_inline_static, check_inline_statics): New.
5145 (pop_file_scope): Call check_inline_statics.
5146 (start_decl): Call record_inline_static instead of pedwarning
5147 directly for static in inline function.
5148 * c-typeck.c (build_external_ref): Call record_inline_static
5149 instead of pedwarning directly for static referenced in inline
5150 function.
5151
4a81774c
SB
51522009-04-26 Steven Bosscher <steven@gcc.gnu.org>
5153
5154 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
5155 not new but only being rescanned.
5156 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
5157 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
5158 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
5159 record_set_info, compute_set, grealloc): Remove.
5160 (recompute_all_luids): New function.
5161 (gcse_main): Don't compute sets, and don't do related memory
5162 allocations/free-ing. If something changed before the end of the
5163 pass, update LUIDs using recompute_all_luids.
5164 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
5165 (free_gcse_mem): Don't free it either.
5166 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
5167 Use the df insn LUIDs.
5168 (load_killed_in_block): Likewise.
5169 (compute_hash_table_work): Don't compute reg_set_in_block.
5170 (compute_transp): Use DF_REG_DEF_CHAINs.
5171 (local_cprop_pass): Don't use compute_sets and related functions.
5172 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
5173 Use get_max_uid() instead of max_cuid.
5174 (insert_insn_end_basic_block, pre_insert_copy_insn,
5175 update_ld_motion_stores): Don't try to
5176 keep reg_set tables up to date.
5177 (pre_insert_copies): Use df insn LUIDs.
5178 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
5179 (reg_set_info): Don't use extra bitmap argument.
5180 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
5181 information to compute regs_set_in_block.
5182 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
5183 (bypass_jumps): Don't use compute_sets and friends.
5184
e8f99a9d
RW
51852009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5186
5187 PR testsuite/39710
5188 * opts.c (undocumented_msg): Do not leave blank even with
5189 ENABLE_CHECKING.
5190
6895bac8
JM
51912009-04-25 Joseph Myers <joseph@codesourcery.com>
5192
5193 * c-decl.c (build_enumerator): Allow values folding to integer
5194 constants but not integer constant expressions with a pedwarn if
5195 pedantic.
5196
24070fcb
JM
51972009-04-25 Joseph Myers <joseph@codesourcery.com>
5198
5199 PR c/39582
5200 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
5201 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
5202 type is an integer constant.
5203
d6d89aa1
UB
52042009-04-25 Uros Bizjak <ubizjak@gmail.com>
5205
5206 PR target/39897
5207 * config/i386/i386.c (print_operand) ['z']: Revert handling of
5208 HImode operands.
5209
92f6fd0b
JM
52102009-04-25 Joseph Myers <joseph@codesourcery.com>
5211
5212 PR c/39564
5213 * c-decl.c (grokdeclarator): Diagnose declarations of functions
5214 with variably modified return type and no storage class
5215 specifiers, except for the case of nested functions. Distinguish
5216 extern declarations of functions with variably modified return
5217 types from those of objects with variably modified types.
5218
a3710436
JH
52192009-04-25 Jan Hubicka <jh@suse.cz>
5220
5221 * tree.c (list_equal_p): New function.
5222 * tree.h (list_equal_p): Declare.
5223 * coretypes.h (edge_def, edge, const_edge, basic_block_def
5224 basic_block_def, basic_block, const_basic_block): New.
5225 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
5226 (redirect_eh_edge): New function.
5227 (make_eh_edge_update_phi): EH edges are not abnormal.
5228 * except.c: Include tree-flow.h.
5229 (list_match): New function.
5230 (eh_region_replaceable_by_p): New function.
5231 (replace_region): New function.
5232 (hash_type_list): New function.
5233 (hash_eh_region): New function.
5234 (eh_regions_equal_p): New function.
5235 (merge_peers): New function.
5236 (remove_unreachable_regions): Verify EH tree when checking;
5237 merge peers.
5238 (copy_eh_region_1): New function.
5239 (copy_eh_region): New function.
5240 (push_reachable_handler): New function.
5241 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
5242 regions without label but with live RESX.
5243 * except.h (redirect_eh_edge_to_label): New.
5244 * tree-flow.h (redirect_eh_edge): New.
5245 * coretypes.h (edge_def, edge, const_edge, basic_block_def
5246 basic_block_def, basic_block, const_basic_block): Remove.
5247 * Makefile.in (except.o): Add dependency on tree-flow.h
5248 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
5249 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
5250 Remove.
5251
3764d512
EB
52522009-04-25 Eric Botcazou <ebotcazou@adacore.com>
5253
5254 PR bootstrap/39645
5255 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
5256 on the destination of memcpy.
5257
1c62e8f2
PB
52582009-04-25 Paolo Bonzini <bonzini@gnu.org>
5259
5260 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5261 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
5262 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
5263
496a4ef5
JH
52642009-04-25 Jan Hubicka <jh@suse.cz>
5265
5266 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
5267 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
5268 to be reached by different label than left.
5269 (update_eh_edges): Update comment; remove edge_to_remove if possible
5270 and return true if suceeded.
5271 (cleanup_empty_eh): Accept sharing map; handle shared regions.
5272 (cleanup_eh): Compute sharing map.
5273 * except.c (remove_eh_handler_and_replace): Add argument if we should
5274 update regions.
5275 (remove_unreachable_regions): Update for label sharing.
5276 (label_to_region_map): Likewise.
5277 (get_next_region_sharing_label): New function.
5278 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
5279 prev_try pointers.
5280 (remove_eh_handler): Update.
5281 (remove_eh_region_and_replace_by_outer_of): New function.
5282 * except.h (struct eh_region): Add next_region_sharing_label.
5283 (remove_eh_region_and_replace_by_outer_of,
5284 get_next_region_sharing_label): Declare.
5285 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
5286
52872009-04-25 Jan Hubicka <jh@suse.cz>
5288
5289 * tree-cfg.c (split_critical_edges): Split also edges where we can't
5290 insert code even if they are not critical.
5291
52922009-04-25 Jan Hubicka <jh@suse.cz>
5293
5294 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5295 (gimple_can_remove_branch_p): EH edges won't remove branch by
5296 redirection.
5297 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
5298 updating of non-abnormal EH edges.
5299 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5300 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
5301 (split_critical_edges): Split also edges where emitting code on them
5302 will lead to splitting later.
5303
a3a5e3d1
UB
53042009-04-25 Uros Bizjak <ubizjak@gmail.com>
5305 H.J. Lu <hongjiu.lu@intel.com>
5306
5307 PR target/39590
5308 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
5309 the configured assembler supports fildq and fistpq mnemonics.
5310 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
5311 * configure: Regenerated.
5312 * config.in: Ditto.
5313
5314 * config/i386/i386.c (print_operand): Handle 'Z'.
5315 ['z']: Remove handling of special fild/fist suffixes.
5316 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
5317 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
5318 suffix of fild insn.
5319 (*floatsi<mode>2_vector_mixed): Ditto.
5320 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
5321 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
5322 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5323 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
5324 * config/i386/gas.h (GAS_MNEMONICS): Remove.
5325
23750d7f
BE
53262009-04-25 Ben Elliston <bje@au.ibm.com>
5327
5328 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
5329 the source of a set operation.
5330
e6ff3083
AS
53312009-04-25 Anatoly Sokolov <aesok@post.ru>
5332
5333 * target.h (struct gcc_target): Add case_values_threshold field.
5334 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
5335 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
5336 * targhooks.c (default_case_values_threshold): New function.
5337 * targhooks.h (default_case_values_threshold): Declare function.
5338 * stmt.c (expand_case): Use case_values_threshold target hook.
5339 * expr.h (case_values_threshold): Remove declartation.
5340 * expr.c (case_values_threshold): Remove function.
5341 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
5342
5343 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
5344 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5345 (avr_case_values_threshold): Declare as static.
5346 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
5347
5348 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
5349 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5350 (mn10300_case_values_threshold): New function.
5351
569c72fc
L
53522009-04-24 H.J. Lu <hongjiu.lu@intel.com>
5353
5354 * ira.c (setup_cover_and_important_classes): Add enum cast.
5355
ff3cb468
VM
53562009-04-24 Vladimir Makarov <vmakarov@redhat.com>
5357
5358 * genpreds.c (write_enum_constraint_num): Output definition of
5359 CONSTRAINT_NUM_DEFINED_P macro.
5360 * ira.c (setup_cover_and_important_classes): Use
5361 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
5362
4f7be849
DD
53632009-04-24 DJ Delorie <dj@redhat.com>
5364
5365 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
5366 __SH2A_SINGLE_ONLY__ also.
5367
735b94a7
SE
53682009-04-24 Steve Ellcey <sje@cup.hp.com>
5369
5370 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
5371 (movdf_internal): Ditto.
5372 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
5373 SFmode and DFmode constants.
5374 (ia64_print_operand): Add 'G' format for printing
5375 floating point constants.
5376
77a30264
RG
53772009-04-24 Richard Guenther <rguenther@suse.de>
5378
5379 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
5380 from unsigned additions.
5381
2b6da65c
JM
53822009-04-24 Joseph Myers <joseph@codesourcery.com>
5383
5384 * c-typeck.c (set_init_index): Allow array designators that are
5385 not integer constant expressions with a pedwarn if pedantic.
5386
f5a17c43
BS
53872009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5388
5389 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
5390 zero if no overlap in nonzero bits between the operands.
5391
32e8bb8e
ILT
53922009-04-24 Ian Lance Taylor <iant@google.com>
5393
5394 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
5395 (record_dead_and_set_regs): Likewise.
5396 * df.h (struct df_mw_hardreg): Change flags field to int.
5397 (struct df_base_ref): Likewise.
5398 (struct df): Change changeable_flags field to int.
5399 * df-scan.c (df_defs_record): Change clobber_flags to int.
5400 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
5401 constants rather than #define macros.
5402 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
5403 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
5404 (enum dwarf_calling_convention): Likewise.
5405 (enum dwarf_line_number_x_ops): Likewise.
5406 (enum dwarf_call_frame_info): Likewise.
5407 (enum dwarf_source_language): Likewise.
5408 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
5409 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
5410 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
5411 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
5412 * genrecog.c (maybe_both_true_2): Change c to int.
5413 (write_switch): Likewise. Add cast to enum type.
5414 * gimplify.c (gimplify_omp_for): Handle return values from
5415 gimplify_expr using MIN rather than bitwise or.
5416 (gimplify_expr): Add cast to enum type.
5417 * ipa-prop.c (update_jump_functions_after_inlining): Change
5418 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
5419 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
5420 Add casts to enum type.
32e8bb8e
ILT
5421 (setup_cover_and_important_classes): Change cl to int. Add casts
5422 to enum type.
5423 (setup_class_translate): Change cl and mode to int.
5424 (ira_init_once): Change mode to int.
5425 (free_register_move_costs): Likewise.
5426 (setup_prohibited_mode_move_regs): Add casts to enum type.
5427 * langhooks.c (add_builtin_function_common): Rework assertion that
5428 value fits bitfield.
5429 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
5430 * omega.c (omega_do_elimination): Avoid math on enum types.
5431 * optabs.c (expand_vec_shift_expr): Remove casts to int.
5432 * opts.c (set_debug_level): Change 2 to enum constant. Use new
5433 int local to handle integral_argment value.
5434 * regmove.c (try_auto_increment): Change PUT_MODE to
5435 PUT_REG_NOTE_KIND.
5436 * reload.c (push_secondary_reload): Add casts to enum type.
5437 (secondary_reload_class, find_valid_class): Likewise.
5438 * reload1.c (emit_input_reload_insns): Likewise.
5439 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
5440 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
5441 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
5442 constant.
5443 * tree.c (build_common_builtin_nodes): Add casts to enum type.
5444 * tree-complex.c (complex_lattice_t): Typedef to int rather than
5445 enum type.
5446 (expand_complex_libcall): Add casts to enum type.
5447 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
5448 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
5449 with ERROR_MARK, not NUM_TREE_CODES.
5450 (vect_create_epilog_for_reduction): Likewise.
5451 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 5452 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
5453 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
5454 enum machine_mode.
5455 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
5456 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 5457 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
5458 * var-tracking.c (get_init_value): Change return type to enum
5459 var_init_status.
5460 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
5461 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
5462 arm_fp_model.
5463 (arm_override_options): Add casts to enum type.
5464 (arm_emit_tls_decoration): Likewise.
5465 * config/i386/i386.c (ix86_function_specific_restore): Add casts
5466 to enum type.
5467 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
5468 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
5469 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
5470 enum type.
5471 * config/s390/s390.c (code_for_builtin_64): Change to array of
5472 enum insn_code.
5473 (code_for_builtin_31): Likewise.
5474 (s390_expand_builtin): Change code_for_builtin to enum insn_code
5475 const *.
5476 * config/sparc/sparc.c (sparc_override_options): Change value
5477 field in struct code_model to enum cmodel. In initializer change
5478 0 to NULL and add cast to enum type.
5479
5480 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
5481 Change all callers. Issue a -Wc++-compat warning using
5482 lhs_origtype if necessary.
5483 (convert_for_assignment): Issue -Wc++-compat warnings about
5484 invalid conversions to enum type on assignment.
5485 * c-common.h (build_modify_expr): Update declaration.
5486
ac4fc08a
NC
54872009-04-24 Nick Clifton <nickc@redhat.com>
5488
5489 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
5490 (function_arg_advance): Likewise.
5491 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
5492 5th alternative.
5493
f22e891a
AK
54942009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
5495
5496 * config/s390/constraints.md ('I', 'J'): Fix condition.
5497
ad58aabe
DN
54982009-04-24 Diego Novillo <dnovillo@google.com>
5499
5500 * gengtype-parse.c (parse_error): Add newline after message.
5501
879a4a01
L
55022009-04-24 H.J. Lu <hongjiu.lu@intel.com>
5503
5504 * config/i386/sse.md (avxmodesuffixs): Removed.
5505 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
5506 (*avx_pinsr<ssevecsize>): This.
5507
f63426af
BS
55082009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5509
5510 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
5511 follow chains of regs with a single definition, and allow expressions
5512 that are function_invariant_p.
ce72fe6c 5513 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 5514
30349c74
PB
55152009-04-24 Paolo Bonzini <bonzini@gnu.org>
5516
5517 PR middle-end/39867
5518 * fold-const.c (fold_cond_expr_with_comparison): When folding
5519 > and >= to MAX, make sure the MAX uses the same type as the
5520 comparison's operands.
5521
8d8256c1
NC
55222009-04-24 Nick Clifton <nickc@redhat.com>
5523
5524 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
5525 addressing for DImode accesses.
5526 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 5527 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 5528
6216f94e
JJ
55292009-04-24 Jakub Jelinek <jakub@redhat.com>
5530
5531 PR rtl-optimization/39794
5532 * alias.c (canon_true_dependence): Add x_addr argument.
5533 * rtl.h (canon_true_dependence): Adjust prototype.
5534 * cse.c (check_dependence): Adjust canon_true_dependence callers.
5535 * cselib.c (cselib_invalidate_mem): Likewise.
5536 * gcse.c (compute_transp): Likewise.
5537 * dse.c (scan_reads_nospill): Likewise.
5538 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
5539 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
5540 canon_base_addr of the group, plus optional offset.
5541 (struct group_info): Rename canon_base_mem to
5542 canon_base_addr.
5543 (get_group_info): Set canon_base_addr to canon_rtx of base, not
5544 canon_rtx of base_mem.
5545
6de7a512
PB
55462009-04-23 Paolo Bonzini <bonzini@gnu.org>
5547
5548 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
5549 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
5550
4a3a2376
UW
55512009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5552
5553 * config/spu/spu-builtins.h: Delete file.
5554
5555 * config/spu/spu.h (enum spu_builtin_type): Move here from
5556 spu-builtins.h.
5557 (struct spu_builtin_description): Likewise. Add GTY marker.
5558 Do not use enum spu_function_code or enum insn_code.
5559 (spu_builtins): Add extern declaration.
5560
5561 * config/spu/spu.c: Do not include "spu-builtins.h".
5562 (enum spu_function_code, enum spu_builtin_type_index,
5563 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
5564 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
5565 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
5566 unsigned_V2DI_type_node): Move here from spu-builtins.h.
5567 (spu_builtin_types): Make static. Add GTY marker.
5568 (spu_builtins): Add extern declaration with GTY marker.
5569 Include "gt-spu.h".
5570
5571 * config/spu/spu-c.c: Do not include "spu-builtins.h".
5572 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
5573 Check programmatically whether all parameters are scalar.
5574
5575 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
5576
bbaba73f
EB
55772009-04-23 Eric Botcazou <ebotcazou@adacore.com>
5578
5579 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
5580 assignment from the constructor either if the target is volatile.
5581
ee93c1c6
DJ
55822009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
5583
5584 * config/arm/arm.md (insv): Do not share operands[0].
5585
b2f21330
NS
55862009-04-23 Nathan Sidwell <nathan@codesourcery.com>
5587
5588 * config/vxlib-tls.c (active_tls_threads): Delete.
5589 (delete_hook_installed): New.
5590 (tls_delete_hook): Don't delete the delete hook.
5591 (tls_destructor): Delete it here.
5592 (__gthread_set_specific): Adjust installing the delete hook.
5593 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
5594 __gthread_leave_tsd_dtor_context.
5595
4782dfa7
RAE
55962009-04-23 Rafael Avila de Espindola <espindola@google.com>
5597
5598 * c-format.c (gcc_tdiag_char_table): Add support for %E.
5599
bf758008
UB
56002009-04-23 Uros Bizjak <ubizjak@gmail.com>
5601
5602 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
5603 enum type.
5604 (alpha_rtx_costs): Ditto.
5605 (emit_unlikely_jump): Use add_reg_note.
5606 (emit_frame_store_1): Ditto.
5607 (alpha_expand_prologue): Ditto.
5608 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5609 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
5610
7323a100
NC
56112009-04-23 Nick Clifton <nickc@redhat.com>
5612
5613 * config/v850/v850.md (epilogue): Remove suppressed code.
5614 (return): Rename to return_simple and remove test of frame size.
5615 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
5616 to gen_return_simple.
5617
360032ba
JY
56182009-04-22 Jing Yu <jingyu@google.com>
5619
5620 PR testsuite/39781
5621 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5622
53650abe
AP
56232009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
5624
5625 PR C/31499
5626 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
5627 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
5628 value is a VECTOR_CST, the element type is the element type of the
5629 vector.
5630
89043e8a
DD
56312009-04-22 DJ Delorie <dj@redhat.com>
5632
5633 * config/m32c/m32c.h: Update GTY annotations to new syntax.
5634
023f059b
JJ
56352009-04-22 Jakub Jelinek <jakub@redhat.com>
5636
5637 * alias.c (find_base_term): Move around LO_SUM case, so that
5638 CONST falls through into PLUS/MINUS handling.
5639
2c0eba5a
JJ
5640 PR c/39855
5641 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
5642 into 0, use omit_one_operand.
5643
9a461028
BE
56442009-04-23 Ben Elliston <bje@au.ibm.com>
5645
5646 * config/rs6000/linux-unwind.h (get_regs): Remove type
5647 puns. Change the type of `pc' to an array of unsigned ints and
5648 update all users. Constify frame24.
5649
653e2568
DD
56502009-04-22 DJ Delorie <dj@redhat.com>
5651
5652 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
5653 declarations before code.
5654 (current_function_special_page_vector): Likewise.
5655 (m32c_expand_insv): Silence a warning.
5656
60839f5d 56572009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
5658
5659 * alias.c: Update GTY annotations to new syntax.
5660 * basic-block.h: Likewise.
5661 * bitmap.h: Likewise.
5662 * c-common.h: Likewise.
5663 * c-decl.c: Likewise.
5664 * c-parser.c: Likewise.
5665 * c-pragma.c: Likewise.
5666 * c-tree.h: Likewise.
5667 * cfgloop.h: Likewise.
5668 * cgraph.h: Likewise.
5669 * config/alpha/alpha.c: Likewise.
5670 * config/arm/arm.h: Likewise.
5671 * config/avr/avr.h: Likewise.
5672 * config/bfin/bfin.c: Likewise.
5673 * config/cris/cris.c: Likewise.
5674 * config/darwin.c: Likewise.
5675 * config/frv/frv.c: Likewise.
5676 * config/i386/i386.c: Likewise.
5677 * config/i386/i386.h: Likewise.
5678 * config/i386/winnt.c: Likewise.
5679 * config/ia64/ia64.h: Likewise.
5680 * config/iq2000/iq2000.c: Likewise.
5681 * config/mips/mips.c: Likewise.
5682 * config/mmix/mmix.h: Likewise.
5683 * config/pa/pa.c: Likewise.
5684 * config/pa/pa.h: Likewise.
5685 * config/rs6000/rs6000.c: Likewise.
5686 * config/s390/s390.c: Likewise.
5687 * config/sparc/sparc.c: Likewise.
5688 * config/xtensa/xtensa.c: Likewise.
5689 * cselib.h: Likewise.
5690 * dbxout.c: Likewise.
5691 * dwarf2out.c: Likewise.
5692 * except.c: Likewise.
5693 * except.h: Likewise.
5694 * fixed-value.h: Likewise.
5695 * function.c: Likewise.
5696 * function.h: Likewise.
5697 * gimple.h: Likewise.
5698 * integrate.c: Likewise.
5699 * optabs.c: Likewise.
5700 * output.h: Likewise.
5701 * real.h: Likewise.
5702 * rtl.h: Likewise.
5703 * stringpool.c: Likewise.
5704 * tree-data-ref.c: Likewise.
5705 * tree-flow.h: Likewise.
5706 * tree-scalar-evolution.c: Likewise.
5707 * tree-ssa-address.c: Likewise.
5708 * tree-ssa-alias.h: Likewise.
5709 * tree-ssa-operands.h: Likewise.
5710 * tree.c: Likewise.
5711 * tree.h: Likewise.
5712 * varasm.c: Likewise.
5713 * varray.h: Likewise.
5714 * vec.h: Likewise.
bf758008 5715 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
5716 * doc/gty.texi: Update GTY documentation to new syntax.
5717 * gengtype-lex.l: Enforce attribute-like syntax for GTY
5718 annotations on structs.
5719 * gengtype-parse.c: Likewise.
5720
a123d175
MH
57212009-04-22 Mark Heffernan <meheff@google.com>
5722
bf758008 5723 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 5724
4c7c486a
KH
57252009-04-22 Kazu Hirata <kazu@codesourcery.com>
5726
5727 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
5728 where appropriate.
5729
6e782a29
KH
57302009-04-22 Kazu Hirata <kazu@codesourcery.com>
5731
5732 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
5733 the same as a PLUS without a shift. Increase the cost of a
5734 CONST_INT in MULT.
5735
38d2336a
MLI
57362009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5737
5738 * Makefile.in: Update dependencies.
bf758008 5739 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
5740 * errors.h: Remove bogus comment about compatibility.
5741 (warning): Update declaration.
5742 * genautomata.c: Update all calls to warning.
5743 * gimple.c: Do not include errors.h. Include toplev.h.
5744 * tree-ssa-structalias.c: Do not include errors.h.
5745 * omega.c: Likewise.
5746 * tree-ssa-reassoc.c: Likewise.
5747 * config/spu/spu-c.c: Likewise.
5748 * config/spu/t-spu-elf: Update dependencies.
5749
aea4deba
RG
57502009-04-22 Richard Guenther <rguenther@suse.de>
5751
5752 PR tree-optimization/39824
5753 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
5754 make sure the types are compatible.
5755
cfc93532
MLI
57562009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5757
5758 PR c++/14875
5759 * c-common.c (c_parse_error): Take a token_flags parameter.
5760 Use token_type for the token type instead.
5761 Pass token_flags to cpp_type2name.
5762 * c-common.h (c_parse_error): Update declaration.
5763 * c-parser.c (c_parser_error): Pass 0 as token flags.
5764
8632d02a
AB
57652009-04-22 Andrey Belevantsev <abel@ispras.ru>
5766
5767 PR rtl-optimization/39580
5768 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
5769
4c33221c
UW
57702009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5771
5772 * function.c (expand_function_end): Do not emit a jump to the "naked"
5773 return label for fall-through returns.
5774 * except.c (sjlj_emit_function_exit): Always place the call to the
5775 unregister function at the location installed by expand_function_end.
5776
9925bce0
RG
57772009-04-22 Richard Guenther <rguenther@suse.de>
5778
5779 PR tree-optimization/39845
5780 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
5781 (gen_inbound_check): Likewise.
5782
24a40b35
NS
57832009-04-22 Nathan Sidwell <nathan@codesourcery.com>
5784
5785 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
5786 padding for PPC.
5787 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
5788 * config/vxlib.c (__gthread_once): Add race guard for PPC.
5789
6c34a092
PB
57902009-04-22 Paolo Bonzini <bonzini@gnu.org>
5791
5792 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
5793 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
5794 shift counts to avoid out-of-bounds array accesses.
5795
baa48dfa
PB
57962009-04-22 Paolo Bonzini <bonzini@gnu.org>
5797
5798 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
5799 (Pmode): Move above.
5800
7d83f4f5
UB
58012009-04-22 Uros Bizjak <ubizjak@gmail.com>
5802
5803 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
5804 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
5805 GET_CODE macro. Use IN_RANGE macro where appropriate.
5806 * config/alpha/alpha.h: Ditto.
5807 * config/alpha/alpha.md: Ditto.
5808 * config/alpha/constraints.md: Ditto.
5809 * config/alpha/predicates.md: Ditto.
5810
3ad606bc
PB
58112009-04-22 Paolo Bonzini <bonzini@gnu.org>
5812
5813 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
5814 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5815 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5816 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5817 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5818 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5819 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5820 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5821 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5822 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5823 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5824 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5825 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5826 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5827 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5828 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5829 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5830 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5831 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5832 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5833 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5834 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5835 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5836 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5837 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5838 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5839 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5840
3cabd6d1
LB
58412009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5842
5843 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
5844 references from comments.
5845 * cfgbuild.c: (count_basic_blocks): Delete.
5846 (find_basic_blocks_1): Delete.
5847 (find_basic_blocks): Delete.
5848 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 5849 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
5850 * except.h (finish_eh_generation): Delete.
5851 * basic-block.h (find_basic_blocks): Delete.
5852 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
5853
270d1bcd
DK
58542009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
5855
5856 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
5857 (sdbout_parms): Likewise.
5858
b757d36f
KK
58592009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
5860
5861 * config/sh/sh.c (prepare_cbranch_operands): Use
5862 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
5863 (expand_cbranchdi4): Likewise.
5864 (from_compare): Add cast to enum type.
5865 (expand_cbranchsi4): Use add_reg_note.
5866 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
5867 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
5868 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
5869 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5870 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
5871 instead of CODE_FOR_nothing.
5872 (cbranchdi4): Likewise. Fix the order of arguments for
5873 gen_rtx_fmt_ee.
5874 (push_fpscr): Use add_reg_note.
5875 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
5876 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
5877
ad41bd84
JM
58782009-04-21 Joseph Myers <joseph@codesourcery.com>
5879
5880 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
5881 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
5882 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
5883 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
5884 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
5885 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
5886 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
5887 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
5888 config/alpha/x-vms, config/arc/t-arc,
5889 config/arm/README-interworking, config/arm/arm-c.c,
5890 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
5891 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
5892 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
5893 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
5894 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
5895 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
5896 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
5897 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
5898 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
5899 config/cris/t-elfmulti, config/crx/t-crx,
5900 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
5901 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
5902 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
5903 config/h8300/t-h8300, config/i386/athlon.md,
5904 config/i386/darwin-libgcc.10.4.ver,
5905 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
5906 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
5907 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
5908 config/i386/t-linux64, config/i386/t-nwld,
5909 config/i386/t-rtems-i386, config/i386/t-sol2-10,
5910 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
5911 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
5912 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
5913 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
5914 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
5915 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
5916 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
5917 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
5918 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
5919 config/m68k/t-uclinux, config/mcore/t-mcore,
5920 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
5921 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
5922 config/mips/crtn.asm, config/mips/irix-crti.asm,
5923 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
5924 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
5925 config/mips/mips-fixed.md, config/mips/sb1.md,
5926 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
5927 config/mips/t-iris6, config/mips/t-isa3264,
5928 config/mips/t-libgcc-mips16, config/mips/t-linux64,
5929 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
5930 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
5931 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
5932 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
5933 config/mn10300/t-linux, config/mn10300/t-mn10300,
5934 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
5935 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
5936 config/picochip/libgccExtras/clzsi2.asm,
5937 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
5938 config/rs6000/darwin-libgcc.10.4.ver,
5939 config/rs6000/darwin-libgcc.10.5.ver,
5940 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
5941 config/rs6000/t-aix43, config/rs6000/t-aix52,
5942 config/rs6000/t-darwin, config/rs6000/t-fprules,
5943 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
5944 config/rs6000/t-lynx, config/rs6000/t-netbsd,
5945 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
5946 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
5947 config/rs6000/t-rtems, config/rs6000/t-spe,
5948 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
5949 config/score/t-score-elf, config/sh/divcost-analysis,
5950 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
5951 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
5952 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
5953 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
5954 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
5955 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
5956 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
5957 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
5958 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
5959 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
5960 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
5961 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
5962 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
5963 limitx.h, version.c, xcoff.h: Add copyright and license notices.
5964 * config/h8300/genmova.sh: Include copyright and license notices
5965 in generated output.
5966 * config/h8300/mova.md: Regenerate.
5967 * doc/install.texi2html: Include word "Copyright" in copyright
5968 notice and use name "Free Software Foundation, Inc.".
5969 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
5970 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
5971 ChangeLog-2007, ChangeLog-2008: Correct dates.
5972
ca80e52b
EB
59732009-04-21 Eric Botcazou <ebotcazou@adacore.com>
5974
5975 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
5976 NE_EXPR operations as well.
5977 * c-parser.c (c_parser_condition): Do not set location information on
5978 the condition.
5979 (c_parser_conditional_expression): Likewise.
5980 (c_parser_binary_expression): Set location information on operators.
5981 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
5982 TRUTH_NOT_EXPR has been folded.
5983 * fold-const.c (fold_truth_not_expr): Copy location information from
5984 the incoming expression to the outgoing one.
5985 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
5986 recursive calls on the LHS of the operator but pass that of the
5987 operator to recursive calls on the RHS of the operator. Set it
5988 on the COND_EXPR.
5989 (shortcut_cond_expr): Set the locus of the operator on the second
5990 COND_EXPR and that of the expression on the first in degenerate cases.
5991 Pass the locus of the expression to calls to shortcut_cond_r.
5992 Set the locus of the 'then' block on the associated jump, if any.
5993 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
5994 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
5995 expression to call to gimplify_boolean_expr.
5996
35091630
KT
59972009-04-21 Kai Tietz <kai.tietz@onevision.com>
5998
5999 * config.gcc: Add additional configuration for
6000 i686-w64-mingw* and x86_64-w64-mingw* triplet.
6001 * config/i386/mingw-w64.h: New mingw-w64 specific header.
6002 (CPP_SPEC): Redefine for allowing -municode option.
6003 (STARTFILE_SPEC): Likewise.
6004 * config/i386/t-mingw-w64: New.
6005 * config/i386/mingw-w64.opt: New.
6006 (municode): Add new target option.
6007 * doc/invoke.texi (municode): Add documentation for new option.
6008
0267afc4
ILT
60092009-04-21 Ian Lance Taylor <iant@google.com>
6010
6011 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6012 Correct test for number of arguments.
6013 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6014
2ba9daa7
AS
60152009-04-21 Andreas Schwab <schwab@linux-m68k.org>
6016
6017 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6018 argument of emit_library_call.
6019
ad8a1ac0
RG
60202009-04-21 Richard Guenther <rguenther@suse.de>
6021
6022 PR middle-end/39829
6023 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6024 inside VIEW_CONVERT_EXPRs.
6025
7156c8ab
MJ
60262009-04-21 Martin Jambor <mjambor@suse.cz>
6027
6028 * tree-switch-conversion.c (build_constructors): Split a long line.
6029 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
6030 (build_one_array): Create assigns of constants if possible, do not
6031 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
6032 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6033 make_rename_temp. Do not call mark_symbols_for_renaming, call
6034 update_stmt.
6035 (gen_def_assigns): Do not call mark_symbols_for_renaming or
6036 find_new_referenced_vars, call update_stmt.
6037 (gen_inbound_check): Use create_tmp_var and create ssa names manually
6038 instead of calling make_rename_temp. Do not call
6039 find_new_referenced_vars or mark_symbols_for_renaming, call
6040 update_stmt.
6041
2970ccb3
RG
60422009-04-21 Richard Guenther <rguenther@suse.de>
6043
6044 PR tree-optimization/39827
7d83f4f5 6045 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
6046 (tree_ssa_phiprop): Pass the correct array size.
6047
47f402d1
UB
60482009-04-21 Uros Bizjak <ubizjak@gmail.com>
6049
6050 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
6051
1e4ae551
MLI
60522009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
6053
6054 PR 16202
6055 * c-typeck.c (lvalue_p): Move declaration ...
6056 * c-common.h (lvalue_p): ... to here.
6057 * c-common.c (candidate_equal_p): New.
6058 (add_tlist): Use it.
6059 (merge_tlist): Use it.
6060 (warn_for_collisions_1): Likewise.
6061 (warning_candidate_p): Accept more candidates.
6062 (verify_tree): A warning candidate can be an expression. Use
6063 candidate_equal_p.
6064
244609a6
BE
60652009-04-21 Ben Elliston <bje@au.ibm.com>
6066
6067 PR target/5267
6068 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6069 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
6070 options. Remove -mcall-solaris documentation.
6071
9c650d90
MLI
60722009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6073
6074 PR c++/13358
6075 * doc/invoke.texi (-Wlong-long): Update description.
6076 * c-lex (interpret_integer): Only warn if there was no previous
6077 overflow and -Wlong-long is enabled.
6078 * c-decl.c (declspecs_add_type): Drop redundant flags.
6079 * c.opt (Wlong-long): Init to -1.
6080 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
6081 and front-end warn_long_long. Wlong-long only depends on other
6082 flags if it is uninitialized.
6083 * c-parser.c (disable_extension_diagnostics): warn_long_long is
6084 the same for CPP and FE.
6085 (restore_extension_diagnostics): Likewise.
6086
bbbbb16a
ILT
60872009-04-20 Ian Lance Taylor <iant@google.com>
6088
6089 Fix enum conversions which are invalid in C++:
47f402d1
UB
6090 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
6091 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6092 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
6093 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 6094 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 6095 (dbxout_parms): Likewise.
47f402d1 6096 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
6097 (df_clear_flags): Likewise.
6098 * df-problems.c (df_rd_bb_local_compute_process_def): Change
6099 top_flag parameter to int.
6100 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
6101 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
6102 Remove cast.
bbbbb16a
ILT
6103 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
6104 (df_ref_create_structure, df_def_record_1): Likewise.
6105 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
6106 (df_notes_rescan): Change 0 to VOIDmode in function call.
6107 (df_get_call_refs, df_insn_refs_collect): Likewise.
6108 (df_bb_regs_collect): Likewise.
6109 (df_entry_block_defs_collect): Likewise.
6110 (df_exit_block_uses_collect): Likewise.
6111 * df.h: Update declarations.
6112 * double-int.c (double_int_divmod): Add cast to enum type.
6113 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
6114 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
6115 (based_loc_descr): Likewise.
6116 (loc_descriptor_from_tree_1): Change first_op and second_op to
6117 enum dwarf_location_atom. Add cast to enum type.
6118 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 6119 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6120 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
6121 (do_store_flag): Likewise.
6122 * fixed-value.h (struct fixed_value): Change mode to enum
6123 machine_mode.
47f402d1 6124 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6125 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
6126 function call.
6127 (insert_insn_decl, insert_decl, insert_state): Likewise.
6128 (automata_list_finish): Likewise.
6129 * genrecog.c (process_define_predicate): Add cast to enum type.
6130 * gensupport.c (init_predicate_table): Add cast to enum type.
6131 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
6132 function call.
6133 (gimple_build_call_1, gimple_build_label): Likewise.
6134 (gimple_build_goto, gimple_build_asm_1): Likewise.
6135 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 6136 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
6137 (enum fallback): Rename from enum fallback_t.
6138 (fallback_t): Typedef as int.
6139 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
6140 GSI_SAME_STMT in function call.
6141 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
6142 enum type.
6143 (setup_reg_class_relations): Likewise.
47f402d1 6144 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
6145 (setup_prohibited_class_mode_regs): Add cast to enum type.
6146 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 6147 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
6148 (record_address_regs): Change i to enum reg_class.
6149 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
6150 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
6151 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
6152 (GET_MODE_2XWIDER_MODE): Likewise.
6153 (GET_CLASS_NARROWEST_MODE): Likewise.
6154 * omp-low.c (expand_omp_for): Add cast to enum type.
6155 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
6156 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
6157 * postreload.c (reload_cse_simplify_operands): Change rclass local
6158 to enum reg_class.
6159 * predict.c (combine_predictions_for_insn): Change best_predictor
6160 and predictor to enum br_predictor.
6161 (combine_predictions_for_bb): Likewise.
6162 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
6163 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 6164 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
6165 * reginfo.c (init_move_cost): Add casts to enum type.
6166 (init_reg_sets_1, init_fake_stack_mems): Likewise.
6167 * regmove.c (regclass_compatible_p): Change class0 and class1 to
6168 enum reg_class.
6169 * reload.c (find_valid_class): Add casts to enum type.
6170 (push_reload): Change 0 to NO_REGS in function call.
6171 (find_reloads): Change this_alternative to array of enum
6172 reg_class. Remove some now-unnecessary casts.
6173 (make_memloc): Change 0 to VOIDmode in function call.
6174 * reload1.c (reload): Change 0 to VOIDmode in function call.
6175 (eliminate_regs_1, elimination_effects): Likewise.
6176 (eliminate_regs_in_insn): Likewise.
6177 (emit_input_reload_insns): Add cast to enum type.
6178 (delete_output_reload): Change 0 to VOIDmode in function call.
6179 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
6180 to enum type in function call.
6181 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
6182 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 6183 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
6184 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
6185 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
6186 (dump_function): Likewise.
6187 * tree-dump.h: Update declarations.
6188 * tree-pass.h: Update declarations.
6189 * varasm.c (assemble_integer): Change mclass to enum mode_class.
6190 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
6191 enum type.
6192 (arm_rtx_costs_1): Correct parenthesization.
6193 (arm_rtx_costs): Add casts to enum type.
6194 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
6195 (vfp_emit_fstmd): Use add_rg_note.
6196 (emit_multi_reg_push, emit_sfm): Likewise.
6197 (thumb_set_frame_pointer): Likewise.
6198 (arm_expand_prologue): Likewise.
6199 (arm_regno_class): Change return type to enum reg_class.
6200 (thumb1_expand_prologue): Use add_reg_note.
6201 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
6202 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
6203 in function call.
6204 * config/arm/gentune.sh: Add cast to enum type.
6205 * config/arm/arm-tune.md: Rebuild.
6206 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
6207 (ix86_split_fp_branch, predict_jump): Likewise.
6208 (ix86_expand_multi_arg_builtin): Change sub_code from enum
6209 insn_code to enum rtx_code.
6210 (ix86_builtin_vectorized_function): Add cast to enum type.
6211 * config/i386/i386.md (truncdfsf2): Change slot to enum
6212 ix86_stack_slot.
6213 (truncxf<mode>2, isinf<mode>2): Likewise.
6214 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
6215 enum type.
6216 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
6217 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
6218 (insert_bundle_state): Change 1 to INSERT in function call.
6219 (ia64_add_bundle_selector_before): Likewise.
6220 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
6221 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
6222 (restore_stack_nonlocal): Likewise.
6223 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
6224 function call.
6225 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
6226 function call.
6227 (mips_rtx_costs): Likewise.
6228 (mips_override_options): Add casts to enum type.
6229 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
6230 in function call.
6231 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
6232 (store_reg, set_reg_plus_d): Likewise.
6233 (hppa_expand_prologue, hppa_profile_hook): Likewise.
6234 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6235 cast to enum type.
6236 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
6237 function call.
6238 (emit_unlikely_jump): Use add_reg_note.
6239 (rs6000_emit_allocate_stack): Likewise.
6240 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
6241 (output_toc): Change 1 to INSERT in function call.
6242 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
6243 (rs6000_initialize_trampoline): Likewise.
6244 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
6245 function call.
6246 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
6247 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
6248 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
6249 (save_gprs): Use add_reg_note.
6250 (s390_emit_prologue): Likewise.
47f402d1 6251 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6252 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
6253 (sparc_fold_builtin): Add cast to enum type.
6254 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
6255 enum insn_code.
6256 (spu_expand_prologue): Use add_reg_note.
47f402d1 6257 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6258
62592009-04-20 Ian Lance Taylor <iant@google.com>
6260
6261 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
6262 (c_parser_postfix_expression_after_primary): Get VEC for list of
6263 arguments. Get original types of arguments. Call
6264 build_function_call_vec.
6265 (cached_expr_list_1, cached_expr_list_2): New static variables.
6266 (c_parser_expr_list): Change return type to VEC *. Add
6267 p_orig_types parameter. Change all callers.
6268 (c_parser_release_expr): New static function.
6269 (c_parser_vec_to_tree_list): New static function.
6270 * c-typeck.c (build_function_call): Rewrite to build a VEC and
6271 call build_function_call_vec.
6272 (build_function_call_vec): New function, based on old
6273 build_function_call.
6274 (convert_arguments): Remove nargs and argarray parameters. Change
6275 values to a VEC. Add origtypes parameter.
47f402d1 6276 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
6277 (convert_for_assignment): Add origtype parameter. Change all
6278 callers. If warn_cxx_compat, check for conversion to an enum
6279 type when calling a function.
6280 (store_init_value): Add origtype parameter. Change all callers.
6281 (digest_init): Likewise.
6282 (struct init_node): Add origtype field.
6283 (add_pending_init): Add origtype parameter. Change all callers.
6284 (output_init_element): Likewise.
6285 (output_pending_init_elements): Pass origtype from init_node to
6286 output_init_element.
f28a61ab 6287 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
6288 output_init_element.
6289 (c_finish_return): Add origtype parameter. Change all callers.
6290 * c-common.c (sync_resolve_size): Change params to VEC *. Change
6291 caller.
6292 (sync_resolve_params): Likewise.
47f402d1 6293 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 6294 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 6295 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
6296 * c-decl.c (finish_decl): Add origtype parameter. Change all
6297 callers. Call build_function_call_vec rather than
6298 build_function_call for cleanup.
6299 * c-tree.h: Update declarations.
6300 * c-common.h: Update declarations.
6301 * stub-objc.c (objc_rewrite_function_call): Change parameter from
6302 params to first_param.
6303 * target.h (struct gcc_target): Change resolve_overloaded_builtin
6304 params parameter from tree to void *.
6305 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6306 Change arglist parameter to have type void *, and to be a pointer
6307 to a VEC.
6308 * config/rs6000/rs6000-protos.h
6309 (altivec_resolve_overloaded_builtin): Update declaration.
6310 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
6311 fnargs parameter to have type void *, and to be a pointer to a
6312 VEC. Call build_function_call_vec instead of
6313 build_function_call.
47f402d1 6314 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 6315
6ff078d4 63162009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 6317 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
6318 H.J. Lu <hongjiu.lu@intel.com>
6319
6320 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
6321
6322 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
6323 (IX86_LEA_PRIORITY): Likewise.
6324 (distance_non_agu_define): New function.
6325 (distance_agu_use): Likewise.
6326 (ix86_lea_for_add_ok): Likewise.
6327 (ix86_dep_by_shift_count): Likewise.
6328
6329 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
6330 should split for LEA.
6331
6332 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
6333 function.
6334 (ix86_dep_by_shift_count): Likewise.
6335
87a5b4cc
RG
63362009-04-20 Richard Guenther <rguenther@suse.de>
6337
6338 * expr.c (handled_component_p): Move ...
6339 * tree.h (handled_component_p): ... here.
6340 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
6341 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
6342 and REALPART_EXPR to be in one group.
6343
438c239d
RG
63442009-04-20 Richard Guenther <rguenther@suse.de>
6345
6346 * basic-block.h (get_all_dominated_blocks): Declare.
6347 * dominance.c (get_all_dominated_blocks): New function.
6348 * tree-cfg.c (get_all_dominated_blocks): Remove.
6349 (remove_edge_and_dominated_blocks): Adjust.
6350 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
6351 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
6352 instead of recursing.
6353
fed5ae11
DK
63542009-04-20 Doug Kwan <dougkwan@google.com>
6355
6356 * cgraph.h (cgraph_node_ptr): New type for vector functions.
6357 (struct cgraph_node_set_def): New type.
6358 (cgraph_node_set) New type. Also declare vector functions.
6359 (struct cgraph_node_set_element_def): New type.
6360 (cgraph_node_set_element): Ditto.
6361 (cgraph_node_set_iterator): New iterator type.
6362 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
6363 cgraph_node_set_remove, dump_cgraph_node_set,
6364 debug_cgraph_node_set): New prototypes.
6365 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
6366 cgraph_node_set_size): New inlines.
6367 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
6368 including cgraph.h.
6369 (struct ipa_opt_pass): Add struct cgraph_node_set_def
6370 argument to function 'write_summary'.
6371 * ipa.c: Include ggc.h.
6372 (hash_cgraph_node_set_element,
6373 eq_cgraph_node_set_element, cgraph_node_set_new,
6374 cgraph_node_set_add, cgraph_node_set_remove,
6375 cgraph_node_set_find, dump_cgraph_node_set,
6376 debug_cgraph_node_set): New functions.
6377 * Makefile.in (ipa.o): Add dependency on GGC_H.
6378
c4551b28
IR
63792009-04-20 Ira Rosen <irar@il.ibm.com>
6380
6381 PR tree-optimization/39675
2ba9daa7 6382 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
6383 check of the return code of vect_schedule_slp. Check that
6384 stmt_vec_info still exists for the statement, before checking its
6385 vectorization type.
c4551b28 6386
21a495fb
MM
63872009-04-20 Michael Matz <matz@suse.de>
6388
6389 * Makefile.in (generated_files): Take out $(simple_generated_c).
6390
8e208874
DK
63912009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
6392
6393 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
6394 (UINTPTR_TYPE): Likewise.
6395
a45e580b
JM
63962009-04-19 Joseph Myers <joseph@codesourcery.com>
6397
6398 PR c/37481
6399 * c-typeck.c (digest_init): Check for initializing an array with a
6400 string literal.
6401
20845d35
JM
64022009-04-19 Joseph Myers <joseph@codesourcery.com>
6403
6404 PR c/19771
6405 * c-semantics.c (pop_stmt_list): Propagate
6406 STATEMENT_LIST_HAS_LABEL to parent statement list.
6407
28143fdd
AN
64082009-04-19 Adam Nemet <anemet@caviumnetworks.com>
6409
6410 * config/mips/mips.h (mips_tune_attr): New macro.
6411 * config/mips/mips.md (cpu): Use it.
6412
da377db9
JM
64132009-04-19 Joseph Myers <joseph@codesourcery.com>
6414
6415 PR c/38243
6416 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
6417 declaring a tag.
6418
3baf459d
DN
64192009-04-19 Diego Novillo <dnovillo@google.com>
6420
6421 * toplev.c (compile_file): Move call to coverage_finish ...
6422 * cgraphunit.c (ipa_passes): ... here.
6423 Call cgraph_process_new_functions.
6424 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
6425 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
6426
b6fa5b01
JH
64272009-04-19 Jan Hubicka <jh@suse.cz>
6428
47f402d1
UB
6429 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
6430 cfun.
b6fa5b01
JH
6431 (dump_cgraph_node): Dump can throw external flag.
6432 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
6433
ca409efd
MLI
64342009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
6435
6436 PR c/32061
6437 PR c++/36954
6438 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
6439 * common.opt (Wlogical-op): Move from here...
6440 * c.opt (Wlogical-op): ... to here.
6441 * c-typeck.c (parser_build_binary_op): Update call to
6442 warn_logical_operator.
6443 * c-opts.c (c_common_post_options): Enable warn_logical_op with
6444 extra_warnings.
6445 * c-common.c (warn_logical_op): Update.
6446 * c-common.h (warn_logical_op): Update declaration.
6447
9db4cdd3
EB
64482009-04-19 Eric Botcazou <ebotcazou@adacore.com>
6449
6450 * tree.c (protected_set_expr_location): Fix formatting.
6451
f37acdf9
JM
64522009-04-18 Joseph Myers <joseph@codesourcery.com>
6453
6454 PR c/27676
6455 * c-typeck.c (readonly_warning): new.
6456 (build_unary_op, build_modify_expr): Use readonly_warning for
6457 storing into something readonly but not const-qualified.
6458
2b4b7036
JM
64592009-04-18 Joseph Myers <joseph@codesourcery.com>
6460
6461 PR c/22367
6462 * c-typeck.c (build_unary_op): Check for taking address of
6463 expression of type void.
6464
3ce62965
JM
64652009-04-18 Joseph Myers <joseph@codesourcery.com>
6466
6467 PR c/35210
6468 * c-typeck.c (build_function_call): Check for calling a function
6469 with qualified void return types. Call require_complete_type when
6470 generating a trap.
6471
2505c5ed
JH
64722009-04-18 Jan Hubicka <jh@suse.cz>
6473
6474 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
6475 Set nothrow flag.
6476 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
6477 can_throw_external flag.
6478 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
6479 * ipa-pure-const.c (ignore_edge): New function.
6480 (propagate): Compute order for NOTHROW computation; set NOTHROWs
6481 only over can_throw_external edges.
6482 (local_pure_const): Add nothrow flag.
6483 * ipa-utils.c (searchc): Add ignore_edge callback.
6484 (ipa_utils_reduced_inorder): Add ignore_edge callback.
6485 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
6486 (set_nothrow_function_flags): Update cgraph.
6487 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
6488
2586ba4b
RG
64892009-04-18 Richard Guenther <rguenther@suse.de>
6490
6491 PR middle-end/39804
6492 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
6493 (fold_stmt): ... this and ...
6494 (fold_stmt_inplace): ... this.
6495 (fold_stmt_1): Fold references in calls and asms.
6496 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
6497
1eefab17
KH
64982009-04-18 Kazu Hirata <kazu@codesourcery.com>
6499
6500 * tree-vrp.c (ssa_name_nonzero_p): Remove.
6501 * tree.h: Remove the prototype for ssa_name_nonzero_p.
6502
aa424b01
KH
65032009-04-18 Kazu Hirata <kazu@codesourcery.com>
6504
6505 * tree.c (function_args_count): Remove.
6506 * tree.h: Remove the prototype for function_args_count.
6507
613a896b
KH
65082009-04-18 Kazu Hirata <kazu@codesourcery.com>
6509
6510 * tree-iterator.c (expr_only): Remove.
6511 * tree.h: Remove the prototype for expr_only.
6512
579e694c
KH
65132009-04-18 Kazu Hirata <kazu@codesourcery.com>
6514
6515 * reginfo.c (cannot_change_mode_set_regs): Remove.
6516 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
6517
ee7e3ad3
AS
65182009-04-08 Anatoly Sokolov <aesok@post.ru>
6519
6520 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
6521 whether operands 0 and 1 overlaps.
6522
92ef7fb1
MLI
65232009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
6524
6525 PR middle-end/36902
6526 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
6527 pointer. Use warning_at instead of warning.
6528 (search_for_addr_array): Likewise.
6529 (check_array_bounds): Likewise.
6530 (check_all_array_refs): Check that the incoming edge is not in the
6531 list of edges to be removed.
6532 (check_all_array_refs): Avoid the temporal pointer.
6533 (vrp_visit_cond_stmt): Fix typo.
6534 (simplify_switch_using_ranges): Handle the case where the switch
6535 index is an integer constant.
6536
0e097268
AN
65372009-04-18 Adam Nemet <anemet@caviumnetworks.com>
6538
6539 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
6540
c782f1dd
KH
65412009-04-18 Kazu Hirata <kazu@codesourcery.com>
6542
6543 * doc/extend.texi, doc/invoke.texi: Fix typos.
6544
668fb0e8
CC
65452009-04-17 Cary Coutant <ccoutant@google.com>
6546
6547 * tree-flow-inline.h (get_lineno): Fix inverted test.
6548
4d4014c1
DN
65492009-04-17 Diego Novillo <dnovillo@google.com>
6550
6551 * tree-ssa-pre.c (create_expression_by_pieces): Remove
6552 assertion for AVAIL_OUT.
6553
2984e1b6
MF
65542009-04-17 Mike Frysinger <vapier@gentoo.org>
6555
6556 PR target/38627
6557 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
6558 * config/sh/linux-atomic.asm: Likewise.
6559
9994a182
DN
65602009-04-17 Diego Novillo <dnovillo@google.com>
6561
6562 * except.c (debug_eh_tree): New.
6563 (struct eh_region, struct eh_status): Move ...
6564 * except.h: ... here.
6565 (add_type_for_runtime): Declare extern.
6566 (lookup_type_for_runtime): Likewise.
6567 (debug_eh_tree): Declare.
6568 * Makefile.in (GTFILES): List except.h before except.c
6569
07485407
DN
65702009-04-17 Diego Novillo <dnovillo@google.com>
6571
47f402d1 6572 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
6573 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
6574 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
6575 (find_vars_r): ... here.
6576 * tree-flow.h (find_referenced_vars_in): Declare.
6577 * tree-ssa-pre.c (create_expression_by_pieces): Assert
6578 that AVAIL_OUT exists for BLOCK.
6579 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
6580 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
6581 (tree-parloops.o): Likewise.
6582
4e53d196
SB
65832009-04-17 Simon Baldwin <simonb@google.com>
6584
6585 * toplev.c (default_tree_printer): Add handling for %E format.
6586
413d3aa8
DN
65872009-04-17 Diego Novillo <dnovillo@google.com>
6588
47f402d1
UB
6589 * tree-pretty-print.c (dump_generic_node): Add break after
6590 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
6591 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
6592 FUNCTION_TYPE together. Call print_struct_decl when printing
6593 structures and TDF_SLIM is not given.
413d3aa8
DN
6594 (print_struct_decl): Fix logic for detecting recursion.
6595
5a691e98
RAE
65962009-04-17 Rafael Avila de Espindola <espindola@google.com>
6597
6598 PR 31567
6599 * gcc.c (create_at_file): New.
6600 (compile_input_file_p): New.
6601 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
6602 * main.c (main): Update call to toplev_main.
6603 * toplev.c (toplev_main): Change signature. Call expandargv.
6604 * toplev.h (toplev_main): Change signature.
6605
9eacf7a6
EB
66062009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6607
6608 * dwarf2out.c (field_byte_offset): Use the type size as the field size
6609 if the latter is not constant.
6610
58298177
DE
66112009-04-17 David Edelsohn <edelsohn@gnu.org>
6612
6613 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
6614
5b4c43d7
EB
66152009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6616
6617 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
6618 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
6619
b51605c4
RG
66202009-04-17 Richard Guenther <rguenther@suse.de>
6621
6622 * tree-ssa-structalias.c (get_constraint_for_component_ref):
6623 Handle component references view-converting an invariant address.
6624
9e3be889
AN
66252009-04-17 Adam Nemet <anemet@caviumnetworks.com>
6626
6627 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
6628 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
6629 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
6630 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
6631 Use @deftypevr rather than @deftypevar.
6632
7c3e9dc3
RG
66332009-04-17 Richard Guenther <rguenther@suse.de>
6634
47f402d1 6635 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
6636 (get_prop_source_stmt): Likewise.
6637 (can_propagate_from): Likewise.
6638
aca600aa
AS
66392009-04-17 Andrew Stubbs <ams@codesourcery.com>
6640
6641 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
6642 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
6643 (--with-multilib-list): Add default value.
6644 * configure: Regenerate.
6645 * Makefile.in (TM_ENDIAN_CONFIG): Define.
6646 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
6647 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
6648 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
6649 Don't add default cpu to multilib list unnecessarily, but do enable
6650 the relevant compiler option..
6651 Add support for --with-multilib-list=<blank> and
6652 --with-multilib-list=!<somelib> to supress unwanted multilibs.
6653 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
6654 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
6655 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
6656 TM_MULTILIB_CONFIG.
6657 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
6658 (MULTILIB_OSDIRNAMES): New variable.
6659 * config/sh/t-1e: Delete file.
6660 * config/sh/t-mlib-sh1: Delete file.
6661 * config/sh/t-mlib-sh2: Delete file.
6662 * config/sh/t-mlib-sh2a: Delete file.
6663 * config/sh/t-mlib-sh2a-nofpu: Delete file.
6664 * config/sh/t-mlib-sh2a-single: Delete file.
6665 * config/sh/t-mlib-sh2a-single-only: Delete file.
6666 * config/sh/t-mlib-sh2e: Delete file.
6667 * config/sh/t-mlib-sh3e: Delete file.
6668 * config/sh/t-mlib-sh4: Delete file.
6669 * config/sh/t-mlib-sh4-nofpu: Delete file.
6670 * config/sh/t-mlib-sh4-single: Delete file.
6671 * config/sh/t-mlib-sh4-single-only: Delete file.
6672 * config/sh/t-mlib-sh4a: Delete file.
6673 * config/sh/t-mlib-sh4a-nofpu: Delete file.
6674 * config/sh/t-mlib-sh4a-single: Delete file.
6675 * config/sh/t-mlib-sh4a-single-only: Delete file.
6676 * config/sh/t-mlib-sh4al: Delete file.
6677 * config/sh/t-mlib-sh5-32media: Delete file.
6678 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
6679 * config/sh/t-mlib-sh5-64media: Delete file.
6680 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
6681 * config/sh/t-mlib-sh5-compact: Delete file.
6682 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
6683 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
6684 * doc/install.texi (Options specification): Add
6685 --with-multilib-list and --with-endian.
6686
cf8aba7f
RAE
66872009-04-17 Rafael Avila de Espindola <espindola@google.com>
6688
6689 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
6690 REVISION_c.
6691 (OBJS-common): Add plugin-version.o.
6692 (plugin-version.o): New.
6693 * gcc-plugin.h (plugin_gcc_version): New.
6694 (plugin_default_version_check): New.
6695 (plugin_init_func, plugin_init): Add version argument.
6696 * plugin-version.c: New.
6697 * plugin.c (str_plugin_gcc_version_name): New.
6698 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
6699 pass it to the init function.
6700 (plugin_default_version_check): New.
6701
61e20b90
RG
67022009-04-17 Richard Guenther <rguenther@suse.de>
6703
6704 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
6705 for decl-vs-decl disambiguation.
6706
90c6fd8a
AK
67072009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
6708
6709 * config/s390/s390.h (s390_tune_attr): New macro definition.
6710 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
6711
9fe9fe04
RG
67122009-04-17 Richard Guenther <rguenther@suse.de>
6713
6714 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
6715 (fold_stmt_r): Likewise.
6716 (maybe_fold_reference): New function.
6717 (fold_gimple_assign): Handle cases fold_stmt_r did.
6718 (fold_stmt): Do not use fold_stmt_r.
6719 (fold_stmt_inplace): Likewise.
6720
7e673273
RG
67212009-04-17 Richard Guenther <rguenther@suse.de>
6722
6723 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
6724 (record_equivalences_from_stmt): Remove useless checks and
6725 simplifications.
6726 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
6727 the type is already suitable.
6728
fabf2749
PB
67292009-04-17 Paolo Bonzini <bonzini@gnu.org>
6730
6731 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
6732
68f7b061
UB
67332009-04-17 Uros Bizjak <ubizjak@gmail.com>
6734
6735 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
6736 (CMPtype): Define as __gcc_CMPtype.
6737
532bfb0a
AJ
67382009-04-17 Aurelien Jarno <aurelien@aurel32.net>
6739
6740 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
6741 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
6742
e3ac77ff
RG
67432009-04-17 Richard Guenther <rguenther@suse.de>
6744
6745 PR tree-optimization/39746
6746 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
6747 special-casing for builtins and static variable use/def.
6748 (call_may_clobber_ref_p_1): Likewise.
6749
7072a650
ILT
67502009-04-16 Ian Lance Taylor <iant@google.com>
6751
6752 * df.h: Include "timevar.h".
6753 (struct df_problem): Change tv_id field to timevar_id_t.
6754 * tree-pass.h: Include "timevar.h".
6755 (struct opt_pass): Change tv_id field to timevar_id_t.
6756 * timevar.h (timevar_id_t): Define TV_NONE.
6757 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
6758 TV_NONE rather than tv_id != 0.
6759 (execute_one_pass): Likewise.
6760 * Makefile.in (DF_H): Add $(TIMEVAR_H).
6761 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
6762 dependencies to $(TREE_PASS_H).
6763 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
6764 to TV_NONE.
6765 (pass_branch_target_load_optimize2): Likewise.
6766 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
6767 (pass_outof_cfg_layout_mode): Likewise.
6768 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
6769 (pass_rebuild_cgraph_edges): Likewise.
6770 (pass_remove_cgraph_callee_edges): Likewise.
6771 * df-core.c (pass_df_initialize_opt): Likewise.
6772 (pass_df_initialize_no_opt): Likewise.
6773 (pass_df_finish): Likewise.
6774 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
6775 * except.c (pass_set_nothrow_function_flags): Likewise.
6776 (pass_convert_to_eh_region_ranges): Likewise.
6777 * final.c (pass_compute_alignments): Likewise.
6778 * function.c (pass_instantiate_virtual_regs): Likewise.
6779 (pass_init_function): Likewise.
6780 (pass_leaf_regs): Likewise.
6781 (pass_match_asm_constraints): Likewise.
6782 * gimple-low.c (pass_lower_cf): Likewise.
6783 (pass_mark_used_blocks): Likewise.
6784 * init-regs.c (pass_initialize_regs): Likewise.
6785 * integrate.c (pass_initial_value_sets): Likewise.
6786 * ira.c (pass_ira): Likewise.
6787 * jump.c (pass_cleanup_barriers): Likewise.
6788 * omp-low.c (pass_expand_omp): Likewise.
6789 (pass_lower_omp): Likewise.
6790 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
6791 * recog.c (pass_split_all_insns): Likewise.
6792 (pass_split_after_reload): Likewise.
6793 (pass_split_before_regstack): Likewise.
6794 (pass_split_before_sched2): Likewise.
6795 (pass_split_for_shorten_branches): Likewise.
6796 * reginfo.c (pass_reginfo_init): Likewise.
6797 (pass_subregs_of_mode_init): Likewise.
6798 (pass_subregs_of_mode_finish): Likewise.
6799 * passes.c (pass_postreload): Likewise.
6800 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
6801 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
6802 (pass_warn_function_return): Likewise.
6803 (pass_warn_function_noreturn): Likewise.
6804 * tree-complex.c (pass_lower_complex): Likewise.
6805 (pass_lower_complex_O0): Likewise.
6806 * tree-if-conv.c (pass_if_conversion): Likewise.
6807 * tree-into-ssa.c (pass_build_ssa): Likewise.
6808 * tree-mudflap.c (pass_mudflap_1): Likewise.
6809 (pass_mudflap_2): Likewise.
6810 * tree-nomudflap.c (pass_mudflap_1): Likewise.
6811 (pass_mudflap_2): Likewise.
6812 * tree-nrv.c (pass_return_slot): Likewise.
6813 * tree-object-size.c (pass_object_sizes): Likewise.
6814 * tree-optimize.c (pass_all_optimizations): Likewise.
6815 (pass_early_local_passes): Likewise.
6816 (pass_all_early_optimizations): Likewise.
6817 (pass_cleanup_cfg): Likewise.
6818 (pass_cleanup_cfg_post_optimizing): Likewise.
6819 (pass_free_datastructures): Likewise.
6820 (pass_free_cfg_annotations): Likewise.
6821 (pass_fixup_cfg): Likewise.
6822 (pass_init_datastructures): Likewise.
6823 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
6824 (pass_late_warn_uninitialized): Likewise.
6825 (pass_update_address_taken): Likewise.
6826 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
6827 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
6828 (pass_cse_sincos): Likewise.
6829 (pass_convert_to_rsqrt): Likewise.
6830 * tree-ssa-structalias.c (pass_build_alias): Likewise.
6831 * tree-stdarg.c (pass_stdarg): Likewise.
6832 * tree-tailcall.c (pass_tail_recursion): Likewise.
6833 (pass_tail_calls): Likewise.
6834 * tree-vect-generic.c (pass_lower_vector): Likewise.
6835 (pass_lower_vector_ssa): Likewise.
6836 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
6837
0051ef59
JM
68382009-04-16 Joseph Myers <joseph@codesourcery.com>
6839
6840 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
6841 XLR entry.
6842 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
6843 Handle -march=xlr.
6844 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
6845 logical and signext.
6846
b3f8558a
KK
68472009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
6848
6849 PR target/39767
6850 * config/sh/predicates.md (arith_operand): Check if the operand
6851 of TRUNCATE is a REG.
6852
f57597d9
KH
68532009-04-16 Kazu Hirata <kazu@codesourcery.com>
6854
6855 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
6856 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
6857
b172d063
KH
68582009-04-16 Kazu Hirata <kazu@codesourcery.com>
6859
6860 * tree-iterator.c (tsi_split_statement_list_after,
6861 tsi_split_statement_list_before): Remove.
6862 * tree-iterator.h: Remove the prototypes for
532bfb0a 6863 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 6864
78fe4f1f
KH
68652009-04-16 Kazu Hirata <kazu@codesourcery.com>
6866
6867 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
6868 * tree-ssa-propagate.h: Remove the prototype for
6869 stmt_makes_single_load.
6870
43dd3201
KH
68712009-04-16 Kazu Hirata <kazu@codesourcery.com>
6872
6873 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
6874 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
6875
4252a4aa
KH
68762009-04-16 Kazu Hirata <kazu@codesourcery.com>
6877
6878 * tree-iterator.c (EXPR_LAST_BODY): Remove.
6879
bfb69968
KH
68802009-04-16 Kazu Hirata <kazu@codesourcery.com>
6881
6882 * except.c (eh_region_outer_p): Remove.
6883 * except.h: Remove the prototype for eh_region_outer_p.
6884
c7db7fa5
KH
68852009-04-16 Kazu Hirata <kazu@codesourcery.com>
6886
6887 * function.c (current_function_assembler_name): Remove.
6888 * function.h: Remove the prototype for
6889 current_function_assembler_name.
6890
efc0b2bd
ILT
68912009-04-16 Ian Lance Taylor <iant@google.com>
6892
532bfb0a 6893 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
6894 (add_reg_note): Call alloc_reg_note.
6895 * rtl.h (alloc_reg_note): Declare.
6896 * combine.c (try_combine): Use alloc_reg_note.
6897 (recog_for_combine, move_deaths): Likewise.
6898 (distribute_notes): Use alloc_reg_note and add_reg_note.
6899 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
6900 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
6901 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
6902
6080348f
VM
69032009-04-16 Vladimir Makarov <vmakarov@redhat.com>
6904
6905 PR rtl-optimization/39762
6906 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
6907 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 6908 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 6909
6080348f
VM
6910 * ira-conflicts.c (process_regs_for_copy): Use function
6911 ira_get_register_move_cost instead of global
6912 ira_register_move_cost.
6913
6914 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
6915 color_pass, move_spill_restore, update_curr_costs): Ditto.
6916
6917 * ira-lives.c (process_single_reg_class_operands): Ditto.
6918
6919 * ira-emit.c (emit_move_list): Ditto.
6920
6921 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
6922 (record_reg_classes): Ditto. Use functions
6923 ira_get_register_move_cost and ira_get_may_move_cost instead of
6924 global vars ira_register_move_cost, ira_may_move_out_cost and
6925 ira_may_move_in_cost.
6926 (record_address_regs): Don't call ira_init_register_move_cost.
6927 Use function ira_get_may_move_cost instead of global
6928 ira_may_move_in_cost.
6929 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 6930 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 6931 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 6932
646bea10
RG
69332009-04-16 Richard Guenther <rguenther@suse.de>
6934
6935 * tree-cfg.c (verify_gimple_assign_binary):
6936 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
6937 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
6938 (create_general_new_stmt): Note that this function is broken.
6939
02e819ff
RAE
69402009-04-16 Rafael Avila de Espindola <espindola@google.com>
6941
6942 * common.opt (fhelp): Add Var(help_flag).
6943 * gcc-plugin.h (plugin_info): Add help.
6944 * plugin.c (plugin_name_args): Add help.
6945 (register_plugin_info): Set plugin->help.
6946 (print_help_one_plugin): New.
6947 (print_plugins_help): New.
6948 * plugin.h (print_plugins_help): New.
6949 * toplev.c (toplev_main): Call print_plugins_help if needed.
6950
ccacdf06
RG
69512009-04-16 Richard Guenther <rguenther@suse.de>
6952
6953 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
6954 (gimple_ior_addresses_taken_1): New function.
6955 (gimple_ior_addresses_taken): Likewise.
6956 * gimple.h (struct gimple_statement_with_ops_base): Remove
6957 addresses_taken member.
6958 (gimple_ior_addresses_taken): Declare.
6959 (gimple_addresses_taken, gimple_addresses_taken_ptr,
6960 gimple_set_addresses_taken): Remove.
6961 * ipa-reference.c (mark_address): New function.
6962 (scan_stmt_for_static_refs): Use it for marking addresses taken.
6963 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
6964 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
6965 (gimple_add_to_addresses_taken): Remove.
6966 (get_tmr_operands): Call mark_address_taken.
6967 (get_asm_expr_operands): Likewise.
6968 (get_expr_operands): Likewise.
6969 (build_ssa_operands): Do not clear the addresses_taken bitmap.
6970 (free_stmt_operands): Do not free it.
6971 * tree-ssa.c (delete_tree_ssa): Likewise.
6972 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
6973
346ef3fa
RG
69742009-04-16 Richard Guenther <rguenther@suse.de>
6975
6976 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
6977 (walk_stmt_load_store_ops): Likewise.
6978 * gimple.c (get_base_loadstore): New function.
6979 (walk_stmt_load_store_addr_ops): Likewise.
6980 (walk_stmt_load_store_ops): Likewise.
6981 * ipa-pure-const.c (check_op): Simplify.
6982 (check_load, check_store): New functions.
6983 (check_stmt): Use walk_stmt_load_store_ops.
6984 * ipa-reference.c (mark_load): Adjust signature.
6985 (mark_store): Likewise.
6986 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
6987
44e9f006
RAE
69882009-04-16 Rafael Avila de Espindola <espindola@google.com>
6989
6990 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
6991 (plugin_info): New.
6992 * opts.c (common_handle_option): Don't call print_version.
6993 * plugin.c (plugin_name_args): Add version.
6994 (register_plugin_info): New.
6995 (register_callback): Handle PLUGIN_INFO.
6996 (try_init_one_plugin): New.
6997 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
6998 if failed to init.
6999 (finalize_one_plugin): New.
7000 (finalize_plugins): New.
7001 (print_one_plugin): New.
7002 (print_plugins_versions): New.
7003 * plugin.h (print_plugins_versions): New.
7004 (finalize_plugins): New.
7005 * toplev.c (compile_file): Don't call initialize_plugins.
7006 (print_version): Call print_plugins_versions.
7007 (toplev_main): Call initialize_plugins. Print version if needed.
7008 Call finalize_plugins.
7009
41fd0f9b
RAE
70102009-04-16 Rafael Avila de Espindola <espindola@google.com>
7011
7012 * common.opt (fversion): New.
7013 * gcc.c (print_version): New.
7014 (process_command): Don't print the version. Just set print_version.
7015 (main): Print version. Call subprocesses if print_version and
7016 verbose_flag are set.
7017 * opts.c (common_handle_option): Handle OPT_fversion.
7018
550918ca 70192009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 7020 Ira Rosen <irar@il.ibm.com>
550918ca
RG
7021
7022 PR tree-optimization/39698
7023 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7024 type of the reduction variable. Only generate the def if
7025 it is needed.
7026
7027 * omp-low.c (expand_omp_for_generic): When converting to a pointer
7028 make sure to first convert to an integer of the same precision.
7029 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7030 the type of the evolution correctly in computing the new
7031 induction variable base.
7032
54634841
RG
70332009-04-16 Richard Guenther <rguenther@suse.de>
7034
7035 PR middle-end/39625
7036 * tree-cfg.c (make_blocks): Split statements with to-be
7037 abnormal SSA names on the lhs.
7038
b6fc2cdb
PB
70392009-04-16 Paolo Bonzini <bonzini@gnu.org>
7040
7041 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
7042 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
7043 * c-typeck.c (really_start_incremental_init): Likewise.
7044 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
7045 (TARGET_INITIALIZER): Remove it.
7046 * target.h (struct target): Remove vector_opaque_p.
7047 * tree.c (build_opaque_vector_type): New.
7048 * tree.h (TYPE_VECTOR_OPAQUE): New.
7049 (build_opaque_vector_type): Declare.
7050 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
7051 * config/rs6000/rs6000.c (build_opaque_vector_type,
7052 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
7053 (rs6000_init_builtins): Use build_opaque_vector_type for
7054 opaque_V4SI_type_node.
7055
a417cdd9
CM
70562009-04-15 Catherine Moore <clm@codesourcery.com>
7057
532bfb0a
AJ
7058 * debug.h (set_name): Declare.
7059 * dwarf2out.c (dwarf2out_set_name): Declare.
7060 (dwarf2_debug_hooks): Add set_name.
7061 (find_AT_string): New.
7062 (add_AT_string): Call find_AT_string.
7063 (dwarf2out_set_name): New.
7064 * cp/decl.c (grokdeclarator): Call set_name.
7065 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
7066 * debug.c (do_nothing_debug_hooks): Likewise.
7067 * dbxout.c (dbx_debug_hooks): Likewise.
7068 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 7069
60839f5d 70702009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 7071
532bfb0a
AJ
7072 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
7073 reg for single-precision FPU.
7074 * config/rs6000/rs6000.md (movsi_internal1): Only for
7075 !TARGET_SINGLE_FPU.
7076 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
7077 single-precision FP regs.
7078
ada39f0b
RG
70792009-04-15 Richard Guenther <rguenther@suse.de>
7080
7081 * omp-low.c (lower_rec_input_clauses): Build correct address
7082 expressions.
7083 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 7084 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
7085 (generate_memset_zero): Fix types.
7086 * tree-profile.c (prepare_instrumented_value): Correctly
7087 widen a pointer.
7088
6866c6e8
ILT
70892009-04-15 Ian Lance Taylor <iant@google.com>
7090
7091 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
7092 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
7093 for -Wall and for -Wc++-compat.
7094 (c_common_post_options): For C++, set warn_enum_compare if not
7095 already set.
7096 * c-tree.h (struct c_expr): Add field original_type.
7097 (build_external_ref): Update declaration.
7098 * c-parser.c (c_parser_braced_init): Set original_type.
7099 (c_parser_initelt): Likewise.
7100 (c_parser_expr_no_commas): Likewise.
7101 (c_parser_conditional_expression): Likewise.
7102 (c_parser_cast_expression): Likewise.
7103 (c_parser_unary_expression): Likewise. Pull setting of
7104 original_code to top of function.
7105 (c_parser_sizeof_expression): Set original_type.
7106 (c_parser_alignof_expression): Likewise.
7107 (c_parser_postfix_expression): Likewise. Pull setting of
7108 original_code to top of function.
532bfb0a 7109 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
7110 (c_parser_postfix_expression_after_primary): Likewise.
7111 (c_parser_expression): Likewise.
7112 * c-typeck.c (build_external_ref): Add type parameter. Change all
7113 callers.
7114 (c_expr_sizeof_expr): Set original_type field.
7115 (parser_build_unary_op): Likewise.
7116 (parser_build_binary_op): Likewise. Optionally warn about
7117 comparisons of enums of different types.
7118 (digest_init): Set original_type field.
7119 (really_start_incremental_init): Likewise.
7120 (push_init_level, pop_init_level): Likewise.
7121 * doc/invoke.texi (Warning Options): -Wenum-compare now
7122 supported in C.
7123
f116fecf
RG
71242009-04-15 Richard Guenther <rguenther@suse.de>
7125
7126 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
7127 out a necessary conversion.
7128 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
7129 names we didn't value number.
7130 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
7131
25e20805
RG
71322009-04-15 Richard Guenther <rguenther@suse.de>
7133
7134 PR tree-optimization/39764
7135 * tree-ssa-ccp.c (get_value): Canonicalize value with
7136 canonicalize_float_value.
7137
90cc3676
JH
71382009-04-15 Jan Hubicka <jh@suse.cz>
7139
7140 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
7141 Wrong version of patch.
7142
6d14c006
JH
71432009-04-15 Jan Hubicka <jh@suse.cz>
7144
7145 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
7146
5afaa917
NS
71472009-04-15 Nathan Sidwell <nathan@codesourcery.com>
7148
7149 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
7150 our distinct integral and vector types.
7151
3b482fca
RAE
71522009-04-15 Rafael Avila de Espindola <espindola@google.com>
7153
7154 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
7155 * init.c (build_vtbl_address): Remove call to assemble_external.
7156
6cd1d2e2
DJ
71572009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
7158
7159 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
7160 output for other floating point modes.
7161
dab71827
DN
71622009-04-14 Diego Novillo <dnovillo@google.com>
7163
7164 * diagnostic.c (diagnostic_report_diagnostic): Do not
7165 warn about loaded plugins for DK_ERROR and DK_WARNING.
7166 * c-decl.c (declspecs_add_type): Move call to
7167 invoke_plugin_callbacks ...
7168 * c-parser.c (c_parser_declspecs): ... here.
7169 * plugin.c (dump_active_plugins): Tidy output.
7170
68a607d8
DN
71712009-04-14 Diego Novillo <dnovillo@google.com>
7172 Le-Chun Wu <lcwu@google.com>
7173
7174 * configure.ac: Add --enable-plugin support.
7175 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
7176 * Makefile.in (PLUGIN_H): Define.
7177 Export ENABLE_PLUGIN and GMPINC to site.exp.
7178 Add PLUGINLIBS to link command.
7179 Add/modify dependencies for plugin.o and files including plugin.h.
7180 (plugin.o): New.
7181 * config.in: Regenerate.
2ba9daa7 7182
68a607d8
DN
7183 * opts.c (common_handle_option): Handle OPT_fplugin_ and
7184 OPT_fplugin_arg_.
7185
71862009-04-14 Le-Chun Wu <lcwu@google.com>
7187
7188 * tree-pass.h (register_one_dump_file): Add a prototype for
7189 register_one_dump_file.
7190 * toplev.c (compile_file): Call initialize_plugins.
7191 (do_compile): Call invoke_plugin_callbacks.
7192 (toplev_main): Call invoke_plugin_callbacks.
7193 * common.opt: Add -fplugin= and -fplugin-arg-.
7194 * gcc-plugin.h: New public header file for plugins to include.
7195 * plugin.c: New source file.
7196 * plugin.h: New internal header file.
7197 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 7198
68a607d8
DN
7199 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
7200
72012009-04-14 Diego Novillo <dnovillo@google.com>
7202
7203 * doc/plugins.texi: New.
7204 * doc/gccint.texi: Add reference to Plugins chapter.
7205 * doc/invoke.texi: Document -fplugin and -fplugin-arg
7206 * diagnostic.c (diagnostic_report_diagnostic): Warn about
7207 loaded plugins, if any.
7208 * timevar.def (TV_PLUGIN_INIT): Define.
7209 (TV_PLUGIN_RUN): Define.
7210 * plugin.c: Include timevar.h
7211 (plugins_active_p): New.
7212 (dump_active_plugins): New.
7213 (debug_active_plugins): New.
7214
50617257
JM
72152009-04-14 Joseph Myers <joseph@codesourcery.com>
7216
7217 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
7218 library paths.
7219 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
7220
b32f6fff
KH
72212009-04-14 Kazu Hirata <kazu@codesourcery.com>
7222
7223 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
7224 the same as a minus without a shift.
7225
85d04fa2
NC
72262009-04-14 Nick Clifton <nickc@redhat.com>
7227
7228 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
7229 comparisons with small integers will always produce a short
7230 branch.
7231
e495a0c8
RAE
72322009-04-14 Rafael Avila de Espindola <espindola@google.com>
7233
7234 Merge:
e495a0c8
RAE
7235 2008-12-19 Diego Novillo <dnovillo@google.com>
7236
532bfb0a 7237 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 7238
ad41bd84 72392009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
7240
7241 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
7242 verification.
7243 (verify_gimple_assign_binary): Likewise. Handle shifts and
7244 rotates correctly.
7245 (verify_gimple_phi): Print the mismatched argument position.
7246 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7247 Fix types.
7248 (vect_update_init_of_dr): Likewise.
7249 * matrix-reorg.c (transform_access_sites): Do what the
7250 comment suggests.
7251 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
7252
60839f5d 72532009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
7254
7255 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
7256 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
7257 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 7258 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
7259 remove duplicate config
7260
b0e2d008
DR
72612009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
7262
7263 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
7264 file_name:line_number type locator of the call site.
2ba9daa7 7265
1244a8b7
VM
72662009-04-13 Vladimir Makarov <vmakarov@redhat.com>
7267
7268 * genautomata.c: Put blank after comma.
7269 (automaton_decls): New.
7270 (struct unit_usage): Add comments to member next.
7271 (store_alt_unit_usage): Keep the list ordered.
7272 (unit_present_on_list_p, equal_alternatives_p): New.
7273 (check_regexp_units_distribution): Check units distribution
7274 correctness correctly.
7275 (main): Don't write automata if error is found. Return correct
7276 exit code.
2ba9daa7 7277
1244a8b7
VM
7278 * config/m68k/cf.md (cfv4_ds): Remove.
7279 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
7280 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
7281
7282 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
7283 power4-load-ext, power4-store, power4-store-update,
7284 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
7285 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
7286 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
7287 power4-sqrt, power4-isync): Modify reservation to make correct
7288 unit distribution to automata.
7289
7290 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
7291 power5-store-update, power5-two, power5-three, power5-lmul,
7292 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 7293
f7dd1864
AN
72942009-04-13 Adam Nemet <anemet@caviumnetworks.com>
7295
7296 * except.c (pass_set_nothrow_function_flags): Set name and add
7297 TODO_dump_func.
7298 (set_nothrow_function_flags): Mention in the dump file when
7299 changing a function to nothrow.
7300
59a1171f
OS
73012009-04-13 Ozkan Sezer <sezeroz@gmail.com>
7302
7303 PR/39066
7304 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
7305 instead of unsigned long.
7306
934c2060
RR
73072009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7308
f7dd1864
AN
7309 * config/arm/arm.c (return_used_this_function): Remove.
7310 (arm_output_function_prologue): Remove use of
934c2060 7311 return_used_this_function.
f7dd1864 7312 (output_return_instruction): Replace use of
934c2060
RR
7313 return_used_this_function
7314 by cfun->machine->return_used_this_function.
f7dd1864
AN
7315 (arm_output_epilogue): Likewise.
7316 (arm_output_function_epilogue): Likewise.
7317 (thumb_unexpanded_epilogue): Likewise.
7318 * config/arm/arm.h (struct machine_function):
934c2060 7319 New member return_used_this_function.
f7dd1864 7320
ae5cc016
MM
73212009-04-12 Mark Mitchell <mark@codesourcery.com>
7322
7323 * doc/install.texi: Correct description of default directory for
7324 --with-gxx-include-dir.
7325
a0ce68df 73262009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
7327
7328 * fold-const.c (build_range_check): Properly deal with enumeral and
7329 boolean base types.
7330
3906a4a1
SB
73312009-04-12 Steven Bosscher <steven@gcc.gnu.org>
7332
7333 * doc/invoke.texi (max_gcse_passes): Remove documentation.
7334 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
7335 * params.h (MAX_GCSE_PASSES): Remove.
7336 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
7337 in sequence. Remove ability to run multiple passes.
7338 (bypass_jumps): Report run as third CPROP pass.
7339
efaadb93
AN
73402009-04-12 Adam Nemet <anemet@caviumnetworks.com>
7341
7342 PR middle-end/39651
7343 * except.c (can_throw_external): Look at each insn in a SEQUENCE
7344 when deciding whether the whole SEQUENCE can throw.
7345
4c48007b
UB
73462009-04-12 Uros Bizjak <ubizjak@gmail.com>
7347
7348 PR target/39740
7349 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
7350 offseted label references.
7351
b4104018
JH
73522009-04-11 Jan Hubicka <jh@suse.cz>
7353
7354 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
7355
32848948
RG
73562009-04-11 Richard Guenther <rguenther@suse.de>
7357
7358 PR middle-end/39732
7359 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
7360 return variables as TREE_ADDRESSABLE.
7361
8810712e
RG
73622009-04-11 Richard Guenther <rguenther@suse.de>
7363
7364 PR tree-optimization/39713
7365 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
7366 reference trees have SSA_NAME operands.
7367
fa78c0c1
RG
73682009-04-11 Richard Guenther <rguenther@suse.de>
7369
7370 PR c/39712
7371 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
7372 address expressions.
7373
4d722130
DK
73742009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
7375
7376 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
7377 match changes in Cygwin 1.7
7378 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
7379 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
7380
567a90f5
PB
73812009-04-10 Paolo Bonzini <bonzini@gnu.org>
7382
7383 PR tree-optimization/39701
7384 * doc/invoke.texi (Optimization Options): Document change in
7385 meaning and initialization of -fdelete-null-pointer-checks.
7386
1ad2f450
L
73872009-04-10 H.J. Lu <hongjiu.lu@intel.com>
7388
7389 PR middle-end/39701
7390 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
7391
7392 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
7393 here.
7394
7395 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
7396
1afc5373
CF
73972009-04-10 Chao-ying Fu <fu@mips.com>
7398
7399 * doc/tm.texi (Instruction Output): Document
7400 TARGET_ASM_FINAL_POSTSCAN_INSN.
7401 * target.h (final_postscan_insn): New field in asm_out.
7402 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7403 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
7404 * final.c (final_scan_insn): Call
7405 targetm.asm_out.final_postscan_insn after outputting
7406 an asm macro and a normal instruction.
7407
7408 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
7409 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
7410 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
7411 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
7412 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7413
4d35e75c
PB
74142009-04-10 Paolo Bonzini <bonzini@gnu.org>
7415
7416 PR middle-end/39701
1ad2f450
L
7417 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
7418 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 7419
62c49b83
L
74202009-04-10 H.J. Lu <hongjiu.lu@intel.com>
7421
7422 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
7423
80558628
L
74242009-04-09 H.J. Lu <hongjiu.lu@intel.com>
7425
7426 PR target/39678
7427 * config/i386/i386.c (classify_argument): Handle SCmode with
7428 (bit_offset % 64) != 0.
7429
8c70d28b
SL
74302009-04-09 Sandra Loosemore <sandra@codesourcery.com>
7431
7432 * doc/invoke.texi (Optimize Options): Add cross-reference to
7433 -Q --help=optimizers examples.
7434
e1ff19bf
BE
74352009-04-10 Ben Elliston <bje@au.ibm.com>
7436
7437 PR target/36800
7438 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
7439 regalign for the reg == fpr and TDmode case.
7440
52daca75
DA
74412009-04-09 David Ayers <ayers@fsfe.org>
7442
7443 PR objc/29200
7444 * objc/objc-act.c (warn_with_method): Remove helper function.
7445 (check_duplicates): Call warning and inform directly.
7446 (really_start_method): Likewise.
7447
b45f0e58
PB
74482009-04-09 Paolo Bonzini <bonzini@gnu.org>
7449
7450 * expmed.c (expand_divmod): Always use a comparison for a division
7451 by a large unsigned integer.
7452
1ad2f450
L
7453 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
7454 for things others than variables or functions as nonzero.
b45f0e58 7455
748086b7
JJ
74562009-04-09 Nick Clifton <nickc@redhat.com>
7457
7458 * unwind-compat.c: Change copyright header to refer to version
7459 3 of the GNU General Public License with version 3.1 of the
7460 GCC Runtime Library Exception and to point readers at the
7a715bba 7461 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
7462 * config/alpha/crtfastmath.c: Likewise.
7463 * config/alpha/linux-unwind.h: Likewise.
7464 * config/alpha/qrnnd.asm: Likewise.
7465 * config/alpha/vms-crt0-64.c: Likewise.
7466 * config/alpha/vms-crt0.c: Likewise.
7467 * config/alpha/vms-dwarf2.asm: Likewise.
7468 * config/alpha/vms-dwarf2eh.asm: Likewise.
7469 * config/alpha/vms-psxcrt0-64.c: Likewise.
7470 * config/alpha/vms-psxcrt0.c: Likewise.
7471 * config/alpha/vms_tramp.asm: Likewise.
7472 * config/arc/initfini.c: Likewise.
7473 * config/arc/lib1funcs.asm: Likewise.
7474 * config/arm/bpabi-v6m.S: Likewise.
7475 * config/arm/bpabi.S: Likewise.
7476 * config/arm/bpabi.c: Likewise.
7477 * config/arm/crti.asm: Likewise.
7478 * config/arm/crtn.asm: Likewise.
7479 * config/arm/ieee754-df.S: Likewise.
7480 * config/arm/ieee754-sf.S: Likewise.
7481 * config/arm/lib1funcs.asm: Likewise.
7482 * config/arm/libunwind.S: Likewise.
7483 * config/arm/linux-atomic.c: Likewise.
7484 * config/arm/mmintrin.h: Likewise.
7485 * config/arm/pr-support.c: Likewise.
7486 * config/arm/unaligned-funcs.c: Likewise.
7487 * config/arm/unwind-arm.c: Likewise.
7488 * config/arm/unwind-arm.h: Likewise.
7489 * config/avr/libgcc.S: Likewise.
7490 * config/bfin/crti.s: Likewise.
7491 * config/bfin/crtlibid.s: Likewise.
7492 * config/bfin/crtn.s: Likewise.
7493 * config/bfin/lib1funcs.asm: Likewise.
7494 * config/bfin/linux-unwind.h: Likewise.
7495 * config/cris/arit.c: Likewise.
7496 * config/cris/cris_abi_symbol.c: Likewise.
7497 * config/darwin-64.c: Likewise.
7498 * config/darwin-crt2.c: Likewise.
7499 * config/darwin-crt3.c: Likewise.
7500 * config/darwin.h: Likewise.
7501 * config/dbxelf.h: Likewise.
7502 * config/dfp-bit.c: Likewise.
7503 * config/dfp-bit.h: Likewise.
7504 * config/elfos.h: Likewise.
7505 * config/fixed-bit.c: Likewise.
7506 * config/fixed-bit.h: Likewise.
7507 * config/fp-bit.c: Likewise.
7508 * config/fp-bit.h: Likewise.
7509 * config/fr30/crti.asm: Likewise.
7510 * config/fr30/crtn.asm: Likewise.
7511 * config/fr30/lib1funcs.asm: Likewise.
7512 * config/freebsd-spec.h: Likewise.
7513 * config/frv/cmovd.c: Likewise.
7514 * config/frv/cmovh.c: Likewise.
7515 * config/frv/cmovw.c: Likewise.
7516 * config/frv/frvbegin.c: Likewise.
7517 * config/frv/frvend.c: Likewise.
7518 * config/frv/lib1funcs.asm: Likewise.
7519 * config/glibc-stdint.h: Likewise.
7520 * config/h8300/clzhi2.c: Likewise.
7521 * config/h8300/crti.asm: Likewise.
7522 * config/h8300/crtn.asm: Likewise.
7523 * config/h8300/ctzhi2.c: Likewise.
7524 * config/h8300/fixunssfsi.c: Likewise.
7525 * config/h8300/lib1funcs.asm: Likewise.
7526 * config/h8300/parityhi2.c: Likewise.
7527 * config/h8300/popcounthi2.c: Likewise.
7528 * config/i386/ammintrin.h: Likewise.
7529 * config/i386/att.h: Likewise.
7530 * config/i386/avxintrin.h: Likewise.
7531 * config/i386/biarch64.h: Likewise.
7532 * config/i386/bmmintrin.h: Likewise.
7533 * config/i386/cpuid.h: Likewise.
7534 * config/i386/cross-stdarg.h: Likewise.
7535 * config/i386/crtfastmath.c: Likewise.
7536 * config/i386/crtprec.c: Likewise.
7537 * config/i386/cygming-crtbegin.c: Likewise.
7538 * config/i386/cygming-crtend.c: Likewise.
7539 * config/i386/cygwin.asm: Likewise.
7540 * config/i386/emmintrin.h: Likewise.
7541 * config/i386/gmm_malloc.h: Likewise.
7542 * config/i386/gthr-win32.c: Likewise.
7543 * config/i386/i386.h: Likewise.
7544 * config/i386/immintrin.h: Likewise.
7545 * config/i386/linux-unwind.h: Likewise.
7546 * config/i386/linux64.h: Likewise.
7547 * config/i386/mm3dnow.h: Likewise.
7548 * config/i386/mmintrin-common.h: Likewise.
7549 * config/i386/mmintrin.h: Likewise.
7550 * config/i386/nmmintrin.h: Likewise.
7551 * config/i386/pmm_malloc.h: Likewise.
7552 * config/i386/pmmintrin.h: Likewise.
7553 * config/i386/smmintrin.h: Likewise.
7554 * config/i386/sol2-c1.asm: Likewise.
7555 * config/i386/sol2-ci.asm: Likewise.
7556 * config/i386/sol2-cn.asm: Likewise.
7557 * config/i386/sol2-gc1.asm: Likewise.
7558 * config/i386/tmmintrin.h: Likewise.
7559 * config/i386/unix.h: Likewise.
7560 * config/i386/w32-unwind.h: Likewise.
7561 * config/i386/wmmintrin.h: Likewise.
7562 * config/i386/x86-64.h: Likewise.
7563 * config/i386/x86intrin.h: Likewise.
7564 * config/i386/xmmintrin.h: Likewise.
7565 * config/ia64/crtbegin.asm: Likewise.
7566 * config/ia64/crtend.asm: Likewise.
7567 * config/ia64/crtfastmath.c: Likewise.
7568 * config/ia64/crti.asm: Likewise.
7569 * config/ia64/crtn.asm: Likewise.
7570 * config/ia64/fde-glibc.c: Likewise.
7571 * config/ia64/lib1funcs.asm: Likewise.
7572 * config/ia64/linux-unwind.h: Likewise.
7573 * config/ia64/quadlib.c: Likewise.
7574 * config/ia64/unwind-ia64.c: Likewise.
7575 * config/linux.h: Likewise.
7576 * config/m32c/m32c-lib1.S: Likewise.
7577 * config/m32c/m32c-lib2-trapv.c: Likewise.
7578 * config/m32c/m32c-lib2.c: Likewise.
7579 * config/m32r/initfini.c: Likewise.
7580 * config/m68hc11/larith.asm: Likewise.
7581 * config/m68hc11/m68hc11-crt0.S: Likewise.
7582 * config/m68k/cf.md: Likewise.
7583 * config/m68k/crti.s: Likewise.
7584 * config/m68k/crtn.s: Likewise.
7585 * config/m68k/lb1sf68.asm: Likewise.
7586 * config/m68k/linux-unwind.h: Likewise.
7587 * config/mcore/crti.asm: Likewise.
7588 * config/mcore/crtn.asm: Likewise.
7589 * config/mcore/lib1.asm: Likewise.
7590 * config/mips/linux-unwind.h: Likewise.
7591 * config/mips/loongson.h: Likewise.
7592 * config/mips/mips16.S: Likewise.
7593 * config/mmix/crti.asm: Likewise.
7594 * config/mmix/crtn.asm: Likewise.
7595 * config/pa/fptr.c: Likewise.
7596 * config/pa/hpux-unwind.h: Likewise.
7597 * config/pa/lib2funcs.asm: Likewise.
7598 * config/pa/linux-atomic.c: Likewise.
7599 * config/pa/linux-unwind.h: Likewise.
7600 * config/pa/milli64.S: Likewise.
7601 * config/pa/quadlib.c: Likewise.
7602 * config/pa/stublib.c: Likewise.
7603 * config/picochip/libgccExtras/adddi3.asm: Likewise.
7604 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
7605 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
7606 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
7607 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
7608 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
7609 * config/picochip/libgccExtras/divmod15.asm: Likewise.
7610 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
7611 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
7612 * config/picochip/libgccExtras/longjmp.asm: Likewise.
7613 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
7614 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
7615 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
7616 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
7617 * config/picochip/libgccExtras/setjmp.asm: Likewise.
7618 * config/picochip/libgccExtras/subdi3.asm: Likewise.
7619 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
7620 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
7621 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
7622 * config/rs6000/750cl.h: Likewise.
7623 * config/rs6000/altivec.h: Likewise.
7624 * config/rs6000/biarch64.h: Likewise.
7625 * config/rs6000/crtresfpr.asm: Likewise.
7626 * config/rs6000/crtresgpr.asm: Likewise.
7627 * config/rs6000/crtresxfpr.asm: Likewise.
7628 * config/rs6000/crtresxgpr.asm: Likewise.
7629 * config/rs6000/crtsavfpr.asm: Likewise.
7630 * config/rs6000/crtsavgpr.asm: Likewise.
7631 * config/rs6000/darwin-asm.h: Likewise.
7632 * config/rs6000/darwin-fallback.c: Likewise.
7633 * config/rs6000/darwin-fpsave.asm: Likewise.
7634 * config/rs6000/darwin-ldouble.c: Likewise.
7635 * config/rs6000/darwin-tramp.asm: Likewise.
7636 * config/rs6000/darwin-unwind.h: Likewise.
7637 * config/rs6000/darwin-vecsave.asm: Likewise.
7638 * config/rs6000/darwin-world.asm: Likewise.
7639 * config/rs6000/e500crtres32gpr.asm: Likewise.
7640 * config/rs6000/e500crtres64gpr.asm: Likewise.
7641 * config/rs6000/e500crtres64gprctr.asm: Likewise.
7642 * config/rs6000/e500crtrest32gpr.asm: Likewise.
7643 * config/rs6000/e500crtrest64gpr.asm: Likewise.
7644 * config/rs6000/e500crtresx32gpr.asm: Likewise.
7645 * config/rs6000/e500crtresx64gpr.asm: Likewise.
7646 * config/rs6000/e500crtsav32gpr.asm: Likewise.
7647 * config/rs6000/e500crtsav64gpr.asm: Likewise.
7648 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
7649 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
7650 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
7651 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
7652 * config/rs6000/eabi-ci.asm: Likewise.
7653 * config/rs6000/eabi-cn.asm: Likewise.
7654 * config/rs6000/eabi.asm: Likewise.
7655 * config/rs6000/linux-unwind.h: Likewise.
7656 * config/rs6000/linux64.h: Likewise.
7657 * config/rs6000/paired.h: Likewise.
7658 * config/rs6000/paired.md: Likewise.
7659 * config/rs6000/ppc64-fp.c: Likewise.
7660 * config/rs6000/ppu_intrinsics.h: Likewise.
7661 * config/rs6000/rs6000.h: Likewise.
7662 * config/rs6000/si2vmx.h: Likewise.
7663 * config/rs6000/sol-ci.asm: Likewise.
7664 * config/rs6000/sol-cn.asm: Likewise.
7665 * config/rs6000/spe.h: Likewise.
7666 * config/rs6000/spu2vmx.h: Likewise.
7667 * config/rs6000/sysv4.h: Likewise.
7668 * config/rs6000/tramp.asm: Likewise.
7669 * config/rs6000/vec_types.h: Likewise.
7670 * config/s390/linux-unwind.h: Likewise.
7671 * config/s390/tpf-unwind.h: Likewise.
7672 * config/score/crti.asm: Likewise.
7673 * config/score/crtn.asm: Likewise.
7674 * config/sh/crt1.asm: Likewise.
7675 * config/sh/crti.asm: Likewise.
7676 * config/sh/crtn.asm: Likewise.
7677 * config/sh/divtab-sh4-300.c: Likewise.
7678 * config/sh/divtab-sh4.c: Likewise.
7679 * config/sh/divtab.c: Likewise.
7680 * config/sh/lib1funcs-4-300.asm: Likewise.
7681 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
7682 * config/sh/lib1funcs.asm: Likewise.
7683 * config/sh/lib1funcs.h: Likewise.
7684 * config/sh/linux-atomic.asm: Likewise.
7685 * config/sh/linux-unwind.h: Likewise.
7686 * config/sh/shmedia.h: Likewise.
7687 * config/sh/sshmedia.h: Likewise.
7688 * config/sh/ushmedia.h: Likewise.
7689 * config/sparc/crtfastmath.c: Likewise.
7690 * config/sparc/linux-unwind.h: Likewise.
7691 * config/sparc/sol2-c1.asm: Likewise.
7692 * config/sparc/sol2-ci.asm: Likewise.
7693 * config/sparc/sol2-cn.asm: Likewise.
7694 * config/spu/divmodti4.c: Likewise.
7695 * config/spu/divv2df3.c: Likewise.
7696 * config/spu/float_disf.c: Likewise.
7697 * config/spu/float_unsdidf.c: Likewise.
7698 * config/spu/float_unsdisf.c: Likewise.
7699 * config/spu/float_unssidf.c: Likewise.
7700 * config/spu/mfc_multi_tag_release.c: Likewise.
7701 * config/spu/mfc_multi_tag_reserve.c: Likewise.
7702 * config/spu/mfc_tag_release.c: Likewise.
7703 * config/spu/mfc_tag_reserve.c: Likewise.
7704 * config/spu/mfc_tag_table.c: Likewise.
7705 * config/spu/multi3.c: Likewise.
7706 * config/spu/spu_internals.h: Likewise.
7707 * config/spu/spu_intrinsics.h: Likewise.
7708 * config/spu/spu_mfcio.h: Likewise.
7709 * config/spu/vec_types.h: Likewise.
7710 * config/spu/vmx2spu.h: Likewise.
7711 * config/stormy16/stormy16-lib2.c: Likewise.
7712 * config/svr4.h: Likewise.
7713 * config/sync.c: Likewise.
7714 * config/v850/lib1funcs.asm: Likewise.
7715 * config/vxlib-tls.c: Likewise.
7716 * config/vxlib.c: Likewise.
7717 * config/vxworks-dummy.h: Likewise.
7718 * config/xtensa/crti.asm: Likewise.
7719 * config/xtensa/crtn.asm: Likewise.
7720 * config/xtensa/ieee754-df.S: Likewise.
7721 * config/xtensa/ieee754-sf.S: Likewise.
7722 * config/xtensa/lib1funcs.asm: Likewise.
7723 * config/xtensa/lib2funcs.S: Likewise.
7724 * config/xtensa/linux-unwind.h: Likewise.
7725 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7726 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
7727 * coretypes.h: Likewise.
7728 * crtstuff.c: Likewise.
7729 * defaults.h: Likewise.
7730 * dwarf2.h: Likewise.
7731 * emutls.c: Likewise.
7732 * gbl-ctors.h: Likewise.
7733 * gcov-io.h: Likewise.
7734 * ginclude/float.h: Likewise.
7735 * ginclude/iso646.h: Likewise.
7736 * ginclude/stdarg.h: Likewise.
7737 * ginclude/stdbool.h: Likewise.
7738 * ginclude/stddef.h: Likewise.
7739 * ginclude/stdfix.h: Likewise.
7740 * ginclude/stdint-gcc.h: Likewise.
7741 * ginclude/tgmath.h: Likewise.
7742 * gthr-aix.h: Likewise.
7743 * gthr-dce.h: Likewise.
7744 * gthr-gnat.c: Likewise.
7745 * gthr-gnat.h: Likewise.
7746 * gthr-lynx.h: Likewise.
7747 * gthr-mipssde.h: Likewise.
7748 * gthr-nks.h: Likewise.
7749 * gthr-posix.c: Likewise.
7750 * gthr-posix.h: Likewise.
7751 * gthr-posix95.h: Likewise.
7752 * gthr-rtems.h: Likewise.
7753 * gthr-single.h: Likewise.
7754 * gthr-solaris.h: Likewise.
7755 * gthr-tpf.h: Likewise.
7756 * gthr-vxworks.h: Likewise.
7757 * gthr-win32.h: Likewise.
7758 * gthr.h: Likewise.
7759 * libgcc2.c: Likewise.
7760 * libgcc2.h: Likewise.
7761 * libgcov.c: Likewise.
7762 * tsystem.h: Likewise.
7763 * typeclass.h: Likewise.
7764 * unwind-c.c: Likewise.
7765 * unwind-compat.h: Likewise.
7766 * unwind-dw2-fde-compat.c: Likewise.
7767 * unwind-dw2-fde-darwin.c: Likewise.
7768 * unwind-dw2-fde-glibc.c: Likewise.
7769 * unwind-dw2-fde.c: Likewise.
7770 * unwind-dw2-fde.h: Likewise.
7771 * unwind-dw2.c: Likewise.
7772 * unwind-dw2.h: Likewise.
7773 * unwind-generic.h: Likewise.
7774 * unwind-pe.h: Likewise.
7775 * unwind-sjlj.c: Likewise.
7776 * unwind.inc: Likewise.
7777 * config/arm/neon-gen.ml: Change generated copyright header to
7778 refer to version 3 of the GNU General Public License with
7779 version 3.1 of the GCC Runtime Library Exception and to point
7780 readers at the COPYING3 and COPYING3.RUNTIME files and the
7781 FSF's license web page.
7782 * config/arm/arm_neon.h: Regenerate.
7783
77842009-04-09 Jakub Jelinek <jakub@redhat.com>
7785
7786 * config/cris/cris.md: Change copyright header to refer to version
7787 3 of the GNU General Public License.
7788 * doc/install.texi2html: Change copyright header to refer to version
7789 3 of the GNU General Public License and to point readers at the
7790 COPYING3 file and the FSF's license web page.
7791 * config/vax/linux.h: Likewise.
7792
4a77c72b
PB
77932009-04-09 Paolo Bonzini <bonzini@gnu.org>
7794
1ad2f450
L
7795 * config/i386/i386.md (cmpcc): New.
7796 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
7797 (sync_compare_and_swap_cc*): Delete.
7798
7799 * config/s390/s390.c (s390_compare_emitted): Remove.
7800 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
7801 s390_compare_emitted used to be handled. Assert that modes match.
7802 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
7803 refer to sync_compare_and_swap_ccsi.
7804 * config/s390/s390.h (s390_compare_emitted): Remove.
7805 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
7806 instead of s390_compare_emitted.
7807 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
7808 instead of s390_compare_emitted.
7809 * config/s390/s390.md (cmpcc): New.
7810 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
7811 CC_REGNUM, do not pretend it's set.
7812 (sync_compare_and_swap_cc*): Delete.
7813 * config/s390/predicates.md (cc_reg_operand): New.
7814
7815 * expr.c (sync_compare_and_swap_cc): Delete.
7816 * optabs.h (sync_compare_and_swap_cc): Delete.
7817 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
7818 is being used with can_compare_p.
7819 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
7820 (find_cc_set): New.
7821 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
7822 look for a MODE_CC set instead. Use emit_store_flag.
7823 (expand_compare_and_swap_loop): Likewise, with some additional
7824 complication to avoid a force_reg when useless. Use
7825 emit_cmp_and_jump_insns.
7826 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
7827 * doc/md.texi (sync_compare_and_swap_cc): Merge with
7828 sync_compare_and_swap documentation.
4a77c72b 7829
0c0efb33
JH
78302009-04-09 Jan Hubicka <jh@suse.cz>
7831
7832 * except.c (find_prev_try): Break out from ....
7833 (duplicate_eh_regions): ... here; properly update prev_try pointers
7834 when duplication part of tree.
7835 (dump_eh_tree): Improve dumping.
7836 (verify_eh_region): New.
7837 (verify_eh_tree): Use it.
7838
22a65a54
RG
78392009-04-06 Richard Guenther <rguenther@suse.de>
7840
7841 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
7842 &ARRAY addresses by adjusting their types and prepending
7843 a conversion.
7844 * tree-cfg.c (verify_gimple_assign_single): Verify that
7845 addresses are correct.
7846
f76968e6
RG
78472009-04-09 Richard Guenther <rguenther@suse.de>
7848
7849 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
7850 indices into an array reference if possible.
7851 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7852 Fold POINTER_PLUS_EXPR statements with invariant address.
7853
c90c5fb5
AM
78542009-04-09 Alan Modra <amodra@bigpond.net.au>
7855
7856 PR target/39634
7857 * config.gcc (powerpc64-*-linux*): Always build biarch.
7858
17cede2e
JM
78592009-04-09 Joseph Myers <joseph@codesourcery.com>
7860
7861 PR c/39613
7862 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
7863 it and pedwarn if this results in an INTEGER_CST.
7864
a3337ea2
KG
78652009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7866
7867 * doc/install.texi: Update minimum GMP version. Remove obsolete
7868 text in MPFR section.
7869
ce9ba79b
JJ
78702009-04-08 Jakub Jelinek <jakub@redhat.com>
7871
7872 * dwarf2out.c (class_scope_p): New static inline.
7873 (class_or_namespace_scope_p): Use it.
7874 (gen_variable_die): Use DW_TAG_member tag for static data member
7875 declarations instead of DW_TAG_variable.
7876
4f0ae266
JJ
7877 PR middle-end/39573
7878 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
7879 variables.
7880
d27f0ddc
RG
78812009-04-08 Richard Guenther <rguenther@suse.de>
7882
7883 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
7884 valueize random data.
7885
557cc596
DE
78862009-04-08 David Edelsohn <edelsohn@gnu.org>
7887
7888 * config.gcc (aix tm_file): Add aix-stdint.h.
7889 (aix tm clause use_gcc_stdint): Set to wrap.
7890 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 7891
75ccc1e7
RG
78922009-04-08 Richard Guenther <rguenther@suse.de>
7893
7894 PR middle-end/36291
7895 * tree-dfa.c (add_referenced_var): Do not recurse into
7896 global initializers.
7897 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
7898 exposed variables.
7899 (fold_const_aggregate_ref): Likewise.
7900
c6963675
PB
79012009-04-08 Paolo Bonzini <bonzini@gnu.org>
7902
6c44cf79
L
7903 * recog.c (ordered_comparison_operator): New.
7904 * gensupport.c (std_preds): Add it.
c6963675
PB
7905 * doc/md.texi (Machine-Independent Predicates): Document it.
7906
6d07ad98
JH
79072009-04-08 Jan Hubicka <jh@suse.cz>
7908
7909 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
7910 * function.h (rtl_eh): Remove exception_handler_label_map.
7911 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
7912 remove_exception_handler_label, for_each_eh_label_1): Remove.
7913 (rtl_remove_unreachable_regions): Remove.
7914 (convert_from_eh_region_ranges): Do not remove unreachable regions.
7915 (find_exception_handler_labels): Don't build the hashtable.
7916 (maybe_remove_eh_handler): Remove.
7917 (for_each_eh_label): Rewrite to walk the tree.
7918 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
7919 * except.h (maybe_remove_eh_handler): Remove.
7920 * passes.c (init_optimization_passes): Schedule second EH cleanup
7921 before out-of-ssa.
7922 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
7923 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
7924
7ddf71e3
PB
79252009-04-08 Paolo Bonzini <bonzini@gnu.org>
7926
7927 * genoutput.c (validate_optab_operands): New.
7928 (gen_insn, gen_expand): Call it.
7929
7930 * genflags.c (gen_insn): Detect misused iterators.
7931 (main): Pass line_no to gen_insn, exit with status 1 on error.
7932
7933 * genextract.c (line_no): Make global.
7934 (VEC_safe_set_locstr): Change assertion to error message.
7935 (main): Exit with status 1 on error.
7936
4d84fe7c
JM
79372009-04-08 Joseph Myers <joseph@codesourcery.com>
7938
7939 PR c/39614
7940 PR c/39673
7941 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7942 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7943 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
7944 * c-convert.c (convert): Do not call fold on results of conversion
7945 functions when the result is a C_MAYBE_CONST_EXPR.
7946 * c-parser.c (c_parser_postfix_expression): Do not fold condition
7947 of __builtin_choose_expr.
7948 * c-typeck.c (remove_c_maybe_const_expr): New.
7949 (build_unary_op, build_conditional_expr, build_compound_expr,
7950 build_binary_op, c_objc_common_truthvalue_conversion): Call
7951 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
7952 integer operands.
7953
60839f5d 79542009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 7955
2ba9daa7 7956 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 7957 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 7958
8e481a2c
DS
79592009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
7960
7961 PR bootstrap/39660
7962 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
7963 mix declarations and code.
7964
ee618c17
BE
79652009-04-08 Ben Elliston <bje@au.ibm.com>
7966
7967 * gcc.c: Replace `CC' with `GCC' throughout.
7968
f2a758a2
L
79692009-04-07 H.J. Lu <hongjiu.lu@intel.com>
7970
7971 * doc/invoke.texi: Document Atom support.
7972
6ea2bd47
JM
79732009-04-07 Jason Merrill <jason@redhat.com>
7974
7975 PR c++/25185
7976 * c-common.h, c-common.c: Add flag_pretty_templates.
7977 * c-opts.c (c_common_handle_option): Set it.
7978 * c.opt: Add -fno-pretty-templates.
7979 * doc/invoke.texi (C++ Dialect Options): Likewise.
7980
fcb82ab0
UB
79812009-04-07 Uros Bizjak <ubizjak@gmail.com>
7982
7983 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
7984 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
7985 (ia64_expand_builtin): Likewise.
7986
dc5e7298
MJ
79872009-04-07 Martin Jambor <mjambor@suse.cz>
7988
7989 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
7990 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
7991 ADDR_EXPRS are include too.
7992
0609b355
RG
79932009-04-07 Richard Guenther <rguenther@suse.de>
7994
7995 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
7996 decls are only used if passes as parameters or if they are
7997 local statics and the call is not to a builtin.
7998 (call_may_clobber_ref_p_1): Likewise.
7999
d8e535fa
PB
80002009-04-07 Paolo Bonzini <bonzini@gnu.org>
8001
8002 * expr.c (do_store_flag): Remove last argument. Simplify code
8003 to avoid duplication of tests already done by can_compare_p.
8004 (expand_expr_real_1): Adjust caller.
8005
c3c64f50
PB
80062009-04-07 Paolo Bonzini <bonzini@gnu.org>
8007
fcb82ab0
UB
8008 * optabs.c (can_compare_p): Test the predicate of a
8009 cbranch and cstore pattern.
c3c64f50 8010
9a53bc17
PB
80112009-04-07 Paolo Bonzini <bonzini@gnu.org>
8012
fcb82ab0
UB
8013 * expr.c (convert_move): Use emit_store_flag instead of
8014 "emulating" it.
9a53bc17 8015
67b8f1c1
PB
80162009-04-07 Paolo Bonzini <bonzini@gnu.org>
8017
fcb82ab0
UB
8018 * config/i386/i386.c (ix86_compare_emitted): Remove.
8019 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8020 ix86_compare_op0 like ix86_compare_emitted used to be handled.
8021 * config/i386/i386.h (ix86_compare_emitted): Remove.
8022 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8023 instead of ix86_compare_emitted.
8024 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 8025
44509946
AS
80262009-04-07 Andrew Stubbs <ams@codesourcery.com>
8027
8028 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8029 Add t-sysroot-suffix to tmake_file.
8030 * config/print-sysroot-suffix.sh: New file.
8031 * config/t-sysroot-suffix: New file.
8032
ca22d882
BE
80332009-04-07 Ben Elliston <bje@au.ibm.com>
8034
8035 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8036 as the latter produces a warning when the target does not support
8037 infinity.
8038
95aac11b
BE
80392009-04-07 Ben Elliston <bje@au.ibm.com>
8040
8041 * dfp.c: Replace type punning assignments with memcpy throughout.
8042 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 8043
633dd061
AM
80442009-04-07 Alan Modra <amodra@bigpond.net.au>
8045
8046 PR target/39634
8047 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
8048 Include soft-fp/t-softfp after rs6000/t-linux64.
8049
fe0a25ec
EB
80502009-04-06 Eric Botcazou <ebotcazou@adacore.com>
8051
8052 * stor-layout.c (set_sizetype): Use the full precision of their
8053 machine mode for bitsize types.
8054
0c011bc3
L
80552009-04-06 H.J. Lu <hongjiu.lu@intel.com>
8056
8057 * config/i386/i386.md: Revert 2 accidental checkins.
8058
b6837b94 80592009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 8060 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
8061 H.J. Lu <hongjiu.lu@intel.com>
8062
8063 Atom pipeline model, tuning and insn selection.
8064 * config.gcc (atom): Add atom config options and target.
8065
8066 * config/i386/atom.md: New.
8067
8068 * config/i386/i386.c (atom_cost): New cost.
8069 (m_ATOM): New macro flag.
8070 (initial_ix86_tune_features): Set m_ATOM.
8071 (x86_accumulate_outgoing_args): Likewise.
8072 (x86_arch_always_fancy_math_387): Likewise.
8073 (processor_target): Add Atom cost.
8074 (cpu_names): Add Atom cpu name.
8075 (override_options): Set Atom ISA.
8076 (ix86_issue_rate): New case PROCESSOR_ATOM.
8077 (ix86_adjust_cost): Likewise.
8078
8079 * config/i386/i386.h (TARGET_ATOM): New target macro.
8080 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
8081 (TARGET_OPT_AGU): New target option.
8082 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
8083 (processor_type): Add PROCESSOR_ATOM.
8084
8085 * config/i386/i386.md (cpu): Add new value "atom".
8086 (use_carry, movu): New attr.
8087 (atom.md): Include atom.md.
8088 (adddi3_carry_rex64): Set attr "use_carry".
8089 (addqi3_carry): Likewise.
8090 (addhi3_carry): Likewise.
8091 (addsi3_carry): Likewise.
8092 (*addsi3_carry_zext): Likewise.
8093 (subdi3_carry_rex64): Likewise.
8094 (subqi3_carry): Likewise.
8095 (subhi3_carry): Likewise.
8096 (subsi3_carry): Likewise.
8097 (x86_movdicc_0_m1_rex64): Likewise.
8098 (*x86_movdicc_0_m1_se): Likewise.
8099 (x86_movsicc_0_m1): Likewise.
8100 (*x86_movsicc_0_m1_se): Likewise.
8101 (*adddi_1_rex64): Emit add insn as much as possible.
8102 (*addsi_1): Likewise.
8103 (return_internal): Set atom_unit.
8104 (return_internal_long): Likewise.
8105 (return_pop_internal): Likewise.
8106 (*rcpsf2_sse): Set atom_sse_attr attr.
8107 (*qrt<mode>2_sse): Likewise.
8108 (*prefetch_sse): Likewise.
8109
8110 * config/i386/i386-c.c (ix86_target_macros_internal): New case
8111 PROCESSOR_ATOM.
8112 (ix86_target_macros_internal): Likewise.
8113
8114 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
8115 (*prefetch_sse_rex): Likewise.
8116 (sse_rcpv4sf2): Likewise.
8117 (sse_vmrcpv4sf2): Likewise.
8118 (sse_sqrtv4sf2): Likewise.
8119 (<sse>_vmsqrt<mode>2): Likewise.
8120 (sse_ldmxcsr): Likewise.
8121 (sse_stmxcsr): Likewise.
8122 (*sse_sfence): Likewise.
8123 (sse2_clflush): Likewise.
8124 (*sse2_mfence): Likewise.
8125 (*sse2_lfence): Likewise.
8126 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
8127 (<sse>_movup<ssemodesuffixf2c>): Likewise.
8128 (avx_movdqu<avxmodesuffix>): Likewise.
8129 (avx_lddqu<avxmodesuffix>): Likewise.
8130 (sse2_movntv2di): Change attr "type" to "ssemov".
8131 (sse2_movntsi): Likewise.
8132 (rsqrtv8sf2): Change attr "type" to "sseadd".
8133 (sse3_addsubv2df3): Set attr "atom_unit".
8134 (sse3_h<plusminus_insn>v4sf3): Likewise.
8135 (*sse2_pmaddwd): Likewise.
8136 (*vec_extractv2di_1_rex64): Likewise.
8137 (*vec_extractv2di_1_avx): Likewise.
8138 (sse2_psadbw): Likewise.
8139 (ssse3_phaddwv8hi3): Likewise.
8140 (ssse3_phaddwv4hi3): Likewise.
8141 (ssse3_phadddv4si3): Likewise.
8142 (ssse3_phadddv2si3): Likewise.
8143 (ssse3_phaddswv8hi3): Likewise.
8144 (ssse3_phaddswv4hi3): Likewise.
8145 (ssse3_phsubwv8hi3): Likewise.
8146 (ssse3_phsubwv4hi3): Likewise.
8147 (ssse3_phsubdv4si3): Likewise.
8148 (ssse3_phsubdv2si3): Likewise.
8149 (ssse3_phsubswv8hi3): Likewise.
8150 (ssse3_phsubswv4hi3): Likewise.
8151 (ssse3_pmaddubsw128): Likewise.
8152 (sse3_pmaddubsw: Likewise.
8153 (ssse3_palignrti): Likewise.
8154 (ssse3_palignrdi): Likewise.
8155
53e350d3
GP
81562009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
8157
8158 * doc/install.texi (Specific): Fix two cross-references to MinGW.
8159
439ef907
RG
81602009-04-06 Richard Guenther <rguenther@suse.de>
8161
8162 PR tree-optimization/28868
8163 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
8164 of which PHI results we inserted.
8165 (insert_into_preds_of_block): Record inserted PHIs.
8166 (eliminate): Eliminate redundant PHI nodes.
8167 (init_pre): Init inserted_phi_names.
8168
4bad83f5
RG
81692009-04-06 Richard Guenther <rguenther@suse.de>
8170
8171 PR tree-optimization/39643
8172 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
8173 IMAGPART_EXPRs of complex constants.
8174 (execute_fold_all_builtins): If we folded a call queue
8175 TODO_update_address_taken.
8176
570c4247
JH
81772009-04-06 Jan Hubicka <jh@suse.cz>
8178
8179 PR middle-end/39659
8180 * except.c (remove_unreachable_regions): Propagate may_contain_throw
8181 flag.
8182
a460d7a1
AS
81832009-04-06 Andrew Stubbs <ams@codesourcery.com>
8184
8185 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
8186 delay slot.
8187 (ic_invalidate_array): Likewise.
8188
60839f5d 81892009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
8190
8191 * calls.c (emit_library_call_value_1): Fix a problem with parameter
8192 alignment for library calls.
8193
7d253f6e
DS
81942009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
8195
8196 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
8197 (mingw32 tm clause use_gcc_stdint): Set to wrap.
8198 * config/i386/mingw-stdint.h: New file.
8199
941c3614
RB
82002009-04-05 Richard Guenther <rguenther@suse.de>
8201
8202 PR tree-optimization/39648
8203 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
8204 our &A vs. &A[0] IL deficiencies.
8205
12633413
JH
82062009-04-04 Jan Hubicka <jh@suse.cz>
8207
941c3614
RB
8208 * except.c (sjlj_find_directly_reachable_regions): Be ready for
8209 removed toplevel regions.
12633413
JH
8210 (sjlj_mark_call_sites): Likewise.
8211
bb2aaded
DK
82122009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
8213
8214 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
8215 (cygwin tm clause use_gcc_stdint): Set to wrap.
8216 * config/i386/cygwin-stdint.h: New file.
8217
86290011
RG
82182009-04-04 Richard Guenther <rguenther@suse.de>
8219
8220 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
8221 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
8222 single-argument PHIs if we are in loop-closed SSA form.
8223 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
8224 for the pre-condition.
8225 (slpeel_tree_peel_loop_to_edge): Likewise.
8226 (vect_build_loop_niters): Take an optional sequence to append stmts.
8227 (vect_generate_tmps_on_preheader): Likewise.
8228 (vect_do_peeling_for_loop_bound): Take extra guards for the
8229 pre-condition.
8230 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
8231 the cost model check.
8232 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 8233 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
8234 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
8235 (vect_do_peeling_for_loop_bound): Likewise.
8236 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
8237 loop bound only record extra pre-conditions, do not apply loop
8238 versioning.
8239
5eeeac64
RG
82402009-04-04 Richard Guenther <rguenther@suse.de>
8241
8242 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
8243 renaming code.
8244
1ff7d06b
JH
82452009-04-04 Jan Hubicka <jh@suse.cz>
8246
8247 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
8248 last_basic_block for size of bb->index indexed array.
8249 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
8250 compute_out, link_btr_uses, build_btr_def_use_webs,
8251 build_btr_def_use_webs, migrate_btr_defs): Likewise.
8252
14925fcd
JH
82532009-04-04 Jan Hubicka <jh@suse.cz>
8254
8255 * except.c (remove_eh_handler_and_replace): Break out from ...
8256 (remove_eh_handler): ... here.
8257 (bring_to_root): New function.
8258 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
8259 handled ones, bring others to root of tree.
8260
4e6d1743
JH
82612009-04-04 Jan Hubicka <jh@suse.cz>
8262
4cb735f7
JH
8263 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
8264 (all_phis_safe_to_merge): New function.
8265 (update_info): New structure.
8266 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
8267 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 8268
c6803d43
RG
82692009-04-04 Richard Guenther <rguenther@suse.de>
8270
8271 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
8272 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
8273 (append_vuse): Likewise.
8274
54f5943c
JJ
82752009-04-04 Jakub Jelinek <jakub@redhat.com>
8276
8277 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
8278 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
8279 instead of REG_UNSAVED for DW_CFA_undefined.
8280 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
8281 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
8282 outermost frame.
8283
aad2bccb
RE
82842009-04-04 Richard Earnshaw <rearnsha@arm.com>
8285
8286 PR target/39501
8287 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
8288 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
8289 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
8290
aa7069aa
RG
82912009-04-04 Richard Guenther <rguenther@suse.de>
8292
8293 PR tree-optimization/8781
8294 PR tree-optimization/37892
8295 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
8296 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
8297 (valueize_refs): Call it for *& valueizations.
8298 (shared_reference_ops_from_ref): Rename to ...
8299 (valueize_shared_reference_ops_from_ref): ... this and valueize.
8300 (shared_reference_ops_from_call): Rename to ...
8301 (valueize_shared_reference_ops_from_call): ... this and valueize.
8302 (vn_reference_lookup): Update.
8303 (visit_reference_op_call): Likewise.
8304 * tree-ssa-pre.c (phi_translate_1): Fold *&.
8305 (eliminate): Value-replace the call address in call statements.
8306
cd15ad3e
RG
83072009-04-04 Richard Guenther <rguenther@suse.de>
8308
8309 PR tree-optimization/39636
8310 * tree-ssa-forwprop.c
8311 (forward_propagate_addr_into_variable_array_index): Check for
8312 GIMPLE_ASSIGN before accessing the rhs code.
8313
462f3262
JM
83142009-04-03 Jason Merrill <jason@redhat.com>
8315
8316 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
8317
6adb807e
SE
83182009-04-03 Steve Ellcey <sje@cup.hp.com>
8319
8320 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
8321 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
8322 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
8323 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
8324 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
8325 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
8326 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
8327 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
8328 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
8329 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
8330 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
8331 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
8332 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
8333 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
8334 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
8335 Use fr_reg_or_fp01_operand instead of fr_register_operand
8336
8337 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
8338 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
8339 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
8340
174b3107
VM
83412009-04-03 Vladimir Makarov <vmakarov@redhat.com>
8342
b844e5d8
L
8343 PR rtl-optimization/39607
8344 PR rtl-optimization/39631
7a715bba
UB
8345
8346 Revert:
2ba9daa7 8347
174b3107
VM
8348 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
8349 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8350 instead of DF_LR_OUT.
8351 * ira-lives.c (process_bb_node_lives): Ditto.
8352 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8353 instead of DF_LR_{OUT,IN}.
8354 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8355 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8356
535b544a
SB
83572009-04-03 Steven Bosscher <steven@gcc.gnu.org>
8358
8359 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
8360 (execute_lower_omp): Always run but take the short way out if -fopenmp
8361 is not given.
8362 (gate_lower_omp): Remove, forcing the pass manager to always run the
8363 pass and always set PROP_gimple_lomp.
8364 (pass_lower_omp): Remove gate function.
8365 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
8366 PROP_trees. Instead, require it.
8367 * ipa-cp.c (pass_ipa_cp): Likewise.
8368 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
8369 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
8370 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
8371 and PROP_gimple_leh.
8372
5006671f
RG
83732009-04-03 Richard Guenther <rguenther@suse.de>
8374
8375 PR middle-end/13146
8376 PR tree-optimization/23940
8377 PR tree-optimization/33237
8378 PR middle-end/33974
8379 PR middle-end/34093
8380 PR tree-optimization/36201
8381 PR tree-optimization/36230
8382 PR tree-optimization/38049
8383 PR tree-optimization/38207
8384 PR tree-optimization/38230
8385 PR tree-optimization/38301
8386 PR tree-optimization/38585
8387 PR middle-end/38895
8388 PR tree-optimization/38985
8389 PR tree-optimization/39299
8390 * tree-ssa-structalias.h: Remove.
8391 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
8392 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
8393 (struct vuse_element_d): Remove.
8394 (struct vuse_vec_d): Likewise.
8395 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
8396 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
8397 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
8398 VUSE_ELEMENT_VAR): Likewise.
8399 (struct voptype_d): Likewise.
8400 (NUM_VOP_FREE_BUCKETS): Likewise.
8401 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
8402 (struct stmt_operands_d): Remove.
8403 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
8404 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
8405 VDEF_NUM, VDEF_VECT): Likewise.
8406 (copy_virtual_operands): Remove.
8407 (operand_build_cmp): Likewise.
8408 (create_ssa_artificial_load_stmt): Likewise.
8409 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
8410 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
8411 vuse_index and mayuse_index members. Pack and move done and iter_type
8412 members to the front.
8413 (SSA_OP_VMAYUSE): Remove.
8414 (SSA_OP_VIRTUAL_USES): Adjust.
8415 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
8416 (unlink_stmt_vdef): Declare.
8417 (add_to_addressable_set): Remove.
8418 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
8419 (vrp_visit_stmt): Likewise.
8420 * doc/tree-ssa.texi (Alias analysis): Update.
8421 * doc/invoke.texi (max-aliased-vops): Remove docs.
8422 (avg-aliased-vops): Likewise.
8423 * tree-into-ssa.c (syms_to_rename): Remove.
8424 (need_to_update_vops_p): Likewise.
8425 (need_to_initialize_update_ssa_p): Rename to ...
8426 (update_ssa_initialized_fn): ... this. Track function we are
8427 initialized for.
8428 (symbol_marked_for_renaming): Simplify.
8429 (add_new_name_mapping): Do not set need_to_update_vops_p.
8430 (dump_currdefs): Use SYMS_TO_RENAME.
8431 (rewrite_update_stmt): Always walk all uses/defs.
8432 (dump_update_ssa): Adjust.
8433 (init_update_ssa): Take function argument. Track what we are
8434 initialized for.
8435 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
8436 (create_new_def_for): Initialize for cfun, assert we are initialized
8437 for cfun.
8438 (mark_sym_for_renaming): Simplify.
8439 (mark_set_for_renaming): Do not initialize update-ssa.
8440 (need_ssa_update_p): Simplify. Take function argument.
8441 (name_mappings_registered_p): Assert we ask for the correct function.
8442 (name_registered_for_update_p): Likewise.
8443 (ssa_names_to_replace): Likewise.
8444 (release_ssa_name_after_update_ssa): Likewise.
8445 (update_ssa): Likewise. Use SYMS_TO_RENAME.
8446 (dump_decl_set): Do not print a newline.
8447 (debug_decl_set): Do it here.
8448 (dump_update_ssa): And here.
8449 * tree-ssa-loop-im.c (move_computations): Adjust.
8450 (movement_possibility): Likewise.
8451 (determine_max_movement): Likewise.
8452 (gather_mem_refs_stmt): Likewise.
8453 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
8454 or NAME_MEMORY_TAG.
8455 * tree-complex.c (update_all_vops): Remove.
8456 (expand_complex_move): Adjust.
8457 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
8458 Simplify test for memory referencing statement. Exclude
8459 non-invariant ADDR_EXPRs.
8460 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
8461 * tree-loop-distribution.c (generate_memset_zero): Adjust.
8462 (rdg_flag_uses): Likewise.
8463 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
8464 related code.
8465 (tree_optimize_tail_calls_1): Also split the
8466 edge from the entry block if we have degenerate PHI nodes in
8467 the first basic block.
8468 * tree.c (init_ttree): Remove memory-tag related code.
8469 (tree_code_size): Likewise.
8470 (tree_node_structure): Likewise.
8471 (build7_stat): Re-write to be build6_stat.
8472 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
8473 (SSA_VAR_P): Adjust.
8474 (struct tree_memory_tag): Remove.
8475 (struct tree_memory_partition_tag): Likewise.
8476 (union tree_node): Adjust.
8477 (build7): Re-write to be build6.
8478 * tree-pass.h (pass_reset_cc_flags): Remove.
8479 (TODO_update_address_taken): New flag.
8480 (pass_simple_dse): Remove.
8481 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
8482 * params.h (MAX_ALIASED_VOPS): Remove.
8483 (AVG_ALIASED_VOPS): Likewise.
8484 * omp-low.c (expand_omp_taskreg): Update SSA form.
8485 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
8486 aliases the lhs in a copy stmt.
8487 * tree-ssa-dse.c (struct address_walk_data): Remove.
8488 (memory_ssa_name_same): Likewise.
8489 (memory_address_same): Likewise.
8490 (get_kill_of_stmt_lhs): Likewise.
8491 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
8492 unused stores. Look through PHI nodes into post-dominated regions.
8493 (dse_optimize_stmt): Simplify. Properly remove stores.
8494 (tree_ssa_dse): Compute dominators.
8495 (execute_simple_dse): Remove.
8496 (pass_simple_dse): Likewise.
8497 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
8498 gimple_loaded_syms and gimple_stored_syms computation.
8499 * toplev.c (dump_memory_report): Dump alias and pta stats.
8500 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
8501 (vn_reference_eq): Likewise.
8502 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
8503 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
8504 valueize_vuses): Remove.
8505 (get_def_ref_stmt_vuses): Simplify. Rename to ...
8506 (get_def_ref_stmt_vuse): ... this.
8507 (vn_reference_lookup_2): New function.
8508 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
8509 walking equivalent vuses. Simplify.
8510 (vn_reference_lookup): Likewise.
8511 (vn_reference_insert): Likewise.
8512 (vn_reference_insert_pieces): Likewise.
8513 (visit_reference_op_call): Simplify.
8514 (visit_reference_op_load): Likewise.
8515 (visit_reference_op_store): Likewise.
8516 (init_scc_vn): Remove shared_lookup_vuses initialization.
8517 (free_scc_vn): Remove shared_lookup_vuses freeing.
8518 (sort_vuses, sort_vuses_heap): Remove.
8519 (get_ref_from_reference_ops): Export.
8520 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
8521 vector with single vuse pointer.
8522 (vn_reference_lookup_pieces, vn_reference_lookup,
8523 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
8524 (shared_vuses_from_stmt): Remove.
8525 (get_ref_from_reference_ops): Declare.
8526 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
8527 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
8528 memory-tag related code.
8529 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
8530 (likely_value): Add comment, skip static-chain of call statements.
8531 (surely_varying_stmt_p): Adjust.
8532 (gimplify_and_update_call_from_tree): Likewise.
8533 (execute_fold_all_builtins): Do not rebuild alias info.
8534 (gimplify_and_update_call_from_tree): Properly update VOPs.
8535 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
8536 (copy_ref_info): Remove memory-tag related code.
8537 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
8538 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
8539 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
8540 computation.
8541 * tree-ssa-dom.c (gimple_p): Remove typedef.
8542 (eliminate_redundant_computations): Adjust.
8543 (record_equivalences_from_stmt): Likewise.
8544 (avail_expr_hash): Likewise.
8545 (avail_expr_eq): Likewise.
7a715bba 8546 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
8547 (stmt_makes_single_load): Likewise.
8548 (stmt_makes_single_store): Likewise.
8549 * tree-ssa-alias.c: Rewrite completely.
8550 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
8551 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
8552 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
8553 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
8554 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
8555 Remove public functions.
8556 (pass_reset_cc_flags): Remove.
8557 (pass_build_alias): Move ...
8558 * tree-ssa-structalias.c (pass_build_alias): ... here.
8559 * tree-ssa-alias.c (may_be_aliased): Move ...
8560 * tree-flow-inline.h (may_be_aliased): ... here.
8561 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
8562 count_uses_and_derefs): Move ...
8563 * gimple.c: ... here.
8564 * gimple.h (count_uses_and_derefs): Declare.
8565 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
8566 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
8567 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
8568 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
8569 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
8570 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
8571 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
8572 New functions.
8573 * tree-dfa.c (refs_may_alias_p): Move ...
8574 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
8575 * tree-ssa-alias.h: New file.
8576 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
8577 (statement_sink_location): Likewise.
8578 * opts.c (decode_options): Do not adjust max-aliased-vops or
8579 avg-aliased-vops values.
8580 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
8581 (TV_CALL_CLOBBER): Likewise.
8582 (TV_FLOW_SENSITIVE): Likewise.
8583 (TV_FLOW_INSENSITIVE): Likewise.
8584 (TV_MEMORY_PARTITIONING): Likewise.
8585 (TV_ALIAS_STMT_WALK): New timevar.
8586 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
8587 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
8588 (get_address_description): Remove memory-tag related code.
8589 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
8590 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
8591 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
8592 and immediate uses in statements. Document.
8593 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
8594 (dump_symbols): Remove.
8595 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
8596 * alias.c (get_deref_alias_set): New function split out from ...
8597 (get_alias_set): ... here.
8598 * alias.h (get_deref_alias_set): Declare.
8599 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
8600 type parameter. Remove restrict pointer handling. Create a
8601 ref-all pointer in case type-based alias sets do not conflict.
8602 (vect_analyze_data_refs): Remove SMT related code.
8603 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
8604 (vectorizable_load): Likewise.
8605 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
8606 (DR_SYMBOL_TAG, DR_VOPS): Remove.
8607 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
8608 Ignore vops and SMTs.
8609 (dr_analyze_alias): Likewise..
8610 (free_data_ref): Likewise.
8611 (create_data_ref): Likewise.
8612 (analyze_all_data_dependences): Likewise.
8613 (get_references_in_stmt): Adjust.
8614 * tree-flow-inline.h (gimple_aliases_computed_p,
8615 gimple_addressable_vars, gimple_call_clobbered_vars,
8616 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
8617 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
8618 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
8619 gimple_mem_ref_stats): Remove.
8620 (gimple_vop): New function.
8621 (op_iter_next_use): Remove vuses and mayuses cases.
8622 (op_iter_next_def): Remove vdefs case.
8623 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
8624 (clear_and_done_ssa_iter): Do not set removed fields.
8625 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
8626 Assert we are not iterating over vuses or vdefs if not also
8627 iterating over uses or defs.
8628 (op_iter_init_use): Likewise.
8629 (op_iter_init_def): Likewise.
8630 (op_iter_next_vdef): Remove.
8631 (op_iter_next_mustdef): Likewise.
8632 (op_iter_init_vdef): Likewise.
8633 (compare_ssa_operands_equal): Likewise.
8634 (link_use_stmts_after): Handle vuse operand.
8635 (is_call_used): Use is_call_clobbered.
8636 (is_call_clobbered): Global variables are always call clobbered,
8637 query the call-clobbers bitmap.
8638 (mark_call_clobbered): Ignore global variables.
8639 (clear_call_clobbered): Likewise.
8640 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
8641 virtual operands sanity check.
8642 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
8643 Remove.
8644 (TARGET_MEM_REF): Remove TMR_TAG operand.
8645 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
8646 Remove call-clobber related code.
8647 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
8648 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
8649 partitions or escape reason.
8650 (get_single_def_stmt, get_single_def_stmt_from_phi,
8651 get_single_def_stmt_with_phi): Remove.
8652 (dump_referenced_vars): Tidy.
8653 (get_ref_base_and_extent): Allow bare decls.
8654 (collect_dfa_stats): Adjust.
8655 * graphite.c (rename_variables_in_stmt): Adjust.
8656 (graphite_copy_stmts_from_block): Likewise.
8657 (translate_clast): Likewise.
8658 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
8659 (EXPR_DIES): New.
8660 (translate_vuse_through_block): Use the oracle.
8661 (phi_translate_1): Adjust.
8662 (value_dies_in_block_x): Use the oracle. Cache the outcome
8663 in EXPR_DIES.
8664 (valid_in_sets): Check if the VUSE for
8665 a REFERENCE is available.
8666 (eliminate): Do not remove stmts during elimination,
8667 instead queue and remove them afterwards.
8668 (do_pre): Do not rebuild alias info.
8669 (pass_pre): Run TODO_rebuild_alias before PRE.
8670 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
8671 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
8672 (mark_all_v_defs_stmt): Remove.
8673 (mark_all_v_defs_seq): Adjust.
8674 (sra_replace): Likewise.
8675 (scalarize_use): Likewise.
8676 (scalarize_copy): Likewise.
8677 (scalarize_init): Likewise.
8678 (scalarize_ldst): Likewise.
8679 (todoflags): Remove.
8680 (tree_sra): Do not rebuild alias info.
8681 (tree_sra_early): Adjust.
8682 (pass_sra): Run TODO_update_address_taken before SRA.
8683 * tree-predcom.c (set_alias_info): Remove.
8684 (prepare_initializers_chain): Do not call it.
8685 (mark_virtual_ops_for_renaming): Adjust.
8686 (mark_virtual_ops_for_renaming_list): Remove.
8687 (initialize_root_vars): Adjust.
8688 (initialize_root_vars_lm): Likewise.
8689 (prepare_initializers_chain): Likewise.
8690 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
8691 (may_propagate_copy_into_stmt): Likewise.
8692 (merge_alias_info): Do nothing for now.
8693 (propagate_tree_value_into_stmt): Adjust.
8694 (stmt_may_generate_copy): Likewise.
8695 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
8696 not mark symbols for renaming.
8697 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
8698 with the same statement, make sure to update the new pointed-to one.
8699 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
8700 call statements, do not mark symbols for renaming.
8701 (mark_operand_necessary): Dump something.
8702 (ref_may_be_aliased): New function.
8703 (mark_aliased_reaching_defs_necessary_1): New helper function.
8704 (mark_aliased_reaching_defs_necessary): Likewise.
8705 (mark_all_reaching_defs_necessary_1): Likewise.
8706 (mark_all_reaching_defs_necessary): Likewise.
8707 (propagate_necessity): Do not process virtual PHIs. For
8708 non-aliased loads mark all reaching definitions as necessary.
8709 For aliased loads and stores mark the immediate dominating
8710 aliased clobbers as necessary.
8711 (visited): New global static.
8712 (perform_tree_ssa_dce): Free visited bitmap after propagating
8713 necessity.
8714 (remove_dead_phis): Perform simple dead virtual PHI removal.
8715 (remove_dead_stmt): Properly unlink virtual operands when
8716 removing stores.
8717 (eliminate_unnecessary_stmts): Schedule PHI removal after
8718 stmt removal.
8719 * tree-ssa-ter.c (is_replaceable_p): Adjust.
8720 (process_replaceable): Likewise.
8721 (find_replaceable_in_bb): Likewise.
8722 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
8723 based on the single gimple vop.
8724 (verify_flow_insensitive_alias_info): Remove.
8725 (verify_flow_sensitive_alias_info): Likewise.
8726 (verify_call_clobbering): Likewise.
8727 (verify_memory_partitions): Likewise.
8728 (verify_alias_info): Likewise.
8729 (verify_ssa): Adjust..
8730 (execute_update_addresses_taken): Export. Update SSA
8731 manually. Optimize only when optimizing. Use a local bitmap.
8732 (pass_update_address_taken): Remove TODO_update_ssa, add
8733 TODO_dump_func.
8734 (pass_update_address_taken): Just use TODO_update_address_taken.
8735 (init_tree_ssa): Do not initialize addressable_vars.
8736 (verify_ssa): Verify new VUSE / VDEF properties.
8737 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
8738 Do not call verify_alias_info.
8739 (delete_tree_ssa): Clear the VUSE, VDEF operands.
8740 Do not free the loaded and stored syms bitmaps. Reset the escaped
8741 and callused solutions. Do not free addressable_vars.
8742 Remove memory-tag related code.
8743 (warn_uninitialized_var): Aliases are always available.
8744 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
8745 * lambda-code.c (can_put_in_inner_loop): Adjust.
8746 (can_put_after_inner_loop): Likewise.
8747 (perfect_nestify): Likewise.
8748 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
8749 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
8750 (vectorizable_conversion): Do not mark symbols for renaming.
8751 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
8752 (expand_call_inline): Unlink the calls virtual operands before
8753 replacing it.
8754 (tree_function_versioning): Do not call update_ssa if we are not
8755 updating clones. Simplify.
8756 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
8757 (propagate_with_phi): Likewise..
8758 * tree-outof-ssa.c (create_temp): Remove memory tag and call
8759 clobber code. Assert we are not aliased or global.
8760 * tree-flow.h: Include tree-ssa-alias.h
8761 (enum escape_type): Remove.
8762 (struct mem_sym_stats_d): Likewise.
8763 (struct mem_ref_stats_d): Likewise.
8764 (struct gimple_df): Add vop member. Remove global_var,
8765 call_clobbered_vars, call_used_vars, addressable_vars,
8766 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
8767 escaped and callused members.
8768 (struct ptr_info_def): Remove all members, add points-to solution
8769 member pt.
8770 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
8771 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
8772 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
8773 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
8774 (tree-ssa-alias.o): Likewise.
8775 (toplev.o): Add tree-ssa-alias.h
8776 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
8777 * gimple.c (gimple_set_bb): Fix off-by-one error.
8778 (is_gimple_reg): Do not handle memory tags.
8779 (gimple_copy): Also copy virtual operands.
8780 Delay updating the statement. Do not reset loaded and stored syms.
8781 (gimple_set_stored_syms): Remove.
8782 (gimple_set_loaded_syms): Likewise.
8783 (gimple_call_copy_skip_args): Copy the virtual operands
8784 and mark the new statement modified.
8785 * tree-ssa-structalias.c (may_alias_p): Remove.
8786 (set_uids_in_ptset): Take the alias set to prune with as
8787 parameter. Fold in the alias test of may_alias_p.
8788 (compute_points_to_sets): Compute whether a ptr is dereferenced
8789 in a local sbitmap.
8790 (process_constraint): Deal with &ANYTHING on the lhs, reject all
8791 other ADDRESSOF constraints on the lhs.
8792 (get_constraint_for_component_ref): Assert that we don't get
8793 ADDRESSOF constraints from the base of the reference.
8794 Properly generate UNKNOWN_OFFSET for DEREF if needed.
8795 (struct variable_info): Remove collapsed_to member.
8796 (get_varinfo_fc): Remove.
8797 (new_var_info): Do not set collapsed_to.
8798 (dump_constraint): Do not follow cycles.
8799 (dump_constraint_graph): Likewise.
8800 (build_pred_graph): Likewise.
8801 (build_succ_graph): Likewise.
8802 (rewrite_constraints): Likewise.
8803 (do_simple_structure_copy): Remove.
8804 (do_rhs_deref_structure_copy): Remove.
8805 (do_lhs_deref_structure_copy): Remove.
8806 (collapse_rest_of_var): Remove.
8807 (do_structure_copy): Re-implement.
8808 (pta_stats): New global variable.
8809 (dump_pta_stats): New function.
8810 (struct constraint_expr): Make offset signed.
8811 (UNKNOWN_OFFSET): Define special value.
8812 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
8813 (solution_set_expand): New helper function split out from ...
8814 (do_sd_constraint): ... here.
8815 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
8816 (do_ds_constraint): Likewise.
8817 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
8818 and CALLUSED = *CALLUSED.
8819 (set_union_with_increment): Make inc argument signed.
8820 (type_safe): Remove.
8821 (get_constraint_for_ptr_offset): Handle unknown and negative
8822 constant offsets.
8823 (first_vi_for_offset): Handle offsets before start. Bail
8824 out early for offsets beyond the variable extent.
8825 (first_or_preceding_vi_for_offset): New function.
8826 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
8827 Together with ESCAPED = *ESCAPED this properly computes reachability.
8828 (find_what_var_points_to): New function.
8829 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
8830 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
8831 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
8832 pt_solutions_intersect): New functions.
8833 (compute_call_used_vars): Remove.
8834 (compute_may_aliases): New main entry into PTA computation.
8835 * gimple.h (gimple_p): New typedef.
8836 (struct gimple_statement_base): Remove references_memory_p.
8837 (struct gimple_statement_with_memory_ops_base): Remove
8838 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
8839 members.
8840 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
8841 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
8842 gimple_set_references_memory): Remove.
8843 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
8844 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
8845 New functions.
8846 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
8847 (verify_expr): Allow RESULT_DECL.
8848 (gimple_duplicate_bb): Do not copy virtual operands.
8849 (gimple_duplicate_sese_region): Adjust.
8850 (gimple_duplicate_sese_tail): Likewise.
8851 (mark_virtual_ops_in_region): Remove.
8852 (move_sese_region_to_fn): Do not call it.
8853 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
8854 and pass_simple_dse.
8855 (execute_function_todo): Handle TODO_update_address_taken,
8856 call execute_update_addresses_taken for TODO_rebuild_alias.
8857 (execute_todo): Adjust.
8858 (execute_one_pass): Init dump files early.
8859 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
8860 call-clobbered.
8861 (create_general_new_stmt): Clear vops.
8862 * tree-ssa-reassoc.c (get_rank): Adjust.
8863 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
8864 symbols for renaming.
8865 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
8866 (PARAM_AVG_ALIASED_VOPS): Likewise.
8867 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
8868 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 8869 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
8870 (operand_build_cmp, copy_virtual_operands,
8871 create_ssa_artificial_load_stmt, add_to_addressable_set,
8872 gimple_add_to_addresses_taken): Remove public functions.
8873 (unlink_stmt_vdef): New function.
8874
457d1d00
AM
88752009-04-03 Alan Modra <amodra@bigpond.net.au>
8876
8877 * config.gcc (powerpc-*-linux*): Merge variants.
8878
e19da24c 88792009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 8880 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
8881
8882 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
8883 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
8884 cop0_sp_offset.
8885 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
8886 keep_interrupts_masked_p, use_debug_exception_return_p.
8887 (mips_attribute_table): Add interrupt, use_shadow_register_set,
8888 keep_interrupts_masked, use_debug_exception_return.
8889 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
8890 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
8891 New functions.
8892 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
8893 (mips_print_operand): Process COP0 registers to print $0 .. $31
8894 correctly for GAS to process.
8895 (mips_interrupt_extra_call_saved_reg_p): New function.
8896 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
8897 extra registers.
8898 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
8899 (mips_compute_frame_info): Add supports for interrupt context that
8900 includes doubleword accumulators and COP0 registers.
8901 (mips_for_each_saved_acc): New function.
8902 (mips_for_each_saved_gpr_and_fpr): Change the function name from
8903 mips_for_each_saved_reg.
8904 (mips_save_reg): Save accumulators.
8905 (mips_kernel_reg_p): A new for_each_rtx callback.
8906 (mips_expand_prologue): Support interrupt handlers.
8907 (mips_restore_reg): Restore accumulators.
8908 (mips_expand_epilogue): Support interrupt handlers.
8909 (mips_can_use_return_insn): Return false for interrupt handlers.
8910 (mips_epilogue_uses): New function.
8911 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
8912 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
8913 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
8914 cop0_move): New instructions.
8915 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
8916 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
8917 defines.
8918 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
8919 New defines.
8920 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
8921 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
8922 interrupt handlers, we use K0 as the temporary register.
8923 (EPILOGUE_USES): Change to a function call.
8924 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
8925 handlers, we use K0 as the temporary register.
2ba9daa7 8926
e19da24c
CF
8927 * doc/extend.texi (Function Attributes): Document interrupt,
8928 use_shadow_register_set, keep_interrupts_masked,
8929 use_debug_exception_return for MIPS attributes.
8930
aa1ca044
AM
89312009-04-03 Alan Modra <amodra@bigpond.net.au>
8932
8933 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
8934 Remove a number of t-files from tmake_file.
8935 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
8936 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
8937 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
8938 target_prototype, not TARGET_PROTOTYPE.
8939 (LINK_OS_GNU_SPEC): Define.
8940 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
8941 and darwin-ldoubdle.c.
8942
14fdc613
MM
89432009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8944
8945 PR driver/39293
8946 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
8947 (cpp_options): Ditto.
8948 (default_compilers): Ditto.
8949 (display_help): Ditto.
8950 (process_command): Ditto.
8951 (do_spec_1): Ditto.
8952 (set_input): Use lbasename instead of duplicate code.
8953 (save_temps_prefix): New static for -save-temps=obj.
8954 (save_temps_length): Ditto.
2ba9daa7 8955
14fdc613
MM
8956 * doc/invoke.texi (-save-temps=obj): Document new variant to
8957 -save-temps switch.
8958
d3aa398e
JL
89592009-04-02 Jeff Law <law@redhat.com>
8960
8961 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
8962 variable.
8963
83f0ccb8
L
89642009-04-02 H.J. Lu <hongjiu.lu@intel.com>
8965
8966 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
8967 * configure: Regenerated.
8968
dcb6e951
RAE
89692009-04-02 Rafael Avila de Espindola <espindola@google.com>
8970
8971 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
8972 share the argument list.
8973
d85478c2
RAE
89742009-04-02 Rafael Avila de Espindola <espindola@google.com>
8975
8976 Merge
8977
8978 2009-02-12 Diego Novillo <dnovillo@google.com>
8979
83f0ccb8
L
8980 * varpool.c (debug_varpool): New.
8981 * cgraph.h (debug_varpool): Declare.
d85478c2 8982
34f42a49
JH
89832009-04-02 Jan Hubicka <jh@suse.cz>
8984
8985 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
8986 pass.
8987
a4747b4a
L
89882009-04-02 H.J. Lu <hongjiu.lu@intel.com>
8989
8990 * config/i386/i386.c (ix86_abi): Move initialization to ...
8991 (override_options): Here.
8992
63a9de54
CB
89932009-04-02 Christian Bruel <christian.bruel@st.com>
8994
8995 * config/sh/sh.c (sh_dwarf_register_span): New function.
8996 (TARGET_DWARF_REGISTER_SPAN): Define.
8997 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 8998
2f0fa28e
IR
89992009-04-02 Ira Rosen <irar@il.ibm.com>
9000
9001 PR tree-optimization/39595
2ba9daa7 9002 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
9003 interleaved loads group is not greater than the SLP group size.
9004
bbf7ce11
RAE
90052009-04-02 Rafael Avila de Espindola <espindola@google.com>
9006
9007 * builtins.c (is_builtin_name): New.
9008 (called_as_built_in): Use is_builtin_name.
9009 * tree.h (is_builtin_name): New.
9010 * varasm.c (incorporeal_function_p): Use is_builtin_name
9011
47e4dfcf
AS
90122009-04-02 Andrew Stubbs <ams@codesourcery.com>
9013
9014 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9015
d0940d56
DS
90162009-04-02 Dodji Seketeli <dodji@redhat.com>
9017
9018 PR c++/26693
532bfb0a 9019 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
9020 * c-common.c (set_underlying_type): ... here.
9021 Also, make sure the function properly sets TYPE_STUB_DECL() on
9022 the newly created typedef variant type.
9023 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
9024 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9025 points.
d0940d56 9026
bf1cbdc6
RG
90272009-04-02 Richard Guenther <rguenther@suse.de>
9028
9029 PR tree-optimization/37221
9030 * tree-flow.h (degenerate_phi_result): Declare.
9031 * tree-ssa-dom.c (degenerate_phi_result): Export.
9032 * tree-scalar-evolution.c (analyze_initial_condition): If
9033 the initial condition is defined by a degenerate PHI node
9034 use the degenerate value.
9035
87cfb32c
EB
90362009-04-01 Eric Botcazou <ebotcazou@adacore.com>
9037
9038 PR rtl-optimization/39588
9039 * combine.c (merge_outer_ops): Do not set the constant when this
9040 is not necessary.
9041 (simplify_shift_const_1): Do not modify it either in this case.
9042
bbb6eae8
SB
90432009-04-01 Steven Bosscher <steven@gcc.gnu.org>
9044
9045 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
9046 tuning is deprecated if -mtune value is set to an Itanium1 variant.
9047
839a3b8a
JJ
90482009-04-01 Janis Johnson <janis187@us.ibm.com>
9049
9050 PR c/29027
9051 * c-lex.c (interpret_float): Default (no suffix) is double.
9052
667e8acb
XDL
90532009-04-1 Xinliang David Li <davidxl@google.com>
9054
9055 * config/i386/i386.c (legitimate_constant_p): Recognize
9056 all one vector constant.
9057
60839f5d 90582009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9059
60839f5d 9060 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
9061 Change #include order to silence two warnings.
9062
60839f5d 90632009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9064
60839f5d 9065 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
9066 (ASM_SPEC): Pass -k to the assembler for PIC code.
9067
60839f5d 90682009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9069
60839f5d
EB
9070 * config.gcc: Add vax-*-linux* to the switch.
9071 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
9072 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
9073
60839f5d 90742009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9075
60839f5d 9076 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 9077 Use predicate macros instead of GET_CODE() == foo.
60839f5d 9078 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
9079 ashlsi3, rotrsi3, <unnamed>): Likewise.
9080
60839f5d 90812009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9082
60839f5d 9083 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 9084 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
9085 * config/vax/constraints.md: Likewise.
9086 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
9087 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
9088 * config/vax/predicates.md: Likewise.
9089 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 9090 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
9091 * config/vax/vax.h: Likewise.
9092 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 9093
60839f5d 90942009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9095
60839f5d 9096 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
9097 (indirectable_address_p, adjacent_operands_p): Add spaces around
9098 braces.
60839f5d 9099 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 9100
60839f5d 91012009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9102
60839f5d 9103 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
9104 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
9105 index_term_p, reg_plus_index_p, legitimate_address_p,
9106 vax_mode_dependent_address_p): Update comments to match functions
9107 modified by the recent int->bool conversion.
9108
60839f5d 91092009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9110
60839f5d
EB
9111 * config/vax/builtins.md: Update copyright message.
9112 * config/vax/constraints.md: Likewise.
9113 * config/vax/netbsd-elf.h: Likewise.
9114 * config/vax/predicates.md: Likewise.
9115 * config/vax/vax-protos.h: Likewise.
9116 * config/vax/vax.c: Likewise.
9117 * config/vax/vax.h: Likewise.
9118 * config/vax/vax.md: Likewise.
9119 * config/vax/vax.opt: Likewise.
c4e75102 9120
60839f5d 91212009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9122
60839f5d 9123 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 9124 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
9125 * config/vax/constraints.md (B, R): Likewise.
9126 * config/vax/predicates.md (external_memory_operand,
c4e75102 9127 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
9128 * config/vax/vax.c (vax_output_int_add): Likewise.
9129 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
9130 untyped_call): Likewise.
9131
60839f5d 91322009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 9133
7a715bba
UB
9134 * config/vax/predicates.md: New file.
9135 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
9136 external_const_operand, nonsymbolic_operand, external_memory_operand,
9137 indirect_memory_operand, indexed_memory_operand,
9138 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
9139 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
9140 predicate.
7a715bba
UB
9141 * config/vax/constraints.md: New file.
9142 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
9143 New constraint.
9144 * config/vax/builtins.md: New file.
9145 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
9146 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
9147 jbbccisi): Define.
c4e75102
MT
9148 * config/vax/vax.opt (mqmath): Add option.
9149 * config/vax/vax.md (isfx): Extend with DI.
9150 (VAXintQH, VAXintQHSD): Define.
9151 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
9152 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
9153 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
9154 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
9155 (movdi): Update constraints and use vax_output_int_move().
9156 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
9157 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
9158 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
9159 nonlocal_goto): New.
9160 (mov<mode>): Extend accepted operand types.
9161 (subdi3_old): Rename from subdi3, change update constraints and use
9162 a new implementation.
60839f5d 9163 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
9164 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
9165 MOVE_RATIO, CLEAR_RATIO): Define.
9166 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
9167 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9168 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 9169 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
9170 (split_quadword_operands): Make static and really allow variable
9171 splitting.
9172 (print_operand_address): Update for PIC generation.
9173 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
9174 indexable_address_p, fixup_mathdi_operand,
9175 vax_expand_addsub_di_operands, adjacent_operands_p): New.
9176 (vax_float_literal, legitimate_constant_p,
9177 indirectable_constant_address_p, index_term_p,
9178 reg_plus_index_p): Return bool instead of int.
9179 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
9180 where needed.
9181 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
9182 generation.
9183 (vax_output_conditional_branch): Indent.
9184 (legitimate_constant_address_p, indirectable_constant_address_p,
9185 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
9186 vax_mode_dependent_address_p): Return bool instead of int, update for
9187 PIC generation.
9188 * config/vax/vax-protos.h (legitimate_constant_address_p,
9189 legitimate_constant_p, legitimate_address_p,
9190 vax_mode_dependent_address_p): Change declaration to bool.
9191 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
9192 vax_expand_addsub_di_operands, vax_output_int_subtract,
9193 vax_output_movmemsi): Declare.
9194 (split_quadword_operands, vax_float_literal): Delete declaration.
9195 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
9196 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
9197 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
9198 ASM_OUTPUT_DWARF_PCREL): Define.
9199 (ASM_SPEC): Change definition to allow PIC generation.
9200
9332c6eb
L
92012009-04-01 Steve Ellcey <sje@cup.hp.com>
9202
9203 * doc/sourcebuild.texi: Update front-end requirements.
9204
d93e052c
JJ
92052009-04-01 Jakub Jelinek <jakub@redhat.com>
9206
9207 PR target/39226
9208 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
9209 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
9210 (booldi3_internal3): Use boolean_or_operator instead of
9211 boolean_operator.
9212
6ccb2a4a
JM
92132009-04-01 Joseph Myers <joseph@codesourcery.com>
9214
9215 PR c/39605
9216 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
9217 declarator whose size is not an integer constant expression but
9218 folds to an integer constant, then treat it as a constant
9219 subsequently.
9220
299b87f8
RG
92212009-04-01 Richard Guenther <rguenther@suse.de>
9222
9223 * fold-const.c (fold_plusminus_mult_expr): Do not fold
9224 i * 4 + 2 to (i * 2 + 1) * 2.
9225
b85eb797
JJ
92262009-04-01 Jakub Jelinek <jakub@redhat.com>
9227
9228 PR c/37772
9229 * c-parser.c (c_parser_asm_statement): Skip until close paren and
9230 return if c_parser_asm_string_literal returned NULL.
9231
235e1fe8
NC
92322009-04-01 Nick Clifton <nickc@redhat.com>
9233
9234 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
9235 already defined.
9236 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
9237 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
9238 other typedefs to avoid conflicts with libgcc2.c. Define labels
9239 to gain 16-bit bit-manipulation functions from libgcc2.c and then
9240 include it.
9241 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
9242 to gain 16-bit trapping arithmetic functions from libgcc2.c and
9243 then include it.
9244
d6868399
RAE
92452009-04-01 Rafael Avila de Espindola <espindola@google.com>
9246
7a715bba
UB
9247 * varasm.c (default_function_rodata_section): Declare DOT as
9248 const char*.
d6868399 9249
73d21f56 92502009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 9251 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
9252
9253 PR/39492
9254 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
9255 Make object_name unique for each process.
9256
03742a9b
JJ
92572009-04-01 Jakub Jelinek <jakub@redhat.com>
9258
9259 PR other/39591
9260 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
9261 addressable variables in the parallel that could go out of scope while
9262 running queued tasks.
9263
4223ff5f
AS
92642009-04-01 Anatoly Sokolov <aesok@post.ru>
9265
9266 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
9267 (CASE_VALUES_THRESHOLD): Redefine.
9268 * config/avr/avr.c (avr_override_options): Remove initialization of
9269 avr_case_values_threshold variable.
9270 (avr_case_values_threshold): Remove variable. Add new function.
9271 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
9272 * config/avr/avr.opt (mno-tablejump): Remove option.
9273 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
9274
e893f6f3
DD
92752009-04-01 DJ Delorie <dj@redhat.com>
9276
9277 * varasm.c (default_function_rodata_section): Don't assume
9278 anything about where the first '.' in the section name is.
9279
b246d100
AM
92802009-04-01 Alan Modra <amodra@bigpond.net.au>
9281
9282 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
9283 rs6000_emit_stack_tie.
9284
d3e37a9e
ILT
92852009-03-31 Ian Lance Taylor <iant@google.com>
9286
9287 * tree-eh.c (tree_remove_unreachable_handlers): Compare
9288 gimple_code with GIMPLE_RESX, not RESX.
9289
c1b61fca
JM
92902009-03-31 Joseph Myers <joseph@codesourcery.com>
9291
9292 * c-common.c (c_get_ident): New.
7a715bba 9293 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 9294
c2d2ad48
BE
92952009-04-01 Ben Elliston <bje@au.ibm.com>
9296
9297 * config/rs6000/sysv4.opt (msdata): Improve option description.
9298
13d1a6e7
SE
92992009-03-31 Steve Ellcey <sje@cup.hp.com>
9300
9301 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
9302 (divdf3_internal_lat): Remove.
9303 (divxf3_internal_lat): Remove.
9304 (divxf3_internal_thr): Remove.
9305 (divxf): Use divxf3_internal.
9306 * config/ia64/div.md (divsf3_internal_lat): New.
9307 (divdf3_internal_lat): New.
9308 (divxf3_internal): New.
9309
207bf79d
JM
93102009-03-31 Joseph Myers <joseph@codesourcery.com>
9311
9312 PR c/448
9313 * Makefile.in (USE_GCC_STDINT): Define.
9314 (stmp-int-hdrs): Install stdint.h if applicable.
9315 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
9316 if known.
9317 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
9318 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
9319 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9320 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9321 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9322 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9323 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9324 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9325 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9326 (c_common_nodes_and_builtins): Initialize
9327 underlying_wchar_type_node. Do not initialize
9328 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
9329 nodes for new types.
9330 (c_stddef_cpp_builtins): Define macros for new types.
9331 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
9332 Remove.
9333 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
9334 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
9335 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
9336 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
9337 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
9338 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
9339 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
9340 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
9341 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
9342 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
9343 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
9344 int16_type_node, int32_type_node, int64_type_node,
9345 uint8_type_node, uint16_type_node, c_uint32_type_node,
9346 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
9347 int_least32_type_node, int_least64_type_node,
9348 uint_least8_type_node, uint_least16_type_node,
9349 uint_least32_type_node, uint_least64_type_node,
9350 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
9351 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
9352 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
9353 uintptr_type_node): Define.
9354 * c-cppbuiltin.c (builtin_define_constants,
9355 builtin_define_type_minmax): New.
9356 (builtin_define_stdint_macros): Define more macros.
9357 (c_cpp_builtins): Define more limit macros.
9358 (type_suffix): New.
9359 (builtin_define_type_max): Define in terms of
9360 builtin_define_type_minmax. Remove is_long parameter. All
9361 callers changed.
9362 * config.gcc (use_gcc_stdint): Define.
9363 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
9364 Add newlib-stdint.h for generic targets.
9365 * config/glibc-stdint.h, config/newlib-stdint.h,
9366 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
9367 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
9368 * config/score/score.h (UINTPTR_TYPE): Define.
9369 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
9370 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
9371 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9372 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9373 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9374 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9375 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9376 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9377 * config/spu/spu.h (STDINT_LONG32): Define.
9378 * configure.ac (use_gcc_stdint): Substitute.
9379 * configure: Regenerate.
9380 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
9381 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
9382 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
9383 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
9384 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
9385 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
9386 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
9387 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
9388 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
9389 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
9390 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
9391 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
9392 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
9393 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
9394 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
9395 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
9396 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
9397 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
9398 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
9399 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
9400 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
9401 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
9402 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9403 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9404 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9405 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9406 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9407 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9408 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
9409
ed853664
BS
94102009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
9411
9412 * loop-iv.c (suitable_set_for_replacement): Renamed from
9413 simplify_using_assignment; changed to return bool and to accept new
9414 args DEST and SRC. Return true iff we find a source/destination pair
9415 that can be used to make a replacement, and fill SRC and DEST if so.
9416 Remove arg ALTERED. Don't deal with altered regs here. All callers
9417 changed.
9418 (simplify_using_initial_values): Deal with altered regs here and track
9419 more precisely the effect they have on the validity of our expression.
9420
1569e190
BS
9421 * loop-iv.c (simplify_using_condition): A condition of the form
9422 (EQ REG CONST) can be used to simply make a substitution.
9423 (simplify_using_initial_values): Keep track of conditions we have seen
9424 and keep using them to simplify new expressions, while applying the
9425 same substitutions to them as to the expression.
9426
1d1eb80c
BS
9427 * simplify-rtx.c (simplify_relational_operation_1): Simplify
9428 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
9429 GEU/LTU reversed.
9430
28af33b0
BS
9431 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
9432 changed. Use this when trying to improve the upper bound.
9433 Generate the comparison by using simplify_gen_relational.
9434
b30321cd
BS
9435 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
9436
60081874
BS
9437 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
9438 functions.
2ba9daa7 9439 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
9440 replace_in_expr to make replacements. Call replace_single_def_regs
9441 once on the initial version of the expression.
9442
bebc6e07
RR
94432009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9444
fcb82ab0 9445 PR target/27237
bebc6e07 9446 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 9447
6b12efe9
RG
94482009-03-31 Richard Guenther <rguenther@suse.de>
9449
9450 PR middle-end/31029
9451 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
9452 equality comparisons. Fold C - X CMP X if C % 2 == 1.
9453
108f6c2f
RG
94542009-03-31 Richard Guenther <rguenther@suse.de>
9455
9456 * tree.h (div_if_zero_remainder): Declare.
9457 * fold-const.c (div_if_zero_remainder): Export.
9458 * tree-ssa-forwprop.c
9459 (forward_propagate_addr_into_variable_array_index): Handle
9460 constant array index addition outside of the variable index.
9461
8f612190
JM
94622009-03-31 Joseph Myers <joseph@codesourcery.com>
9463
9464 PR target/39592
9465 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
9466 define_splits, floatunssi<mode>2): Require x87 conversions from
9467 DImode to be permitted.
9468
47580d22
JM
94692009-03-31 Joseph Myers <joseph@codesourcery.com>
9470
9471 PR preprocessor/15638
9472 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
9473
ba4d8f9d
RG
94742009-03-31 Richard Guenther <rguenther@suse.de>
9475
9476 PR middle-end/23401
9477 PR middle-end/27810
9478 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
9479 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
9480 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
9481 a separate statement.
9482 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
9483 (lookup_tmp_var): Likewise.
9484 (is_gimple_formal_tmp_or_call_rhs): Remove.
9485 (is_gimple_reg_or_call_rhs): Rename to ...
9486 (is_gimple_reg_rhs_or_call): ... this.
9487 (is_gimple_mem_or_call_rhs): Rename to ...
9488 (is_gimple_mem_rhs_or_call): ... this.
9489 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
9490 DECL_GIMPLE_REG_P only if is_formal is true.
9491 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
9492 for non-proper post-modify expression gimplification.
9493 (gimplify_self_mod_expr): For post-modify expressions gimplify
9494 the lvalue to a minimal lvalue.
9495 (rhs_predicate_for): Remove formal temp case.
9496 (gimplify_modify_expr_rhs): Likewise.
9497 (gimplify_addr_expr): Use is_gimple_reg.
9498 (gimplify_expr): Remove formal temp cases.
9499 (gimple_regimplify_operands): Likewise.
9500 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
9501 and FILTER_EXPR like constants.
9502 * gimple.c (walk_gimple_op): Fix val_only initialization, use
9503 is_gimple_reg.
9504 (is_gimple_formal_tmp_rhs): Remove.
9505 (is_gimple_reg_rhs): Remove special casing.
9506 (is_gimple_mem_rhs): Fix.
9507 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
9508 (is_gimple_formal_tmp_var): Remove.
9509 (is_gimple_formal_tmp_reg): Likewise.
9510 (is_gimple_min_lval): Allow invariant component ref parts.
9511 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
9512 is_gimple_formal_tmp_reg): Remove declarations.
9513 * tree-cfg.c (verify_expr): Verify that variables with address
9514 taken do not have DECL_GIMPLE_REG_P set.
9515 * tree-mudflap.c (mf_build_check_statement_for): Use
9516 force_gimple_operand instead of gimplify_expr.
9517
8de9b877
AZ
95182009-03-31 Ayal Zaks <zaks@il.ibm.com>
9519
9520 * modulo-sched.c (sms_schedule_by_order): Pass the actual
9521 schedulable rows to compute_split_row.
9522
b5e3caf2
BE
95232009-03-31 Ben Elliston <bje@au.ibm.com>
9524
9525 PR target/31635
9526 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
9527 OPT_mvrsave.
9528
9752c4ad
AM
95292009-03-31 Alan Modra <amodra@bigpond.net.au>
9530
9531 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
9532 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
9533 * configure: Regenerate.
9534 * config.in: Regenerate.
9535 * config/rs6000/rs6000.opt (mtls-markers): Add.
9536 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
9537 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
9538 (tls_ld_aix, tls_ld_sysv): Likewise.
9539 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
9540 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
9541
b597d1b6
AM
95422009-03-31 Alan Modra <amodra@bigpond.net.au>
9543
9544 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
9545
a203a221
JH
95462009-03-30 Jan Hubicka <jh@suse.cz>
9547
b597d1b6
AM
9548 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
9549 out of RESX.
9550 (tree_remove_unreachable_handlers): Cleanup EH predecestor
9551 detection and label handling.
a203a221 9552
5b0c0b2c
VM
95532009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9554
9555 * ira-int.h (ira_allocno): Rename left_conflicts_num to
9556 left_conflicts_size.
9557 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
9558 ALLOCNO_LEFT_CONFLICTS_SIZE.
9559
9560 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
9561 remove_allocno_from_bucket_and_push,
9562 allocno_spill_priority_compare, push_allocnos_to_stack,
9563 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9564 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
9565 (setup_allocno_left_conflicts_num): Ditto. Rename to
9566 setup_allocno_left_conflicts_size.
9567 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9568 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
9569 setup_allocno_left_conflicts_size instead of
9570 setup_allocno_left_conflicts_num.
9571
9572 * ira-build.c (ira_create_allocno): Use
9573 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
9574 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 9575
9a48a93f
VM
95762009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9577
9578 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9579 instead of DF_LR_OUT.
9580
9581 * ira-lives.c (process_bb_node_lives): Ditto.
9582
9583 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9584 instead of DF_LR_{OUT,IN}.
9585
9586 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9587
9588 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9589
4c936d4f
JH
95902009-03-30 Jan Hubicka <jh@suse.cz>
9591
9592 * except.c (label_to_region_map): Fix thinko.
9593
f4d9f129
SE
95942009-03-30 Steve Ellcey <sje@cup.hp.com>
9595
9596 PR middle-end/38237
9597 * tree.h (tree_find_value): New declaration.
9598 * tree.c (tree_find_value): New function.
9599 * varasm.c (assemble_external): Avoid duplicate entries on lists.
9600
b3f27c15
JJ
96012009-03-30 Jakub Jelinek <jakub@redhat.com>
9602
9603 PR debug/39563
9604 * c-decl.c (struct c_binding): Add locus field.
9605 (bind): Add locus argument, set locus field from it.
9606 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
9607 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
9608 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
9609 implicitly_declare, undeclared_variable, lookup_label,
9610 declare_label, c_make_fname_decl, c_builtin_function,
9611 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
9612 bind callers.
9613
ad41bd84 96142009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
9615
9616 PR target/38781
9617 * config/i386/i386.c (classify_argument): Check total size of
9618 structure.
9619
133f9369
MJ
96202009-03-30 Martin Jambor <mjambor@suse.cz>
9621
9622 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
9623 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
9624 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
9625 respectively.
9626
9627 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
9628 seen_variable_array_ref while also traversing a union.
9629
9630 * tree-inline.c (optimize_inline_calls): Do not call
9631 cgraph_node_remove_callees.
9632 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
9633 (pass_remove_cgraph_callee_edges): New variable.
9634 * passes.c (init_optimization_passes): Add
9635 pass_remove_cgraph_callee_edges after early inlining and before all
9636 late intraprocedural passes.
9637
9638 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
9639
1190f2eb
PB
96402009-03-30 Paolo Bonzini <bonzini@gnu.org>
9641
9642 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
9643 Fix typos in names.
9644
fedc1775
PB
96452009-03-30 Paolo Bonzini <bonzini@gnu.org>
9646
fcb82ab0
UB
9647 * combine.c (simplify_comparison): Use have_insn_for.
9648 * dojump.c (do_jump): Likewise.
fedc1775 9649
65c5ae8b
PB
96502009-03-30 Paolo Bonzini <bonzini@gnu.org>
9651
9652 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
9653 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
9654 sparc_compare_op0 like sparc_compare_emitted used to be handled.
9655 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
9656 instead of sparc_compare_emitted.
9657 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
9658 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
9659 instead of sparc_compare_emitted.
9660
d25aa7ab
PB
96612009-03-30 Paolo Bonzini <bonzini@gnu.org>
9662
9663 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
9664 enter/exit cfglayout mode.
9665 (pass_partition_block): Require it.
9666 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
9667 (combine_instructions): Track basic blocks instead of labels.
9668 (update_cfg_for_uncondjump): New.
9669 (try_combine): Use it. Update jumps after rescanning.
9670 (pass_combine): Require PROP_cfglayout.
9671 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
9672
9c9e26f5
PB
96732009-03-30 Paolo Bonzini <bonzini@gnu.org>
9674
fcb82ab0
UB
9675 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
9676 Provide/destroy PROP_cfglayout respectively.
9677 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
9678 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 9679
28ddeea1
PB
96802009-03-30 Paolo Bonzini <bonzini@gnu.org>
9681
9682 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
9683 fold_convert_const_fixed_from_fixed,
9684 fold_convert_const_fixed_from_int,
9685 fold_convert_const_fixed_from_real, fold_negate_const): Do not
9686 set TREE_CONSTANT_OVERFLOW.
9687 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
9688 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
9689
ebfd146a
IR
96902009-03-30 Ira Rosen <irar@il.ibm.com>
9691
9692 * tree-vect-loop-manip.c: New file.
9693 * tree-vectorizer.c: Update documentation and included files.
9694 (vect_loop_location): Make extern.
9695 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
9696 (rename_variables_in_bb, rename_variables_in_loop,
9697 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
9698 slpeel_update_phi_nodes_for_guard1,
9699 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
9700 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
9701 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 9702 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
9703 find_loop_location): Likewise.
9704 (new_stmt_vec_info): Move to tree-vect-stmts.c.
9705 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
9706 get_vectype_for_scalar_type, vect_is_simple_use,
9707 supportable_widening_operation, supportable_narrowing_operation):
9708 Likewise.
9709 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
9710 (new_loop_vec_info, destroy_loop_vec_info,
9711 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
9712 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
9713 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
9714 (vect_supportable_dr_alignment): Likewise.
9715 * tree-vectorizer.h (tree-data-ref.h): Include.
9716 (vect_loop_location): Declare.
9717 Reorganize function declarations according to the new file structure.
9718 * tree-vect-loop.c: New file.
2ba9daa7 9719 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
9720 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
9721 * tree-vect-data-refs.c: New file.
9722 * tree-vect-patterns.c (timevar.h): Don't include.
9723 * tree-vect-stmts.c: New file.
2ba9daa7 9724 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 9725 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
9726 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
9727 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
9728 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
9729 (tree-vect-analyze.o): Remove.
9730 (tree-vect-transform.o): Likewise.
9731 (tree-vect-data-refs.o): Add rule.
2ba9daa7 9732 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
9733 tree-vect-slp.o): Likewise.
9734 (tree-vect-patterns.o): Remove redundant dependencies.
9735 (tree-vectorizer.o): Likewise.
9736 * tree-vect-slp.c: New file.
9737
40a1cfba
RW
97382009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9739
9740 * optc-gen.awk: Warn if an option flag has multiple different
9741 help strings.
9742
a9a7a9a2
SP
97432009-03-30 Sebastian Pop <sebastian.pop@amd.com>
9744
9745 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
9746 -floop-block): Document dependences on PPL, CLooG and Graphite.
9747
8ce94e44
JM
97482009-03-30 Joseph Myers <joseph@codesourcery.com>
9749
9750 PR rtl-optimization/323
9751 * c-common.c (c_fully_fold, convert_and_check,
9752 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
9753 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
9754 * c-common.def (EXCESS_PRECISION_EXPR): New.
9755 * c-cppbuiltin.c (builtin_define_float_constants): Define
9756 constants with enough digits for long double.
9757 * c-lex.c (interpret_float): Interpret constant with excess
9758 precision where appropriate.
9759 * c-opts.c (c_common_post_options): Set
9760 flag_excess_precision_cmdline. Give an error for
9761 -fexcess-precision=standard for C++ for processors where the
9762 option is significant.
9763 * c-parser.c (c_parser_conditional_expression): Handle excess
9764 precision in condition.
9765 * c-typeck.c (convert_arguments): Handle arguments with excess
9766 precision.
9767 (build_unary_op): Move excess precision outside operation.
9768 (build_conditional_expr): Likewise.
9769 (build_compound_expr): Likewise.
9770 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
9771 (build_modify_expr): Handle excess precision in RHS.
9772 (convert_for_assignment): Handle excess precision in converted
9773 value.
9774 (digest_init, output_init_element, process_init_element): Handle
9775 excess precision in initializer.
9776 (c_finish_return): Handle excess precision in return value.
9777 (build_binary_op): Handle excess precision in operands and add
9778 excess precision as needed for operation.
9779 * common.opt (-fexcess-precision=): New option.
9780 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
9781 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9782 For standard excess precision, output explicit conversion to and
9783 truncation from XFmode.
9784 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
9785 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
9786 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
9787 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
9788 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
9789 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
9790 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
9791 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
9792 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
9793 define_splits, sqrt<mode>2): Disable where appropriate for
9794 standard excess precision.
9795 * convert.c (convert_to_real): Do not shorten arithmetic to type
9796 for which excess precision would be used.
9797 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
9798 * doc/invoke.texi (-fexcess-precision=): Document option.
9799 (-mfpmath=): Correct index entry.
9800 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
9801 flag_excess_precision): New.
9802 * langhooks.c (lhd_post_options): Set
9803 flag_excess_precision_cmdline.
9804 * opts.c (common_handle_option): Handle -fexcess-precision=.
9805 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
9806 init_excess_precision): New.
9807 (lang_dependent_init_target): Call init_excess_precision.
9808 * tree.c (excess_precision_type): New.
9809 * tree.h (excess_precision_type): Declare.
9810
1e57bf47
JM
98112009-03-30 Joseph Myers <joseph@codesourcery.com>
9812
9813 PR c/35235
9814 * c-typeck.c (build_component_ref): Do not copy qualifiers from
9815 non-lvalue to component.
9816
148e4216
JM
98172009-03-29 Joseph Myers <joseph@codesourcery.com>
9818
9819 PR preprocessor/34695
9820 * Makefile.in (c-opts.o): Depend on c-tree.h.
9821 * c-common.c: Move down include of diagnostic.h.
9822 (done_lexing, c_cpp_error): New.
9823 * c-common.h (done_lexing): Declare.
9824 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
9825 (parse_in).
9826 * c-opts.c: Include c-tree.h.
9827 (c_common_init_options): Set preprocessor error callback.
9828 (c_common_handle_option): Do not set preprocessor
9829 inhibit_warnings, warnings_are_errors, warn_system_headers,
9830 pedantic_errors or inhibit_warnings flags.
9831 (c_common_post_options): Do not check cpp_errors (parse_in).
9832 (c_common_finish): Do not output dependencies if there were
9833 errors. Do not check return value of cpp_finish.
9834 * c-ppoutput.c (pp_file_change): Set input_location.
9835 * c-tree.h (c_cpp_error): Declare.
9836 * diagnostic.c (diagnostic_set_info_translated): Also initialize
9837 override_column.
9838 (diagnostic_build_prefix): Check override_column.
9839 * diagnostic.h (diagnostic_info): Add override_column field.
9840 (diagnostic_override_column): Define.
9841
2ec5deb5
PB
98422009-03-28 Paolo Bonzini <bonzini@gnu.org>
9843
ba20e309
UB
9844 * c-common.c (c_expand_expr, c_staticp): Remove.
9845 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
9846 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
9847 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
9848 * c-gimplify.c (gimplify_compound_literal_expr,
9849 optimize_compound_literals_in_ctor): Remove.
9850 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
9851 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
9852 * c-semantics.c (emit_local_var): Remove.
9853
9854 * langhooks-def.h (lhd_expand_expr): Remove.
9855 * langhooks.c (lhd_expand_expr): Remove.
9856 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
9857
9858 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
9859 handling from c-semantics.c; don't call into langhook.
9860 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
9861 * gimplify.c (gimplify_compound_literal_expr,
9862 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
9863 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
9864 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
9865 as was done in c-gimplify.c.
9866 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
9867 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
9868 Move from c-common.h.
9869 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
9870
9871 * tree.c (staticp): Do not call langhook.
9872 * langhooks.c (lhd_staticp): Delete.
9873 * langhooks-def.h (lhd_staticp): Delete prototype.
9874 (LANG_HOOKS_STATICP): Delete.
9875 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
9876
ba20e309
UB
9877 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
9878 instead of DECL_STMTs.
2ec5deb5 9879
928c19bb
JM
98802009-03-29 Joseph Myers <joseph@codesourcery.com>
9881
9882 PR c/456
9883 PR c/5675
9884 PR c/19976
9885 PR c/29116
9886 PR c/31871
9887 PR c/35198
9888 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
9889 void_type_node.
9890 (fold_call_expr): Return a NOP_EXPR from folding rather than the
9891 contained expression.
ba20e309 9892 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
9893 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
9894 conditional expressions for C.
9895 (decl_constant_value_for_optimization): Move from
ba20e309 9896 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
9897 whether optimizing and that the expression is a VAR_DECL not of
9898 array type instead of doing such checks in the caller. Do not
9899 check pedantic. Call gcc_unreachable for C++.
9900 * c-common.def (C_MAYBE_CONST_EXPR): New.
9901 * c-common.h (c_fully_fold, c_save_expr,
9902 decl_constant_value_for_optimization): New prototypes.
9903 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9904 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9905 EXPR_INT_CONST_OPERANDS): Define.
9906 * c-convert.c (convert): Strip nops from expression.
9907 * c-decl.c (groktypename): Take extra parameters expr and
9908 expr_const_operands. Update call to grokdeclarator.
9909 (start_decl): Update call to grokdeclarator. Add statement for
9910 expressions used in type of decl.
9911 (grokparm): Update call to grokdeclarator.
9912 (push_parm_decl): Update call to grokdeclarator.
9913 (build_compound_literal): Add parameter non_const and build a
9914 C_MAYBE_COSNT_EXPR if applicable.
9915 (grokdeclarator): Take extra parameters expr and
9916 expr_const_operands. Track expressions used in declaration
9917 specifiers and declarators. Fold array sizes and track whether
9918 they are constant expressions and whether they are integer
9919 constant expressions.
9920 (parser_xref_tag): Set expr and expr_const_operands fields in
9921 return value.
9922 (grokfield): Update call to grokdeclarator.
9923 (start_function): Update call to grokdeclarator.
9924 (build_null_declspecs): Set expr and expr_const_operands fields in
9925 return value.
9926 (declspecs_add_type): Handle expressions in typeof specifiers.
9927 * c-parser.c (c_parser_declspecs): Set expr and
9928 expr_const_operands fields for declaration specifiers.
9929 (c_parser_enum_specifier): Likewise.
9930 (c_parser_struct_or_union_specifier): Likewise.
9931 (c_parser_typeof_specifier): Likewise. Update call to
9932 groktypename. Fold expression as needed. Return expressions with
9933 type instead of adding statements.
9934 (c_parser_attributes): Update calls to c_parser_expr_list.
9935 (c_parser_statement_after_labels): Fold expression before passing
9936 to objc_build_throw_stmt.
9937 (c_parser_condition): Fold expression.
9938 (c_parser_asm_operands): Fold expression.
9939 (c_parser_conditional_expression): Use c_save_expr. Update call
9940 to build_conditional_expr.
9941 (c_parser_alignof_expression): Update call to groktypename.
9942 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
9943 original_code. Fold expression argument of va_arg. Create
9944 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
9945 argument to va_arg. Update calls to groktypename. Fold array
9946 index for offsetof. Verify that first argument to
9947 __builtin_choose_expr has integer type.
9948 (c_parser_postfix_expression_after_paren_type): Update calls to
9949 groktypename and build_compound_literal. Handle expressions with
9950 side effects in type name.
9951 (c_parser_postfix_expression_after_primary): Update call to
9952 c_parser_expr_list. Set original_code for calls to
9953 __builtin_constant_p.
9954 (c_parser_expr_list): Take extra parameter fold_p. Fold
9955 expressions if requested.
9956 (c_parser_objc_type_name): Update call to groktypename.
9957 (c_parser_objc_synchronized_statement): Fold expression.
9958 (c_parser_objc_receiver): Fold expression.
9959 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
9960 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
9961 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
9962 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
9963 (struct c_typespec): Add elements expr and expr_const_operands.
9964 (struct c_declspecs): Add elements expr and expr_const_operands.
9965 (groktypename, build_conditional_expr, build_compound_literal):
9966 Update prototypes.
9967 (in_late_binary_op): Declare.
9968 * c-typeck.c (note_integer_operands): New function.
9969 (in_late_binary_op): New variable.
9970 (decl_constant_value_for_broken_optimization): Move to c-common.c
9971 and rename to decl_constant_value_for_optimization.
9972 (default_function_array_conversion): Do not strip nops.
9973 (default_conversion): Do not call
9974 decl_constant_value_for_broken_optimization.
9975 (build_array_ref): Do not fold result.
9976 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
9977 result when operand is a VLA.
9978 (c_expr_sizeof_type): Update call to groktypename. Handle
9979 expressions included in type name. Use C_MAYBE_CONST_EXPR for
9980 result when operand names a VLA type.
9981 (build_function_call): Update call to build_compound_literal.
9982 Only fold result for calls to __builtin_* functions. Strip
9983 NOP_EXPR from INTEGER_CST returned from such functions. Fold
9984 the function designator.
9985 (convert_arguments): Fold arguments. Update call to
9986 convert_for_assignment.
9987 (build_unary_op): Handle increment and decrement of
9988 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
9989 decrement earlier. Fold operand of increment and decrement.
9990 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
9991 built for integer operand. Wrap returns that are INTEGER_CSTs
9992 without being integer constant expressions or that have integer
9993 constant operands without being INTEGER_CSTs.
9994 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
9995 (build_conditional_expr): Add operand ifexp_bcp. Track whether
9996 result is an integer constant expression or can be used in
9997 unevaluated parts of one and avoid folding and wrap as
9998 appropriate. Fold operands before possibly doing -Wsign-compare
9999 warnings.
10000 (build_compound_expr): Wrap result for C99 if operands can be used
10001 in integer constant expressions.
10002 (build_c_cast): Update call to digest_init. Do not ignore
10003 overflow from casting floating-point constants to integers. Wrap
10004 results that could be confused with integer constant expressions,
10005 null pointer constants or floating-point constants.
10006 (c_cast_expr): Update call to groktypename. Handle expressions
10007 included in type name.
10008 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
10009 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
10010 Update calls to convert_for_assignment.
10011 (convert_for_assignment): Take new parameter
10012 null_pointer_constant. Do not strip nops or call
10013 decl_constant_value_for_broken_optimization. Set
10014 in_late_binary_op for conversions to boolean.
10015 (store_init_value): Update call to digest_init.
10016 (digest_init): Take new parameter null_pointer_constant. Do not
10017 call decl_constant_value_for_broken_optimization. pedwarn for
10018 initializers not constant expressions. Update calls to
10019 convert_for_assignment.
10020 (constructor_nonconst): New.
10021 (struct constructor_stack): Add nonconst element.
10022 (really_start_incremental_init, push_init_level, pop_init_level):
10023 Handle constructor_nonconst and nonconst element.
10024 (set_init_index): Call constant_expression_warning for array
10025 designators.
10026 (output_init_element): Fold value. Set constructor_nonconst as
10027 applicable. pedwarn for initializers not constant expressions.
10028 Update call to digest_init. Call constant_expression_warning
10029 where constant initializers are required.
10030 (process_init_element): Use c_save_expr.
10031 (c_finish_goto_ptr): Fold expression.
10032 (c_finish_return): Fold return value. Update call to
10033 convert_for_assignment.
10034 (c_start_case): Fold switch expression.
10035 (c_process_expr_stmt): Fold expression.
10036 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 10037 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
10038 (build_binary_op): Track whether results are integer constant
10039 expressions or may occur in such, disable folding and wrap results
10040 as applicable. Fold operands for -Wsign-compare warnings unless
10041 in_late_binary_op.
10042 (c_objc_common_truthvalue_conversion): Handle results folded to
10043 integer constants that are not integer constant expressions.
10044 * doc/extend.texi: Document when typeof operands are evaluated,
10045 that condition of __builtin_choose_expr is an integer constant
10046 expression, and more about use of __builtin_constant_p in
10047 initializers.
10048
5babbcc0
RG
100492009-03-29 Richard Guenther <rguenther@suse.de>
10050
10051 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
10052 propagate addresses of array references.
10053
0340f2ba
SB
100542009-03-29 Steven Bosscher <steven@gcc.gnu.org>
10055
10056 * regmove.c (perhaps_ends_bb_p): Remove.
10057 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
10058 from INSN and check that the main loop stays within that basic block.
10059 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
10060 (regmove_forward_pass): Split out from regmove_optimize. Use
10061 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
10062 (regmove_backward_pass): Split out from regmove_optimize. Use
10063 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
10064 (regmove_optimize): Simplify.
10065
eeae74a1
L
100662009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10067
10068 PR target/39545
10069 * config/i386/i386.c (classify_argument): Ignore flexible array
10070 member in struct and warn ABI change.
10071
a24078b2
L
100722009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10073
10074 * config/i386/i386-protos.h (ix86_agi_dependent): New.
10075
10076 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
10077 (ix86_adjust_cost): Updated.
10078
a8da523f
JH
100792009-03-29 Jan Hubicka <jh@suse.cz>
10080
10081 PR middle-end/28850
10082 * tree-pass.h (pass_cleanup_eh): New function.
10083 (remove_unreachable_regions): Break code handling RTL
10084 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
10085 that can not be reached by runtime.
10086 (can_be_reached_by_runtime): New function.
10087 (label_to_region_map): New function.
10088 (num_eh_regions): New function.
10089 (rtl_remove_unreachable_regions): New function.
10090 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
10091 (remove_eh_region): New function.
10092 * except.h: Include sbitmap and vecprim.
10093 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
10094 num_eh_regions): Declare.
10095 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 10096 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
10097 * tree-eh.c (tree_remove_unreachable_handlers): New function.
10098 (tree_empty_eh_handler_p): New function.
10099 (cleanup_empty_eh): New function.
10100 (cleanup_eh): New function.
10101 (pass_cleanup_eh): New function.
10102
98f358e5
JH
101032009-03-29 Jan Hubicka <jh@suse.cz>
10104
10105 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
10106 for removed regions.
10107
13a9fa44
JH
101082009-03-29 Jan Hubicka <jh@suse.cz>
10109
10110 * except.c (dump_eh_tree): Dump all datastructures.
10111
e38cf733
JH
101122009-03-29 Jan Hubicka <jh@suse.cz>
10113
10114 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
10115 (duplicate_eh_regions_1): Likewise.
10116 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
10117 vector; call EH verification.
10118 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10119 Be ready for region being removed.
10120
12802c2b
JH
101212009-03-29 Jan Hubicka <jh@suse.cz>
10122
10123 * bitmap.c (bitmap_last_set_bit): New function.
10124 * bitmap.h (bitmap_last_set_bit): Declare.
10125
4ea80a41
DA
101262009-03-29 David Ayers <ayers@fsfe.org>
10127
10128 PR objc/27377
10129 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
10130 by calling objc_compare_types and surpress warnings about
10131 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 10132
4ea80a41 101332009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
10134
10135 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
10136 call initialize_inline_failed.
10137 (initialize_inline_failed): Move it from here ...
10138 * cgraph.c (initialize_inline_failed): ... to here.
10139 (cgraph_create_edge): Call initialize_inline_failed rather than
10140 setting inline_failed directly.
10141
7fb0ee07
BE
101422009-03-29 Ben Elliston <bje@au.ibm.com>
10143
10144 PR target/32542
10145 * sysv4.opt (msdata): Improve comment.
10146 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
10147 * sysv4.h (SVR4_ASM_SPEC): Likewise.
10148
0be77bf2
BE
101492009-03-29 Ben Elliston <bje@au.ibm.com>
10150
10151 PR target/30451
10152 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
10153 load and store attributes.
10154
593812b6
BE
101552009-03-29 Ben Elliston <bje@au.ibm.com>
10156
10157 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
10158 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
10159 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
10160 * doc/extend.texi (X86 Built-in Functions): Add index entries for
10161 __builtin_infq and __builtin_huge_valq.
10162
8272d11d
AS
101632009-03-28 Anatoly Sokolov <aesok@post.ru>
10164
10165 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
10166 atmega8m1 devices.
10167 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10168 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
10169
74fe548b
XDL
101702009-03-28 Xinliang David Li <davidxl@google.com>
10171
2ba9daa7 10172 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
10173 (do_dbg_cnt): New function.
10174
33977f81
JH
101752009-03-28 Jan Hubicka <jh@suse.cz>
10176
10177 Merge from pretty-ipa:
10178
10179 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 10180
33977f81
JH
10181 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10182 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
10183 * passes.c (function_called_by_processed_nodes_p): New.
10184 * ipa-pure-const.c (check_call): Fix handling of operands.
10185 (analyze_function): Dump debug output for skipped bodies.
10186 (local_pure_const): Use function_called_by_processed_nodes_p.
10187 * dwarf2out.c (reference_to_unused): Use output.
10188 * passes.c (do_per_function_toporder): Likewise.
10189
10190 2008-11-12 Jan Hubicka <jh@suse.cz>
10191
10192 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
10193 * ipa-pure-const.c (funct_state_d): Add can throw field; make
10194 state_set_in_source enum
10195 (check_decl): Ignore memory tags; do not set fake looping flags;
10196 dump diagnostics.
10197 (check_operand, check_tree, check_rhs_var, check_lhs_var,
10198 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
10199 (check_call, analyze_function): Rewrite.
10200 (check_stmt): New.
10201 (add_new_function): Update call of analyze_function.
10202 (generate_summary): Add call of analyze_function.
10203 (propagate): Propagate can_throw; handle state_set_in_source correctly.
10204 (local_pure_const): New function.
10205 (pass_local_pure_const): New pass.
10206 * ipa-inline.c (inline_transform): Set after_inlining.
10207 * tree-eh.c (stmt_can_throw_external): New.
10208 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
10209 work with aliasing built.
10210 * tree-flow.h (stmt_can_throw_external): New.
10211 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
10212 and local pure/const pass in early and late optimization queue.
ba20e309 10213
617f3897
MJ
102142009-03-28 Martin Jambor <mjambor@suse.cz>
10215
10216 * fold-const.c (get_pointer_modulus_and_residue): New parameter
10217 allow_func_align.
10218 (fold_binary): Allow function decl aligment consideration is the
10219 second argument is integer constant one.
10220 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
10221 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
10222 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
10223
fe89fbc5
JH
102242009-03-28 Jan Hubicka <jh@suse.cz>
10225
10226 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
10227 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
10228 * function.h (rtl_data): Add nothrow flag.
10229 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
10230 set DECL_NOTHROW for AVAILABLE functions.
10231
574872ff
JJ
102322009-03-28 Jakub Jelinek <jakub@redhat.com>
10233
b3bf8855
JJ
10234 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
10235 following vector keyword has expansion starting with pixel or bool
10236 keyword, expand vector to __vector and pixel or bool to __pixel or
10237 __bool.
10238
574872ff
JJ
10239 PR c++/39554
10240 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
10241 warn_if_disallowed_function_p): Removed.
10242 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
10243 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
10244 warning_if_disallowed_function_p.
10245 * flags.h (warn_if_disallowed_function_p,
10246 warn_disallowed_functions): Removed.
10247 * common.opt (Wdisallowed-function-list=): Removed.
10248 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
10249
b005da11
RG
102502009-03-28 Richard Guenther <rguenther@suse.de>
10251
10252 PR tree-optimization/38723
10253 * tree-ssa-pre.c (compute_avail): Add all default definitions to
10254 the entry block.
10255
1de812a6
JH
102562009-03-28 Jan Hubicka <jh@suse.cz>
10257
10258 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
10259 test introduced by my previous patch.
10260
fbb789d4
RG
102612009-03-28 Richard Guenther <rguenther@suse.de>
10262
10263 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
10264 the PHIs value undefined.
10265
6f1873a1
JH
102662009-03-28 Jan Hubicka <jh@suse.cz>
10267
10268 * tree-pass.h (pass_fixup_cfg): New pass.
10269 * ipa-inline.c (inline_transform): Set
10270 always_inline_functions_inlined/after_inlining.
10271 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
10272 (pass_fixup_cfg): New pass.
10273 * passes.c (init_optimization_passes): Add fixup_cfg.
10274
17021bc8
RG
102752009-03-28 Richard Guenther <rguenther@suse.de>
10276
10277 PR tree-optimization/38458
10278 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
10279 argument use the arguments copy-of value.
10280
e8114fba
RG
102812009-03-28 Richard Guenther <rguenther@suse.de>
10282
10283 PR tree-optimization/38180
10284 * tree-ssa-ccp.c (get_default_value): Simplify.
10285 (likely_value): Likewise.
10286 (surely_varying_stmt_p): Properly handle VOP case.
10287 (ccp_initialize): Likewise.
10288 (ccp_fold): Handle propagating through *&.
10289 (fold_const_aggregate_ref): Also handle decls.
10290
257eb6e3
JH
102912009-03-28 Jan Hubicka <jh@suse.cz>
10292
10293 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10294 * cgraph.h (cgraph_node): Likewise.
10295 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
10296 (cgraph_reset_node): Use process flag.
10297 (cgraph_mark_functions_to_output): Likewise.
10298 (cgraph_expand_function): Likewise.
10299 (cgraph_expand_all_functions): Likewise.
10300 (cgraph_output_in_order): Likewise.
10301 * dwarf2out.c (reference_to_unused): Likewise.
10302 * passes.c do_per_function_toporder): Likewise.
10303
61a05df1
JH
103042009-03-28 Jan Hubicka <jh@suse.cz>
10305
10306 Bring from lto-branch:
ba20e309 10307
61a05df1
JH
10308 2008-09-03 Doug Kwan <dougkwan@google.com>
10309
10310 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
10311 enums instead of reason strings.
10312 * cgraph.c (cgraph_create_edge): Same.
10313 (cgraph_inline_failed_string): New function.
10314 * cgraph.h (cgraph_inline_failed_t): New enum type.
10315 (cgraph_inline_failed_string): New prototype.
10316 (struct cgraph_edge): Change type of INLINED_FAILED from constant
10317 char pointer to cgraph_inline_failed_t.
10318 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
10319 (cgraph_default_inline_p): Ditto.
60839f5d 10320 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
10321 to cgraph_inline_failed_t pointer.
10322 * cif-code.def: New file.
10323 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
10324 reason string.
10325 (cgraph_check_inline_limits): Change type of REASON to pointer to
10326 cgraph_inline_failed_t. Replace reason strings with enums.
10327 (cgraph_default_inline_p): Ditto.
10328 (cgraph_recursive_inlining_p): Ditto.
10329 (update_caller_keys): Change type of FAILED_REASON to
10330 cgraph_inline_failed_t.
10331 (cgraph_set_inline_failed): Change type of REASON to pointer to
10332 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
10333 convert enums to strings for text output.
10334 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
10335 to be of type cgraph_inline_failed_t. Replace reason strings with
10336 enums. Call cgraph_inline_failed_string to covert enums
10337 to strings for text output.
10338 (cgraph_decide_inlining): Replace reason strings with enums.
10339 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
10340 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
10341 for text output.
10342 * tree-inline.c (expand_call_inline): Change type of REASON
10343 to cgraph_inline_failed_t. Replace reason strings with enums.
10344 Call cgraph_inline_failed_string for text output.
10345 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
10346 (cgraph.o): Ditto.
10347
144e8aac
JH
103482009-03-28 Jan Hubicka <jh@suse.cz>
10349
10350 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
10351 cgraph_clone_node): Remove master clone handling.
10352 (cgraph_is_master_clone, cgraph_master_clone): Remove.
10353 * cgraph.h (master_clone): Remove.
10354 (cgraph_is_master_clone, cgraph_master_clone): Remove.
10355 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
10356 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
10357
4a371c8d
JH
103582009-03-28 Jan Hubicka <jh@suse.cz>
10359
10360 * cgraph.c (cgraph_function_body_availability): Functions declared
10361 inline are always safe to assume that it is not going to be replaced.
10362
6cdb0ee3
RG
103632009-03-28 Richard Guenther <rguenther@suse.de>
10364
10365 PR tree-optimization/38513
10366 * tree-ssa-pre.c (eliminate): Remove redundant stores.
10367 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10368 EXC_PTR_EXPR and FILTER_EXPR.
10369 (get_ref_from_reference_ops): Likewise.
10370
8ca1fd76
RG
103712009-03-28 Richard Guenther <rguenther@suse.de>
10372
10373 PR tree-optimization/38968
10374 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
10375 Use FLOOR_MOD_EXPR to compute misalignment.
10376
a254e44d
RG
103772009-03-28 Richard Guenther <rguenther@suse.de>
10378
10379 PR tree-optimization/37795
10380 * tree.h (combine_comparisons): Declare.
10381 * fold-const.c (combine_comparisons): Export.
10382 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
10383 comparisons.
10384 (ifcombine_iforif): Use combine_comparisons.
10385
a8ee227c
JH
103862009-03-28 Jan Hubicka <jh@suse.cz>
10387
10388 * tree-eh.c (inlinable_call_p): New function.
10389 (make_eh_edges): Use it.
10390 (verify_eh_edges): Use it.
10391 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
10392 * except.c (reachable_next_level): Add inlinable_function argument
10393 (sjlj_find_directly_reachable_regions): Update.
10394 (add_reachable_handler): Do not set saw_any_handlers.
10395 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
10396 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10397 Add new inlinable call parameter.
10398 (can_throw_internal, can_throw_external): Update.
10399 * except.h (can_throw_internal_1, can_throw_external_1,
10400 foreach_reachable_handler): Update declaration.
10401
52c0e446
JM
104022009-03-28 Joseph Myers <joseph@codesourcery.com>
10403
10404 * config/arm/t-arm-coff, config/h8300/coff.h,
10405 config/i386/i386-aout.h, config/i386/i386-coff.h,
10406 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
10407 config/pdp11/2bsd.h, config/rs6000/aix41.h,
10408 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
10409 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
10410 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
10411 sys-types.h: Remove.
10412 * Makefile.in: Remove protoize and fixproto support and references
10413 in comments.
10414 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
10415 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
10416 Remove.
10417 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
10418 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
10419 unprotoize$(exeext).
10420 (rest.encap): Don't depend on $(STMP_FIXPROTO)
10421 (.PHONY): Don't depend on proto.
10422 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
10423 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
10424 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
10425 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
10426 build/gen-protos.o, build/scan.o, xsys-protos.h,
10427 build/fix-header$(build_exeext), build/fix-header.o,
10428 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
10429 stmp-install-fixproto): Remove.
10430 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
10431 SYSCALLS.c or fixproto files.
10432 (install-common): Don't install protoize.
10433 (install-headers-tar, install-headers-cpio, install-headers-cp):
10434 Don't depend on $(STMP_FIXPROTO).
10435 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
10436 install fixproto files or write out fixproto settings.
10437 (uninstall): Don't uninstall protoize.
10438 * config.gcc (use_fixproto): Remove.
10439 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
10440 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
10441 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
10442 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
10443 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
10444 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
10445 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
10446 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
10447 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
10448 * config/t-vxworks (STMP_FIXPROTO): Remove.
10449 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
10450 STMP_FIXPROTO): Remove.
10451 * config.in, configure: Regenerate.
10452 * crtstuff.c (gid_t, uid_t): Don't undefine.
10453 * doc/install.texi: Change m68k-coff to m68k-elf in example.
10454 (arm-*-coff, arm-*-aout: Remove target entries.
10455 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
10456 Remove mention of AIX 4.1.
10457 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
10458 * doc/invoke.texi (Running Protoize): Remove.
10459 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
10460 (Protoize Caveats): Remove.
10461 * tsystem.h: Update comments on headers assumed to exist.
10462
20a07f44
VM
104632009-03-27 Vladimir Makarov <vmakarov@redhat.com>
10464
10465 * genautomata.c: Add a new year to the copyright. Add a new
10466 reference.
10467 (struct insn_reserv_decl): Add comments for member bypass_list.
10468 (find_bypass): Remove.
10469 (insert_bypass): New.
10470 (process_decls): Use insert_bypass.
10471 (output_internal_insn_latency_func): Output all bypasses with the
10472 same input insn in one switch case.
10473
10474 * rtl.def (define_bypass): Describe bypass choice.
10475 * doc/md.texi (define_bypass): Ditto.
10476
3a0d06c1
RB
104772009-03-27 Richard Guenther <rguenther@suse.de>
10478
10479 * gimplify.c (mark_addressable): Export.
10480 * tree-flow.h (mark_addressable): Declare.
10481 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
10482 * tree-ssa.c (verify_phi_args): Verify that address taken
10483 variables have TREE_ADDRESSABLE set.
10484
104852009-03-27 Richard Guenther <rguenther@suse.de>
10486
10487 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
10488 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
10489 Do not mark decls TREE_ADDRESSABLE.
10490 (build_fold_addr_expr): Adjust.
10491 (fold_addr_expr): Remove.
10492 (fold_unary): Use build_fold_addr_expr.
10493 (fold_comparison): Likewise.
10494 (split_address_to_core_and_offset): Likewise.
10495 * coverage.c (tree_coverage_counter_addr): Mark the array decl
10496 TREE_ADDRESSABLE.
10497 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
10498 (gimplify_modify_expr_to_memcpy): Mark source and destination
10499 addressable.
10500 * omp-low.c (create_omp_child_function): Mark the object decl
10501 TREE_ADDRESSABLE.
10502 (lower_rec_input_clauses): Mark the var we take the address of
10503 TREE_ADDRESSABLE.
10504 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
10505
2ac26e15
L
105062009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10507
10508 PR middle-end/39315
10509 * cfgexpand.c (expand_one_stack_var_at): Change alignment
10510 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
10511
472c7fbd
RG
105122009-03-27 Richard Guenther <rguenther@suse.de>
10513
10514 PR tree-optimization/39120
10515 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
10516 constraints.
10517 (handle_lhs_call): Process return constraints. Add escape
10518 constraints if necessary.
10519 (handle_const_call): Fill out return constraints. Make nested
10520 case more precise. Avoid consttmp if possible.
10521 (handle_pure_call): Fill out return constraints. Avoid
10522 callused if possible.
10523 (find_func_aliases): Simplify call handling.
10524
105252009-03-27 Richard Guenther <rguenther@suse.de>
10526
10527 PR tree-optimization/39120
10528 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
10529 as a representative.
10530 (solve_graph): Do propagate CALLUSED.
10531 (handle_pure_call): Use a scalar constraint from CALLUSED for
10532 the return value.
10533 (find_what_p_points_to): CALLUSED shall not appear in poins-to
10534 solutions.
10535
d9223014
L
105362009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10537
10538 PR c/39323
10539 * c-common.c (handle_aligned_attribute): Properly check alignment
10540 overflow. Use (1U << i) instead of (1 << i).
10541
ba20e309 10542 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
10543
10544 * expr.h (get_mem_align_offset): Updated.
10545
10546 * tree.h (tree_decl_common): Change align to "unsigned int" and
10547 move it before pointer_alias_set.
10548
689b689c
L
105492009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10550 Jakub Jelinek <jakub@redhat.com>
10551
10552 PR target/38034
10553 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
10554 gr_register_operand with gr_reg_or_0_operand.
10555 (cmpxchg_rel_di): Likewise.
10556 (sync_lock_test_and_set<mode>): Likewise.
10557
c619e982
L
105582009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10559
10560 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
10561 (true_regnum): Likewise.
10562
10563 * rtlanal.c (subreg_info): Moved to ...
10564 * rtl.h (subreg_info): Here. New.
10565 (subreg_get_info): New.
10566
10567 * rtlanal.c (subreg_get_info): Make it extern.
10568
51212b32
L
105692009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10570
10571 PR target/39472
10572 * config/i386/i386.c (ix86_abi): New.
10573 (override_options): Handle -mabi=.
ba20e309 10574 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
10575 (ix86_call_abi_override): Likewise.
10576 (init_cumulative_args): Likewise.
10577 (function_arg_advance): Likewise.
10578 (function_arg_64): Likewise.
10579 (function_arg): Likewise.
10580 (ix86_pass_by_reference): Likewise.
10581 (ix86_function_value_regno_p): Likewise.
10582 (ix86_build_builtin_va_list_abi): Likewise.
10583 (setup_incoming_varargs_64): Likewise.
10584 (is_va_list_char_pointer): Likewise.
10585 (ix86_init_machine_status): Likewise.
ba20e309 10586 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
10587 (ix86_function_type_abi): Return enum calling_abi. Rewrite
10588 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 10589 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
10590 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
10591 with ix86_abi.
10592 (ix86_fn_abi_va_list): Updated.
10593
10594 * config/i386/i386.h (ix86_abi): New.
10595 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
10596 (CONDITIONAL_REGISTER_USAGE): Likewise.
10597 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
10598 (machine_function): Likewise.
10599
10600 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
10601 with ix86_abi.
10602 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
10603 (STACK_BOUNDARY): Likewise.
10604 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
10605
10606 * config/i386/i386.opt (mabi=): New.
10607
10608 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
10609 return enum calling_abi.
10610 (ix86_function_type_abi): Likewise.
10611 (ix86_function_abi): Removed.
10612
10613 * doc/invoke.texi: Document -mabi= option for x86.
10614
7338ea63
KG
106152009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10616
10617 * builtins.c (real_dconstp): Delete.
10618 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
10619
68599f33
DS
106202009-03-27 Dodji Seketeli <dodji@redhat.com>
10621 Jakub Jelinek <jakub@redhat.com>
10622
10623 PR debug/37959
10624 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
10625 (gen_subprogram_die): When a function is explicit, generate the
10626 DW_AT_explicit attribute.
10627 * langhooks.h (struct lang_hooks_for_decls): Add
10628 function_decl_explicit_p langhook.
10629 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
10630 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
10631
9f5e9983
JJ
106322009-03-27 Jakub Jelinek <jakub@redhat.com>
10633
64d7685c
JJ
10634 * builtins.c (fold_builtin_memory_op): Optimize memmove
10635 into memcpy if we can prove source and destination don't overlap.
10636
9f5e9983
JJ
10637 * tree-inline.c: Include gt-tree-inline.h.
10638 (clone_fn_id_num): New variable.
10639 (clone_function_name): New function.
10640 (tree_function_versioning): Use it.
10641 * Makefile.in (GTFILES): Add tree-inline.c.
10642
e54d52a8
MM
106432009-03-27 Mark Mitchell <mark@codesourcery.com>
10644
10645 * BASE-VER: Change to 4.5.0.
10646
e9d51dc6
XDL
106472009-03-27 Xinliang David Li <davidxl@google.com>
10648
10649 PR tree-optimization/39557
10650 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
10651
4577cea1
XDL
106522009-03-27 Xinliang David Li <davidxl@google.com>
10653
10654 PR tree-optimization/39548
2ba9daa7 10655 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
10656 candidate check.
10657
0f7464f4
L
106582009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10659
10660 * c-common.c (pointer_int_sum): Use %wd on return from
10661 tree_low_cst.
10662
a8847a7f
L
106632009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10664
10665 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
10666 on return from tree_low_cst.
10667
b0957daf
AP
106682009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
10669
10670 PR c++/36799
ba20e309
UB
10671 * ginclude/stdarg.h (va_copy): Define also for
10672 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 10673
a5f805df
MLI
106742009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10675
10676 PR c++/35652
10677 * builtins.h (c_strlen): Do not warn here.
10678 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
10679 * c-common.c (pointer_int_sum): Take an explicit location.
10680 Warn about offsets out of bounds.
10681 * c-common.h (pointer_int_sum): Adjust declaration.
10682
6f401211
RW
106832009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10684
a5f805df
MLI
10685 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
10686 markup glitch.
6f401211 10687
5a59b39e
JJ
106882009-03-26 Jakub Jelinek <jakub@redhat.com>
10689
10690 PR c++/39554
10691 * opts.c (warn_if_disallowed_function_p): Don't assume
10692 get_callee_fndecl must return non-NULL.
10693
d5f89b53
VM
106942009-03-26 Vladimir Makarov <vmakarov@redhat.com>
10695
10696 PR rtl-optimization/39522
10697 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
10698 when reg_reloaded_valid is set.
10699
61238a79
UW
107002009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10701
10702 * config/spu/divv2df3.c: New file.
10703 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
10704 (DPBIT_FUNCS): Filter out _div_df.
10705
03f8829b
BS
107062009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
10707
10708 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
10709 a jump insn, count that jump in the distance to the loop start.
10710
9fdcdc74
KK
107112009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
10712
10713 PR target/39523
10714 * config/sh/sh.c (calc_live_regs): Fix condition for global
10715 registers except PIC_OFFSET_TABLE_REGNUM.
10716
46994828
KT
107172009-03-25 Kai Tietz <kai.tietz@onevision.com>
10718
10719 PR/39518
10720 * doc/invoke.texi (-mconsole): New.
10721 (-mcygwin): New.
10722 (-mno-cygwin): New.
10723 (-mdll): New.
10724 (-mnop-fun-dllimport): New.
10725 (-mthread): New.
10726 (-mwin32): New.
10727 (-mwindows): New.
10728 (sub section "i386 and x86-64 Windows Options"): New.
10729
60839f5d 107302009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
10731
10732 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
10733 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
10734
ae560440
RG
107352009-03-25 Richard Guenther <rguenther@suse.de>
10736
10737 PR middle-end/39497
10738 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
10739 of -Wno-error.
10740
cd510f15
AM
107412009-03-25 Andrey Belevantsev <abel@ispras.ru>
10742
10743 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
10744 neither of haifa/selective schedulers are working.
10745
44ab0f0e
RW
107462009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10747
10748 * doc/invoke.texi (Debugging Options): Fix description of
10749 -fno-merge-debug-strings.
10750
ad9646c7
HPN
107512009-03-24 Hans-Peter Nilsson <hp@axis.com>
10752
e6142656
HPN
10753 * config/cris/libgcc.ver: New version-script.
10754 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
10755
ad9646c7
HPN
10756 * configure.ac <GAS features, nop mnemonic>: Add pattern
10757 crisv32-*-* for "nop".
ba20e309 10758 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
10759 * configure: Regenerate.
10760
09ac4473
IR
107612009-03-24 Ira Rosen <irar@il.ibm.com>
10762
10763 PR tree-optimization/39529
10764 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
10765 mark_sym_for_renaming for the tag copied to the new vector
10766 pointer.
10767
d94a427e
AL
107682009-03-24 Arthur Loiret <aloiret@debian.org>
10769
ba20e309 10770 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
10771 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
10772 EXTRA_SPEC_FUNCTIONS.
10773 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
10774 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
10775 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
10776 -march and -mtune options.
10777
60839f5d 107782009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
10779
10780 * config/m68k/t-rtems: Add m5329 multilib.
10781
603f5959
DS
107822009-03-24 Dodji Seketeli <dodji@redhat.com>
10783 Jakub Jelinek <jakub@redhat.com>
10784
10785 PR debug/39524
10786 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
10787 nodes.
10788
c5cdb03f
JJ
107892009-03-23 Jakub Jelinek <jakub@redhat.com>
10790
10791 PR c/39495
10792 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
10793 instead of c_parser_expression_conv, if original_code isn't one of the
10794 4 allowed comparison codes, fail.
10795
3691626c
RG
107962009-03-23 Richard Guenther <rguenther@suse.de>
10797
10798 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
10799 * tree.h (struct tree_type): Likewise.
10800 * reload.h (struct insn_chain): Likewise.
10801 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
10802 * function.h (struct function): Likewise.
10803 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
10804
88ccb72a
JJ
108052009-03-23 Jakub Jelinek <jakub@redhat.com>
10806
10807 PR tree-optimization/39516
10808 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
10809
60839f5d 108102009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 10811
2ba9daa7 10812 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
10813 should be set true if BITS_PER_WORD of target is bigger than 32
10814
f82162f8
HPN
108152009-03-22 Hans-Peter Nilsson <hp@axis.com>
10816
10817 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
10818 Translate -B-options to -rpath-link. Correct existing
10819 rpath-link and conditionalize on !nostdlib.
10820
048fd785
RW
108212009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10822
10823 * doc/extend.texi (Function Attributes, Variable Attributes):
10824 Fix typos.
10825 * doc/invoke.texi (Debugging Options, Optimize Options)
10826 (i386 and x86-64 Options, MCore Options): Likewise.
10827
6e75c1a9
JJ
108282009-03-20 Jakub Jelinek <jakub@redhat.com>
10829
10830 PR debug/37890
10831 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
10832 it for block local namespace aliases.
10833 (gen_decl_die): Pass context_die to gen_namespace_die.
10834
ea1199ee
JJ
108352009-03-19 Jakub Jelinek <jakub@redhat.com>
10836
10837 PR c/39495
10838 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
10839 minimum or maximum value.
10840
58929c10
AO
108412009-03-19 Alexandre Oliva <aoliva@redhat.com>
10842
10843 * reginfo.c (globalize_reg): Recompute derived reg sets.
10844
60839f5d 108452009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
10846
10847 PR target/39063
10848 * libgcc2.c (mprotect): Do not use signed arguments for
10849 VirtualProtect, use DWORD arguments. Also fix the 'may
10850 be used uninitialized' warning for the np variable.
10851
f57c2f04
JJ
108522009-03-19 Jakub Jelinek <jakub@redhat.com>
10853
10854 PR target/39496
10855 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
10856 functions using regparm calling conventions when not optimizing.
10857 (ix86_function_sseregparm): Similarly for sseregparm calling
10858 conventions.
10859
9e517d61
LF
108602009-03-19 Li Feng <nemokingdom@gmail.com>
10861
10862 PR middle-end/39500
10863 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
10864 dependence if the first conflict is after niter iterations.
10865
8ef20026
HPN
108662009-03-19 Hans-Peter Nilsson <hp@axis.com>
10867
10868 PR middle-end/38609
10869 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
10870 functions with dynamic stack-pointer adjustments.
10871
64e4a1a6
BE
108722009-03-19 Ben Elliston <bje@au.ibm.com>
10873
10874 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
10875 option; change to -msdata=data.
10876
9a0f3e86
RW
108772009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10878
10879 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
10880 and -fopenmp.
10881
09bc5979
EB
108822009-03-18 Eric Botcazou <ebotcazou@adacore.com>
10883
10884 PR target/35180
10885 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
10886
332459cd
SL
108872009-03-18 Sandra Loosemore <sandra@codesourcery.com>
10888
10889 * doc/invoke.texi (Code Gen Options): Expand discussion of
10890 -fno-common.
10891
8f5929e1
JJ
108922009-03-18 Jakub Jelinek <jakub@redhat.com>
10893
10894 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
10895 * matrix-reorg.c (struct matrix_info): Likewise.
10896 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
10897 * rtl.h (struct mem_attrs): Likewise.
10898 * df.h (struct df): Likewise.
10899 * tree-data-ref.h (struct data_dependence_relation): Likewise.
10900 * ira-int.h (struct ira_allocno): Likewise.
10901 * df-scan.c (struct df_collection_rec): Likewise.
10902 * ira.c (struct equivalence): Likewise.
10903 * function.c (struct temp_slot): Likewise.
10904 * cfgloop.h (struct loop): Likewise.
10905
d130d647
JJ
10906 PR debug/39485
10907 * function.c (use_register_for_decl): When not optimizing, disregard
10908 register keyword for variables with types containing methods.
10909
9968d233
SP
109102009-03-18 Sebastian Pop <sebastian.pop@amd.com>
10911
10912 PR middle-end/39447
10913 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
10914 (is_simple_operand): Call contains_component_ref_p before calling data
10915 reference analysis that would fail on COMPONENT_REFs.
10916
10917 * tree-vrp.c (search_for_addr_array): Fix formatting.
10918
69484bfd
RG
109192009-03-18 Richard Guenther <rguenther@suse.de>
10920
10921 * tree-vect-transform.c (vect_loop_versioning): Fold the
10922 generated comparisons.
10923 * tree-vectorizer.c (set_prologue_iterations): Likewise.
10924 (slpeel_tree_peel_loop_to_edge): Likewise.
10925
66811228
RW
109262009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10927
0631b69f
RW
10928 PR middle-end/37805
10929 * opts.c (print_specific_help): In addition to `undocumented',
10930 accept `separate' and `joined' flags if passed alone. Describe
10931 output by the first matched one of those.
10932 (common_handle_option): Skip over empty strings.
10933 * gcc.c (display_help): Fix help string for `--help='.
10934 * doc/invoke.texi (Option Summary, Overall Options): With
10935 `--help=', classes and qualifiers can both be repeated, but
10936 only the latter can be negated. One should not pass only
10937 negated qualifiers. Fix markup and examples.
10938
66811228
RW
10939 Revert
10940 2008-10-14 Jakub Jelinek <jakub@redhat.com>
10941 PR middle-end/37805
10942 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
10943 and -fhelp=separate.
10944
3c072c6b
JY
109452009-03-17 Jing Yu <jingyu@google.com>
10946
10947 PR middle-end/39378
80c65208
JY
10948 * function.h (struct rtl_data): Move is_thunk from here...
10949 (struct function): ...to here.
10950 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
10951 * varasm.c (assemble_start_function): Change is_thunk from crtl to
10952 cfun.
80c65208
JY
10953 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
10954 cfun.
10955 (alpha_does_function_need_gp, alpha_start_function): Likewise.
10956 (alpha_output_function_end_prologue): Likewise.
10957 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
10958 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
10959 (rs6000_output_function_epilogue): Likewise.
10960 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 10961
9ade279b
UB
109622009-03-17 Uros Bizjak <ubizjak@gmail.com>
10963
10964 PR target/39482
10965 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
10966 from different units in a single alternative.
10967 (*truncdfsf_i387): Ditto.
10968 (*truncxfsf2_mixed): Ditto.
10969 (*truncxfdf2_mixed): Ditto.
10970
16e60c17
JJ
109712009-03-17 Jakub Jelinek <jakub@redhat.com>
10972
98381eb4
JJ
10973 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
10974 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
10975
df5deb18
JJ
10976 PR debug/39474
10977 * tree-ssa-live.c (remove_unused_locals): Don't remove local
10978 unused non-artificial variables when not optimizing.
10979
a3f596ba
JJ
10980 PR debug/39471
10981 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
10982 DW_TAG_imported_module even if decl is IMPORTED_DECL with
10983 NAMESPACE_DECL in its DECL_INITIAL.
10984
6b2b8871
JJ
10985 PR middle-end/39443
10986 * optabs.c (set_user_assembler_libfunc): New function.
10987 * expr.h (set_user_assembler_libfunc): New prototype.
10988 * c-common.c: Include libfuncs.h.
10989 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
10990 for memcmp, memset, memcpy, memmove and abort.
10991 * Makefile.in (c-common.o): Depend on libfuncs.h.
10992
16e60c17
JJ
10993 PR debug/39412
10994 * dwarf2out.c (gen_inlined_enumeration_type_die,
10995 gen_inlined_structure_type_die, gen_inlined_union_type_die,
10996 gen_tagged_type_instantiation_die): Removed.
10997 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
10998 do nothing.
10999
4d936aca
JJ
110002009-03-17 Janis Johnson <janis187@us.ibm.com>
11001
11002 PR testsuite/38526
11003 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11004 its use.
11005 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11006 (check-parallel-%): Ditto.
11007 (check-consistency): Ditto.
11008
4e9b2e50
KT
110092009-03-17 Kai Tietz <kai.tietz@onevision.com>
11010
11011 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11012 local variable rhs by NULL_TREE.
11013
21440b2d
L
110142009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11015
11016 PR target/39477
9ade279b 11017 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 11018
d8905c6a
L
110192009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11020
11021 PR target/39476
9ade279b 11022 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
11023
110242009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
11025
11026 PR target/39473
11027 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11028 for ms->sysv ABI calls only in 64bit mode.
11029
11030 * config/i386/i386.md (untyped_call): Support 32bit.
11031
cdcabece
L
110322009-03-16 H.J. Lu <hongjiu.lu@intel.com>
11033
11034 * doc/extend.texi: Replace x86_65 with x86_64.
11035
97b4ba9f
JJ
110362009-03-16 Jakub Jelinek <jakub@redhat.com>
11037
11038 PR tree-optimization/39455
11039 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
11040 mismatches for POINTER_TYPE_P (type).
11041 (number_of_iterations_le): Likewise.
11042
60839f5d 110432009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
11044
11045 * config/picochip/picochip.c: Removed profiling support.
11046 * config/picochip/picochip.md: Removed profiling instruction.
11047 * config/picochip/picochip.h: Removed profiling builtin.
11048
f38095f3
JM
110492009-03-16 Joseph Myers <joseph@codesourcery.com>
11050
11051 * doc/install.texi (--with-host-libstdcxx): Document.
11052
2cb4817b
AS
110532009-03-14 Anatoly Sokolov <aesok@post.ru>
11054
11055 PR target/34299
11056 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
11057 generate a warning if the function name does not begin with
11058 "__vector" and the function has either the 'signal' or 'interrupt'
11059 attribute, from here to ...
11060 (avr_declare_function_name): ...here. New function.
11061 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
11062 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
11063
39b2ac74
JJ
110642009-03-14 Jakub Jelinek <jakub@redhat.com>
11065
11066 PR bootstrap/39454
11067 * cse.c (fold_rtx): Don't modify original const_arg1 when
11068 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
11069 separate variable instead.
11070 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
11071 from out of range shift counts.
11072 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
11073
ad41bd84 110742009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 11075
60839f5d 11076 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
11077 diagnostic.h with $(DIAGNOSTIC_H).
11078
ad41bd84 110792009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
11080
11081 PR target/39431
11082 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
11083 predicate.
11084 * config/i386/sync.md (sync_compare_and_swap<mode>,
11085 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
11086 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
11087 into a register.
11088 (sync_double_compare_and_swapdi_pic,
11089 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
11090 cmpxchg8b_pic_memory_operand instead of just memory_operand.
11091
122c59c7
L
110922009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11093
11094 PR target/39445
9ade279b 11095 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 11096
cec8874f
L
110972009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11098
11099 PR target/39327
11100 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11101 (avx_addsubv4df3): Likewise.
11102 (*avx_addsubv4sf3): Likewise.
11103 (sse3_addsubv4sf3): Likewise.
11104
bbb52802
L
111052009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11106
11107 PR target/38824
9ade279b 11108 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 11109
a812fb07
VM
111102009-03-12 Vladimir Makarov <vmakarov@redhat.com>
11111
11112 PR debug/39432
11113 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
11114 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11115 registers for allocnos created from user-defined variables.
11116
4caab5ba
UW
111172009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11118
11119 PR target/39181
11120 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
11121 of non-integer mode as well.
11122
498e51ca
AN
111232009-03-11 Adam Nemet <anemet@caviumnetworks.com>
11124
11125 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
11126 for functions for which the parameter types are unknown.
11127
9bfaf89d
JJ
111282009-03-11 Jakub Jelinek <jakub@redhat.com>
11129
11130 PR target/39137
9ade279b 11131 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
11132 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
11133 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
11134 * config/i386/i386.c (ix86_local_alignment): For
11135 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
11136 long long variables on the stack to avoid dynamic realignment.
11137 Allow the first argument to be a decl rather than type.
11138 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
11139
18a3bdcb
NC
111402009-03-11 Nick Clifton <nickc@redhat.com>
11141
11142 PR target/5362
40190a76
NC
11143 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
11144 options.
11145 Add description to mno-lsim option.
11146 * config/mcore/mcore.h: Remove comment about deprecated m4align
11147 option.
11148 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
11149 * doc/invoke.texi: Add description of mno-lsim and
11150 mstack-increment options.
11151
18a3bdcb
NC
11152 * config/fr30/fr30.opt: Document the -mno-lsim option.
11153 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
11154 and -mno-lsim options.
11155
dc215785
UW
111562009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11157
11158 * fold-const.c (fold_comparison): Only call fold_inf_compare
11159 if the mode supports infinities.
11160
7716876b
JM
111612009-03-11 Jason Merrill <jason@redhat.com>
11162
11163 PR debug/39086
11164 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
11165 end already did. Notice GIMPLE_CALL modifications of the result.
11166 Don't copy debug information from an ignored decl or a decl from
11167 another function.
11168
ddef83d2
RG
111692009-03-10 Richard Guenther <rguenther@suse.de>
11170 Nathan Froyd <froydnj@codesourcery.com>
11171
11172 PR middle-end/37850
9ade279b 11173 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
11174 (__divMODE3): Likewise.
11175
9a9ba8d9
JJ
111762009-03-09 Jakub Jelinek <jakub@redhat.com>
11177
11178 PR tree-optimization/39394
11179 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
11180 DECL_SIZE_UNIT of variable length FIELD_DECLs.
11181
929b7fc3
AK
111822009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11183
11184 * recog.c (verfiy_changes): Disallow renaming of hard regs in
11185 inline asms for register asm ("") declarations.
11186
1803581d
EB
111872009-03-09 Eric Botcazou <ebotcazou@adacore.com>
11188
11189 * fold-const.c (fold_unary): Fix comment.
11190
8454d27e
JH
111912009-03-07 Jan Hubicka <jh@suse.cz>
11192
11193 PR target/39361
969a5433
JJ
11194 * tree-inline.c (setup_one_parameter): Do replacement of const
11195 argument by constant in SSA form.
8454d27e 11196
3a695389
UW
111972009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11198
11199 PR middle-end/38028
11200 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
11201 determine alignment passed to assign_stack_local.
11202 (assign_parms_unsplit_complex): Likewise.
11203 * except.c (sjlj_build_landing_pads): Likewise.
11204
9f0e7885
JJ
112052009-03-06 Jakub Jelinek <jakub@redhat.com>
11206
65401a0b
JJ
11207 PR middle-end/39360
11208 * tree-flow.h (add_referenced_var): Return bool instead of void.
11209 * tree-dfa.c (add_referenced_var): Return result of
11210 referenced_var_check_and_insert call.
11211 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
11212 of referenced_var_check_and_insert.
11213
9f0e7885 11214 PR debug/39372
9ade279b 11215 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
11216 (gen_variable_die): Emit DW_AT_location on abstract static variable's
11217 DIE, don't emit it if abstract origin already has it.
11218 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
11219 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
11220
3b664bd1
JBG
112212009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11222
ba20e309 11223 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
11224 detection.
11225 (write_tm_constrs_h): Indent generated code.
11226
d8f8ca80
RR
112272009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11228
11229 * doc/extend.texi (Function Attributes): Add documentation
11230 for isr attributes.
11231
6c3d550c
JJ
112322009-03-06 Jakub Jelinek <jakub@redhat.com>
11233
11234 PR debug/39387
11235 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
11236 take locus from its DECL_SOURCE_LOCATION instead of input_location.
11237
f9e96751
BS
112382009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
11239
11240 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
11241 the loop as bad.
11242
ee0ee7e2
JJ
112432009-03-05 Jakub Jelinek <jakub@redhat.com>
11244
11245 PR debug/39379
11246 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
11247 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
11248
6c6094f1
UB
112492009-03-05 Uros Bizjak <ubizjak@gmail.com>
11250
11251 * config/i386/i386.md (R8_REG, R9_REG): New constants.
11252 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
11253 constants instead of magic numbers.
11254 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
11255 (QI_REG_P): Ditto.
11256 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
11257 (x86_64_ms_abi_int_parameter_registers): Ditto.
11258 (x86_64_int_return_registers): Ditto.
09f8a8d3 11259 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
11260 (ix86_expand_call): Ditto for clobbered_registers array.
11261 (ix86_hard_regno_mode_ok): Ditto.
11262 (x86_extended_QIreg_mentioned_p): Ditto.
11263
b267bd41
R
112642009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
11265
6c6094f1 11266 PR tree-optimization/39349
1f3ad3f0
R
11267 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
11268
b267bd41
R
11269 * combine.c (gen_lowpart_for_combine): Use omode when generating
11270 clobber.
11271
1242bc9d
R
112722009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
11273
6c6094f1 11274 PR rtl-optimization/39235
1242bc9d
R
11275 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
11276
48f03606
ZD
112772009-03-04 Zdenek Dvorak <ook@ucw.cz>
11278
11279 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
11280
b505e785
RG
112812009-03-04 Richard Guenther <rguenther@suse.de>
11282
11283 PR tree-optimization/39362
11284 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
11285 that occur in abnormal PHIs should be varying.
11286
f017bf5e
ZD
112872009-03-04 Zdenek Dvorak <ook@ucw.cz>
11288
11289 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
11290 Extend comments.
11291 (simple_iv): Take loop as an argument instead of statement.
11292 * tree-scalar-evolution.h (simple_iv): Declaration changed.
11293 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
11294 to simple_iv.
11295 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
11296 Ditto.
11297 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
11298 * matrix-reorg.c (analyze_transpose): Ditto.
11299 * tree-data-ref.c (dr_analyze_innermost): Ditto.
11300 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
11301 * tree-predcom.c (ref_at_iteration): Ditto.
11302 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
11303
6a66f28e
RG
113042009-03-04 Richard Guenther <rguenther@suse.de>
11305
11306 PR tree-optimization/39358
11307 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
11308 escaped_id and callused_id.
11309 (solve_graph): Likewise.
11310
57e454ee
RG
113112009-03-04 Richard Guenther <rguenther@suse.de>
11312
11313 PR tree-optimization/39339
11314 * tree-sra.c (try_instantiate_multiple_fields): Make it
11315 no longer ICE on the above.
11316
a6fe9ed4
JM
113172009-03-03 Joseph Myers <joseph@codesourcery.com>
11318
11319 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
11320 that fits within Pmode.
11321
dc672951
SE
113222009-03-03 Steve Ellcey <sje@cup.hp.com>
11323
11324 PR middle-end/10109
11325 * tm.texi (LIBCALL_VALUE): Update description.
11326
8b9d598f
SE
113272009-03-03 Steve Ellcey <sje@cup.hp.com>
11328
11329 PR middle-end/34443
11330 * doc/extend.texi (section): Update description.
11331
13e4e36e
L
113322009-03-03 H.J. Lu <hongjiu.lu@intel.com>
11333
11334 PR middle-end/39345
11335 * tree-inline.c (remapped_type): New.
11336 (can_be_nonlocal): Call remapped_type instead of remap_type.
11337
067dd3c9
JJ
113382009-03-03 Jakub Jelinek <jakub@redhat.com>
11339
11340 PR fortran/39354
11341 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
11342 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
11343
9bd9f738
RG
113442009-03-03 Richard Guenther <rguenther@suse.de>
11345
11346 PR middle-end/39272
11347 * tree.c (tree_nonartificial_location): New function.
11348 * tree.h (tree_nonartificial_location): Declare.
11349 * builtins.c (expand_builtin_memory_chk): Provide location
11350 of the call location for artificial function pieces.
11351 (maybe_emit_chk_warning): Likewise.
11352 (maybe_emit_sprintf_chk_warning): Likewise.
11353 (maybe_emit_free_warning): Likewise.
11354 * expr.c (expand_expr_real_1): Likewise.
11355
f07049c8
JJ
113562009-03-03 Jakub Jelinek <jakub@redhat.com>
11357
11358 PR tree-optimization/39343
11359 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
11360 COMPONENT_REF t has ARRAY_TYPE.
11361
7d4fba4a
SP
113622009-03-02 Sebastian Pop <sebastian.pop@amd.com>
11363
11364 PR middle-end/39335
11365 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
11366 when the type precision of the induction variable should be
11367 larger than the type precision of nit.
11368 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
11369 * graphite.c (graphite_loop_normal_form): Same.
11370 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
11371
78168632
UB
113722009-03-02 Uros Bizjak <ubizjak@gmail.com>
11373
11374 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
11375 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 11376 numbers to describe clobbered registers.
78168632 11377 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
11378 * config/i386/mmx.md (mmx_emms): Ditto.
11379 (mmx_femms): Ditto.
78168632 11380
63553059
RS
113812009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
11382
11383 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
11384 of ABI_64.
11385
500a1f85
UW
113862009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11387
11388 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
11389 (spu_section_type_flags): New function.
11390
962aae34
UB
113912009-03-02 Uros Bizjak <ubizjak@gmail.com>
11392
11393 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
11394 reg_class_contents of FLOAT_REGS into a temporary.
11395
6dfb529c 113962009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 11397 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
11398
11399 PR tree-optimization/39318
11400 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
11401 information to the vectorized statement.
11402
6b5629db
UB
114032009-03-01 Uros Bizjak <ubizjak@gmail.com>
11404
434426d2
UB
11405 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
11406 variable. Use defined names instead of magic constants for REX SSE
11407 registers.
6b5629db 11408
14e5b285
RG
114092009-03-01 Richard Guenther <rguenther@suse.de>
11410
11411 PR tree-optimization/39331
11412 * omp-low.c (lower_send_shared_vars): Do not receive new
11413 values for the reference of DECL_BY_REFERENCE parms or results.
11414
526d73ab
JH
114152009-03-01 Jan Hubicka <jh@suse.cz>
11416
11417 PR debug/39267
11418 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
11419 BLOCK_NONLOCALIZED_VAR): New macros.
11420 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
11421 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
11422 gen_decl_die): Add origin argument. Allow generation of die with
11423 origin at hand only.
526d73ab 11424 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
11425 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
11426 of gen_*.
526d73ab
JH
11427 (gen_block_die): Fix checking for unused blocks.
11428 (process_scope_var): Break out from .... ; work with origins only.
11429 (decls_for_scope) ... here; process nonlocalized list.
11430 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
11431 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
11432 vars.
526d73ab
JH
11433 (dump_scope_block): Dump them.
11434 * tree-inline.c (remap_decls): Handle nonlocalized vars.
11435 (remap_block): Likewise.
11436 (can_be_nonlocal): New predicate.
11437 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
11438
7a9d3fe8
RW
114392009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11440
11441 * configure: Regenerate.
11442
b3cdf3cb
RW
114432009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11444
a16d1645 11445 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 11446 Reuse help texts for duplicate options which do not have any.
a16d1645 11447
1156c176
RW
11448 * gcc.c (display_help): Document --version.
11449
033505fc
RW
11450 * gcc.c (main): If print_help_list and verbose_flag, ensure
11451 driver output comes before subprocess output.
11452
4d077054
RW
11453 * optc-gen.awk: Assign all remaining fields to help string,
11454 space-separated, for multi-line help in *.opt.
11455
a072f1cf
RW
11456 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
11457 -Wno-pedantic-ms-format is for MinGW targets only.
11458
b3cdf3cb
RW
11459 * doc/options.texi (Option file format): Fix bad indentation,
11460 restoring dropped sentence.
11461
a3aadcc5
JH
114622009-02-28 Jan Hubicka <jh@suse.cz>
11463
11464 * tree-inline.c (tree_function_versioning): Output debug info.
11465
1cf5abb3
JH
114662009-02-28 Jan Hubicka <jh@suse.cz>
11467
11468 PR debug/39267
11469 * tree-inline.c (setup_one_parameter): Do not copy propagate
11470 arguments when not optimizing.
11471
c4d3f42f
L
114722009-02-28 H.J. Lu <hongjiu.lu@intel.com>
11473
11474 PR target/39327
11475 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11476 (avx_addsubv4df3): Likewise.
11477 (*avx_addsubv4sf3): Likewise.
11478 (sse3_addsubv4sf3): Likewise.
11479 (*avx_addsubv2df3): Likewise.
11480 (sse3_addsubv2df3): Likewise.
11481 (avx_unpckhps256): Correct item selectors.
11482 (avx_unpcklps256): Likewise.
11483 (avx_unpckhpd256): Likewise.
11484 (avx_unpcklpd256): Likewise.
11485
eb50f5f4
JH
114862009-02-28 Jan Hubicka <jh@suse.cz>
11487
11488 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
11489 static vars.
11490 (copy_arguments_for_versioning): If var is declared don't declare it.
11491 (tree_function_versioning): First setup substitutions and then copy
11492 args.
11493
26140130
JH
114942009-02-27 Jan Hubicka <jh@suse.cz>
11495
11496 PR debug/39267
11497 * cgraph.h (varpool_output_debug_info): Remove.
11498 * cgraphunit.c (varpool_output_debug_info): Remove.
11499 * dwarf2out.c (deferred_locations_struct): New struct
11500 (deferred_locations): New type.
11501 (deferred_locations_list): New static var.
11502 (deffer_location): New function.
11503 (gen_variable_die): Use it.
11504 (decls_for_scope): Output info on local static vars.
11505 (dwarf2out_finish): Process deferred locations.
11506 * varpool.c (varpool_output_debug_info): Remove.
11507
cff7525f
JH
115082009-02-27 Jan Hubicka <jh@suse.cz>
11509
11510 PR debug/39267
11511 * tree.h (TREE_PROTECTED): Fix comment.
11512 (BLOCK_HANDLER_BLOCK): Remove.
11513 (struct tree_block): Remove handler_block add body_block.
11514 (inlined_function_outer_scope_p): New.
11515 (is_body_block): Remove.
11516 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
11517 * dwarf2out.c (is_inlined_entry_point): Remove.
11518 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
11519 (gen_block_die): Use is_inlined_entry_point check. Remove body block
11520 code.
cff7525f
JH
11521 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
11522 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
11523 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
11524 block with multiple subblocks.
cff7525f
JH
11525 (dump_scope_block): Prettier output; dump more flags and info.
11526 (dump_scope_blocks): New.
11527 (remove_unused_locals): Use dump_scope_blocks.
11528 * tree-flow.h (dump_scope_blocks): Declare.
11529 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
11530 * stmt.c (is_body_block): Remove.
11531 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
11532 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
11533
c20993b9
SP
115342009-02-27 Sebastian Pop <sebastian.pop@amd.com>
11535
11536 PR middle-end/39308
2ba9daa7 11537 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
11538 number_of_iterations_exit from a gcc_assert.
11539
e3cba5e5
AK
115402009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11541
60839f5d 11542 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
11543 jumps if COND is NULL.
11544 (find_cond_jump): New function.
11545 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 11546 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 11547
9dadeeb8
UB
115482009-02-26 Uros Bizjak <ubizjak@gmail.com>
11549
11550 * config/alpha/alpha.h (alpha_expand_mov): Return false if
11551 force_const_mem returns NULL_RTX.
11552
625d3251
EB
115532009-02-26 Jan Hubicka <jh@suse.cz>
11554
11555 PR debug/39267
11556 * cgraph.h (varpool_output_debug_info): Remove.
11557 * cgraphunit.c (varpool_output_debug_info): Remove.
11558 * dwarf2out.c (deferred_locations_struct): New struct
11559 (deferred_locations): New type.
11560 (deferred_locations_list): New static var.
11561 (deffer_location): New function.
11562 (gen_variable_die): Use it.
11563 (decls_for_scope): Output info on local static vars.
11564 (dwarf2out_finish): Process deferred locations.
11565 * varpool.c (varpool_output_debug_info): Remove.
11566
38432148 115672009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
11568
11569 PR rtl-optimization/39241
11570 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
11571 to subreg_offset_representable_p.
11572
62d049cf
PB
115732009-02-25 Paolo Bonzini <bonzini@gnu.org>
11574
11575 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
11576 execute function prototype. Get f and nregs from max_reg_num
11577 and get_insns. Remove the first backward pass as it's dead,
11578 guard the forward pass by flag_expensive_optimizations.
11579 (rest_of_handle_regmove): Delete.
11580 (pass_regmove): Replace it with regmove_optimize.
11581
f618d33e
MJ
115822009-02-25 Martin Jambor <mjambor@suse.cz>
11583
11584 PR tree-optimization/39259
11585 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 11586 calls_alloca function flags.
f618d33e
MJ
11587 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
11588 calls are detected.
11589
c8a05f7c
PB
115902009-02-25 Paolo Bonzini <bonzini@gnu.org>
11591
11592 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
11593 flags_set_1_rtx, flags_set_1_set): Delete.
11594 (regmove_optimize): Do not call mark_flags_life_zones.
11595
6d2538f5
JB
115962009-02-24 Julian Brown <julian@codesourcery.com>
11597
11598 PR target/35965
11599 * config/arm/arm.c (require_pic_register): Only set
11600 cfun->machine->pic_reg once per function.
11601
a2fa6772
SL
116022009-02-24 Sandra Loosemore <sandra@codesourcery.com>
11603
11604 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 11605 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 11606
5472de36
SE
116072009-02-24 Steve Ellcey <sje@cup.hp.com>
11608
11609 PR target/33785
11610 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
11611
844216f3
RG
116122009-02-24 Richard Guenther <rguenther@suse.de>
11613
11614 PR debug/39285
11615 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
11616
71adbef3 116172009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 11618 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
11619
11620 PR tree-optimization/39233
11621 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
11622 from converting them to a generic type.
11623
f1a558e0
SP
116242009-02-23 Sebastian Pop <sebastian.pop@amd.com>
11625
11626 PR tree-optimization/39260
11627 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
11628 contains a condition with a real type.
11629 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
11630
d8028f2c
JM
116312009-02-23 Jason Merrill <jason@redhat.com>
11632
11633 PR c++/38880
11634 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
11635 narrowing_initializer_constant_valid_p.
2ba9daa7 11636 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
11637 null_pointer_node for adding a pointer to itself.
11638
9283b513
JH
116392009-02-23 Jan Hubicka <jh@suse.cz>
11640
11641 PR c/12245
9dadeeb8
UB
11642 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
11643 resizing.
9283b513 11644
61e04322
JH
116452009-02-23 Jan Hubicka <jh@suse.cz>
11646
9dadeeb8
UB
11647 PR tree-optimization/37709
11648 * tree.c (block_ultimate_origin): Move here from dwarf2out.
11649 * tree.h (block_ultimate_origin): Declare.
11650 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
11651 * tree-ssa-live.c (remove_unused_scope_block_p):
11652 Eliminate blocks containig no instructions nor live variables nor
11653 nested blocks.
11654 (dump_scope_block): New function.
11655 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 11656 enable dumping at TDF_DETAILS.
61e04322 11657
38432148 116582009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
11659
11660 * config/i386/i386.c (classify_argument): Don't allow COImode
11661 and OImode.
11662 (function_arg_advance_32): Don't allow OImode.
11663 (function_arg_32): Likewise.
11664 (function_value_32): Likewise.
11665 (return_in_memory_32): Likewise.
11666 (function_arg_64): Remove OImode comment.
11667
38432148 116682009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
11669
11670 PR target/39261
11671 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11672 ix86_expand_vector_set for V4DImode in 64bit mode only.
11673 (ix86_expand_vector_init_one_var): Likewise.
11674
dcd739a6
SP
116752009-02-21 Sebastian Pop <sebastian.pop@amd.com>
11676
11677 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
11678
6c3b938d
RS
116792009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
11680
8e361f23 11681 PR bootstrap/39257
6c3b938d
RS
11682 * loop-iv.c: Revert last change.
11683 * emit-rtl.c: Likewise.
11684
38432148 116852009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
11686
11687 PR target/39256
11688 * config/i386/i386.c (type_natural_mode): Remove an extra
11689 space in the warning message.
11690 (function_value_32): Handle 32-byte vector modes.
11691 (return_in_memory_32): Likewise.
11692
2ec62529
RS
116932009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
11694
11695 * loop-iv.c (truncate_value): New function.
11696 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
11697 of lowpart_subreg.
11698 (lowpart_subreg): Move to...
11699 * emit-rtl.c: ...here.
11700
ecb8c3cc 117012009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 11702
ecb8c3cc
DS
11703 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
11704 accidental and undocumented change at revision 140860.
11705
ae46a823
JM
117062009-02-21 Joseph Myers <joseph@codesourcery.com>
11707
11708 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
11709 take gimple_seq * arguments.
11710 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
11711 types_compatible_p langhook.
11712
07d8efe3 117132009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 11714 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
11715
11716 * config/arm/arm.c (arm_builtin_va_list): New function.
11717 (arm_expand_builtin_va_start): Likewise.
11718 (arm_gimplify_va_arg_expr): Likewise.
11719 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
11720 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
11721 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
11722 (va_list_type): New variable.
11723 (arm_mangle_type): Mangle va_list_type appropriately.
11724
b1fb9f56
JJ
117252009-02-20 Jakub Jelinek <jakub@redhat.com>
11726
11727 PR middle-end/39157
11728 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
11729 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
11730 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
11731 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
11732 parameter to 1000 for -O1 by default.
11733 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
11734 parameter.
11735 * loop-invariant.c: Include params.h.
11736 (move_loop_invariants): Don't call move_single_loop_invariants on
11737 very large loops.
11738
5bc0807c
JM
117392009-02-20 Jaka Mocnik <jaka@xlab.si>
11740
11741 * calls.c (emit_library_call_value_1): Use slot_offset instead of
11742 offset when calculating bounds for indexing stack_usage_map. Fixes
11743 a buffer overflow with certain target setups.
11744
c69cd1f5
JJ
117452009-02-20 Jakub Jelinek <jakub@redhat.com>
11746
11747 PR target/39240
11748 * calls.c (expand_call): Clear try_tail_call if caller and callee
11749 disagree in promotion of function return value.
11750
09812622
JJ
117512009-02-19 Jakub Jelinek <jakub@redhat.com>
11752
11753 PR target/39175
11754 * c-common.c (c_determine_visibility): If visibility changed and
11755 DECL_RTL has been already set, call make_decl_rtl to update symbol
11756 flags.
11757
68017cb4
L
117582009-02-19 H.J. Lu <hongjiu.lu@intel.com>
11759
11760 PR c++/39188
11761 * varasm.c (assemble_variable): Don't check DECL_NAME when
11762 globalizing a variable.
11763
ab4194da
JM
117642009-02-19 Joseph Myers <joseph@codesourcery.com>
11765
11766 PR c/38483
11767 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
11768 expression before any __builtin_trap call.
11769 * c-typeck.c (build_function_call): Convert and check function
11770 arguments before generating a call to a trap. Evaluate the
11771 function arguments before the trap.
11772
6b67572e
UB
117732009-02-19 Uros Bizjak <ubizjak@gmail.com>
11774
11775 PR target/39228
11776 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
11777 (UNSPEC_FXAM_MEM): New unspec.
11778 (fxam<mode>2_i387_with_temp): New insn and split pattern.
11779 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
11780 memory using fxam<mode>2_i387_with_temp to remove excess precision.
11781
9e39dba6
RG
117822009-02-19 Richard Guenther <rguenther@suse.de>
11783
11784 PR tree-optimization/39207
11785 PR tree-optimization/39074
11786 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
11787 storedanything_tree): New.
11788 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 11789 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
11790 (build_succ_graph): Add edges from STOREDANYTHING to all
11791 non-direct nodes.
11792 (init_base_vars): Initialize STOREDANYTHING.
11793 (compute_points_to_sets): Free substitution info after
11794 building the succ graph.
11795 (ipa_pta_execute): Likewise.
11796
11797 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
11798 field.
11799 (do_ds_constraint): Do not add to special var or non-pointer
11800 field solutions.
11801 (type_could_have_pointers): Split out from ...
11802 (could_have_pointers): ... here. For arrays use the element type.
11803 (create_variable_info_for): Initialize may_have_pointers.
11804 (new_var_info): Likewise.
11805 (handle_lhs_call): Make the HEAP variable unknown-sized.
11806 (intra_create_variable_infos): Use a type with pointers for
11807 PARM_NOALIAS, make it unknown-sized.
11808
fd7b2603
L
118092009-02-18 H.J. Lu <hongjiu.lu@intel.com>
11810
11811 PR target/39224
6b67572e 11812 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 11813
98b80692
JM
118142009-02-18 Jason Merrill <jason@redhat.com>
11815
11816 PR target/39179
11817 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
11818 value if DECL_EXTERNAL.
11819 * tree-sra.c (sra_walk_gimple_assign): Likewise.
11820 * target.h (gcc_target::binds_local_p): Clarify "module".
11821 * tree.h (TREE_PUBLIC): Clarify "module".
11822
0705d3f4
L
118232009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
11824
11825 PR target/38891
11826 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
11827 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
11828
bce08d50
L
118292009-02-17 H.J. Lu <hongjiu.lu@intel.com>
11830
11831 PR target/39082
11832 * c.opt (Wabi): Support C and ObjC.
11833 (Wpsabi): New.
11834
11835 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
11836
11837 * config/i386/i386.c (classify_argument): Warn once about the ABI
11838 change when passing union with long double.
11839
11840 * doc/invoke.texi: Update -Wabi for warning psABI changes.
11841
5600f233
JM
118422009-02-18 Joseph Myers <joseph@codesourcery.com>
11843
11844 PR c/35447
11845 * c-parser.c (c_parser_compound_statement): Always enter and leave
11846 a scope.
11847
8cd01fe6
JDA
118482009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11849
11850 PR target/34587
11851 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
11852
418df9d7
JJ
118532009-02-18 Jakub Jelinek <jakub@redhat.com>
11854
11855 PR tree-optimization/36922
11856 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
11857 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
11858 Likewise.
11859
082d2ebb
RS
118602009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11861
11862 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
11863 to 0 for EABI64.
11864
17de576c
RS
118652009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11866
11867 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
11868
6d8d5435
RS
118692009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11870
11871 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
11872 tree sharing.
11873
e69ff910
RB
118742009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
11875 Richard Sandiford <rdsandiford@googlemail.com>
11876
11877 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
11878 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
11879 (loongson_biadd): ...this.
11880
6b24ee26
RG
118812009-02-17 Richard Guenther <rguenther@suse.de>
11882
11883 PR tree-optimization/39202
11884 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
11885 a var make sure to follow existing collapses.
11886
91ab2c86
RG
118872009-02-17 Richard Guenther <rguenther@suse.de>
11888
11889 PR middle-end/39214
11890 * langhooks.c (lhd_print_error_function): Check for NULL block.
11891
73a63870
RG
118922009-02-17 Richard Guenther <rguenther@suse.de>
11893
11894 PR tree-optimization/39204
11895 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
11896 of the PHI arg.
11897
0e08f686
UB
118982009-02-17 Uros Bizjak <ubizjak@gmail.com>
11899
11900 * config/soft-fp/double.h: Update from glibc CVS.
11901
a60b7ddb
RG
119022009-02-17 Richard Guenther <rguenther@suse.de>
11903
11904 PR tree-optimization/39207
11905 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
11906 strict-aliasing warnings for pointers pointing to NULL.
11907
a47e20fd
JM
119082009-02-16 Joseph Myers <joseph@codesourcery.com>
11909
11910 PR c/35446
11911 * c-parser.c (c_parser_braced_init): Call pop_init_level when
11912 skipping until next close brace.
11913
50aab7dc
L
119142009-02-16 H.J. Lu <hongjiu.lu@intel.com>
11915
11916 PR target/37049
11917 * config/i386/i386.c (ix86_expand_push): Set memory alignment
11918 to function argument boundary.
11919
68e53db0
HS
119202009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
11921
11922 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
11923 in the lea_add. Reload eventually constraints it properly.
0d50d55a 11924 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
11925 "b", since it is not needed anymore.
11926
09e361bb
JJ
119272009-02-16 Jakub Jelinek <jakub@redhat.com>
11928
11929 * gthr-dce.h: Uglify function parameter and local variable names.
11930 * gthr-gnat.h: Likewise.
11931 * gthr-mipssde.h: Likewise.
11932 * gthr-nks.h: Likewise.
11933 * gthr-posix95.h: Likewise.
11934 * gthr-posix.h: Likewise.
11935 * gthr-rtems.h: Likewise.
11936 * gthr-single.h: Likewise.
11937 * gthr-solaris.h: Likewise.
11938 * gthr-tpf.h: Likewise.
11939 * gthr-vxworks.h: Likewise.
11940 * gthr-win32.h: Likewise.
11941
47f5a48f
L
119422009-02-15 H.J. Lu <hongjiu.lu@intel.com>
11943
11944 PR target/39196
11945 * config/i386/i386.md: Restrict the new peephole2 to move
11946 between MMX/SSE registers.
11947
68c9ab45
RG
119482009-02-15 Richard Guenther <rguenther@suse.de>
11949
11950 Revert
11951 2009-02-13 Richard Guenther <rguenther@suse.de>
11952
11953 * configure.ac: Enable LFS.
11954 * configure: Re-generate.
11955 * config.in: Likewise.
11956
d7815554
UW
119572009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11958
11959 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
11960 spu_srqwbyte, spu_srqwbytebc): Define.
11961 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
11962 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
11963 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
11964 "shrqby_<mode>"): New insn-and-split patterns.
11965 * config/spu/spu.c (expand_builtin_args): Determine and return
11966 number of operands using spu_builtin_description data.
11967 (spu_expand_builtin_1): Use it.
11968
c208436c
SE
119692009-02-13 Steve Ellcey <sje@cup.hp.com>
11970
11971 PR target/38056
11972 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
11973 TARGET_CONST_GP.
11974
c2e7ba7e
L
119752009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11976
11977 PR target/39149
11978 * config/i386/i386.c (override_options): Correct warning
6c6094f1 11979 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 11980
72f4e3a7
L
119812009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11982
11983 PR target/39152
11984 * config/i386/i386.md: Restrict the new peephole2 to move
11985 between the general purpose registers.
11986
53f648e2
L
119872009-02-13 H.J. Lu <hongjiu.lu@intel.com>
11988
11989 PR target/39162
11990 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 11991 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
11992 (function_arg_advance): Updated.
11993 (function_arg): Likewise.
11994 (ix86_function_value): Likewise.
11995 (ix86_return_in_memory): Likewise.
11996 (ix86_sol10_return_in_memory): Likewise.
11997 (ix86_gimplify_va_arg): Likewise.
11998 (function_arg_32): Don't warn ABX ABI change here.
11999 (function_arg_64): Likewise.
12000
38432148 120012009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
12002
12003 * loop-iv.c (implies_p): In the final case, test that operands 0
12004 of the two comparisons match.
12005
dd2139e7
BS
12006 * config/bfin/bfin.c (find_prev_insn_start): New function.
12007 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12008 (find_next_insn_start): Move.
12009
601b3e1a
RG
120102009-02-13 Richard Guenther <rguenther@suse.de>
12011
12012 * configure.ac: Enable LFS.
12013 * configure: Re-generate.
12014 * config.in: Likewise.
12015
f007042e
JM
120162009-02-13 Joseph Myers <joseph@codesourcery.com>
12017
12018 PR c/35444
12019 * c-parser.c (c_parser_parms_list_declarator): Discard pending
12020 sizes on syntax error after some arguments have been parsed.
12021
3f238e8b
JJ
120222009-02-12 Jakub Jelinek <jakub@redhat.com>
12023
12024 * doc/invoke.texi (-fira): Remove.
12025
328e13b7
L
120262009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12027
12028 * caller-save.c: Replace regclass.c with reginfo.c in comments.
12029 * recog.c: Likewise.
12030 * rtl.h: Likewise.
12031
c252db20
L
120322009-02-12 Uros Bizjak <ubizjak@gmail.com>
12033
12034 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12035 (umul_ppmm): Likewise.
12036 (count_leading_zeros): Likewise.
12037 (count_trailing_zeros): Likewise.
12038 (UMUL_TIME): Likewise.
12039
120402009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12041
ba181049
UB
12042 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
12043 soft-fp/t-softfp to tmake_file.
c252db20
L
12044
12045 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
12046 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
12047 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
12048 IA64_BUILTIN_INFQ]: New.
c252db20
L
12049 (ia64_init_builtins): Initialize __builtin_infq,
12050 __builtin_fabsq and __builtin_copysignq if not HPUX.
12051 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
12052 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
12053
12054 * config/ia64/lib1funcs.asm (__divtf3): Define only if
12055 SHARED is defined.
12056 (__fixtfti): Likewise.
12057 (__fixunstfti): Likewise.
12058 (__floattitf): Likewise.
12059
12060 * config/ia64/libgcc-glibc.ver: New.
12061 * config/ia64/t-fprules-softfp: Likewise.
12062 * config/ia64/sfp-machine.h: Likewise.
12063
12064 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
12065 (LIBGCC2_TF_CEXT): Likewise.
12066 (TF_SIZE): Likewise.
12067 (TARGET_INIT_LIBFUNCS): Likewise.
12068
ba181049 12069 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 12070 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 12071
f13eae6a
L
120722009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12073
12074 * config/i386/i386.c (construct_container): Rewrite processing
12075 BLKmode with X86_64_SSE_CLASS.
12076
12019aec
L
120772009-02-12 Paolo Bonzini <bonzini@gnu.org>
12078
12079 PR target/39152
12080 * config/i386/i386.md: Replace simplify_replace_rtx with
12081 replace_rtx in the new peephole2.
12082
28c11eb3
NS
120832009-02-12 Nathan Sidwell <nathan@codesourcery.com>
12084
12085 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
12086 loop unrolling do not happen at -O2.
12087
c7b94907
MM
120882009-02-12 Michael Matz <matz@suse.de>
12089
12090 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
12091
61e98967
JJ
120922009-02-12 Jakub Jelinek <jakub@redhat.com>
12093
12094 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
12095 for -g3.
12096
a2a237b5
BE
120972009-02-12 Ben Elliston <bje@au.ibm.com>
12098
12099 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
12100 patterns when updating the back chain. Missed in the 2009-02-10
12101 change.
12102
853eda8d
JJ
121032009-02-11 Janis Johnson <janis187@us.ibm.com>
12104
12105 * doc/extend.texi (Decimal Floating Types): Update identifier of
12106 draft TR and list of missing support.
12107
3ad6b266
JJ
121082009-02-11 Jakub Jelinek <jakub@redhat.com>
12109
12110 PR middle-end/39154
12111 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
12112 bit to variable length decl's flags, add it also to its
12113 pointer replacement variable.
12114
b058b753
UB
121152009-02-11 Uros Bizjak <ubizjak@gmail.com>
12116 Jakub Jelinek <jakub@redhat.com>
12117
12118 PR target/39118
12119 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
12120 (memory_blockage): New expander.
12121 (*memory_blockage): New insn pattern.
12122 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
12123 instead of general blockage at the end of function prologue when
12124 frame pointer is used to access red zone area. Do not emit blockage
12125 when profiling, it is emitted in generic code.
12126 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
12127 function epilogue when frame pointer is used to access red zone area.
12128
bab64f23
PB
121292009-02-11 Paolo Bonzini <bonzini@gnu.org>
12130
0ce6dcfa 12131 PR target/38824
bab64f23
PB
12132 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
12133 by arithmetic with memory operands.
12134 * config/i386/predicates.md (commutative_operator): New.
12135
8fd94bda
JJ
121362009-02-10 Janis Johnson <janis187@us.ibm.com>
12137
12138 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
12139 bulleted lists.
12140
794511d2
EB
121412009-02-10 Eric Botcazou <ebotcazou@adacore.com>
12142
12143 * alias.h (record_alias_subset): Declare.
12144 * alias.c (record_alias_subset): Make global.
12145
6da7fc87
NC
121462009-02-10 Nick Clifton <nickc@redhat.com>
12147
12148 * tree-parloops.c: Change license to GPLv3.
12149 * ipa-struct-reorg.c: Change license to GPLv3.
12150 * ipa-struct-reorg.h: Change license to GPLv3.
12151
a03813c8
SE
121522009-02-10 Steve Ellcey <sje@cup.hp.com>
12153
12154 PR c/39084
12155 * c-decl.c (start_struct): Return NULL on error.
12156
fc3103e7
JJ
121572009-02-10 Jakub Jelinek <jakub@redhat.com>
12158
9b43d37b
JJ
12159 PR middle-end/39124
12160 * cfgloopmanip.c (remove_path): Call remove_bbs after
12161 cancel_loop_tree, not before it.
12162
fc3103e7 12163 PR target/39139
b058b753 12164 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
12165 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
12166 VAR_DECLs were seen.
12167 * tree-ssa-live.c (remove_unused_locals): Recompute
12168 cfun->has_local_explicit_reg_vars.
12169 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
12170 copies or clearings if cfun->has_local_explicit_reg_vars.
12171
dbf9ee15
UB
121722009-02-10 Uros Bizjak <ubizjak@gmail.com>
12173
12174 PR target/39118
12175 * config/i386/i386.c (expand_prologue): Emit blockage at the end
12176 of function prologue when frame pointer is used to access
12177 red zone area.
12178
bdec4dc7
RG
121792009-02-10 Richard Guenther <rguenther@suse.de>
12180
12181 PR middle-end/39127
12182 * gimplify.c (gimple_regimplify_operands): Always look if
12183 we need to create a temporary.
12184
7cae94fc
RG
121852009-02-10 Richard Guenther <rguenther@suse.de>
12186
12187 PR tree-optimization/39132
12188 * tree-loop-distribution.c (todo): New global var.
12189 (generate_memset_zero): Trigger TODO_rebuild_alias.
12190 (tree_loop_distribution): Return todo.
12191
a8800687
L
121922009-02-10 H.J. Lu <hongjiu.lu@intel.com>
12193
12194 PR target/39119
12195 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
12196 (x86_64_reg_class_name): Removed.
12197 (classify_argument): Return 0 if bytes > 32. Return 0 if the
12198 first one isn't X86_64_SSE_CLASS or any other ones aren't
12199 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
12200 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
12201 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
12202 and 3 X86_64_SSEUP_CLASS.
12203 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
12204 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
12205
d4bacef0
BE
122062009-02-10 Ben Elliston <bje@au.ibm.com>
12207
12208 * config/rs6000/rs6000.md (allocate_stack): Always use an update
12209 form instruction to update the stack back chain word, even if the
12210 user has disabled the generation of update instructions.
12211 (movdi_<mode>_update_stack): New.
12212 (movsi_update_stack): Likewise.
12213 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
12214 always use an update form instruction to update the stack back
12215 chain word.
12216
01d7d2f3
SP
122172009-02-09 Sebastian Pop <sebastian.pop@amd.com>
12218
12219 PR middle-end/38953
b058b753
UB
12220 * graphite.c (if_region_set_false_region): After moving a region in
12221 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
12222 (gloog): Remove wrong fix for PR38953.
12223
e41e2ab4
UW
122242009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12225
12226 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
12227 generation due to implicit sign extension.
12228
4bb07c5d
EB
122292009-02-09 Eric Botcazou <ebotcazou@adacore.com>
12230
12231 PR middle-end/38981
12232 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
12233 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
12234
f060a261
RG
122352009-02-09 Richard Guenther <rguenther@suse.de>
12236
12237 PR middle-end/35202
12238 * convert.c (convert_to_real): Disable (float)fn((double)x)
12239 to fnf(x) conversion if errno differences may occur and
12240 -fmath-errno is set.
12241
5a7e237c
AS
122422009-02-07 Anatoly Sokolov <aesok@post.ru>
12243
12244 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
12245 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12246 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12247
feab5a67
JM
122482009-02-06 Joseph Myers <joseph@codesourcery.com>
12249
12250 PR c/35434
12251 * c-common.c (handle_alias_attribute): Disallow attribute for
12252 anything not a FUNCTION_DECL or VAR_DECL.
12253
90ef2296
JJ
122542009-02-06 Janis Johnson <janis187@us.ibm.com>
12255
12256 PR c/39035
12257 * real.c (do_compare): Special-case compare of zero against
12258 decimal float value.
12259
1de2c900
JM
122602009-02-06 Joseph Myers <joseph@codesourcery.com>
12261
12262 PR c/36432
12263 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
12264 as indicating flexible array members unless the field itself is
12265 being declarared as the incomplete array.
12266
e901811a
JH
122672009-02-06 Jan Hubicka <jh@suse.cz>
12268
12269 PR tree-optimization/38844
12270 * ipa-inline.c (try_inline): Stop inlining recursion when edge
12271 is already inlined.
12272
3cfa762b
RG
122732009-02-06 Richard Guenther <rguenther@suse.de>
12274
12275 PR middle-end/38977
12276 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
12277 fork because we may expand it as __gcov_fork.
12278
8506528c
NC
122792009-02-06 Nick Clifton <nickc@redhat.com>
12280
dbf9ee15 12281 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 12282
85169114
PB
122832009-02-06 Paolo Bonzini <bonzini@gnu.org>
12284
12285 PR tree-optimization/35659
12286 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
12287 vn_phi_eq): Shortcut if hashcode does not match.
12288 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
12289 NULL operands.
12290 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
12291 and avoid iterative_hash_expr.
12292 (FOR_EACH_VALUE_ID_IN_SET): New.
12293 (value_id_compare): Remove.
12294 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
12295 sort expressions by value id.
12296
6d39673d
KK
122972009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
12298
12299 PR target/38991
12300 * config/sh/predicates.md (general_movsrc_operand): Don't check
12301 the subreg of system registers here.
12302
e6e1c050
JJ
123032009-02-05 Jakub Jelinek <jakub@redhat.com>
12304
12305 PR c++/39106
12306 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
12307 on the copied decl.
12308
65a74b5d
PB
123092009-02-05 Paolo Bonzini <bonzini@gnu.org>
12310
12311 PR rtl-optimization/39110
12312 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
12313 addresses, not aligned ones.
12314
08e14b2a
DB
123152009-02-05 Daniel Berlin <dberlin@dberlin.org>
12316 Richard Guenther <rguenther@suse.de>
12317
12318 PR tree-optimization/39100
12319 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
12320 comment says and add edges.
12321
5006381c
JM
123222009-02-05 Joseph Myers <joseph@codesourcery.com>
12323
12324 PR c/35435
12325 * c-common.c (handle_tls_model_attribute): Ignore attribute for
12326 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
12327
2ba9daa7 123282009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
12329
12330 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
12331 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
12332 register_bb_in_sese, new_sese, free_sese): Moved.
12333 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
12334 outermost_loop_in_scop, build_scop_iteration_domain,
12335 expand_scalar_variables_ssa_name, get_vdef_before_scop,
12336 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
12337 Use loop_in_sese_p instead of loop_in_scop_p.
12338 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
12339 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
12340 (scopdet_basic_block_info): Fix bug in scop detection.
12341 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
12342 eq_loop_to_cloog_loop): Remove.
12343 (nb_loops_around_loop_in_scop, nb_loop
12344 ref_nb_loops): Moved here...
12345 * graphite.h (ref_nb_loops): ... from here.
12346 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
12347 (loop_domain_dim, loop_iteration_vector_dim): Remove.
12348 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
12349 * testsuite/gcc.dg/graphite/scop-19.c: New
12350
48e8382e
PB
123512009-02-04 Paolo Bonzini <bonzini@gnu.org>
12352 Hans-Peter Nilsson <hp@axis.com>
12353
12354 PR rtl-optimization/37889
12355 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
12356 Move offset handling from PLUS to before the switch. Use new
12357 arguments when considering SYMBOL_REFs too.
12358 (rtx_addr_can_trap_p): Pass dummy offset and size.
12359 (enum may_trap_p_flags): Remove.
12360 (may_trap_p_1): Pass size from MEM_SIZE.
12361
12362 PR rtl-optimization/38921
12363 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
12364 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
12365 * rtlanal.c (may_trap_after_code_motion_p): Delete.
12366 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
12367
69349ea5
L
123682009-02-04 H.J. Lu <hongjiu.lu@intel.com>
12369
12370 AVX Programming Reference (January, 2009)
12371 * config/i386/sse.md (*vpclmulqdq): New.
12372
b545e411
JJ
123732009-02-04 Jakub Jelinek <jakub@redhat.com>
12374
12375 PR tree-optimization/38977
12376 PR gcov-profile/38292
bf9b2cc9 12377 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 12378
5b43bf05
HS
123792009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
12380
12381 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
12382 non-indexable addresses even before reload.
12383
062c4bb3
JM
123842009-02-03 Joseph Myers <joseph@codesourcery.com>
12385
12386 PR c/29129
12387 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
12388 as having variable size. Do not give an error for unnamed
12389 parameters with [*] declarators. Give a warning for type names
12390 with [*] declarators and mark them as variable size.
12391 * c-parser.c (c_parser_sizeof_expression): Do not give an error
12392 for sizeof applied to [*] type names.
12393
6175f578
AP
123942009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
12395
12396 PR C++/36607
12397 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
12398
d4f4bc84
JJ
123992009-02-03 Jakub Jelinek <jakub@redhat.com>
12400
12401 * gcc.c (process_command): Update copyright notice dates.
12402 * gcov.c (print_version): Likewise.
12403 * gcov-dump.c (print_version): Likewise.
12404 * mips-tfile.c (main): Likewise.
12405 * mips-tdump.c (main): Likewise.
12406
f6294de7
JM
124072009-02-03 Joseph Myers <joseph@codesourcery.com>
12408
12409 PR c/35433
12410 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
12411 for composite type involving a zero-length array type.
12412
754ccf7c
JJ
124132009-02-03 Jakub Jelinek <jakub@redhat.com>
12414
70f16287
JJ
12415 PR target/35318
12416 * function.c (match_asm_constraints_1): Skip over
12417 initial optional % in the constraint.
12418
754ccf7c
JJ
12419 PR inline-asm/39059
12420 * c-parser.c (c_parser_postfix_expression): If fixed point is not
12421 supported, don't accept FIXED_CSTs.
12422 * c-decl.c (finish_declspecs): Error if fixed point is not supported
12423 and _Sat is used without _Fract/_Accum. Set specs->type to
12424 integer_type_node for cts_fract/cts_accum if fixed point is not
12425 supported.
12426
965fdadf
CM
124272009-02-02 Catherine Moore <clm@codesourcery.com>
12428
dbf9ee15 12429 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 12430
2e8a796f
RS
124312009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
12432
12433 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
12434 (ABI_HAS_64BIT_SYMBOLS): Use it.
12435 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
12436
e0079468
PB
124372009-02-02 Paul Brook <paul@codesourcery.com>
12438
12439 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
12440
eca72963
JJ
124412009-02-02 Jakub Jelinek <jakub@redhat.com>
12442
12443 PR inline-asm/39058
12444 * recog.h (asm_operand_ok): Add constraints argument.
12445 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
12446 recurse on matching constraint.
12447 (check_asm_operands): Pass constraints as 3rd argument to
12448 asm_operand_ok. Don't look up matching constraint here.
12449 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
12450 to asm_operand_ok.
12451
b5bde9ff
BE
124522009-02-02 Ben Elliston <bje@au.ibm.com>
12453
12454 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
12455 TARGET_NARROW_VOLATILE_BITFIELD macro names.
12456
30f3e427
JDA
124572009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12458
be7659ba
JDA
12459 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
12460 information. Remove some obsolete information. Reorganize.
12461
30f3e427
JDA
12462 * config/pa/fptr.c: Revert license to GPL 2.
12463 * config/pa/milli64.S: Likewise.
12464
3cbfaf98
DK
124652009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
12466
12467 PR target/38904
12468 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
12469 LIBRARY name in, instead of hard-coding it.
12470 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
12471 extra target make frag to tmake_files according to EH model.
12472 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12473 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
12474 frags that define makefile variable EH_MODEL appropriately.
12475 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
12476 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
12477 to "-sjlj" according to type of EH configured.
12478 (LIBGCC_SONAME): Concatenate it to shared library base name.
12479 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
12480 to "_sjlj" according to type of EH configured.
12481 (LIBGCC_SONAME): Concatenate it to shared library base name.
12482 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
12483 (SHLIB_LINK): Add missing semicolon to if-else construct.
12484 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12485 string value of "pe_dll" command-line option.
12486 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
12487 (SHLIB_SONAME): Use it when overriding t-cygming default.
12488 (SHLIB_IMPLIB): Override t-cygming default.
12489 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12490 string value of "pe_dll" command-line option.
12491
8d0b6068
DK
124922009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
12493
12494 PR target/38952
12495 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 12496 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 12497
14c28276
RG
124982009-01-31 Richard Guenther <rguenther@suse.de>
12499
12500 PR tree-optimization/38937
12501 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
12502 computing the transitive closure.
12503
5f4d82c2
RG
125042009-01-30 Richard Guenther <rguenther@suse.de>
12505
12506 PR tree-optimization/39041
12507 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
12508 Propagate variable indices only if the types match for this stmt.
12509
d0728ae0
JJ
125102009-01-30 Jakub Jelinek <jakub@redhat.com>
12511
12512 PR target/39013
12513 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
12514 inline but never defined.
12515
6b67572e 125162009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
12517
12518 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
12519 (*insv_h_di_reg_extimm): New insn.
12520 (*insv_l<mode>_reg_extimm): New insn.
12521
125222009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
12523
12524 * config/picochip/picochip.c (flag_conserve_stack): set
12525 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
12526 fconserve-stack. Reduce call-overhead used by inliner.
12527
9fec758d 125282009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
12529
12530 PR/38157
12531 * common.opt (flag_conserve_stack): Initialised to zero.
12532
7f1c539c
KT
125332009-01-30 Kai Tietz <kai.tietz@onevision.com>
12534
12535 PR/39002
12536 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
12537 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
12538 method.
12539
3631be48
L
125402009-01-29 H.J. Lu <hongjiu.lu@intel.com>
12541
12542 * ira-color.c (allocno_reload_assign): Update comments.
12543 * regmove.c (regmove_optimize): Likewise.
12544
12545 * ra.h: Removed.
12546
416ac4d4
RM
125472009-01-29 Robert Millan <rmh@aybabtu.com>
12548
60839f5d
EB
12549 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
12550 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 12551 `MD_UNWIND_SUPPORT'.
60839f5d 12552 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 12553
d5e54bc1
KH
125542009-01-29 Kazu Hirata <kazu@codesourcery.com>
12555
12556 PR tree-optimization/39007
12557 * tree-loop-distribution.c (generate_builtin): Use
12558 recompute_dominator to compute the immediate dominator of the
12559 basic block just after the loop.
12560
38432148 125612009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
12562
12563 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
12564 (ASM_OUTPUT_DWARF_PCREL): Define.
12565
38432148 125662009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
12567
12568 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
12569 * doc/passes.texi: Remove entries about regclass, local-alloc, and
12570 global. Modify entries about regmove and IRA.
12571
12572 * ra-conflict.c: Remove the file.
12573
12574 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
12575
12576 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
12577 (pass_regclass_init): Rename to pass_reginfo_init.
12578
12579 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
12580
12581 * toplev.h (flag_ira): Remove.
12582
12583 * caller-save.c (setup_save_areas): Remove flag_ira.
12584
bf9b2cc9 12585 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
12586
12587 * global.c: Remove the file.
12588
ba20e309 12589 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
12590
12591 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
12592
12593 * regmove.c: Modify file description.
12594 (find_use_as_address, try_auto_increment): Define them only if
12595 AUTO_INC_DEC is defined.
12596 (replacement_quality, replace_in_call_usage, fixup_match_1,
12597 stable_and_no_regs_but_for_p): Remove.
12598 (reg_set_in_bb): Make it static.
12599 (regmove_optimize): Remove flag_ira and code which worked for
12600 !flag_ira.
12601
12602 * local-alloc.c: Remove the file.
12603
12604 * common.opt (fira): Remove.
12605
12606 * ira.c: Include except.h.
12607 (eliminable_regset): Move from global.c.
12608 (mark_elimination): Ditto. Remove flag_ira.
12609 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
12610 equiv_mem_modified, validate_equiv_mem_from_store,
12611 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
12612 contains_replace_regs, memref_referenced_p, memref_used_between_p,
12613 no_equiv, recorded_label_ref): Move from local-alloc.c.
12614 (update_equiv_regs): Ditto. Make it static.
12615 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 12616 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
12617 (build_insn_chain): Ditto. Make it static.
12618 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
12619 Rename to init_live_subregs.
12620 (gate_ira): Remove flag_ira.
12621
12622 * regclass.c: Rename reginfo.c. Change file description.
12623 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 12624 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
12625 (init_reg_sets_1): Remove code for evaluation of
12626 reg_class_superclasses and losing_caller_save_reg_set.
12627 (init_regs): Remove init_reg_autoinc.
12628 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
12629 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 12630 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
12631 (pass_regclass_init): Rename to pass_reginfo_init. Modify
12632 corresponding entries.
12633 (dump_regclass, record_operand_costs, scan_one_insn,
12634 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
12635 record_address_regs, auto_inc_dec_reg_p): Remove.
12636 (gt-regclass.h): Rename to gt-reginfo.h.
12637
12638 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 12639 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
12640
12641 * Makefile.in (RA_H): Remove.
12642 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
12643 Rename regclass.o to reginfo.o.
12644 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
12645 gt-reginfo.h.
12646 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
12647 (GTFILES): Rename regclass.c to reginfo.c.
12648
12649 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 12650 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
12651
12652 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
12653 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
12654 Remove flag_ira.
6b67572e 12655 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 12656
c95b2534 126572009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
12658
12659 PR middle-end/35854
12660 * doc/invoke.texi (rtl debug options): Complete rewrite.
12661 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
12662 to auto_inc_dec".
12663 * mode-switching.c (pass_mode_switching): Rename pass from
12664 "mode-sw" to "mode_sw".
12665 * except.c (pass_convert_to_eh_ranges): Rename pass from
12666 "eh-ranges" to "eh_ranges".
12667 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
12668 to "subreg1".
2ba9daa7
AS
12669
12670
72a54528
AM
126712009-01-29 Andrey Belevantsev <abel@ispras.ru>
12672 Alexander Monakov <amonakov@ispras.ru>
12673
12674 PR middle-end/38857
12675 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
12676 register.
12677 (move_exprs_to_boundary): Change return type and pass through
12678 should_move from move_op. Relax assert. Update usage ...
12679 (schedule_expr_on_boundary): ... here. Use should_move instead of
12680 cant_move.
12681 (move_op_orig_expr_found): Indicate that insn was disconnected from
12682 stream.
12683 (code_motion_process_successors): Do not call after_merge_succs
12684 callback if original expression was not found when traversing any of
12685 the branches.
12686 (code_motion_path_driver): Change return type. Update prototype.
12687 (move_op): Update comment. Add a new parameter (should_move). Update
12688 prototype. Set *should_move based on indication provided by
12689 move_op_orig_expr_found.
12690
001b9eb6
PH
126912009-01-28 Pat Haugen <pthaugen@us.ibm.com>
12692
12693 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
12694 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
12695 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
12696 * config/rs6000/rs6000.c (rs6000_override_options): Default
12697 avoid-indexed-addresses on for Power6, off for everything else.
12698 (avoiding_indexed_address_p): New function.
12699 (rs6000_legitimize_address): Use it.
12700 (rs6000_legitimate_address): Likewise.
12701 * config/rs6000/rs6000.md (movXX_updateX): Likewise
12702
59dc4898
KH
127032009-01-28 Kazu Hirata <kazu@codesourcery.com>
12704
12705 PR tree-optimization/38997
12706 * tree-loop-distribution.c (generate_memset_zero): Use
12707 POINTER_PLUS_EXPR for a pointer addition.
12708
07da44ab
AK
127092009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
12710
12711 * config/s390/s390.md (bswap<mode>2): New pattern added.
12712
cdc15d23
WG
127132009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12714
12715 * config/s390/s390.md (*tls_load_31): Added type attribute.
12716
d46f24b6
WG
127172009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12718
12719 * config/s390/s390.md: Fix a few comments.
12720
729e750f
WG
127212009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12722
12723 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
12724 (*tm<mode>_full): Fixed z10prop attribute.
12725 (*tst<mode>_extimm): Fixed z10prop attribute.
12726 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
12727 (*tstqiCCT_cconly): Fixed z10prop attribute.
12728 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
12729 (*movsi_larl): Fixed z10prop attribute.
12730 (*movsi_zarch): Fixed z10prop attribute.
12731 (*movsi_eas): Fixed z10prop attribute.
12732 (*movhi): Fixed z10prop attribute.
12733 (*movqi): Fixed z10prop attribute.
12734 (*movstrictqi): Fixed z10prop attribute.
12735 (*mov<mode>): Fixed z10prop attribute.
12736 (*movcc): Fixed z10prop attribute.
12737 (*sethighpartdi_64): Fixed z10prop attribute.
12738 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
12739 (*negdi2_sign_cc): Fixed z10prop attribute.
12740 (*negdi2_sign): Fixed z10prop attribute.
12741 (*absdi2_sign_cc): Fixed z10prop attribute.
12742 (*absdi2_sign): Fixed z10prop attribute.
12743 (*negabsdi2_sign_cc): Fixed z10prop attribute.
12744 (*negabsdi2_sign): Fixed z10prop attribute.
12745 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
12746 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
12747 (doloop_si64): Fixed z10prop attribute.
12748 (doloop_si31): Fixed z10prop attribute.
12749 (doloop_long): Fixed z10prop attribute.
12750 (indirect_jump): Fixed z10prop attribute.
12751 (nop): Fixed z10prop attribute.
12752 (main_base_64): Fixed z10prop attribute.
12753 (reload_base_64): Fixed z10prop attribute.
12754
c7789bfb
JJ
127552009-01-28 Jakub Jelinek <jakub@redhat.com>
12756
12757 PR rtl-optimization/38740
6b67572e
UB
12758 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
12759 if !optimize.
c7789bfb
JJ
12760 * config/mips/mips.c (mips_reorg): Likewise.
12761
de081cfd
RG
127622009-01-28 Richard Guenther <rguenther@suse.de>
12763
12764 PR tree-optimization/38926
12765 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
12766 with the correct value id to a value.
12767 (do_regular_insertion): Use the value number of edoubleprime
12768 for the value number of the expr.
12769
12770 Revert
12771 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 12772
d748c406
UB
12773 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
12774 a PHI ask VN if it is already available.
12775 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
12776 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 12777
a9d386a1
JJ
127782009-01-28 Jakub Jelinek <jakub@redhat.com>
12779
12780 PR middle-end/38934
12781 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
12782 set to varying whenever max has TREE_OVERFLOW set, similarly
12783 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
12784
97a170cd
RG
127852009-01-28 Richard Guenther <rguenther@suse.de>
12786
12787 PR middle-end/38908
12788 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
12789 uninitialized aggregate uses in call arguments.
12790
89ebafc6
PB
127912009-01-28 Paolo Bonzini <bonzini@gnu.org>
12792
12793 PR tree-optimization/38984
12794 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
12795 the nothing_id variable if -fno-delete-null-pointer-checks.
12796
bef3c57b
UB
127972009-01-28 Uros Bizjak <ubizjak@gmail.com>
12798
12799 PR target/38988
12800 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
12801 (set_got_offset_rex64): Ditto.
12802
0c6390fa
L
128032009-01-27 H.J. Lu <hongjiu.lu@intel.com>
12804
12805 PR target/38941
12806 * doc/extend.texi: Improve local variable with asm reg.
12807
bee6fa6d
AN
128082009-01-27 Adam Nemet <anemet@caviumnetworks.com>
12809
12810 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
12811 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
12812 was not supplied then set warn_packed_bitfield_compat to the
12813 default value of 1.
12814 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
12815 against 1.
12816
b5c3dfbb
RG
128172009-01-27 Richard Guenther <rguenther@suse.de>
12818
12819 PR tree-optimization/38503
12820 * cfgexpand.c (expand_gimple_basic_block): Ignore
12821 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
12822 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
12823 variables that cannot have TBAA applied.
12824 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
12825 statements.
12826
d748c406 128272009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
12828
12829 PR middle-end/38969
12830 * calls.c (initialize_argument_information): Do not wrap complex
12831 arguments in SAVE_EXPR.
12832
9112bb38
AT
128332009-01-26 Andreas Tobler <a.tobler@schweiz.org>
12834
12835 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 12836 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 12837
4757704f
RG
128382009-01-26 Richard Guenther <rguenther@suse.de>
12839
12840 PR tree-optimization/38745
12841 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
12842 from special handling.
12843
e3e6cff4
RG
128442009-01-26 Richard Guenther <rguenther@suse.de>
12845
12846 PR tree-optimization/38745
12847 * tree-ssa.c (execute_update_addresses_taken): Do not include
12848 variables that cannot possibly be a register in not_reg_needs.
12849 Do not clear TREE_ADDRESSABLE on vars that may not become
12850 registers.
12851 * tree-ssa.c (update_alias_info_1): Include those in the set
12852 of addressable vars.
12853
dc874b53
RG
128542009-01-26 Richard Guenther <rguenther@suse.de>
12855
12856 PR middle-end/38851
12857 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
12858 * tree-ssa-dse.c: Include langhooks.h
12859 (execute_simple_dse): Remove stores with zero size.
12860
849421a3
JJ
128612009-01-24 Jakub Jelinek <jakub@redhat.com>
12862
12863 PR c/38957
12864 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
12865 as PLUS_EXPR.
12866
82f70421
JB
128672009-01-24 Julian Brown <julian@codesourcery.com>
12868
12869 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
12870 config/arm/linux-atomic.c.
12871 * config/arm/linux-atomic.c: New.
12872
863412d6
EB
128732009-01-24 Eric Botcazou <ebotcazou@adacore.com>
12874
12875 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
12876 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
12877 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
12878
8c684300
L
128792009-01-24 H.J. Lu <hongjiu.lu@intel.com>
12880
12881 PR c/38938
93f1527a 12882 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
12883 properly.
12884
b840fb02
SP
128852009-01-24 Sebastian Pop <sebastian.pop@amd.com>
12886
12887 PR tree-optimization/38953
12888 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
12889 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
12890 (gloog): Split the exit of the scop when the scop exit is a loop exit.
12891 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
12892 changed the CFG.
12893
ecee559f
PB
128942009-01-24 Paul Brook <paul@codesourcery.com>
12895
12896 * config/arm/neon.md (neon_type): Move to arm.md.
12897 (neon_mov<VSTRUCT>): Add neon_type attribute.
12898 * config/arm/arm.md (neon_type): Move to here.
12899 (conds): Add "unconditioal" and use as default for NEON insns.
12900
61ad0914
BE
129012009-01-24 Ben Elliston <bje@au.ibm.com>
12902
12903 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
12904 void *' warning from -Wc++-compat.
12905 * Makefile.in (dominance.o-warn): Remove.
12906
38432148 129072009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
12908
12909 PR tree-optimization/38932
12910 * fold-const.c (fold_unary_ignore_overflow): New.
12911 * tree.h (fold_unary_ignore_overflow): Declare.
12912 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
12913 * tree-ssa-sccvn.c (visit_reference_op_load,
12914 simplify_unary_expression): Likewise.
12915
2cd36c22
AN
129162009-01-22 Adam Nemet <anemet@caviumnetworks.com>
12917
12918 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
12919 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
12920 regardless of their type.
12921 * c-common.c (handle_packed_attribute): Don't ignore packed on
12922 bitfields.
12923 * c.opt (Wpacked-bitfield-compat): New warning option.
12924 * stor-layout.c (place_field): Warn if offset of a field changed.
12925 * doc/extend.texi (packed): Mention the ABI change.
12926 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
12927 (Warning Options): Add it to the list.
12928
e4e624ab
L
129292009-01-22 H.J. Lu <hongjiu.lu@intel.com>
12930
12931 * c-opts.c (c_common_post_options): Fix a typo in comments.
12932
d0ea0759
SE
129332009-01-22 Steve Ellcey <sje@cup.hp.com>
12934
12935 PR middle-end/38615
12936 * gimplify.c (gimplify_init_constructor): Fix promotion of const
12937 variables to static.
12938 * doc/invoke.texi (-fmerge-all-constants): Update description.
12939
87673f84
UB
129402009-01-22 Uros Bizjak <ubizjak@gmail.com>
12941
12942 PR target/38931
12943 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
12944 (*movdi_1_rex64): Use type "mmx" for alternative 5.
12945
96339268
RE
129462009-01-22 Richard Earnshaw <rearnsha@arm.com>
12947
12948 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
12949 a word boundary.
12950 (LOCAL_ALIGNMENT): Similarly.
12951
442dc742 129522009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 12953 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
12954
12955 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
12956 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
12957 * config/arm/arm-tune.md: Regenerate.
12958 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
12959 -march=iwmmxt2.
12960
9b34732e
MS
129612009-01-22 Mark Shinwell <shinwell@codesourcery.com>
12962
12963 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
12964 version number to five.
12965
03c2a308
DS
129662009-01-22 Dodji Seketeli <dodji@redhat.com>
12967
12968 PR c++/38930
ba20e309 12969 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
12970 * c-common.c (set_underlying_type): Likewise.
12971 (is_typedef_decl ): Likewise
12972 * tree.h: Likewise
12973 (set_underlying_type): Likewise.
12974 (is_typedef_type): Likewise.
12975
1240d76e
VM
129762009-01-21 Vladimir Makarov <vmakarov@redhat.com>
12977
12978 PR middle-end/38587
12979 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
12980 crossing setjmps.
12981
b8a1087d
DK
129822009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
12983
12984 PR bootstrap/37660
12985 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
12986 (LIBGCC_SPEC): Don't define.
12987 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
12988
435da628
UB
129892009-01-21 Uros Bizjak <ubizjak@gmail.com>
12990
12991 PR rtl-optimization/38879
12992 * alias.c (base_alias_check): Unaligned access via AND address can
12993 alias all surrounding object types except those with sizes equal
12994 or wider than the size of unaligned access.
12995
d597b3ce
DS
129962009-01-21 Dodji Seketeli <dodji@redhat.com>
12997
12998 PR c++/26693
ba20e309 12999 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 13000 * c-common.c (set_underlying_type): ... here.
435da628 13001 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
13002 the newly created typedef variant type.
13003 (is_typedef_decl ): New entry point.
13004 * tree.h: Added a new member member_types_needing_access_check to
13005 struct tree_decl_non_common.
13006 (set_underlying_type): New entry point.
13007 (is_typedef_type): Likewise.
13008
71a6fe66
BM
130092009-01-21 Bingfeng Mei <bmei@broadcom.com>
13010
13011 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13012 Check whether two instructions have memory references that
13013 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
13014 are helper functions for traversing.
13015 * alias.h (insn_alias_sets_confilict_p): New prototypes.
13016 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13017 not to draw dependency edge for instructions with non-conflicting
13018 alias sets.
13019
5a248274
JM
130202009-01-20 Joseph Myers <joseph@codesourcery.com>
13021
13022 PR other/38758
6b67572e
UB
13023 * longlong.h: Update copyright years. Use soft-fp license notice.
13024 Sync __clz_tab declaration with glibc.
5a248274 13025
4b84f3de
SE
130262009-01-20 Steve Ellcey <sje@cup.hp.com>
13027
13028 PR target/30687
13029 * doc/extend.texi (syscall_linkage): New.
13030 (version_id): Modify.
13031
37348bf1 130322009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 13033 Richard Guenther <rguenther@suse.de>
37348bf1
AP
13034
13035 PR tree-optimization/38747
13036 PR tree-optimization/38748
13037 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13038 conversion if the base address is an indirect reference and the
13039 aliasing sets could cause issues.
13040
d0a58904
SP
130412009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13042
2ba9daa7 13043 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
13044 explaining why these options are not documented.
13045
71e7afb2
SP
130462009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13047
13048 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
13049 gimple_call_lhs is NULL.
13050
38432148 130512009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
13052
13053 PR target/38868
13054 * emit-rtl.c (adjust_address_1): Make sure memref is never
13055 overwritten.
13056
cbb8dee3
BE
130572009-01-20 Ben Elliston <bje@au.ibm.com>
13058
13059 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 13060 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
13061 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13062 const qualifier from arg 2.
13063
72c66596
IS
130642009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
13065
435da628 13066 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 13067
f68211cd
VM
130682009-01-19 Vladimir Makarov <vmakarov@redhat.com>
13069
13070 PR c/38869
13071 * rtl.h (reinit_regs): New prototype.
13072 * regclass.c: Include ira.h.
13073 (reinit_regs): New.
13074 * Makefile.in (regclass.o): Add ira.h.
13075 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
13076
6e4f1168
L
130772009-01-18 H.J. Lu <hongjiu.lu@intel.com>
13078
13079 PR target/38736
13080 * c-common.c (handle_aligned_attribute): Use
13081 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
13082 default alignment value.
13083
13084 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
13085
13086 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
13087 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
13088
13089 * doc/extend.texi: Update __attribute__ ((aligned)). Document
13090 __BIGGEST_ALIGNMENT__.
13091
13092 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
13093
890065bf
RG
130942009-01-18 Richard Guenther <rguenther@suse.de>
13095
13096 PR tree-optimization/38819
13097 * tree-flow.h (operation_could_trap_helper_p): Declare.
13098 * tree-eh.c (operation_could_trap_helper_p): Export.
13099 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
13100 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
13101 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
13102 are about to insert a possibly trapping instruction and fail
13103 in this case.
13104
a729d731
AS
131052009-01-18 Andreas Schwab <schwab@suse.de>
13106
13107 * doc/install.texi (Configuration): Remove obsolete paragraph
13108 about use of --with-gnu-ld with --with-gnu-as.
13109
a640c13b
KH
131102009-01-18 Kazu Hirata <kazu@codesourcery.com>
13111
13112 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
13113 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
13114 Follow spelling conventions.
13115
dba2cc0c
BE
131162009-01-18 Ben Elliston <bje@au.ibm.com>
13117
13118 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
13119 C++ warning about implicit conversion from void * to struct
13120 bitmap_head_def *.
13121 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 13122 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 13123
2207a498
DK
131242009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
13125
13126 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
13127
8137e465
SP
131282009-01-17 Sebastian Pop <sebastian.pop@amd.com>
13129 Tobias Grosser <tobi.grosser@amd.com>
13130
13131 * graphite.c (graphite_trans_scop_block): Do not block single
13132 nested loops.
13133
5be1c58c
AO
131342009-01-16 Alexandre Oliva <aoliva@redhat.com>
13135
13136 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
13137 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
13138 test with assertion.
13139
786ce82d
RG
131402009-01-16 Richard Guenther <rguenther@suse.de>
13141
13142 PR tree-optimization/38835
13143 PR middle-end/36227
13144 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
13145 and INT + PTR -> (INT)(PTR p+ INT) folding.
13146 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
13147
c1cb09ad
AN
131482009-01-16 Adam Nemet <anemet@caviumnetworks.com>
13149
13150 PR target/38554
13151 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
13152 the subreg from a lowpart subreg if it is also casting the value.
13153
bcab4e19
SP
131542009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13155 Tobias Grosser <tobi.grosser@amd.com>
13156
13157 * graphite.c (compare_prefix_loops): New.
13158 (build_scop_canonical_schedules): Rewritten.
13159 (graphite_transform_loops): Move build_scop_canonical_schedules
13160 after build_scop_iteration_domain.
13161
0b040072
SP
131622009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13163 Tobias Grosser <tobi.grosser@amd.com>
13164
2ba9daa7 13165 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
13166 the dimension of the iteration domain. Do copy the domain
13167 only when it exists.
13168 (build_scop_conditions_1): Do not call add_conditions_to_domain.
13169 (add_conditions_to_constraints): New.
13170 (can_generate_code_stmt, can_generate_code): Removed.
13171 (gloog): Do not call can_generate_code.
13172 (graphite_transform_loops): Call add_conditions_to_constraints
13173 after building the iteration domain.
13174
56c6a499
JJ
131752009-01-16 Jakub Jelinek <jakub@redhat.com>
13176
13177 PR tree-optimization/38789
13178 * tree-ssa-threadedge.c
13179 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
13180 __builtin_constant_p.
13181
c95b2534 131822009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
13183
13184 * dce.c (delete_unmarked_insns): Reversed the order that insns are
13185 examined before deleting them.
2ba9daa7 13186
c433cb14
RE
131872009-01-16 Richard Earnshaw <rearnsha@arm.com>
13188
13189 * function.c (aggregate_value_p): Correctly extract the function
13190 type from CALL_EXPR_FN lookup.
13191
c95b2534 131922009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
13193
13194 * config/picochip/picochip.c (picochip_override_options): Revert
13195 CFI asm flag disable commited previously.
13196
c77bb78f
SP
131972009-01-15 Sebastian Pop <sebastian.pop@amd.com>
13198 Tobias Grosser <tobi.grosser@amd.com>
13199 Jan Sjodin <jan.sjodin@amd.com>
13200
13201 * graphite.c (scan_tree_for_params): On substractions negate
13202 all the coefficients of the term.
13203 (clast_to_gcc_expression_red): New. Handle reduction expressions
13204 of more than two operands.
13205 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
13206 (get_vdef_before_scop): Handle also the case of default definitions.
13207
574af2d6
RS
132082009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
13209
13210 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
13211 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
13212 Also use them when walking CALL_INSN_FUNCTION_USAGE.
13213
e939805b
L
132142009-01-15 H.J. Lu <hongjiu.lu@intel.com>
13215 Joey Ye <joey.ye@intel.com>
13216
13217 PR middle-end/37843
13218 * cfgexpand.c (expand_stack_alignment): Don't update stack
13219 boundary nor check incoming stack boundary here.
13220 (gimple_expand_cfg): Update stack boundary and check incoming
13221 stack boundary here.
13222
c95b2534 132232009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 13224
435da628 13225 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 13226
0196c95e
JJ
132272009-01-14 Jakub Jelinek <jakub@redhat.com>
13228
13229 PR rtl-optimization/38245
13230 * calls.c (expand_call): Add stack arguments to
13231 CALL_INSN_FUNCTION_USAGE even for pure calls (when
13232 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
13233 in regs and partially in memory or BLKmode arguments.
13234 (emit_library_call_value_1): Add stack arguments to
13235 CALL_INSN_FUNCTION_USAGE even for pure calls (when
13236 ACCUMULATE_OUTGOING_ARGS).
13237 * dce.c: Include tm_p.h.
13238 (find_call_stack_args): New function.
13239 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
13240 argument.
13241 (mark_insn): Call find_call_stack_args for CALL_Ps.
13242 (prescan_insns_for_dce): Walk insns backwards in bb rather than
13243 forwards. Allocate and free arg_stores bitmap if needed, pass it
13244 down to deletable_insn_p, don't mark stores set in arg_stores
13245 bitmap, clear the bitmap at the beginning of each bb.
13246 * Makefile.in (dce.o): Depend on $(TM_P_H).
13247
6df6bcfa
MM
132482009-01-14 Michael Meissner <gnu@the-meissners.org>
13249
13250 PR target/22599
435da628
UB
13251 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
13252 to make sure the insn is a conditional test (bug 22599). Reformat a
13253 few long lines.
6df6bcfa 13254
765ec70c
SP
132552009-01-14 Sebastian Pop <sebastian.pop@amd.com>
13256
13257 PR middle-end/38431
13258 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
13259 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
13260 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 13261 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
13262 scops have been code generated.
13263
7de2b688
BS
132642009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
13265 * doc/gty.texi (Invoking the garbage collector): Added new node
13266 and section documenting ggc_collect.
13267
10bd6c5c
RG
132682009-01-14 Richard Guenther <rguenther@suse.de>
13269
13270 PR tree-optimization/38826
13271 PR middle-end/38477
13272 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
13273 initialization notes only if we actually emitted a warning.
13274 (intra_create_variable_infos): Add constraints for a result decl
13275 that is passed by hidden reference.
13276 (build_pred_graph): Mark all related variables non-direct on
13277 address-taking.
13278
9c7c70ee
NC
132792009-01-14 Nick Clifton <nickc@redhat.com>
13280
13281 * ira-conflicts.c: Include addresses.h for the definition of
13282 base_reg_class.
435da628
UB
13283 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
13284 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 13285
cf0c2a60
VM
132862009-01-13 Vladimir Makarov <vmakarov@redhat.com>
13287
13288 PR target/38811
13289 * Makefile.in (ira-lives.o): Add except.h.
13290
13291 * ira-lives.c: Include except.h.
13292 (process_bb_node_lives): Process can_throw_internal.
13293
d3302fd3
JJ
132942009-01-13 Jakub Jelinek <jakub@redhat.com>
13295
13296 PR rtl-optimization/38774
13297 * combine.c (simplify_set): When undoing cc_use change, don't do
13298 PUT_CODE on the newly created comparison, but instead put back the
13299 old comparison.
13300
7ab23fd0
JM
133012009-01-13 Joseph Myers <joseph@codesourcery.com>
13302
13303 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
13304 values. Remove duplicate arm8 entry.
13305
f9344488
SP
133062009-01-13 Sebastian Pop <sebastian.pop@amd.com>
13307
13308 PR tree-optimization/38786
13309 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
13310 the SSA_NAME case of expand_scalar_variables_expr.
13311 Set the type of an expression to the type of its assign statement.
13312 (expand_scalar_variables_expr): Also gather the scalar computation
13313 used to index the memory access. Do not pass loop_p.
13314 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
13315 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
13316 the gimple_stmt_iterator where it inserts new code.
13317 Do not pass loop_p.
f9344488
SP
13318 (copy_bb_and_scalar_dependences): Do not pass loop_p.
13319 (translate_clast): Update call to copy_bb_and_scalar_dependences.
13320
2d8bb84d
SP
133212009-01-13 Sebastian Pop <sebastian.pop@amd.com>
13322
13323 * graphite.h (debug_value): Removed.
13324 * graphite.c (debug_value): Removed.
13325
ff128632
RE
133262009-01-13 Richard Earnshaw <rearnsha@arm.com>
13327
435da628
UB
13328 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
13329 ldrd/strd with two 32-bit instructions.
ff128632 13330
d5a0a47b
RE
133312009-01-13 Richard Earnshaw <rearnsha@arm.com>
13332
435da628
UB
13333 * config/arm/arm.c (struct processors): Pass for speed down into
13334 cost helper functions.
d5a0a47b
RE
13335 (const_ok_for_op): Handle COMPARE and inequality nodes.
13336 (arm_rtx_costs_1): Rewrite.
13337 (arm_size_rtx_costs): Update prototype.
13338 (arm_rtx_costs): Pass speed down to helper functions.
13339 (arm_slowmul_rtx_costs): Rework cost calculations.
13340 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
13341 (arm_9e_rtx_costs): Likewise.
13342
26d5bf5b
UB
133432009-01-13 Uros Bizjak <ubizjak@gmail.com>
13344
13345 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 13346 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
13347 (alpha_legitimize_address): Do not split local symbols wider than
13348 UNITS_PER_WORD into HIGH/LO_SUM parts.
13349
5d14e3d5
DS
133502009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
13351
13352 PR bootstrap/38580
13353 * gcc.c (process_command): Replace call to execvp with calls
13354 to pex_one and exit.
13355
33faafca
AS
133562009-01-03 Anatoly Sokolov <aesok@post.ru>
13357
13358 PR target/29141
13359 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
13360 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
13361 variant for devices with 3-byte PC.
ba20e309 13362 (__tablejump_elpm__): New.
33faafca 13363
634b5df5
JJ
133642009-01-12 Jakub Jelinek <jakub@redhat.com>
13365
13366 PR c/32041
13367 * c-parser.c (c_parser_postfix_expression): Allow `->' in
13368 offsetof member-designator, handle it as `[0].'.
13369
2842bb86
JDA
133702009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13371
13372 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
13373 function when not using named sections on targets with named sections
13374 if branch distance is less than 262132.
13375
76ee70f6
RE
133762009-01-12 Richard Earnshaw <rearnsha@arm.com>
13377
13378 * combine.c (combine_instructions): Recompute
13379 optimize_this_for_speed_p for each BB in the main combine loop.
13380
f56e675d
TB
133812009-01-12 Tomas Bily <tbily@suse.cz>
13382
13383 PR middlend/38385
26d5bf5b
UB
13384 * tree-loop-distribution.c (prop_phis): New function.
13385 (generate_builtin): Call prop_phis.
13386 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 13387
c2152239
JJ
133882009-01-12 Jakub Jelinek <jakub@redhat.com>
13389
13390 PR tree-optimization/38807
13391 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
13392 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
13393
0e510b3e
AN
133942009-01-11 Adam Nemet <anemet@caviumnetworks.com>
13395
13396 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
13397 subreg of op0 to the original op0.
13398
c95b2534 133992009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
13400
13401 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 13402
53a7ff9a
MS
134032009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
13404
13405 PR debug/7055
60839f5d 13406 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
13407 starting with digits.
13408
b3a796bc
JJ
134092009-01-10 Jakub Jelinek <jakub@redhat.com>
13410
13411 PR target/38695
13412 * config/arm/arm.c (arm_is_long_call_p): Don't call
13413 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
13414
b21b850e
SB
134152009-01-09 Steven Bosscher <steven@gcc.gnu.org>
13416
13417 * regrename.c (regrename_optimize): Fix dumping.
13418 (find_oldest_value_reg): Preserve REG_POINTER.
13419 (copy_hardreg_forward_1): Likewise.
13420
e0e10d3a
DN
134212009-01-09 Diego Novillo <dnovillo@google.com>
13422
bf9b2cc9 13423 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
13424 the restrictions on its use.
13425 (gimple_uid): Tidy.
13426 (gimple_set_uid): Tidy.
13427
c9da2ae8
JJ
134282009-01-09 Jakub Jelinek <jakub@redhat.com>
13429
13430 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
13431 zero guard even if align_bytes != 0 and count is smaller than
13432 size_needed.
13433
38432148 134342009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
13435
13436 PR rtl-optimization/38495
26d5bf5b 13437 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
13438 (add_range_and_copies_from_move_list): Print all added ranges.
13439 Add ranges to memory optimized destination.
13440
260fda3d
JJ
134412009-01-09 Jakub Jelinek <jakub@redhat.com>
13442
6f6278ad
JJ
13443 PR target/38686
13444 PR target/38708
13445 * config/i386/i386.c (override_options): Reject
13446 -mstringop-strategy=rep_8byte with -m32.
13447 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
13448 to 1. Do count comparison against epilogue_size_needed at compile
13449 time even when count_exp was constant forced into register. For
13450 size_needed don't jump to epilogue, instead just avoid aligning
13451 and invoke the body algorithm. If need_zero_guard, add zero guard
13452 even if count is non-zero, but smaller than size_needed + number of
13453 bytes that could be stored for alignment.
13454 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
13455 to 1. If need_zero_guard, add zero guard even if count is non-zero,
13456 but smaller than size_needed + number of bytes that could be stored
13457 for alignment. Compare size_needed with epilogue_size_needed instead
13458 of desired_align - align, don't adjust size_needed, pass
13459 epilogue_size_needed to the epilogue expanders.
13460
260fda3d 13461 PR c/35742
26d5bf5b 13462 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 13463
67b846fa
JDA
134642009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13465
13466 * pa.c (last_address): Change to unsigned.
13467 (update_total_code_bytes): Change argument to unsigned. Don't
13468 check if insn addresses are set.
13469 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
13470 addresses are not set.
13471 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
13472
91c82473
NC
134732009-01-09 Nick Clifton <nickc@redhat.com>
13474
13475 * config/sh/symbian.c: Replace uses of DECL_INLINE with
13476 DECL_DECLARED_INLINE_P.
13477
4017e262
JJ
134782009-01-09 Jakub Jelinek <jakub@redhat.com>
13479
0a49e5c2
JJ
13480 PR middle-end/38347
13481 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
13482 GET_MODE (op0) in operand_subword_force calls.
13483
4017e262
JJ
13484 PR middle-end/38771
13485 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
13486 fold_convert arg0 operands to TREE_TYPE (op0) first.
13487
7cd06356
VM
134882009-01-08 Vladimir Makarov <vmakarov@redhat.com>
13489
13490 * params.def (ira-max-conflict-table-size): Decrease default value
13491 to 1000.
13492
96867bbd
JJ
134932009-01-08 Jakub Jelinek <jakub@redhat.com>
13494
13495 PR tree-optimization/37031
13496 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
13497 on parameter_set.
13498 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
13499 allocate it using gc instead of heap, use VEC_quick_push instead of
13500 VEC_safe_push.
13501 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
13502 instead of heap, use VEC_quick_push instead of VEC_safe_push.
13503 * tree-data-ref.h (struct access_matrix): Change matrix to gc
13504 allocated vector from heap allocated.
13505 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
13506 * tree-loop-linear.c (linear_transform_loops): Allocate nest
13507 vector only after perfect_loop_nest_depth call.
13508
68f61c3d
SP
135092009-01-08 Sebastian Pop <sebastian.pop@amd.com>
13510 Jan Sjodin <jan.sjodin@amd.com>
13511
13512 PR tree-optimization/38559
13513 * graphite.c (debug_value, copy_constraint,
13514 swap_constraint_variables, scale_constraint_variable, ): New.
13515 (get_lower_bound, get_upper_bound): Removed.
13516 (graphite_trans_bb_strip_mine): Clean up this code that works
13517 only for constant number of iterations. Fully copy upper and
13518 lower bound constraints, not only the constant part of them.
13519 * graphite.h (debug_value): Declared.
13520
82567e33
IR
135212009-01-08 Ira Rosen <irar@il.ibm.com>
13522
13523 PR tree-optimization/37194
13524 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 13525 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
13526 outside cost in case of known number of iterations.
13527
7da13f1d
NF
135282009-01-07 Nathan Froyd <froydnj@codesourcery.com>
13529 Alan Modra <amodra@bigpond.net.au>
13530
13531 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
13532 non-word-aligned REG+CONST addressing.
13533
c0f64575
UB
135342009-01-07 Uros Bizjak <ubizjak@gmail.com>
13535
13536 PR target/38706
13537 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
13538 free_after_compilation when outputting a thunk.
13539 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
13540 Do not call free_after_compilation here.
13541
301b6a4e
UB
135422009-01-07 Uros Bizjak <ubizjak@gmail.com>
13543
13544 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
13545 (ix86_valid_target_attribute_inner_p): Ditto.
13546
6a114766
JS
135472009-01-07 Jan Sjodin <jan.sjodin@amd.com>
13548
13549 PR tree-optimization/38492
13550 PR tree-optimization/38498
13551 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
13552 * tree-chrec.h (scev_is_linear_expression): Declared.
13553 * graphite.c (graphite_cannot_represent_loop_niter): New.
13554 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
13555 (graphite_loop_normal_form): Use gcc_assert.
13556 (scan_tree_for_params): Use CASE_CONVERT.
13557 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
13558 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
13559 Use gcc_assert. Discard scops that contain unhandled cases.
13560 (build_scop_conditions): Return a boolean status for unhandled cases.
13561 (strip_mine_profitable_p): Print the loop number, not its depth.
13562 (is_interchange_valid): Pass the depth of the loop nest, don't
13563 recompute it wrongly.
13564 (graphite_trans_bb_block): Same.
13565 (graphite_trans_bb_block): Print tentative of loop blocking.
13566 (graphite_trans_scop_block): Do not print that the loop has been
13567 blocked.
13568 (graphite_transform_loops): Do not handle scops that contain condition
13569 scalar phi nodes.
13570
65b82caa
L
135712009-01-07 H.J. Lu <hongjiu.lu@intel.com>
13572
13573 AVX Programming Reference (December, 2008)
13574 * config/i386/avxintrin.h (_mm256_stream_si256): New.
13575 (_mm256_stream_pd): Likewise.
13576 (_mm256_stream_ps): Likewise.
13577
13578 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
13579 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
13580 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
13581 (bdesc_special_args): Add __builtin_ia32_movntdq256,
13582 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
13583 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
13584 (ix86_expand_special_args_builtin): Likewise.
13585
13586 * config/i386/sse.md (AVXMODEDI): New.
13587 (avx_movnt<mode>): Likewise.
13588 (avx_movnt<mode>): Likewise.
13589 (<sse>_movnt<mode>): Remove AVX support.
13590 (sse2_movntv2di): Likewise.
13591
cef158f9
RG
135922009-01-07 Richard Guenther <rguenther@suse.de>
13593
13594 PR middle-end/38751
13595 * fold-const.c (extract_muldiv): Remove obsolete comment.
13596 (fold_plusminus_mult_expr): Undo MINUS_EXPR
13597 to PLUS_EXPR canonicalization for the canonicalization.
13598
246cb5be
GP
135992009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
13600
13601 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
13602 hosted cross-compilers generating less efficient code.
13603
84b9b872
RS
136042009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13605
13606 * function.h (rtl_data): Add a dbr_scheduled_p field.
13607 * reorg.c (dbr_schedule): Set it.
13608 (gate_handle_delay_slots): Check it.
13609 * config/mips/mips.c (mips_base_delayed_branch): Delete.
13610 (mips_reorg): Check flag_delayed_branch instead of
13611 mips_base_delayed_branch.
13612 (mips_override_options): Don't set mips_base_delayed_branch
13613 or flag_delayed_branch.
13614
ace984c8
RS
136152009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13616
13617 PR rtl-optimization/38426.
13618 * ira.c (ira): Set current_function_is_leaf earlier.
13619
7ad7809b
JJ
136202009-01-06 Jakub Jelinek <jakub@redhat.com>
13621
13622 PR rtl-optimization/38722
13623 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
13624 too early, only set a flag and modify after last possible
13625 undo_all point.
13626
c52ec948
JJ
136272009-01-06 Janis Johnson <janis187@us.ibm.com>
13628
13629 PR c/34252
13630 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
13631 * real.c (decimal_single_format): Correct values of emin and emax.
13632 (decimal_double_format): Ditto.
13633 (decimal_quad_format): Ditto.
13634 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
13635 computation of DECnn_MIN and DECnn_MAX for corrected values of
13636 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
13637 __DECnn_MIN__, and adjust its computation for the corrected value
13638 of emin.
13639
300240e1
JH
136402009-01-06 Jan Hubicka <jh@suse.cz>
13641
13642 PR target/38744
435da628 13643 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 13644
271c069e
GP
136452009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
13646
13647 * doc/contrib.texi (Contributors): Slightly adjust the end note.
13648 Add Robert Clark to the list of testers.
13649
64e4c301 136502009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 13651 Kai Tietz <kai.tietz@onevision.com>
64e4c301 13652
435da628
UB
13653 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
13654 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 13655
7650b83e 136562009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 13657 Kai Tietz <kai.tietz@onevision.com>
7650b83e 13658
435da628
UB
13659 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
13660 for w64 ABI.
13661 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
13662 (ix86_nsaved_regs): Count only general purpose regs.
13663 (ix86_nsaved_sseregs): New.
13664 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
13665 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
13666 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
13667 general purpose regs.
7650b83e
JH
13668 (ix86_emit_save_sse_regs_using_mov): New.
13669 (ix86_expand_prologue): Save SSE regs if needed.
13670 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
13671 (ix86_emit_restore_sse_regs_using_mov): New.
13672 (ix86_expand_epilogue): Save SSE regs if needed.
13673
9aa5c1b2 136742009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 13675 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 13676
435da628
UB
13677 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
13678 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
13679 functions when accumulate outgoing args is off.
9aa5c1b2 13680
f7556aae
L
136812009-01-06 H.J. Lu <hongjiu.lu@intel.com>
13682
13683 PR bootstrap/38742
13684 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
13685 before using pseudos_have_intersected_live_ranges_p.
13686
13687 * ira-int.h (ira_assert): Always define.
13688
e47b7d04
L
136892009-01-06 H.J. Lu <hongjiu.lu@intel.com>
13690
13691 AVX Programming Reference (December, 2008)
13692 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
13693 (_mm256_permute2_pd): Likewise.
13694 (_mm_permute2_ps): Likewise.
13695 (_mm256_permute2_ps): Likewise.
13696 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
13697 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
13698
13699 * config/i386/i386.c (ix86_builtins): Remove
13700 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
13701 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
13702 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
13703 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
13704 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
13705 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
13706 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
13707 __builtin_ia32_vpermil2ps256.
13708 (ix86_init_mmx_sse_builtins): Updated.
13709 (ix86_expand_args_builtin): Likewise.
13710
44b86471
JDA
137112009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13712
e47b7d04
L
13713 * pa.c (output_call): Relocate non-jump insns in the delay slot of
13714 long absolute calls when generating PA 2.0 code.
44b86471 13715
311aab06
VM
137162009-01-05 Vladimir Makarov <vmakarov@redhat.com>
13717
13718 PR rtl-optimization/38583
13719 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
13720
13721 * params.def (ira-max-conflict-table-size): New.
13722
13723 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 13724
311aab06 13725 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 13726
311aab06
VM
13727 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
13728 table. Report this. Return result of building.
13729 (ira_build_conflicts): Use ira_conflicts_p. Check result of
13730 building conflict table.
13731
301b6a4e 13732 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 13733 (ira_color): Use ira_conflicts_p.
2ba9daa7 13734
311aab06
VM
13735 * global.c: Include ira.h.
13736 (pseudo_for_reload_consideration_p, build_insn_chain): Use
13737 ira_conflicts_p.
13738
13739 * Makefile.in (global.o): Add ira.h.
2ba9daa7 13740
311aab06
VM
13741 * ira-build.c (mark_all_loops_for_removal,
13742 propagate_some_info_from_allocno): New.
13743 (remove_unnecessary_allocnos): Call
13744 propagate_some_info_from_allocno.
13745 (remove_low_level_allocnos): New.
13746 (remove_unnecessary_regions): Add parameter. Call
13747 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
13748 parameter to remove_unnecessary_regions.
13749 (ira_build): Remove all regions but root if the conflict table was
13750 not built. Update conflict hard regs for allocnos crossing calls.
13751
13752 * ira.c (ira_conflicts_p): New global.
13753 (ira): Define and use ira_conflicts_p.
13754
13755 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13756 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 13757 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 13758
5641785f
BE
137592009-01-06 Ben Elliston <bje@au.ibm.com>
13760
13761 * gengtype-lex.l (YY_NO_INPUT): Define.
13762
e4e5261f
AP
137632009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
13764
13765 PR c/34911
5641785f
BE
13766 * c-common.c (handle_vector_size_attribute): Also reject
13767 BOOLEAN_TYPE types.
e4e5261f 13768
7b10257f
SP
137692009-01-05 Sebastian Pop <sebastian.pop@amd.com>
13770
13771 PR tree-optimization/38492
13772 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
13773 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
13774 rename_map_elt_info, eq_rename_map_elts,
13775 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
13776 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
13777 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
13778 (sese_build_livein_liveouts): New.
13779 (new_sese, free_sese): New.
13780 (new_scop): Call new_sese.
13781 (free_scop): Call free_sese.
13782 (rename_variables_from_edge, rename_phis_end_scop): Removed.
13783 (register_old_new_names): Renamed register_old_and_new_names.
13784 (register_scop_liveout_renames, add_loop_exit_phis,
13785 insert_loop_close_phis, struct igp,
13786 default_liveout_before_guard, add_guard_exit_phis,
13787 insert_guard_phis, copy_renames): New.
13788 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
13789 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
13790 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
13791 (scop_adjust_phis_for_liveouts): New.
13792 (gloog): Call scop_adjust_phis_for_liveouts.
13793
13794 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 13795 num_ver and livein.
7b10257f
SP
13796 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
13797 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
13798 (struct scop): Added field liveout_renames.
13799 (SCOP_LIVEOUT_RENAMES): New.
13800
9761fcc7
HJ
138012009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
13802
13803 PR tree-optimization/38510
13804 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
13805 (translate_clast): Call recompute_all_dominators before
13806 graphite_verify.
13807 (gloog): Call recompute_all_dominators before graphite_verify.
13808
138092009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 13810 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
13811
13812 PR tree-optimization/38500
13813 * graphite.c (create_sese_edges): Call fix_loop_structure after
13814 splitting blocks.
13815
c95b2534 138162009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
13817
13818 * config.gcc: Add m32r*-*-rtems*.
13819 * config/m32r/rtems.h: New file.
13820
fc0cd180
BE
138212009-01-05 Ben Elliston <bje@au.ibm.com>
13822
13823 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
13824 (.po.pox): Likewise.
13825 (po/gcc.pot): Likewise.
13826
3106d8e5
DM
138272009-01-04 David S. Miller <davem@davemloft.net>
13828
13829 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
13830 (STARTING_FRAME_OFFSET): Always set to zero.
13831
0009b473
RS
138322009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
13833
13834 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
13835 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
13836 fixed-point types, and vectors of the same.
13837
4f24c6d6
RS
138382009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
13839
13840 * config/mips/sync.md (*mb_barrier): Rename to...
13841 (*memory_barrier): ...this.
13842
1df48f5c
JW
138432009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
13844
13845 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 13846 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
13847 and put in alphabetical order. Fix 'target' name and put in order.
13848 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
13849 typos.
13850
1a8c13b3
UB
138512009-01-04 Uros Bizjak <ubizjak@gmail.com>
13852
13853 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
13854 (memory_barrier): Expand as unspec instead of unspec_volatile.
13855 Remove mem:BLK from insn operands. Use Pmode scratch register.
13856 (*memory_barrier): Define as unspec instead of unspec_volatile.
13857 Use (match_dup 0) as input operand.
13858
13859 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
13860 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
13861 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
13862 scratch register. Remove operand 1.
13863 (*stbar): Define as unspec instead of unspec_volatile.
13864 Use (match_dup 0) as input operand, remove (const_int 8).
13865 (*membar): Define as unspec instead of unspec_volatile.
13866 Use (match_dup 0) as input operand, remove input operand 2.
13867
13868 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
13869 (memory_barrier): Expand as unspec instead of unspec_volatile.
13870 Remove mem:BLK from insn operands. Use Pmode scratch register.
13871 (*memory_barrier): Define as unspec instead of unspec_volatile.
13872 Use (match_dup 0) as input operand.
13873
13874 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
13875 Remove mem:BLK from insn operands. Use Pmode scratch register.
13876 Set volatile flag on operand 0.
13877 (*memory_barrier): New insn pattern.
13878
13879 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
13880 insn operands.
13881 (*memory_barrier): Use (match_dup 0) as input operand.
13882
13883 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
13884 Remove mem:BLK from insn operands. Use Pmode scratch register.
13885 Set volatile flag on operand 0.
301b6a4e 13886 (*mb_internal): New insn pattern.
1a8c13b3
UB
13887
13888 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
13889
fb0703f7
SB
138902009-01-04 Steven Bosscher <steven@gcc.gnu.org>
13891
13892 PR middle-end/38586
13893 * function.c (struct temp_slot): Move to the section of the file
13894 that deals with temp slots. Remove field 'address'.
13895 (temp_slot_address_table): New hash table of address -> temp slot.
13896 (struct temp_slot_address_entry): New struct, items for the table.
13897 (temp_slot_address_compute_hash, temp_slot_address_hash,
13898 temp_slot_address_eq, insert_temp_slot_address): Support functions
13899 for the new table.
13900 (find_temp_slot_from_address): Rewrite to use the new hash table.
13901 (remove_unused_temp_slot_addresses): Remove addresses of temp
13902 slots that have been made available.
13903 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
13904 worker function for remove_unused_temp_slot_addresses.
13905 (assign_stack_temp_for_type): Don't clear the temp slot address list.
13906 Add the temp slot address to the address -> temp slot map.
13907 (update_temp_slot_address): Update via insert_temp_slot_address.
13908 (free_temp_slots): Call remove_unused_temp_slot_addresses.
13909 (pop_temp_slots): Likewise.
13910 (init_temp_slots): Allocate the address -> temp slot map, or empty
13911 the map if it is already allocated.
13912 (prepare_function_start): Initialize temp slot processing.
13913
b5a430f3
SB
139142009-01-04 Steven Bosscher <steven@gcc.gnu.org>
13915
13916 PR middle-end/38584
13917 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
13918 Calculate the size of all stack vars assuming no packing of stack
13919 vars will happen, replacing a quadratic algorithm with a linear one.
13920
5d560619
JJ
139212009-01-03 Jakub Jelinek <jakub@redhat.com>
13922
13923 PR target/38707
13924 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
13925 can't be used.
13926
953a7caa
DN
139272009-01-03 Diego Novillo <dnovillo@google.com>
13928
13929 * doc/contrib.texi: Update contributions.
13930
5f26a230
JJ
139312009-01-03 Jakub Jelinek <jakub@redhat.com>
13932
493aa551
JJ
13933 PR c++/38705
13934 * builtins.c (fold_builtin_memory_op): Give up if either operand
13935 is volatile. Set srctype or desttype to non-qualified version
13936 of the other type.
13937
5f26a230
JJ
13938 PR c/38700
13939 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
13940 and FUNCTION_DECLs.
13941
c95b2534 139422009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
13943
13944 PR rtl-optimization/35805
13945 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
13946 problem if fast dce is able to remove any instructions.
13947 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 13948
0b355794
MM
139492009-01-02 Mark Mitchell <mark@codesourcery.com>
13950
13951 PR 33649
13952 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
13953
0cf0d02b
JJ
139542009-01-02 Jakub Jelinek <jakub@redhat.com>
13955
13956 PR middle-end/38690
13957 * tree-flow.h (op_code_prio, op_prio): New prototypes.
13958 * tree-pretty-print.c (op_code_prio): New function.
13959 (op_prio): No longer static. Use op_code_prio.
13960 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
13961 Use op_prio and op_code_prio to determine if () should be
13962 printed around operand(s) or not.
13963
13964 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
13965 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
13966 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
13967 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
13968 pp_character instead of pp_string for single letter printing.
13969
e3606f3b
RS
139702009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
13971
13972 * doc/extend.texi: Fix '#pragma GCC option' typo.
13973
c95b2534 139742009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 13975
a5f061dc
RG
13976 * doc/install.texi (--enable-checking): Mention different
13977 default for stage1.
13978 (--enable-stage1-checking): Document.
00f39bd5 13979
26de0bcb
AP
139802009-01-01 Andrew Pinski <pinskia@gmail.com>
13981
13982 PR middle-end/30142
13983 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
13984 case to be an error.
13985
7a7d8fab
BE
139862009-01-02 Ben Elliston <bje@au.ibm.com>
13987
13988 * config/fp-bit.h (pack_d): Constify argument.
13989 * config/fp-bit.c (makenan): Constify return type. Remove casts.
13990 (isnan): Constify argument.
13991 (isinf): Likewise.
13992 (iszero): Likewise.
13993 (pack_d): Likewise.
13994 (_fpadd_parts): Constify return type.
13995 (_fpmul_parts): Likewise.
13996 (_fpdiv_parts): Likewise.
13997
b295aee2
JJ
139982009-01-01 Jakub Jelinek <jakub@redhat.com>
13999
14000 PR c/36489
14001 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
14002 warn about overwriting initializer with side-effects or
14003 -Woverride-init if !IMPLICIT.
14004 (output_init_element): Likewise. Pass IMPLICIT down to
14005 add_pending_init.
14006 (process_init_element): Add IMPLICIT argument. Pass it down
14007 to output_init_element.
14008 (push_init_element, pop_init_level, set_designator): Adjust
14009 process_init_element callers.
14010 (set_nonincremental_init, set_nonincremental_init_from_string):
14011 Adjust add_pending_init callers.
14012 (output_pending_init_elements): Adjust output_init_element callers.
14013 * c-tree.h (process_init_element): Adjust prototype.
14014 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14015 process_init_element callers.
ad41bd84
JM
14016
14017\f
14018Copyright (C) 2009 Free Software Foundation, Inc.
14019
14020Copying and distribution of this file, with or without modification,
14021are permitted in any medium without royalty provided the copyright
14022notice and this notice are preserved.
This page took 2.26164 seconds and 5 git commands to generate.