]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't mark phis for...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
71ece343
IR
12009-05-31 Ira Rosen <irar@il.ibm.com>
2
3 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
4 mark phis for renaming.
5 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
6 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
7 Call mark_sym_for_renaming.
8 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
9 * tree-vect-loop.c (vect_transform_loop): Remove vect_memsyms_to_rename
10 initialization and a call to mark_set_for_renaming.
11
b3041944
JJ
122009-05-31 Jakub Jelinek <jakub@redhat.com>
13
14 PR middle-end/40304
15 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
16 frame related even if !set_cfa && style < 0.
17
a1bda0d7
KT
182009-05-30 Kai Tietz <kai.tietz@onevision.com>
19
20 * config/i386/mingw-tls.c: New file.
21 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add
22 mingw-tls.c file.
23 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define
24 it for targets defining _WIN32 but not __CYGWIN__.
25
acd26225
KG
262009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27
28 * configure.ac: Add MPC support.
29
30 * config.in, configure: Regenerate.
31
cd9c1ca8
RH
322009-05-29 Richard Henderson <rth@redhat.com>
33
34 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
35 NOTE_INSN_BASIC_BLOCK.
36 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
37 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
38 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
39 to be deleted.
40 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
41 add in_use field.
42 (add_cfi): Disable check redefining cfa away from drap.
43 (lookup_cfa_1): Add remember argument; handle remember/restore.
44 (lookup_cfa): Pass remember argument.
45 (cfa_remember): New.
46 (compute_barrier_args_size_1): Remove sibcall check.
47 (dwarf2out_frame_debug_def_cfa): New.
48 (dwarf2out_frame_debug_adjust_cfa): New.
49 (dwarf2out_frame_debug_cfa_offset): New.
50 (dwarf2out_frame_debug_cfa_register): New.
51 (dwarf2out_frame_debug_cfa_restore): New.
52 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
53 (dwarf2out_begin_epilogue): New.
54 (dwarf2out_frame_debug_restore_state): New.
55 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
56 DW_CFA_restore_state.
57 (output_cfi_directive): Likewise.
58 (convert_cfa_to_fb_loc_list): Likewise.
59 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
60 * dwarf2out.h: Update.
61 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
62 (copy_insn_1): Early out for null.
63 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
64 and dwarf2out_frame_debug_restore_state.
65 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
66 (prologue_insn_hash, epilogue_insn_hash): New.
67 (free_after_compilation): Adjust freeing accordingly.
68 (record_insns): Create hash table if needed; push insns into
69 hash instead of array.
70 (maybe_copy_epilogue_insn): New.
71 (contains): Search hash table instead of array.
72 (sibcall_epilogue_contains): Remove.
73 (thread_prologue_and_epilogue_insns): Split eh_return insns
74 and mark them as epilogues.
75 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
76 scanning in terms of basic blocks.
77 * insn-notes.def (CFA_RESTORE_STATE): New.
78 * jump.c (returnjump_p_1): Accept EH_RETURN.
79 (eh_returnjump_p_1, eh_returnjump_p): New.
80 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
81 CFA_REGISTER, CFA_RESTORE): New.
82 * rtl.def (EH_RETURN): New.
83 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
84
85 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
86 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
87
88 * config/i386/i386.c (gen_push): Update cfa state.
89 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
90 add a CFA_ADJUST_CFA note.
91 (ix86_dwarf_handle_frame_unspec): Remove.
92 (ix86_expand_prologue): Update cfa state.
93 (ix86_emit_restore_reg_using_pop): New.
94 (ix86_emit_restore_regs_using_pop): New.
95 (ix86_emit_leave): New.
96 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
97 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
98 * config/i386/i386.h (struct machine_cfa_state): New.
99 (ix86_cfa_state): New.
100 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
101 (eh_return_internal): Merge from eh_return_<mode>,
102 use eh_return rtx, split w/ epilogue.
103
72b5577d
ILT
1042009-05-29 Ian Lance Taylor <iant@google.com>
105
106 * builtins.c (validate_gimple_arglist): Don't use va_arg with
107 enum type.
108 * calls.c (emit_library_call_value_1): Likewise.
109
110 * c-typeck.c (c_build_va_arg): New function.
111 * c-tree.h (c_build_va_arg): Declare.
112 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
113 instead of build_va_arg.
114
7a2faca1
EB
1152009-05-29 Eric Botcazou <ebotcazou@adacore.com>
116
117 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
118 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
119 (ptr_difference_cost): Use affine combinations to compute it.
120 (difference_cost): Likewise.
121 (get_computation_cost_at): Compute more accurate cost for addresses
122 if the ratio is a multiplier allowed in addresses.
123 For non-addresses, consider that an additional offset or symbol is
124 added only once.
125
725fd454
JJ
1262009-05-29 Jakub Jelinek <jakub@redhat.com>
127
a0987204
JJ
128 * config/i386/i386.c (ix86_decompose_address): Avoid useless
129 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
130
725fd454
JJ
131 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
132 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
133 (prefix_rex): For UNIT_MMX don't imply the prefix by default
134 if MODE_DI.
135 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
136 to 1 for TYPE_SSE{IADD1,CVT1}.
137 (prefix_vex_imm8): Removed.
138 (length_vex): Only pass 1 as second argument to
139 ix86_attr_length_vex_default if prefix_extra is 0.
140 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
141 (length): For prefix vex computation use length_immediate
142 attribute instead of prefix_vex_imm8.
143 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
144 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
145 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
146 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
147 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
148 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
149 a space in between the operands.
150 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
151 if one operand is 0xff and the other one si, di, bp or sp.
152 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
153 other one si, di, bp or sp.
154 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
155 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
156 type and mode attributes.
157 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
158 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
159 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
160 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
161 prefix_data16 attribute iff MODE_DF.
162 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
163 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
164 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
165 constm128_operand in length_immediate computation.
166 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
167 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
168 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
169 length_immediate attribute to 1.
170 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
171 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
172 for certain alternatives.
173 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
174 prefix_data16 attribute if MODE_V1DF.
175 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
176 length_immediate to 1.
177 (set_got_rex64, set_rip_rex64): Remove length attribute, set
178 length_address to 4, set mode attribute to MODE_DI.
179 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
180 (fxam<mode>2_i387): Set length attribute to 4.
181 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
182 *prefetch_3dnow_rex): Override length_address attribute.
183 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
184 attributes.
185 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
186 (constm128_operand): Removed.
187 * config/i386/i386.c (memory_address_length): For
188 disp && !index && !base in 64-bit mode account for SIB byte if
189 print_operand_address can't optimize disp32 into disp32(%rip)
190 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
191 for fs: or gs: segment.
192 (ix86_attr_length_immediate_default): When checking if shortform
193 is possible, truncate immediate to the length of the non-shortened
194 immediate.
195 (ix86_attr_length_address_default): Ignore MEM_P operands
196 with X constraint.
197 (ix86_attr_length_vex_default): Only check for DImode on
198 GENERAL_REG_P operands.
199 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
200 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
201 (sse_cvttps2pi): Clear prefix_rep attribute.
202 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
203 attribute.
204 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
205 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
206 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
207 iff operand 2 is const_int_operand.
208 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
209 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
210 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
211 instead of vex.
212 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
213 prefix_data16.
214 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
215 prefix_data16 attribute for movlpd and movhpd instructions.
216 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
217 length_immediate for shufpd instruction.
218 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
219 (avx_cmpp<avxmodesuffixf2c><mode>3,
220 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
221 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
222 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
223 *vec_dupv4sf_avx, *vec_dupv4sf): Set
224 length_immediate attribute to 1.
225 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
226 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
227 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
228 prefix_data16 attribute for the first alternative to 1.
229 (*avx_loadlps): Override length_immediate for the first alternative.
230 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
231 attributes for second alternative.
232 (*vec_concatv2sf_sse4_1): Override length_immediate and
233 prefix_data16 attributes for second alternative.
234 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
235 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
236 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
237 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
238 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
239 prefix_data16 and length_immediate to 1.
240 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
241 to 1.
242 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
243 prefix_extra attribute for variants that don't have 0f prefix
244 alone.
245 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
246 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
247 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
248 *sse4_1_pextrd): Set length_immediate to 1.
249 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
250 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
251 to 1.
252 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
253 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
254 length_immediate to 1 for second alternative.
255 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
256 prefix_extra and length_immediate attributes for the first
257 alternative.
258 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
259 first alternative.
260 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
261 to 1 for the first and third alternative.
262 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
263 alternative.
264 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
265 attribute.
266 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
267 attribute to 0.
268 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
269 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
270 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
271 *avx_psign<mode>3): Set prefix_extra attribute to 1.
272 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
273 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
274 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
275 ssse3_psign<mode>3): Override prefix_rex attribute.
276 (*avx_palignrti): Override prefix_extra and length_immediate
277 to 1.
278 (ssse3_palignrti): Override length_immediate to 1.
279 (ssse3_palignrdi): Override length_immediate to 1, override
280 prefix_rex attribute.
281 (abs<mode>2): Override prefix_rep to 0, override prefix_rex
282 attribute.
283 (sse4a_extrqi): Override length_immediate to 2.
284 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
285 (sse4a_insertq): Override prefix_data16 to 0.
286 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
287 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
288 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
289 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
290 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
291 and length_immediate to 1.
292 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
293 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
294 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
295 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
296 and length_immediate to 1.
297 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
298 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
299 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
300 avx_ptest256): Override prefix_extra to 1.
301 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
302 Override prefix_data16 and length_immediate to 1.
303 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
304 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
305 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
306 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
307 prefix_data16 to 0 and prefix_extra to 2.
308 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
309 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
310 attribute.
311 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
312 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
313 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
314 and prefix_extra to 2.
315 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
316 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
317 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
318 avx_vpermilvar<mode>3,
319 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
320 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
321 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
322 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
323 Override prefix_extra to 1.
324 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
325 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
326 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
327 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
328 prefix_extra and length_immediate to 1.
329 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
330 modrm to 0.
331 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
332 to 1 for the first alternative.
333 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
334 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
335 cases.
336 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
337 *movv2sf_internal_avx, *movv2sf_internal): Override
338 prefix_rep attribute for certain alternatives.
339 (*mov<mode>_internal): Override prefix_rep or prefix_data16
340 attributes for certain alternatives.
341 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
342 attributes for certain alternatives.
343 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
344 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
345 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
346 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
347 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
348 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
349 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
350 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
351 length_immediate to 1 if operand 2 is const_int_operand.
352 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
353 *vec_extractv2si_1): Set length_immediate
354 attribute to 1.
355 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
356 using old 3DNOW insn rather than SSE/3DNOW_A.
357 (mmx_emms, mmx_femms): Clear modrm attribute.
358
0674b9d0
MJ
3592009-05-29 Martin Jambor <mjambor@suse.cz>
360
361 * tree-sra.c: New implementation of SRA.
362
363 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
364 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
365 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
366 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
367 (SRA_MAX_STRUCTURE_COUNT): Removed.
368 (SRA_FIELD_STRUCTURE_RATIO): Removed.
369 * doc/invoke.texi (sra-max-structure-size): Removed.
370 (sra-field-structure-ratio): Removed.
371
616f21df
JJ
3722009-05-29 Jakub Jelinek <jakub@redhat.com>
373
374 PR middle-end/40291
375 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
376 before expansion.
377
da7ba240
AB
3782009-05-29 Andrey Belevantsev <abel@ispras.ru>
379
380 PR rtl-optimization/40101
381 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
382 seqno. Adjust comment.
383 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
384 inserting bookkeeping before a jump, the jump is not scheduled.
385 When no positive seqno found, provide a value. Add comment.
386
71dcd609
RG
3872009-05-29 Richard Guenther <rguenther@suse.de>
388
389 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
390 short-cutting on the first component.
391
a900ae6b
JJ
3922009-05-29 Jakub Jelinek <jakub@redhat.com>
393
394 PR middle-end/39958
395 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
396 for trees other than decls/types.
397
821bb7f8
RG
3982009-05-29 Richard Guenther <rguenther@suse.de>
399
400 * tree-ssa-operands.c (get_expr_operands): Do not handle
401 INDIRECT_REFs in the handled-component case. Remove
402 unused get_ref_base_and_extent case.
403 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
404 tree_low_cst and host_integerp where possible.
405 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
406 codes for equivalence.
407 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
408
e997fb9c
DB
4092009-05-29 David Billinghurst <billingd@gcc.gnu.org>
410
411 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
412 to tmake_file for i[34567]86-*-cygwin*.
413
58195b74
JJ
4142009-05-29 Jakub Jelinek <jakub@redhat.com>
415
416 PR target/40017
417 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
418 (altivec_categorize_keyword, init_vector_keywords,
419 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
420 similar to bool.
421
055df276
KT
4222009-05-29 Kai Tietz <kai.tietz@onevision.com>
423
424 * tree.c (handle_dll_attribute): Check if node is
425 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
426
f5939ef3
RE
4272009-05-29 Richard Earnshaw <rearnsha@arm.com>
428
429 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
430 component.
431 (thumb2_zero_extendqidi2): Likewise.
432
c185de40
KK
4332009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
434
435 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
436 instead of gen_movrt.
437 * config/sh/sh.md (movrt): Remove.
438
bf3c6caf
SE
4392009-05-28 Steve Ellcey <sje@cup.hp.com>
440
441 * doc/invoke.texi (IA-64 Options)
442 Add -msdata, -mfused-madd, -mno-inline-float-divide,
443 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
444 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
445 -msched-prefer-non-control-spec-insns,
446 -msched-stop-bits-after-every-cycle,
447 -msched-count-spec-in-critical-path,
448 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
449 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns
450 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
451 and -msched-spec-verbose.
452
8a66e987
JM
4532009-05-28 Joseph Myers <joseph@codesourcery.com>
454
455 * config/arm/lib1funcs.asm (__clear_cache): Define if
456 L_clear_cache.
457 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
458 error if used.
459 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
460
b45d2719
RG
4612009-05-28 Richard Guenther <rguenther@suse.de>
462
463 * tree-ssa-alias.c (ao_ref_init): New function.
464 (ao_ref_base): Likewise.
465 (ao_ref_base_alias_set): Likewise.
466 (ao_ref_alias_set): Likewise.
467 (refs_may_alias_p_1): Change signature.
468 (refs_may_alias_p): Adjust.
469 (refs_anti_dependent_p): Likewise.
470 (refs_output_dependent_p): Likewise.
471 (call_may_clobber_ref_p_1): Change signature.
472 (call_may_clobber_ref_p): Adjust.
473 (stmt_may_clobber_ref_p_1): New function split out from ...
474 (stmt_may_clobber_ref_p): ... here.
475 (maybe_skip_until): Adjust signature.
476 (get_continuation_for_phi): Likewise.
477 (walk_non_aliased_vuses): Likewise.
478 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
479 (ao_ref_init): Declare.
480 (ao_ref_base): Likewise.
481 (ao_ref_alias_set): Likewise.
482 (stmt_may_clobber_ref_p_1): Likewise.
483 (walk_non_aliased_vuses): Adjust.
484 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
485 (get_ref_from_reference_ops): remove.
486 (vn_reference_lookup_2): Adjust signature.
487 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
488 (vn_reference_lookup_pieces): Adjust signature, do not re-build
489 trees.
490 (vn_reference_lookup): Adjust.
491 (vn_reference_insert): Likewise.
492 (vn_reference_insert_pieces): Adjust signature.
493 (visit_reference_op_call): Adjust.
494 * tree-ssa-pre.c (get_expr_type): Simplify.
495 (phi_translate_1): Adjust.
496 (compute_avail): Likewise.
497 (translate_vuse_through_block): Do not re-build trees.
498 (value_dies_in_block_x): Likewise.
499 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
500 fields.
501 (vn_reference_lookup_pieces): Adjust declaration.
502 (vn_reference_insert_pieces): Likewise.
503
554223b6
BK
5042009-05-28 Benjamin Kosnik <bkoz@redhat.com>
505
506 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
507 with checking disabled.
508
233215fe
DK
5092009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
510
511 PR target/37216
512
513 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
514 macro definition for support of three-operand format aligned
515 .comm directive in assembler on cygwin/pe/mingw target OS.
516 * configure: Regenerate.
517 * config.h: Regenerate.
518
519 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
520 aligned form of .comm directive if -mpe-aligned-commons is in effect.
521 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
522
523 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
524 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
525
24adb18f
IR
5262009-05-28 Ira Rosen <irar@il.ibm.com>
527
528 PR tree-optimization/40254
529 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
530 in analysis of basic blocks.
531
2c5bfdf7
AN
5322009-05-28 Adam Nemet <anemet@caviumnetworks.com>
533
534 PR middle-end/33699
535 * target.h (struct gcc_target): Fix indentation. Add
536 const_anchor.
537 * target-def.h (TARGET_CONST_ANCHOR): New macro.
538 (TARGET_INITIALIZER): Use it.
539 * cse.c (CHEAPER): Move it up to the other macros.
540 (insert): Rename this ...
541 (insert_with_costs): ... to this. Add cost parameters. Update
542 function comment.
543 (insert): New function. Call insert_with_costs.
544 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
545 find_reg_offset_for_const, try_const_anchors): New functions.
546 (cse_insn): Call try_const_anchors. Adjust cost of src_related
547 when using a const-anchor. Call insert_const_anchors.
548 * config/mips/mips.c (mips_set_mips16_mode): Set
549 targetm.const_anchor.
550 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
551
9e6aced0
AO
5522009-05-28 Alexandre Oliva <aoliva@redhat.com>
553
554 * tree-inline.c (remap_decls): Enable nonlocalized variables
555 when not optimizing.
556
89fbbe4e
AO
5572009-05-28 Alexandre Oliva <aoliva@redhat.com>
558
559 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
560 Simplify other tests involving optimize.
561
e455776a
TT
5622009-05-27 Tom Tromey <tromey@redhat.com>
563
564 * unwind-dw2.c (_Unwind_DebugHook): New function.
565 (uw_install_context): Call _Unwind_DebugHook.
566
cea32bca
TT
5672009-05-27 Tom Tromey <tromey@redhat.com>
568
569 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
570
c607156f
ILT
5712009-05-27 Ian Lance Taylor <iant@google.com>
572
573 * Makefile.in (LINKER, LINKER_FLAGS): Define.
574 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
575 (ALL_LINKERFLAGS): Define.
576 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
577 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
578 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
579 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
580 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
581 $(LINKER_FOR_BUILD).
582 (build/gcov-iov$(build_exeext)): Likewise.
583
ec0a1343
JB
5842009-05-27 Julian Brown <julian@codesourcery.com>
585
586 * gcse.c (target.h): Include.
587 (can_assign_to_reg_without_clobbers_p): Check that the target allows
588 copy of argument to a pseudo register.
589
ac80ba07
DN
5902009-05-27 Diego Novillo <dnovillo@google.com>
591
592 * tree-ssa-live.c (dump_scope_block): Document arguments.
593 (dump_scope_blocks): Document.
594 (debug_scope_blocks): New.
595 * tree-flow.h (debug_scope_blocks): Declare.
596
d1803a17
DC
5972009-05-21 Denis Chertykov <denisc@overta.ru>
598
ac80ba07 599 * doc/contrib.texi (Contributors): add myself to the list.
d1803a17 600
51fb7760 6012009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
602
603 * expr.c (target_align): New function. Alignment the TARGET of an
604 assignment may be assume to have.
605 (highest_pow2_factor_for_target): Use it instead of relying on
606 immediate tree attributes of TARGET, not necessarily honored when
607 intermediate bitfields are involved.
608
634fa334
L
6092009-05-27 H.J. Lu <hongjiu.lu@intel.com>
610
611 PR target/40266
612 * config/i386/driver-i386.c (host_detect_local_cpu): Support
613 AVX, SSE4, AES, PCLMUL and POPCNT.
614
65332587
DN
6152009-05-27 Diego Novillo <dnovillo@google.com>
616
617 * tree-pretty-print.c (dump_location): New.
618 (dump_generic_node): Call it.
619 Factor code to handle BLOCK nodes ...
620 (dump_block_node): ... here.
621
3e17e31d
RAE
6222009-05-27 Rafael Avila de Espindola <espindola@google.com>
623
624 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h with
625 it.
626 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
627 included.
628 * gcc-plugin.h: Include config.h and system.h.
629 (IN_GCC): Define if not defined.
630
5e370570
HPN
6312009-05-27 Hans-Peter Nilsson <hp@axis.com>
632
633 PR middle-end/40249
634 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
635 with -fno-inline.
636
d000f0d9
SZ
6372009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
638
639 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
640 applicable.
641 * config/m32r/m32r.h: Ditto.
642 * config/m32r/m32r.md: Ditto.
643 * config/m32r/predicates.md: Ditto.
644
82f331ff
AO
6452009-05-27 Alexandre Oliva <aoliva@redhat.com>
646
647 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
648
ae2392a9
BS
6492009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
650
651 * doc/plugins.texi
652 (Loading plugins): typo.
653 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
654 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
655 (Interacting with the GCC Garbage Collector): Added new section.
656 (Giving information about a plugin): Added new section for
657 PLUGIN_INFO.
658 * testsuite/gcc.dg/plugin/plugin.exp: Added ggcplug.c test plugin
659 with ggcplug-test-1.c for testing PLUGIN_GGC_MARKING etc...
660 * testsuite/gcc.dg/plugin/ggcplug-test-1.c: Added new file.
661 * testsuite/gcc.dg/plugin/ggcplug.c: Added new file.
662 * ggc.h (ggc_register_root_tab): Added declaration.
663 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
664 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
665 (register_callback): Improved comment in declaration.
666 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for
667 vectors.
668 (extra_root_vec) Added static variable for dynamic roots
669 registration.
670 (ggc_register_root_tab) Added new routine.
671 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
672 PLUGIN_GGC_MARKING event.
673 * ggc-zone.c: Include plugin.h.
674 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
675 * ggc-page.c: Include plugin.h.
676 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
677 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
678 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
679 (register_callback): check lack of callbacks for
680 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
681 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
682 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
683 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
684 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
685 dependency on plugin.h.
686 (plugin.o): Added dependency on ggc.h...
687
f0cfd3a8
RG
6882009-05-26 Richard Guenther <rguenther@suse.de>
689
690 PR middle-end/40248
691 Revert
692 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
693 with mismatched comparison modes.
694
695 * expr.c (expand_expr_real_1): Expand the operand of a
696 VIEW_CONVERT_EXPR in its natural mode.
697
7980bfb8
ILT
6982009-05-26 Ian Lance Taylor <iant@google.com>
699
700 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
701 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
702 (ALL_COMPILERFLAGS): Define.
703 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
704 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
705 (collect2$(exeext), collect2.o): Likewise.
706 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
707 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
708 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
709 (libbackend.o, intl.o, cppdefault.o): Likewise.
710 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
711 (build/%.o): Use $(COMPILER_FOR_BUILD).
712 (build/gen%$(build_exeext)): Likewise.
713 (build/gcov-iov$(build_exeext)): LIkewise.
714 * config/t-darwin (darwin.o): Use $(COMPILER).
715 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
716 * config/t-sol2 (sol2-c.o): Likewise.
717 (sol2.o): Likewise.
718 * config/t-vxworks (vxworks.o): Likewise.
719 * config/x-darwin (host-darwin.o): Likewise.
720 * config/x-hpux (host-hpux.o): Likewise.
721 * config/x-linux (host-linux.o): Likewise.
722 * config/x-solaris (host-solaris.o): Likewise.
723 * config/alpha/x-alpha (driver-alpha.o): Likewise.
724 * config/arm/t-arm (arm-c.o): Likewise.
725 * config/arm/t-pe (pe.o): Likewise.
726 * config/arm/t-wince-pe (pe.o): Likewise.
727 * config/i386/t-cygming (winnt.o): Likewise.
728 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
729 * config/i386/t-cygwin (cygwin1.o): Likewise.
730 (cygwin2.o): Likewise.
731 * config/i386/t-i386 (i386-c.o): Likewise.
732 * config/i386/t-interix (winnt.o): Likewise.
733 * config/i386/t-netware (netware.o): Likewise.
734 * config/i386/t-nwld (nwld.o): Likewise.
735 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
736 * config/i386/x-i386 (driver-i386.o): Likewise.
737 * config/i386/x-cygwin (host-cygwin.o): Likewise.
738 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
739 * config/ia64/t-ia64 (ia64-c.o): Likewise.
740 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
741 * config/mips/x-native (driver-native.o): Likewise.
742 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
743 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
744 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
745 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
746 * config/score/t-score-elf (score7.o): Likewise.
747 (score3.o): Likewise.
748 * config/sh/t-sh (sh-c.o): Likewise.
749 * config/sh/t-symbian (sh-c.o): Likewise.
750 (symbian.o): Likewise.
751 * config/spu/t-spu-elf (spu-c.o): Likewise.
752 * config/v850/t-v850 (v850-c.o): Likewise.
753 * config/v850/t-v850e (v850-c.o): Likewise.
754
23977d3c
RG
7552009-05-26 Richard Guenther <rguenther@suse.de>
756
757 PR tree-optimization/40122
758 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
759 VECTOR_CSTs if possible.
760 (fold_gimple_assign): Likewise.
761
3d62b895
RG
7622009-05-26 Richard Guenther <rguenther@suse.de>
763
764 PR middle-end/40252
765 * fold-const.c (fold_binary): Use the correct types for building
766 rotates.
767
12346147
RG
7682009-05-26 Richard Guenther <rguenther@suse.de>
769
770 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
771 redundant calls to merge_alias_info.
772 (bump_vector_ptr): Likewise.
773 * tree-ssa-copy.c (merge_alias_info): Remove.
774 (replace_exp_1): Remove call to merge_alias_info.
775 (propagate_tree_value): Likewise.
776 (fini_copy_prop): Propagate points-to info.
777 * tree-flow.h (merge_alias_info): Remove.
778
807d5e6f
HS
7792009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
780
781 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
782
85057983
JH
7832009-05-25 Jan Hubicka <jh@suse.cz>
784
785 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
786 * cgraph.h (struct inline_summary): New filed self_wize,
787 size_inlining_benefit, self_time and time_inlining_benefit.
788 (struct cgraph_global_info): Replace insns by time ans size fields.
789 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
790 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
791 (ipcp_update_callgraph): Do not touch function bodies.
792 * ipa-inline.c: Include except.h
793 (MAX_TIME): New constant.
794 (overall_insns): Remove.
795 (leaf_node_p): New.
796 (overall_size, max_benefit): New static variables.
797 (cgraph_estimate_time_after_inlining): New function.
798 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
799 (cgraph_clone_inlined_nodes): Update size.
800 (cgraph_mark_inline_edge): Update size.
801 (cgraph_estimate_growth): Use size info.
802 (cgraph_check_inline_limits): Check size.
803 (cgraph_default_inline_p): Likewise.
804 (cgraph_edge_badness): Compute badness based on benefit and size cost.
805 (cgraph_decide_recursive_inlining): Check size.
806 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
807 times.
808 (cgraph_decide_inlining): Likewise.
809 (cgraph_decide_inlining_incrementally): Likewise; honor
810 PARAM_EARLY_INLINING_INSNS.
811 (likely_eliminated_by_inlining_p): New predicate.
812 (estimate_function_body_sizes): New function.
813 (compute_inline_parameters): Use it.
814 * except.c (must_not_throw_labels): New function.
815 * except.h (must_not_throw_labels): Declare.
816 * tree-inline.c (init_inline_once): Kill inlining_weigths
817 * tree-ssa-structalias.c: Avoid uninitialized warning.
818 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
819 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
820 (PARAM_INLINE_CALL_COST): Remove.
821 (PARAM_EARLY_INLINING_INSNS): New.
822
01df5c8a
RG
8232009-05-25 Richard Guenther <rguenther@suse.de>
824
825 PR tree-optimization/36327
826 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
827 callback for reference translation or lookup at the point
828 of may-defs.
829 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
830 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
831 for union COMPONENT_REFs.
832 (vn_reference_lookup_3): New callback. Lookup from memset
833 and CONSTRUCTOR assignment, translate through struct copies.
834 (vn_reference_lookup_pieces): Make sure to not free the
835 passed operands array. Adjust walk_non_aliased_vuses call.
836 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
837 make sure we do not leak memory.
838
6b8ed145
RG
8392009-05-25 Richard Guenther <rguenther@suse.de>
840
841 * tree-ssa-alias.h (dump_points_to_solution): Declare.
842 * tree-inline.c (expand_call_inline): Reset the escaped and
843 callused solutions.
844 * tree-ssa-structalias.c (pass_build_ealias): New.
845 * tree-pass.h (pass_build_ealias): Declare.
846 * passes.c (init_optimization_passes): Add PTA during
847 early optimizations.
848 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
849 and CALLUSED solutions.
850 (dump_points_to_solution): New function, split out from ...
851 (dump_points_to_info_for): ... here.
852 * tree-parloops.c (parallelize_loops): Reset the escaped and
853 callused solutions.
854
0adcf178
RO
8552009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
856
857 PR bootstrap/40027
858 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
859 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
860
12aaf609
IR
8612009-05-25 Ira Rosen <irar@il.ibm.com>
862
863 PR tree-optimization/40238
864 * tree-vect-stmts.c (vect_init_vector): Insert initialization
865 statements after basic block's labels.
866 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
867 to free the allocated memory.
868
7f9a14e3
KK
8692009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
870
871 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
872 return address with a USE.
873
b842d478
RG
8742009-05-24 Richard Guenther <rguenther@suse.de>
875
876 PR middle-end/40233
877 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
878 array type from the main variant of the inner type.
879
8db7b33f
JBG
8802009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
881
882 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
883 definition to bool (from int) to un-break build.
884 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
885
cff4e50d
PB
8862009-05-24 Paolo Bonzini <bonzini@gnu.org>
887
888 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
889 discard_stmt_changes): Delete.
890 * tree-ssa-operands.c (scb_stack): Delete.
891 (init_ssa_operands): Do not initialize it.
892 (fini_ssa_operands): Do not free it.
893 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
894
895 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
896 update_stmt, remove the others. Fix comments.
897 * tree-dfa.c (optimize_stack_restore): Likewise.
898 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
899 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
900 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
901 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
902 Likewise.
903 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
904 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
905 (dom_opt_finalize_block): Likewise, adjusting access to stmts_to_rescan.
906 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
907 (stmts_to_rescan): Change item type to gimple.
908 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
909
a70d6342
IR
9102009-05-24 Ira Rosen <irar@il.ibm.com>
911
912 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
913 * tree-pass.h (pass_slp_vectorize): New pass.
914 * params.h (SLP_MAX_INSNS_IN_BB): Define.
915 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
916 * tree-vectorizer.c (timevar.h): Include.
917 (user_vect_verbosity_level): Declare.
918 (vect_location): Fix comment.
919 (vect_set_verbosity_level): Update user_vect_verbosity_level
920 instead of vect_verbosity_level.
921 (vect_set_dump_settings): Add an argument. Ignore user defined
922 verbosity if dump flags require higher level of verbosity. Print to
923 stderr only for loop vectorization.
924 (vectorize_loops): Update call to vect_set_dump_settings.
925 (execute_vect_slp): New function.
926 (gate_vect_slp): Likewise.
927 (struct gimple_opt_pass pass_slp_vectorize): New.
928 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
929 access its members.
930 (vec_info_for_bb): New function.
931 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
932 (VECTORIZATION_ENABLED): New macro.
933 (SLP_ENABLED, SLP_DISABLED): Likewise.
934 (vect_is_simple_use): Add bb_vec_info argument.
935 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
936 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
937 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
938 vect_schedule_slp, vect_analyze_slp): Likewise.
939 (vect_analyze_stmt): Add slp_tree argument.
940 (find_bb_location): Declare.
941 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
942 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
943 (vect_analyze_loop_operations, vect_analyze_loop,
944 get_initial_def_for_induction, vect_create_epilog_for_reduction,
945 vect_finalize_reduction, vectorizable_reduction,
946 vectorizable_live_operation, vect_transform_loop): Likewise.
947 * tree-data-ref.c (dr_analyze_innermost): Update comment,
948 skip evolution analysis if analyzing a basic block.
949 (dr_analyze_indices): Likewise.
950 (initialize_data_dependence_relation): Skip the test whether the
951 object is invariant for basic blocks.
952 (compute_all_dependences): Skip dependence analysis for data
953 references in basic blocks.
954 (find_data_references_in_stmt): Don't fail in case of invariant
955 access in basic block.
956 (find_data_references_in_bb): New function.
957 (find_data_references_in_loop): Move code to
782dc37a 958 find_data_references_in_bb and add a call to it.
a70d6342
IR
959 (compute_data_dependences_for_bb): New function.
960 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
961 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
962 that STEP is 0.
963 (vect_analyze_data_ref_dependence): Check for interleaving in case of
964 unknown dependence in basic block and fail in case of dependence in
965 basic block.
966 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
967 dependence instances from either loop or basic block vectorization
968 info.
969 (vect_compute_data_ref_alignment): Check if it is loop vectorization
970 before calling nested_in_vect_loop_p.
971 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
972 dependence instances from either loop or basic block vectorization
973 info.
974 (vect_verify_datarefs_alignment): Likewise.
975 (vect_enhance_data_refs_alignment): Adjust function calls.
976 (vect_analyze_data_refs_alignment): Likewise.
977 (vect_analyze_group_access): Fix printing. Skip different checks if
978 DR_STEP is 0. Keep strided stores either in loop or basic block
979 vectorization data structure. Fix indentation.
980 (vect_analyze_data_ref_access): Fix comments, allow zero step in
981 basic blocks.
982 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
983 dependence instances from either loop or basic block vectorization
984 info.
985 (vect_analyze_data_refs): Update comment. Call
986 compute_data_dependences_for_bb to analyze basic blocks.
987 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
988 case of loop vectorization. In case of basic block vectorization use
782dc37a 989 data-ref itself as a base.
a70d6342
IR
990 (vect_create_data_ref_ptr): In case of basic block vectorization:
991 don't advance the pointer, add new statements before the current
992 statement. Adjust function calls.
993 (vect_supportable_dr_alignment): Support only aligned accesses in
994 basic block vectorization.
995 * common.opt (ftree-slp-vectorize): New flag.
996 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
997 (vect_pattern_recog_1): Likewise.
998 * tree-vect-stmts.c (process_use): Likewise.
999 (vect_init_vector): Add new statements in the beginning of the basic
1000 block in case of basic block SLP.
1001 (vect_get_vec_def_for_operand): Adjust function calls.
1002 (vect_finish_stmt_generation): Likewise.
1003 (vectorizable_call): Add assert that it is loop vectorization, adjust
1004 function calls.
1005 (vectorizable_conversion, vectorizable_assignment): Likewise.
1006 (vectorizable_operation): In case of basic block SLP, take
1007 vectorization factor from statement's type and skip the relevance
1008 check. Adjust function calls.
1009 (vectorizable_type_demotion): Add assert that it is loop
1010 vectorization, adjust function calls.
1011 (vectorizable_type_promotion): Likewise.
1012 (vectorizable_store): Check for outer loop only in case of loop
1013 vectorization. Adjust function calls. For basic blocks, skip the
1014 relevance check and don't advance pointers.
1015 (vectorizable_load): Likewise.
1016 (vectorizable_condition): Add assert that it is loop vectorization,
1017 adjust function calls.
1018 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
1019 that it is not reduction, get vector type, call only supported
782dc37a 1020 functions, skip loop specific parts.
a70d6342
IR
1021 (vect_transform_stmt): Check for outer loop only in case of loop
1022 vectorization.
1023 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
1024 (vect_is_simple_use): Fix comment, add new argument, fix conditions
1025 for external definition.
1026 * passes.c (pass_slp_vectorize): New pass.
1027 * tree-vect-slp.c (find_bb_location): New function.
1028 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
1029 check for patterns only in loops.
1030 (vect_build_slp_tree): Add argument, adjust function calls, fail in
1031 case of multiple types in basic block SLP.
1032 (vect_mark_slp_stmts_relevant): New function.
1033 (vect_supported_load_permutation_p): Fix comment.
1034 (vect_analyze_slp_instance): Add argument. In case of basic block
1035 SLP, take vectorization factor from statement's type, check that
1036 unrolling factor is 1. Adjust function call. Save SLP instance in
1037 either loop or basic block vectorization structure. Return FALSE,
1038 if SLP failed.
1039 (vect_analyze_slp): Add argument. Get strided stores groups from
1040 either loop or basic block vectorization structure. Return FALSE
1041 if basic block SLP failed.
1042 (new_bb_vec_info): New function.
1043 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
1044 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
1045 (vect_schedule_slp): Add argument. Get SLP instances from either
1046 loop or basic block vectorization structure. Set vectorization factor
1047 to be 1 for basic block SLP.
1048 (vect_slp_transform_bb): New function.
1049 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
1050
0676c393
MM
10512009-05-23 Mark Mitchell <mark@codesourcery.com>
1052
1053 * final.c (shorten_branches): Do not align labels for jump tables.
1054 (final_scan_insn): Use JUMP_TABLE_DATA_P.
1055
94324dae
EB
10562009-05-23 Eric Botcazou <ebotcazou@adacore.com>
1057
1058 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
1059 Remove outdated reference to flow.c and fix nits.
1060 * doc/gccint.texi: Tweak RTL description.
1061 * doc/rtl.texi: Likewise.
1062
92bffc14
DC
10632009-05-23 Denis Chertykov <chertykov@gmail.com>
1064
1065 * config/avr/avr.c: Change my email address.
1066 * config/avr/avr.h: Likewise.
1067 * config/avr/avr.md: Likewise.
1068 * config/avr/avr-protos.h: Likewise.
1069 * config/avr/libgcc.S: Likewise.
1070
eec9405e
TS
10712009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
1072
1073 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
1074 (spu_split_load, spu_split_store): Change return type to int.
1075 (spu_split_convert): Declare.
1076 * config/spu/predicates.md (spu_mem_operand): Remove.
1077 (spu_mov_operand): Update.
1078 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
1079 * config/spu/spu.c (regno_aligned_for_load): Remove.
1080 (reg_aligned_for_addr, spu_expand_load): Define.
1081 (spu_expand_extv): Reimplement and handle MEM.
1082 (spu_expand_insv): Handle MEM.
1083 (spu_sched_reorder): Handle insn's with length 0.
1084 (spu_legitimate_address_p): Reimplement.
1085 (store_with_one_insn_p): Return TRUE for any mode with size
1086 larger than 16 bytes.
1087 (address_needs_split): Define.
1088 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
1089 operands.
1090 (spu_convert_move): Define.
782dc37a 1091 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
1092 (spu_split_store): Change all MEM's to TImode.
1093 (spu_init_expanders): Preallocate registers that correspond to
1094 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
1095 mark_reg_pointer.
1096 (spu_split_convert): Define.
1097 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
1098 (_move<mode>, _movdi, _movti): Update predicate and condition.
1099 (load, store): Change to define_split.
1100 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
1101 extend<mode>ti2.
1102 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
1103 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
1104 define_insn_and_split of lshr<mode>3.
1105 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
1106 (<v>ashr<mode>3_imm): Define.
1107 (extv, extzv, insv): Allow MEM operands.
1108 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
1109 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
1110 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
1111 (_spu_convert2): Change to define_insn_and_split and remove the
1112 corresponding define_peephole2.
1113 (stack_protect_set, stack_protect_test, stack_protect_test_si):
1114 Change predicates to memory_operand.
1115
7d31a807
MM
11162009-05-22 Mark Mitchell <mark@codesourcery.com>
1117
1118 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 1119
d021d274
MM
11202009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1121
1122 PR tree-optimization/40219
1123 * tree.c (iterative_hash_expr): Make sure the builtin function is
1124 a normal builtin function and not a front end or back end builtin
1125 before indexing into the built_in_decls array.
1126
4d7a65ea
RG
11272009-05-22 Richard Guenther <rguenther@suse.de>
1128
1129 PR middle-end/38964
1130 * alias.c (write_dependence_p): Do not use TBAA for answering
1131 anti-dependence or output-dependence.
782dc37a 1132 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
1133 (emit_pointer_definition): Remove.
1134 (emit_alias_warning): Likewise.
1135 (find_what_var_points_to): Remove TBAA pruning code.
1136 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
1137 violations.
1138 (compute_points_to_sets): Remove code computing the set of
1139 dereferenced pointers.
1140 * tree-data-ref.c (dr_may_alias_p): Properly use the split
1141 oracle for querying anti and output dependencies.
1142 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
1143 if TBAA may be applied.
1144 (refs_anti_dependent_p): New function.
1145 (refs_output_dependent_p): Likewise.
1146 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
1147 (refs_output_dependent_p): Likewise.
1148 * doc/tree-ssa.texi (Memory model): New section.
1149 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1150 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1151 * cfgexpand.c (expand_gimple_basic_block): Do not handle
1152 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
1153 * expr.c (expand_expr_real_1): Likewise.
1154 * gimple-low.c (lower_stmt): Likewise.
1155 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
1156 (dump_gimple_cdt): Remove.
1157 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1158 (gimple_size): Likewise.
1159 (walk_gimple_op): Likewise.
1160 (is_gimple_stmt): Likewise.
1161 (walk_stmt_load_store_addr_ops): Likewise.
1162 (gimple_build_cdt): Remove.
1163 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
1164 * gimple.h (gimple_cdt_new_type): Remove.
1165 (gimple_cdt_new_type_ptr): Likewise.
1166 (gimple_cdt_set_new_type): Likewise.
1167 (gimple_cdt_location): Likewise.
1168 (gimple_cdt_location_ptr): Likewise.
1169 (gimple_cdt_set_location): Likewise.
1170 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1171 * tree-cfg.c (remove_useless_stmts_1): Do not handle
1172 GIMPLE_CHANGE_DYNAMIC_TYPE.
1173 (verify_types_in_gimple_stmt): Likewise.
1174 * tree-inline.c (estimate_num_insns): Likewise.
1175 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
1176 (copy_decl_to_var): Likewise.
1177 (copy_result_decl_to_var): Likewise.
1178 * tree-pretty-print.c (dump_generic_node): Do not handle
1179 CHANGE_DYNAMIC_TYPE_EXPR.
1180 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1181 * tree-ssa-operands.c (get_expr_operands): Likewise.
1182 * tree-ssa-structalias.c (struct variable_info): Remove
1183 no_tbaa_pruning member.
1184 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
1185 (unify_nodes): Do not copy it.
1186 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
1187 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
1188 (set_uids_in_ptset): Do not check it.
1189 (find_what_var_points_to): Likewise.
1190 (compute_tbaa_pruning): Remove.
1191 (compute_points_to_sets): Do not call it.
1192 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
1193 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
1194 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
1195 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
1196 (DECL_NO_TBAA_P): Likewise.
1197 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
1198 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
1199 (expand_omp_atomic_pipeline): Do not set it.
1200 * print-tree.c (print_node): Do not dump it.
1201 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1202 redundant check.
1203
83a6ac60
VM
12042009-05-22 Vladimir Makarov <vmakarov@redhat.com>
1205
1206 PR target/39856
1207 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
1208 for clobber.
1209
fe2978fb
MM
12102009-05-22 Mark Mitchell <mark@codesourcery.com>
1211
1212 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
1213 non-external.
1214
134ef638
BE
12152009-05-22 Ben Elliston <bje@au.ibm.com>
1216
1217 * Makefile.in (bversion.h, s-bversion): New targets.
1218 (TOPLEV_H): Add bversion.h.
1219 * toplev.h: Include "bversion.h".
1220 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
1221 the __format__ attribute only if compiling with the same version
1222 of GCC as the sources (the "build version").
1223
52fc669d
BE
12242009-05-22 Ben Elliston <bje@au.ibm.com>
1225
1226 * c-format.c (handle_format_attribute): Fix comment typo.
1227
583ca921
SE
12282009-05-21 Steve Ellcey <sje@cup.hp.com>
1229
1230 PR target/37846
1231 * config/ia64/ia64.opt (mfused-madd): New.
1232 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
1233 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
1234 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
1235 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
1236 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
1237 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
1238 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
1239 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
1240 instruction if !TARGET_FUSED_MADD.
1241 (fpma, fpms): Remove colon from name.
1242
150e3929
RG
12432009-05-22 Richard Guenther <rguenther@suse.de>
1244
1245 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
1246 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
1247 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
1248 TARGET_MEM_REF.
1249 (create_expression_by_pieces): Only convert if necessary.
1250 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
1251 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
1252
9a2b090c
AN
12532009-05-21 Adam Nemet <anemet@caviumnetworks.com>
1254
1255 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
1256 regular pattern from a template and rename it ...
1257 (*extzv_truncsi_exts): ... to this.
1258
33b92c9d
RG
12592009-05-21 Richard Guenther <rguenther@suse.de>
1260
1261 * cgraph.h (struct cgraph_node): Remove inline_decl member.
1262 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
1263 (cgraph_default_inline_p): Likewise.
1264 (cgraph_decide_inlining_incrementally): Likewise.
1265
cabf85c3
L
12662009-05-21 H.J. Lu <hongjiu.lu@intel.com>
1267 Uros Bizjak <ubizjak@gmail.com>
1268
1269 * config/i386/cpuid.h (bit_MOVBE): New.
1270
1271 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
1272
1273 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
1274 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
1275 (ix86_handle_option): Handle OPT_mmovbe.
1276 (ix86_target_string): Add -mmovbe.
1277 (pta_flags): Add PTA_MOVBE.
1278 (processor_alias_table): Add PTA_MOVBE to "atom".
1279 (override_options): Handle PTA_MOVBE.
1280
1281 * config/i386/i386.h (TARGET_MOVBE): New.
1282
1283 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
1284 (*bswapsi_movbe): New.
1285 (*bswapdi_movbe): Likewise.
1286 (bswapdi2): Renamed to ...
1287 (*bswapdi_1): This.
1288 (bswapdi2): New expander.
1289
1290 * config/i386/i386.opt (mmovbe): New.
1291
1292 * doc/invoke.texi: Document -mmovbe.
1293
9fefa0aa
TG
12942009-05-21 Taras Glek <tglek@mozilla.com>
1295
1296 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
1297 * gcc-plugin.h (plugin_init): Updated signature.
1298 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
1299 * doc/plugins.texi (plugin_init): Updated documention to reflect
1300 API change.
9fefa0aa
TG
1301 * doc/plugins.texi (plugin_name_args): Added to documention.
1302
1ea9fe56
MM
13032009-05-21 Mark Mitchell <mark@codesourcery.com>
1304
1305 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
1306 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
1307
52f84254
SZ
13082009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
1309
1310 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
1311 JUMP_TABLE_DATA_P predicates where applicable.
1312 * config/i386/predicates.md: Ditto.
1313 * config/i386/sse.md: Ditto.
1314
a952487c
JJ
13152009-05-21 Jakub Jelinek <jakub@redhat.com>
1316
93cac287
JJ
1317 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
1318 operand2 -128 override length_immediate attribute to 1.
1319 * config/i386/predicates.md (constm128_operand): New predicate.
1320
a952487c
JJ
1321 * config/i386/i386.c (memory_address_length): Handle %r12
1322 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
1323 also check REGNO.
1324 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
1325 mode look through optional ZERO_EXTEND and SUBREG.
1326 * config/i386/i386.md (R12_REG): New define_constant.
1327 (prefix_data16): For sse unit set also for MODE_TI insns.
1328 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
1329 insns set if operand 1 is ext_QIreg_operand.
1330 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
1331 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
1332 immediate.
1333 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
1334 mode from MODE_DI to MODE_SI.
1335 (movdi_1_rex64): Override modrm and length_immediate attributes
1336 only for movabs (TYPE_IMOV, alternative 2).
1337 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
1338 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1339 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1340 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1341 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
1342 prefix_rex attribute if DImode.
1343 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
1344 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1345 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
1346 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
1347 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
1348 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
1349 Likewise. For TYPE_IMOV clear length_immediate attribute.
1350 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
1351 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
1352 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
1353 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1354 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
1355 or one operand TYPE_ISHIFT.
1356 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
1357 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
1358 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
1359 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
1360 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
1361 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
1362 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
1363 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
1364 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
1365 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
1366 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
1367 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
1368 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
1369 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
1370 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
1371 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
1372 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
1373 set mode attribute, don't override length attribute.
1374 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
1375 to 1.
1376 (return_internal_long): Set length attribute to 2 instead of 1.
1377 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
1378 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
1379 prefix_rex attribute.
782dc37a
UB
1380 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
1381 New predicates.
1382 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 1383
64af62c2
RR
13842009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1385
1386 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
1387
c166b898
ILT
13882009-05-20 Ian Lance Taylor <iant@google.com>
1389
1390 * tree.c (build_tree_list_vec_stat): New function.
1391 (ctor_to_vec): New function.
1392 (build_nt_call_vec): New function.
1393 (build_call_array): Change args to be a const pointer.
1394 (build_call_vec): New function.
1395 * tree.h (build_nt_call_vec): Declare.
1396 (build_tree_list_vec_stat): Declare.
1397 (build_tree_list_vec): Define.
1398 (build_call_array): Update declaration.
1399 (build_call_vec): Declare.
1400 (ctor_to_vec): Declare.
1401 * c-common.c (tree_vector_cache): New static variable.
1402 (make_tree_vector): New function.
1403 (release_tree_vector): New function.
1404 (make_tree_vector_single): New function.
1405 (make_tree_vector_copy): New function.
1406 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
1407 (make_tree_vector_single, make_tree_vector_copy): Declare.
1408 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
1409 (c_parser_expr_list): Don't manage cache here, instead call
1410 make_tree_vector.
1411 (c_parser_release_expr_list): Remove static function.
1412 (c_parser_vec_to_tree_list): Remove static function.
1413 (c_parser_attributes): Call build_tree_list_vec instead of
1414 c_parser_vec_to_tree_list. Call release_tree_vector instead of
1415 c_parser_release_expr_list.
1416 (c_parser_postfix_expression_after_primary): Likewise.
1417 (c_parser_objc_keywordexpr): Likewise.
1418
40449a90
SL
14192009-05-20 Sandra Loosemore <sandra@codesourcery.com>
1420
1421 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
1422 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
1423 TARGET_CONVERT_TO_TYPE.
1424 * hooks.c (hook_tree_const_tree_null): Define.
1425 * hooks.h (hook_tree_const_tree_null): Declare.
1426 * target.h (struct gcc_target): Add invalid_parameter_type,
1427 invalid_return_type, promoted_type, and convert_to_type fields.
1428 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
1429 (TARGET_INVALID_RETURN_TYPE): Define.
1430 (TARGET_PROMOTED_TYPE): Define.
1431 (TARGET_CONVERT_TO_TYPE): Define.
1432 (TARGET_INITIALIZER): Update for new fields.
1433 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
1434 (grokparms): Check targetm.invalid_parameter_type.
1435 * c-typeck.c (default_conversion): Check targetm.promoted_type.
1436 * c-convert.c (convert): Check targetm.convert_to_type.
1437
642d97ff
AN
14382009-05-20 Adam Nemet <anemet@caviumnetworks.com>
1439
1440 * config/mips/mips.md (*extenddi_truncate<mode>,
1441 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
1442 defintions.
1443 (*extendhi_truncateqi): New define_insn_and_sptit.
1444
776248b8
JJ
14452009-05-20 Jakub Jelinek <jakub@redhat.com>
1446
1447 PR middle-end/40204
1448 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 1449 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 1450
d98e8686
EB
14512009-05-20 Eric Botcazou <ebotcazou@adacore.com>
1452
1453 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
1454 the operand of VIEW_CONVERT_EXPR.
1455
37c50435
L
14562009-05-20 H.J. Lu <hongjiu.lu@intel.com>
1457
1458 * config/i386/driver-i386.c (host_detect_local_cpu): Check
1459 extended family and model for Intel processors. Support Intel
1460 Atom.
1461
dbb6088f
OH
14622009-05-20 Olivier Hainque <hainque@adacore.com>
1463
1464 * gstab.h (stab_code_type): Define, to be used instead of the
1465 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
1466 notice.
1467 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
1468 occurrences by stab_code_type.
1469 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
1470
7ec49257
MJ
14712009-05-20 Martin Jambor <mjambor@suse.cz>
1472
1473 * tree-flow.h (insert_edge_copies_seq): Undeclare.
1474 (sra_insert_before): Likewise.
1475 (sra_insert_after): Likewise.
1476 (sra_init_cache): Likewise.
1477 (sra_type_can_be_decomposed_p): Likewise.
1478 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
1479 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
1480 (sra_insert_before): Likewise.
1481 (sra_insert_after): Likewise.
1482 (sra_init_cache): Likewise.
1483 (insert_edge_copies_seq): Made static and moved upwards.
1484
1485 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
1486 case.
1487
1488 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
1489
1490 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
1491 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
1492 simple copies.
1493
0328ae4d
RG
14942009-05-20 Richard Guenther <rguenther@suse.de>
1495
1496 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
1497 with mismatched comparison modes.
1498
a7994a57 14992009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 1500
a7994a57 1501 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
1502 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
1503 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
1504 with shifts for Thumb2.
1505 (orsi_notsi): New for orn.
1506 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
1507 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
1508 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
1509 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
1510 Don't invert remainder for IOR.
a7994a57 1511
e36dc339
ZD
15122009-05-19 Zdenek Dvorak <ook@ucw.cz>
1513
1514 PR tree-optimization/40087
1515 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
1516 number_of_iterations_ne): Rename never_infinite argument.
1517 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
1518 number_of_iterations_le): Handle pointer-type ivs when
1519 exit_must_be_taken is false.
1520 (number_of_iterations_cond): Do not always assume that
1521 exit_must_be_taken if the control variable is a pointer.
1522
5cfd5d9b
AP
15232009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
1524
1525 * c-typeck.c (build_binary_op): Allow % on integal vectors.
1526 * doc/extend.texi (Vector Extension): Document that % is allowed too.
1527
2f1c7156
L
15282009-05-19 H.J. Lu <hongjiu.lu@intel.com>
1529
1530 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
1531 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
1532
7bb27074
MLI
15332009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1534
1535 PR c/40172
1536 * c.opt (Wlogical-op): Disabled by default.
1537 * c-opt (c_common_post_options): Do not enable Wlogical-op with
1538 Wextra.
1539 * doc/invoke.texi (Wlogical-op): Likewise.
1540
5aefc6a0
EB
15412009-05-19 Eric Botcazou <ebotcazou@adacore.com>
1542
1543 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
1544 into CASE_CONVERT.
1545 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
1546 Propagate the type of the first operand.
1547 <ASSERT_EXPR>: Simplify.
1548 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
1549 Rewrite using the RHS code as discriminant.
1550 <NOP_EXPR>: Turn into CASE_CONVERT.
1551 <PLUS_EXPR>: Propagate the type of the first operand.
1552
f3a83111
SE
15532009-05-19 Steve Ellcey <sje@cup.hp.com>
1554
1555 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
1556 (ia64_dconst_0_375): New.
1557 * config/ia64/ia64.c (ia64_override_options): Remove
1558 -minline-sqrt-min-latency warning.
1559 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
1560 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
1561 * config/ia64/ia64.md (*sqrt_approx): Remove.
1562 (sqrtsf2): Remove #if 0.
1563 (sqrtsf2_internal_thr): Rewrite and move to div.md.
1564 (sqrtdf): Remove assert.
1565 (sqrtdf2_internal_thr): Rewrite and move to div.md.
1566 (sqrtxf2): Remove #if 0.
1567 (sqrtxf2_internal_thr): Rewrite and move to div.md.
1568 * div.md (sqrt_approx_rf): New.
1569 (sqrtsf2_internal_thr): New implementation.
1570 (sqrtsf2_internal_lat): New.
1571 (sqrtdf2_internal_thr: New implementation.
1572 (sqrtxf2_internal): New implementation.
1573
1ffc7157
FXC
15742009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
1575 Hans-Peter Nilsson <hp@axis.com>
1576
1577 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
1578 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
1579 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
1580 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
1581 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
1582 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
1583 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
1584 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
1585 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
1586 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
1587 * c-common.c: ...from here.
1588
db91d9ef
MLI
15892009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
1590
1591 * c-common.c (warn_logical_operator): Remove unnecessary
1592 conditionals.
1593
bbb9d91f
KG
15942009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1595
1596 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
1597
ce883f54
BE
15982009-05-19 Ben Elliston <bje@au.ibm.com>
1599
1600 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
1601 assignments with memcpy calls.
1602 (add_fdes): Likewise.
1603 (binary_search_unencoded_fdes): Likewise.
1604 (linear_search_fdes): Eliminate type puns.
1605
377f099a
RG
16062009-05-19 Richard Guenther <rguenther@suse.de>
1607
1608 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
1609 not falsely claim to have propagated into all uses.
1610
848bc769
BE
16112009-05-19 Ben Elliston <bje@au.ibm.com>
1612
1613 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
1614 version to v3.0.
1615
1bb99877
KK
16162009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
1617
1618 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
1619 * config/sh/sh.c (sh_legitimate_address_p): Make static.
1620 (TARGET_LEGITIMATE_ADDRESS_P): New.
1621 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
1622 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
1623
82725547
DS
16242009-05-18 Dodji Seketeli <dodji@redhat.com>
1625
1626 PR debug/40109
1627 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
1628 child of the containing namespace's DIE.
1629
f6a1e430
AN
16302009-05-18 Adam Nemet <anemet@caviumnetworks.com>
1631
1632 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
1633 *zero_extendhi_truncqi): Move after the zero_extend patterns.
1634 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
1635 extend patterns.
1636
6a90d232
L
16372009-05-18 H.J. Lu <hongjiu.lu@intel.com>
1638
1639 PR target/39942
1640 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
1641 gen_align with gen_pad.
1642 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
1643 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
1644
1645 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
1646 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
1647
1648 * config/i386/i386.md (align): Renamed to ...
1649 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
1650 ASM_OUTPUT_MAX_SKIP_PAD.
1651
c4406f74
AS
16522009-05-18 Andreas Schwab <schwab@linux-m68k.org>
1653
06555043
AS
1654 * config.gcc: Fix variable syntax.
1655
c4406f74
AS
1656 PR target/39531
1657 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
1658 before calling exact_log2.
1659 (output_iorsi3): Likewise.
1660 (output_xorsi3): Likewise.
1661
99052692
KK
16622009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
1663
1664 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
1665 for the none zero constant operand except for EQ and NE
1666 comprisons even when the first operand is R0.
1667
f4aa3848
AK
16682009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
1669
1670 * config/s390/2064.md: Remove trailing whitespaces.
1671 * config/s390/2084.md: Likewise.
1672 * config/s390/constraints.md: Likewise.
1673 * config/s390/fixdfdi.h: Likewise.
1674 * config/s390/libgcc-glibc.ver: Likewise.
1675 * config/s390/s390-modes.def: Likewise.
1676 * config/s390/s390-protos.h: Likewise.
1677 * config/s390/s390.c: Likewise.
1678 * config/s390/s390.h: Likewise.
1679 * config/s390/s390.md: Likewise.
1680 * config/s390/tpf-unwind.h: Likewise.
1681
ab7256e4
MK
16822009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
1683
1684 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
1685
75df395f
MK
16862009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
1687
1688 M68K TLS support.
1689 * configure.ac (m68k-*-*): Check if binutils support TLS.
1690 * configure: Regenerate.
1691 * config/m68k/predicates.md (symbolic_operand): Extend comment.
1692 * config/m68k/constraints.md (Cu): New constraint.
1693 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
1694 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
1695 (movsi): Handle TLS symbols.
1696 (addsi3_5200): Handle XTLS symbols, indent.
1697 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
1698 (m68k_tls_reference_p): Declare.
1699 (m68k_legitimize_address): Declare.
1700 (m68k_unwrap_symbol): Declare.
1701 * config/m68k/m68k.opt (mxtls): New option.
1702 * config/m68k/m68k.c (ggc.h): Include.
1703 (m68k_output_dwarf_dtprel): Implement hook.
1704 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
1705 (m68k_expand_prologue): Load GOT pointer when function needs it.
1706 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
1707 (m68k_legitimate_constant_address_p): Same.
1708 (m68k_decompose_address): Handle TLS references.
1709 (m68k_get_gp): New static function.
1710 (enum m68k_reloc): New contants.
1711 (TLS_RELOC_P): New macro.
1712 (m68k_wrap_symbol): New static function.
1713 (m68k_unwrap_symbol): New function.
1714 (m68k_final_prescan_insn_1): New static function.
1715 (m68k_final_prescan_insn): New function.
1716 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
1717 functions.
1718 (legitimize_pic_address): Handle TLS references..
1719 (m68k_tls_get_addr, m68k_get_tls_get_addr)
1720 (m68k_libcall_value_in_a0_p)
1721 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
1722 (m68k_call_m68k_read_tp): Helper variables and functions for ...
1723 (m68k_legitimize_tls_address): Handle TLS references.
1724 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
1725 New functions.
1726 (m68k_legitimize_address): Handle TLS symbols.
1727 (m68k_get_reloc_decoration): New static function.
1728 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
1729 UNSPEC_RELOC32.
1730 (m68k_output_dwarf_dtprel): Implement hook.
1731 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
1732 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
1733 m68k_call_* routines.
1734 (sched_attr_op_type): Handle TLS symbols.
1735 (gt-m68k.h): Include.
1736 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
1737 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
1738
8b75fc9b
MJ
17392009-05-18 Martin Jambor <mjambor@suse.cz>
1740
1741 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
1742 (visit_store_addr_for_mod_analysis): New function.
1743 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
1744 (determine_cst_member_ptr): Use gimple_assign_single_p.
1745 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
1746 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
1747 operands. Don't check number of operands of a NOP_EXPR.
1748
f133d4a2
EF
17492009-05-18 Eric Fisher <joefoxreal@gmail.com>
1750
1751 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
1752
ae8af500
L
17532009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
1754
1755 PR c/40172
1756 * c-common.c (warn_logical_operator): Don't warn if one of
1757 expression isn't always true or false.
1758
25e8fde8
KT
17592009-05-17 Kai Tietz <kai.tietz@onevision.com>
1760
ae8af500
L
1761 * config/i386/biarch32.h: New file.
1762 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 1763
ef67af22
AN
17642009-05-17 Adam Nemet <anemet@caviumnetworks.com>
1765
1766 * config/mips/mips.md (*zero_extend<mode>_trunchi,
1767 *zero_extend<mode>_truncqi): Merge these into ...
1768 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
1769 Name the pattern following this as *zero_extendhi_truncqi.
1770
e2d87023
BL
17712009-05-16 Brad Lucier <lucier@math.purdue.edu>
1772
1773 PR middle-end/39301
1774 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
1775 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
1776 (output_info): Make field HOST_WIDEST_INT.
1777 (print_statistics): Use HOST_WIDEST_INT_PRINT.
1778 (dump_bitmat_statistics): Same.
1779
428ddbf0
FXC
17802009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
1781
1782 * config.gcc (use_gcc_stdint): Set to wrap.
1783 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1784 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1785 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1786 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1787 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1788 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1789 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1790 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1791
1ab8a8c2
JM
17922009-05-16 Joseph Myers <joseph@codesourcery.com>
1793
1794 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
1795 tune_64.
1796 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
1797 Move definitions earlier.
1798 (OPT_ARCH64, OPT_ARCH32): Define.
1799 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
1800 and tune_64.
1801
70544f44
RE
18022009-05-16 Richard Earnshaw <rearnsha@arm.com>
1803
1804 PR target/40153
1805 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
1806 implies.
1807
6241ded1
RE
18082009-05-16 Richard Earnshaw <rearnsha@arm.com>
1809
1810 * arm.md (movdi2): Copy non-reg values to DImode registers.
1811
a99c6711
JJ
18122009-05-16 Jakub Jelinek <jakub@redhat.com>
1813
40a8f07a
JJ
1814 PR target/39942
1815 * final.c (label_to_max_skip): New function.
1816 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
1817 CODE_LABEL_NUMBER <= max_labelno.
1818 * output.h (label_to_max_skip): New prototype.
1819 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
1820 (ix86_avoid_jump_mispredicts): ... this. Don't define if
1821 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
1822 Handle CODE_LABELs with >= 16 byte alignment or with
1823 max_skip == (1 << align) - 1.
1824 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
1825 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
1826
a99c6711
JJ
1827 PR target/39942
1828 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
1829 .p2align 3 if MAX_SKIP is smaller than 7.
1830 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
1831
7e5487a2
ILT
18322009-05-15 Ian Lance Taylor <iant@google.com>
1833
1834 * alias.c (struct alias_set_entry_d): Rename from struct
1835 alias_set_entry. Change all uses.
1836 * except.c (struct call_site_record_d): Rename from struct
1837 call_site_record. Change all uses.
1838 * except.h (struct eh_region_d): Rename from struct eh_region.
1839 Change all uses.
1840 * gcse.c (struct hash_table_d): Rename from struct hash_table.
1841 Change all uses.
1842 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
1843 ivtype_map_elt. Change all uses.
1844 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
1845 Change all uses.
1846 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
1847 * graphite.h (struct name_tree_d): Rename from struct name_tree.
1848 Change all uses.
1849 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
1850 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
1851 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
1852 * optabs.h (struct optab_d): Rename from struct optab. Change all
1853 uses.
1854 (struct convert_optab_d): Rename from struct convert_optab.
1855 Change all uses.
1856 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
1857 ipa_opt_pass. Change all uses.
1858 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
1859 all uses.
1860
1861 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
1862 defined as a typedef.
1863 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
1864 defined as a tag.
1865
a243fb4a
MLI
18662009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
1867
1868 PR 16302
1869 * fold-const.c (make_range,build_range_check,merge_ranges): Move
1870 declaration to...
1871 (merge_ranges): Returns bool.
1872 * tree.h (make_range): .. to here.
1873 (build_range_check): Likewise.
1874 (merge_ranges): Likewise. Renamed from merge_ranges.
1875 * c-typeck.c (parser_build_binary_op): Update calls to
1876 warn_logical_operator.
1877 * c-common.c (warn_logical_operator): Add new warning.
1878 * c-common.h (warn_logical_operator): Update declaration.
1879
1b53c5f3
MLI
18802009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
1881
782dc37a 1882 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
1b53c5f3 1883
c128599a
KG
18842009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1885
f9bab007
KG
1886 * doc/install.texi: Document MPC requirements, flags etc.
1887
c128599a
KG
1888 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
1889 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
1890 Evaluate constant arguments.
1891 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
1892 (fold_builtin_1): Likewise, also evaluate constant arguments.
1893 Remove superfluous break.
1894 (do_mpc_ckconv): New.
1895 * real.h: Include mpc.h.
1896 * toplev.c (print_version): Output MPC version info if available.
1897
d33e4b70
SL
18982009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1899
782dc37a 1900 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 1901
a02ab464
L
19022009-05-15 H.J. Lu <hongjiu.lu@intel.com>
1903
1904 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
1905 only once.
1906
796bda22
JH
19072009-05-15 Jan Hubicka <jh@suse.cz>
1908
1909 * doc/invoke.texi (max-early-inliner-iterations): New flag.
1910 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
1911 (try_inline): Fix return value.
1912 (cgraph_decide_inlining_incrementally): Honor new value.
1913 (cgraph_early_inlining): Handle indirect inlining.
1914 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
1915
d88e5c37
JH
19162009-05-15 Jan Hubicka <jh@suse.cz>
1917
1918 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
1919 * cgraphunit.c (cgraph_finalize_function): Set it.
1920 (cgraph_expand_function): Use it.
1921
ae63687c
SL
19222009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1923
1924 * real.c (encode_ieee_half): Define.
1925 (decode_ieee_half): Define.
1926 (ieee_half_format): Define.
1927 (arm_half_format): Define.
1928 * real.h (ieee_half_format): Declare.
1929 (arm_half_format): Declare.
1930
1bd74ad9
SL
19312009-05-15 Sandra Loosemore <sandra@codesourcery.com>
1932
1933 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
1934 swapped, and reversed optabs exist before trying to use them.
1935
dc34db56
PB
19362009-05-15 Paul Brook <paul@codesourcery.com>
1937 Sandra Loosemore <sandra@codesourcery.com>
1938
dc34db56
PB
1939 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
1940 loads. Allow PRE_DEC.
1941 (output_move_neon): Handle PRE_DEC.
1942 (arm_print_operand): Add 'A' for neon structure loads.
1943 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
1944 * config/arm/neon.md (neon_mov): Update comment.
1945 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
1946 calls.
1947 (Um): New constraint.
1948
1d405d7b
JH
19492009-05-15 Jan Hubicka <jh@suse.cz>
1950
1951 Revert the following patch until testsuite fallout is fixed:
1952 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
1953 * cgraph.h (struct inline_summary): New filed self_wize,
1954 size_inlining_benefit, self_time and time_inlining_benefit.
1955 (struct cgraph_global_info): Replace insns by time ans size fields.
1956 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
1957 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
1958 (ipcp_update_callgraph): Do not touch function bodies.
1959 * ipa-inline.c: Include except.h
782dc37a 1960 (MAX_TIME): New constant.
1d405d7b
JH
1961 (overall_insns): Remove
1962 (overall_size, max_benefit): New static variables.
1963 (cgraph_estimate_time_after_inlining): New function.
1964 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
1965 (cgraph_clone_inlined_nodes): Update size.
1966 (cgraph_mark_inline_edge): Update size.
1967 (cgraph_estimate_growth): Use size info.
1968 (cgraph_check_inline_limits): Check size.
1969 (cgraph_default_inline_p): Likewise.
1970 (cgraph_edge_badness): Compute badness based on benefit and size cost.
1971 (cgraph_decide_recursive_inlining): Check size.
00c5fa1b
EB
1972 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
1973 times.
1d405d7b 1974 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
1975 (cgraph_decide_inlining_incrementally): Likewise; honor
1976 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
1977 (likely_eliminated_by_inlining_p): New predicate.
1978 (estimate_function_body_sizes): New function.
1979 (compute_inline_parameters): Use it.
1980 * except.c (must_not_throw_labels): New function.
1981 * except.h (must_not_throw_labels): Declare.
1982 * tree-inline.c (init_inline_once): Kill inlining_weigths
1983 * tree-ssa-structalias.c: Avoid uninitialized warning.
1984 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
1985 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
1986 (PARAM_INLINE_CALL_COST): Remove.
1987 (PARAM_EARLY_INLINING_INSNS): New.
1988
7ffa47ca
RG
19892009-05-15 Richard Guenther <rguenther@suse.de>
1990
1991 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
1992 not TODO_update_ssa.
1993
828552ed
RG
19942009-05-15 Richard Guenther <rguenther@suse.de>
1995
1996 PR tree-optimization/39999
1997 * gimple.h (gimple_expr_type): Use the expression type looking
1998 through useless conversions.
1999 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
2000 (vn_nary_op_insert_stmt): Likewise.
2001 (simplify_binary_expression): Likewise.
2002
248fc9f3
RG
20032009-05-15 Richard Guenther <rguenther@suse.de>
2004
2005 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2006 New options, enabled by default.
2007 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
2008 Document.
2009 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
2010 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
2011 * tree-ssa-structalias.c (gate_tree_pta): New function.
2012 (pass_build_alias): Use it.
2013
16b29cc4
JM
20142009-05-15 Joseph Myers <joseph@codesourcery.com>
2015
2016 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
2017 recurse on an invariant address if a conversion from a pointer
2018 type to a wider integer type is involved.
2019
125cae84
JH
20202009-05-15 Jan Hubicka <jh@suse.cz>
2021
2022 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2023 * cgraph.h (struct inline_summary): New filed self_wize,
2024 size_inlining_benefit, self_time and time_inlining_benefit.
2025 (struct cgraph_global_info): Replace insns by time ans size fields.
2026 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2027 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2028 (ipcp_update_callgraph): Do not touch function bodies.
2029 * ipa-inline.c: Include except.h
782dc37a 2030 (MAX_TIME): New constant.
125cae84
JH
2031 (overall_insns): Remove
2032 (overall_size, max_benefit): New static variables.
2033 (cgraph_estimate_time_after_inlining): New function.
2034 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2035 (cgraph_clone_inlined_nodes): Update size.
2036 (cgraph_mark_inline_edge): Update size.
2037 (cgraph_estimate_growth): Use size info.
2038 (cgraph_check_inline_limits): Check size.
2039 (cgraph_default_inline_p): Likewise.
2040 (cgraph_edge_badness): Compute badness based on benefit and size cost.
2041 (cgraph_decide_recursive_inlining): Check size.
00c5fa1b
EB
2042 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
2043 times.
125cae84 2044 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
2045 (cgraph_decide_inlining_incrementally): Likewise; honor
2046 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
2047 (likely_eliminated_by_inlining_p): New predicate.
2048 (estimate_function_body_sizes): New function.
2049 (compute_inline_parameters): Use it.
2050 * except.c (must_not_throw_labels): New function.
2051 * except.h (must_not_throw_labels): Declare.
2052 * tree-inline.c (init_inline_once): Kill inlining_weigths
2053 * tree-ssa-structalias.c: Avoid uninitialized warning.
2054 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2055 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2056 (PARAM_INLINE_CALL_COST): Remove.
2057 (PARAM_EARLY_INLINING_INSNS): New.
2058 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
2059 (inline-call-cost): Remove.
2060 (early-inlining-insns): New.
2061
84fb43a1
EB
20622009-05-15 Eric Botcazou <ebotcazou@adacore.com>
2063
2064 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
2065 for bounds.
2066 (print_int_cst_bounds_in_octal_p): Likewise.
2067 (dbxout_type): Adjust calls to above functions. Be prepared to deal
2068 with subtypes.
2069 * dwarf2out.c (base_type_die): Likewise.
2070 (is_subrange_type): Delete.
2071 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
2072 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
2073 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
2074 the destination type is boolean.
2075 (build_range_check): Do not special-case subtypes.
2076 (fold_sign_changed_comparison): Likewise.
2077 (fold_unary): Likewise.
2078 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
2079 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
2080 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
2081 * tree.c (subrange_type_for_debug_p): New predicate based on the former
2082 is_subrange_type.
2083 * tree.h (subrange_type_for_debug_p): Declare.
2084 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
2085 (convert_affine_scev): Remove call to above function.
2086 (chrec_convert_aggressive): Likewise.
2087 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
2088 false for conversions involving subtypes.
2089 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
2090 (vrp_val_min): Likewise.
2091 (needs_overflow_infinity): Likewise.
2092 (extract_range_from_unary_expr): Likewise.
2093
331d9186
PB
20942009-05-15 Paolo Bonzini <bonzini@gnu.org>
2095
e9351712
L
2096 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
2097 * config/frv/frv.c: Likewise.
2098 * config/s390/s390.c: Likewise.
2099 * config/sparc/sparc.h: Likewise.
2100 * config/i386/i386.h: Likewise.
2101 * config/i386/i386.c: Likewise.
2102 * config/crx/crx.c: Likewise.
2103 * config/m68hc11/m68hc11.h: Likewise.
2104 * config/iq2000/iq2000.c: Likewise.
2105 * config/mn10300/mn10300.h: Likewise.
2106 * config/mn10300/mn10300.c: Likewise.
2107 * config/m68k/m68k.c: Likewise.
2108 * config/rs6000/rs6000.c: Likewise.
2109 * config/rs6000/xcoff.h: Likewise.
2110 * config/rs6000/linux64.h: Likewise.
2111 * config/rs6000/sysv4.h: Likewise.
2112 * config/score/score3.c: Likewise.
2113 * config/score/score7.c: Likewise.
2114 * config/score/score.c: Likewise.
2115 * config/arm/arm.md: Likewise.
2116 * config/mips/mips.c: Likewise.
2117 * config/mips/mips.md: Likewise.
2118 * config/bfin/bfin.h: Likewise.
2119 * config/pa/pa.c: Likewise.
2120 * config/pa/constraints.md: Likewise.
2121
2122 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
2123 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
2124 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 2125
09639a83
ILT
21262009-05-14 Ian Lance Taylor <iant@google.com>
2127
2128 * passes.c (finish_optimization_passes): Change i to int.
2129 * plugin.c (plugins_active_p): Change event to int.
2130 (dump_active_plugins): Likewise.
2131 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
2132 Add cast.
2133 * tree.c (tree_range_check_failed): Change c to unsigned int.
2134 (omp_clause_range_check_failed): Likewise.
2135 (build_common_builtin_nodes): Change mode to int. Add cast.
2136 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
2137 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
2138
2139 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
2140 ++ or -- with a variable of enum type.
2141
c04a56bf
SB
21422009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2143
2144 PR driver/40144
2145 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
2146
237ee620
SB
21472009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2148
2149 * store-motion.c: Do not include params.h
2150 * Makefile.in: Fix dependencies for various files.
2151
1154c4fa
SB
21522009-05-14 Steven Bosscher <steven@gcc.gnu.org>
2153
2154 * auto-inc-dec.c: Fix pass description, remove apparent
2155 accidental duplication.
2156
61c27353
L
21572009-05-14 H.J. Lu <hongjiu.lu@intel.com>
2158
2159 PR middle-end/40147
2160 * ipa-utils.h (memory_identifier_string): Moved to ...
2161 * tree.h (memory_identifier_string): Here. Add GTY(()).
2162
c6c3dba9
PB
21632009-05-14 Paolo Bonzini <bonzini@gnu.org>
2164
2165 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
2166 in the former documentation of...
2167 (GO_IF_LEGITIMATE_ADDRESS): ... this.
2168 * ira-conflicts.c (get_dup_num): Use address_operand.
2169 * targhooks.c (default_legitimate_address_p): New.
2170 * targhooks.h (default_legitimate_address_p): New.
2171 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
2172 Call hook.
2173 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
2174 * target.h (struct target): Add legitimate_address_p.
2175 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
2176 (TARGET_INITIALIZER): Include it.
2177
2178 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2179 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
2180 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
2181 (TARGET_LEGITIMATE_ADDRESS_P): New.
2182
2183 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2184 (REG_OK_STRICT_P): Delete.
2185 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
2186 (frv_legitimate_address_p_1): ... this.
2187 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
2188 (frv_legitimate_address_p_1): ... the renamed old
2189 frv_legitimate_address_p.
2190 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
2191 (TARGET_LEGITIMATE_ADDRESS_P): New.
2192
2193 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2194 * config/s390/s390-protos.h (legitimate_address_p): Remove.
2195 * config/s390/s390.c (legitimate_address_p): Rename to...
2196 (s390_legitimate_address_p): ... this, make static.
2197 (legitimize_address): Adjust call.
2198 (TARGET_LEGITIMATE_ADDRESS_P): New.
2199 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
2200
2201 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2202 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
2203 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
2204 (TARGET_LEGITIMATE_ADDRESS_P): New.
2205
2206 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2207 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
2208 * config/spu/spu.c (spu_legitimate_address): Rename to...
2209 (spu_legitimate_address_p): ... this, make static.
2210 (TARGET_LEGITIMATE_ADDRESS_P): New.
2211
2212 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2213 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
2214 * config/sparc/sparc.c (legitimate_address_p): Rename to...
2215 (sparc_legitimate_address_p): ... this, make static and return bool.
2216 (legitimize_address): Adjust call.
2217 (TARGET_LEGITIMATE_ADDRESS_P): New.
2218
2219 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2220 * config/i386/i386-protos.h (legitimate_address_p): Remove.
2221 * config/i386/i386.c (legitimate_address_p): Rename to...
2222 (ix86_legitimate_address_p): ... this, make static.
2223 (constant_address_p): Move after it, adjust call.
2224 (TARGET_LEGITIMATE_ADDRESS_P): New.
2225
2226 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2227 * config/avr/avr-protos.h (legitimate_address_p): Remove.
2228 * config/avr/avr.c (legitimate_address_p): Rename to...
2229 (avr_legitimate_address_p): ... this, make static.
2230 (legitimize_address): Adjust call.
2231 (TARGET_LEGITIMATE_ADDRESS_P): New.
2232
2233 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2234 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
2235 * config/crx/crx.c (crx_legitimate_address_p): Make static.
2236 (TARGET_LEGITIMATE_ADDRESS_P): New.
2237
2238 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2239 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
2240 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
2241 (TARGET_LEGITIMATE_ADDRESS_P): New.
2242
2243 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2244 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
2245 Remove.
2246 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
2247 Make static.
2248 (TARGET_LEGITIMATE_ADDRESS_P): New.
2249
2250 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2251 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
2252 Remove.
2253 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
2254 Rename to...
2255 (m68hc11_legitimate_address_p): ... this, make static.
2256 (go_if_legitimate_address_internal): Rename to...
2257 (m68hc11_legitimate_address_p_1): ... this.
2258 (legitimize_address): Adjust call.
2259 (TARGET_LEGITIMATE_ADDRESS_P): New.
2260
2261 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
2262 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
2263 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
2264 (TARGET_LEGITIMATE_ADDRESS_P): New.
2265
2266 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2267 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
2268 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
2269 (mn10300_legitimate_address_p): ... this, make static.
2270 (TARGET_LEGITIMATE_ADDRESS_P): New.
2271
2272 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2273 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
2274 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
2275 (TARGET_LEGITIMATE_ADDRESS_P): New.
2276
2277 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2278 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
2279 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
2280 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2281 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
2282 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
2283 (rs6000_legitimate_address_p): ... this, make static.
2284 (TARGET_LEGITIMATE_ADDRESS_P): New.
2285 (REG_MODE_OK_FOR_BASE_P): Delete.
2286 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
2287
2288 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2289 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
2290 Delete.
2291 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
2292 static, adjust types.
2293 (TARGET_LEGITIMATE_ADDRESS_P): New.
2294
2295 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2296 * config/score/score.c (score_address_p): Rename to...
2297 (score_legitimate_address_p): ... this.
2298 (TARGET_LEGITIMATE_ADDRESS_P): New.
2299 * config/score/score3.c (score3_address_p): Rename to...
2300 (score3_legitimate_address_p): ... this.
2301 * config/score/score7.c (score7_address_p): Rename to...
2302 (score7_legitimate_address_p): ... this.
2303
2304 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
2305 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
2306 GO_IF_LEGITIMATE_ADDRESS): Delete.
2307 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
2308 thumb2_legitimate_address_p): Delete.
2309 (arm_legitimate_address_p): Rename to...
2310 (arm_legitimate_address_outer_p): ... this.
2311 * config/arm/constraints.md ("Uq"): Adjust call.
2312 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
2313 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
2314 (arm_legitimate_address_outer_p): ... this.
2315 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
2316 (TARGET_LEGITIMATE_ADDRESS_P): New.
2317
2318 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2319 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
2320 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
2321 (TARGET_LEGITIMATE_ADDRESS_P): New.
2322
2323 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2324 * config/vax/vax-protos.h (legitimate_address_p): Remove.
2325 * config/vax/vax.c (legitimate_address_p): Rename to...
2326 (vax_legitimate_address_p): ... this, make static.
2327 (TARGET_LEGITIMATE_ADDRESS_P): New.
2328
2329 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2330 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
2331 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
2332 (TARGET_LEGITIMATE_ADDRESS_P): New.
2333
2334 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2335 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
2336 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
2337 (mmix_legitimate_address_p): ... this, make static.
2338 (TARGET_LEGITIMATE_ADDRESS_P): New.
2339
2340 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
2341 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
2342 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
2343 (TARGET_LEGITIMATE_ADDRESS_P): New.
2344
3bd0d9c8
PB
23452009-05-14 Paolo Bonzini <bonzini@gnu.org>
2346
2347 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
2348 of MODE_COMPLEX_INT.
2349
fe049033
RO
23502009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2351
2352 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
2353 LCT_NORMAL in function call.
2354 * mips-tdump.c (print_file_desc): Add cast to enum type.
2355 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
2356 (mark_stabs): Add casts to enum types.
2357 (parse_stabs_common): Add casts to enum types.
16f7ad42 2358
b0907a6c
AN
23592009-05-13 Adam Nemet <anemet@caviumnetworks.com>
2360
2361 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
2362 Check for invalid values of LETTER.
2363
d1c8e08a
TG
23642009-05-13 Taras Glek <tglek@mozilla.com>
2365
16f7ad42
TG
2366 * attribs.c (register_attribute): moved out attribute registration into
2367 register_attribute.
2368 * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
2369 * gcc-plugin.h: Added forward decl for register_attribute.
2370 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
2371 * plugin.c (register_callback, invoke_plugin_callbacks): Added
2372 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 2373
4ed7f970
DK
23742009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
2375
2376 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
2377 values even in sentinel and empty entries.
2378 (ms_printf_flag_specs): Likewise.
2379 (ms_scanf_flag_specs): Likewise.
2380 (ms_strftime_flag_specs): Likewise.
2381 (ms_print_char_table): Likewise.
2382 (ms_scan_char_table): Likewise.
2383 (ms_time_char_table): Likewise.
2384
3d8fa148
DK
23852009-05-13 Doug Kwan <dougkwan@google.com>
2386
2387 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
2388
f06257d3
AN
23892009-05-13 Adam Nemet <anemet@caviumnetworks.com>
2390
2391 * config/mips/mips.md (store): Add attributes for QI and HI.
2392 Update comment.
2393 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
2394 (truncdi<mode>2): ... this new pattern.
2395
fb201767
BH
23962009-05-13 Brad Hards <bradh@kde.org>
2397
2398 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
2399
c7bda60e 24002009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
2401 Ben Elliston <bje@au.ibm.com>
2402
2403 PR middle-end/40035
2404 * dse.c (check_mem_read_rtx): Guard against width == -1.
2405
ce985b43
MM
24062009-05-13 Michael Matz <matz@suse.de>
2407
2408 PR middle-end/39976
2409 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
2410 (trivially_conflicts_p): New function.
2411 (insert_backedge_copies): Use it.
2412
7de1d221
JJ
24132009-05-13 Janis Johnson <janis187@us.ibm.com>
2414
2415 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
2416 (handle_stdc_pragma): Use new enum constant names.
2417 (handle_pragma_float_const_decimal64): Ditto.
2418
bfefafc6
ILT
24192009-05-13 Ian Lance Taylor <iant@google.com>
2420
2421 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
2422 tree.def.
2423
286c4fcb
NS
24242009-05-13 Nathan Sidwell <nathan@codesourcery.com>
2425
2426 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
2427 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
2428 multilibs.
2429 * config/m68k/m68k.h (FL_UCLINUX): Define.
2430
ebaa6ea7
JH
24312009-05-13 Jan Hubicka <jh@suse.cz>
2432
2433 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
2434
2b703e1a
KK
24352009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2436
2437 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
2438 unless -fschedule-insns is specified.
2439
c3537723
KK
24402009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2441
2442 PR target/39561
2443 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
2444 TARGET_EXPAND_CBRANCHDI4.
2445 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
2446 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
2447 (cmpeqdi): Fix comment.
2448
cdeed45a
KK
24492009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2450
2451 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
2452 (sh_legitimate_address_p): Likewise.
2453 * config/sh/sh.c (sh_legitimate_index_p): New.
2454 (sh_legitimate_address_p): Likewise.
2455 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
2456 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
2457 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
2458 (MAYBE_BASE_REGISTER_RTX_P): New macro.
2459 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
2460 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
2461 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
2462 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
2463 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
2464
02f0b13a
JH
24652009-05-12 Jan Hubicka <jh@suse.cz>
2466
2467 * tree-inline.c (estimate_operator_cost): Add operands;
2468 when division happens by constant, it is cheap.
2469 (estimate_num_insns): Loads and stores are not having cost of 0;
2470 EH magic stuff is cheap; when computing runtime cost of switch,
2471 use log2 base of amount of its cases; builtin_expect has cost of 0;
2472 compute cost for moving return value of call.
2473 (init_inline_once): Initialize time_based flags.
2474 * tree-inline.h (eni_weights_d): Add time_based flag.
2475
ecb7f6de
PB
24762009-05-12 Paolo Bonzini <bonzini@gnu.org>
2477
2478 * df-core.c: Update head documentation.
2479
c24151ce
MM
24802009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2481
2482 PR bootstrap/40118
2483 * rs6000.c (rs6000_generate_compare): Use op1b instead of
2484 shadowing exisiting variable op1.
2485
fbdf817d
UB
24862009-05-12 Uros Bizjak <ubizjak@gmail.com>
2487
704bf7c8 2488 PR target/37179
fbdf817d
UB
2489 * config/i386/driver-i386.c (processor_signatures): New enum.
2490 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
2491 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
2492 processor signature to detect geode processor.
2493
5e8d1826
PB
24942009-05-12 Paolo Bonzini <bonzini@gnu.org>
2495
2496 Revert:
2497
2498 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
2499
2500 * optabs.c (prepare_cmp_insn): Temporarily disable test that
2501 causes spurious differences between trunk and cond-optab branch.
2502
f90b7a5a
PB
25032009-05-12 Paolo Bonzini <bonzini@gnu.org>
2504
fbdf817d
UB
2505 * dojump.c (compare_from_rtx): Delete.
2506 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
2507 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
2508 if the comparison does not satisfy the predicate; test predicates for
2509 operands 2 and 3 of a cstore pattern. Don't try cstore optab
2510 further if one existing pattern fails.
fbdf817d 2511 * expr.h (compare_from_rtx): Delete.
f90b7a5a 2512 (prepare_operand): Declare it.
fbdf817d 2513 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 2514 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
2515 HAVE_conditional_trap, emit_cmp_insn): Delete.
2516 (can_compare_p): Delete cmp_optab case.
f90b7a5a 2517 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
2518 Accept other parameters by value.
2519 (prepare_operand): Make non-static.
2520 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
2521 other parameters by value. Try to widen operands here based on
2522 an optab_methods argument and looking at cbranch_optab.
2523 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
2524 loop. Use cbranch_optab directly.
2525 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
2526 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
2527 assertion.
2528 (emit_conditional_move, emit_conditional_add): Inline what's needed
2529 of compare_from_rtx, using new prepare_cmp_insn for the rest.
2530 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
2531 with COMPARE. Move cmov_optab and cstore_optab above
2532 with cbranch_optab, move cmp_optab down with ucmp_optab,
2533 remove tst_otpab. Do not initialize trap_rtx.
2534 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
2535 for trap code. Do not check HAVE_conditional_trap. Use
2536 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
2537 * optabs.h (OTI_cmp): Mark as used only for libcalls.
2538 (OTI_ctrap, ctrap_optab): New.
2539 (tst_optab): Delete.
2540 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
2541 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
2542 with lookup of ctrap_optab.
2543 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
2544 setcc_gen_code): Delete.
2545 (ctrap_optab): New.
2546
2547 * combine.c (combine_simplify_rtx, simplify_set): Do not
2548 special case comparing against zero for cc0 machines.
f90b7a5a
PB
2549 * simplify-rtx.c (simplify_binary_operation_1): Never remove
2550 COMPARE on cc0 machines.
2551 (simplify_relational_operation): Return a new expression when
2552 a COMPARE could be removed.
fbdf817d
UB
2553 * final.c (final_scan_insn): Compare cc_status values
2554 against LHS of a (compare FOO (const_int 0)) cc0 source.
2555 Also check if cc_status.value is the full compare.
f90b7a5a 2556
fbdf817d
UB
2557 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
2558 (cstoreMM4): Document.
f90b7a5a 2559 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 2560 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
2561 (Dependent Patterns): Eliminate obsolete information referring to
2562 the old jump optimization phase.
fbdf817d 2563 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
2564 of compares with 0 on cc0 machines.
2565 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
2566 avoiding references to cc0. Remove text about storing operands
2567 in cmpMM.
2568 * doc/tm.texi (Condition Codes): Include blurb on different
2569 condition code representations, separate into subsections for
2570 CC0, MODE_CC and conditional execution.
2571
fbdf817d
UB
2572 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
2573 alpha_emit_setcc): Accept operands and a machine mode.
2574 * config/alpha/alpha.c (alpha_emit_conditional_branch):
2575 Get code/op0/op1 from operands, use machine mode argument
2576 instead of alpha_compare.fp_p. Emit the branch here.
2577 (alpha_emit_setcc): Likewise, and return boolean.
2578 (alpha_emit_conditional_move): Likewise. Assert that
2579 cmp_op_mode == cmp_mode, and simplify accordingly.
2580 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
2581 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
2582 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
2583 Delete.
2584 (stack probe test): Use cbranchdi4.
2585 * config/alpha/predicates.md (alpha_cbranch_operator): New.
2586
2587 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
2588 * config/arc/arc.h (movsicc, movsfcc): Use it.
2589 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
2590 (cbranchsi4, cstoresi4): New.
2591 (cmpsi, bCC and sCC expanders): Remove.
2592
2593 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
2594 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
2595 * config/arm/predicates.md (arm_comparison_operator): Only include
2596 floating-point operators if there is a hardware floating-point unit.
2597 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
2598 deferring to cbranch_cc and cstore_cc respectively.
2599 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
2600 cbranch_cc, cstore_cc): New.
2601 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 2602 arm_compare_op1.
fbdf817d
UB
2603 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
2604
2605 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
2606 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
2607 as an argument.
2608 (adjust_insn_length): Adjust calls.
2609 (avr_reorg): Handle (compare (foo) (const_int 0)).
2610 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
2611 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
2612 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
2613 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
2614 (bCC): Remove.
2615 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
2616 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
2617
fbdf817d
UB
2618 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
2619 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 2620 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
2621 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
2622 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
2623 (bfin_optimize_loop): Use cbranch expander.
2624 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
2625 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
2626 (bfin_bimode_comparison_operator): ... this.
2627 (bfin_direct_comparison_operator): New.
f90b7a5a 2628
fbdf817d
UB
2629 * config/cris/cris.c (cris_normal_notice_update_cc): Look
2630 inside (compare FOO (const_int 0)).
2631 (cris_rtx_costs): Handle ZERO_EXTRACT.
2632 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
2633 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
2634 (*tstdi_v32): Delete.
2635 (*cmpdi_non_v32): Add M alternative for operand 1.
2636 (cmpsi, cmp<mode>): Make private.
2637 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
2638 with COMPARE.
2639 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
2640
2641 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
2642 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
2643 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
2644 (cc_reg_operand): New.
2645 (any_cond): Delete.
fbdf817d
UB
2646 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
2647 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
2648 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
2649 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
2650 crx_expand_scond): Delete.
2651
2652 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
2653 (cbranchsi4): New.
2654 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
2655 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
2656
2657 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
2658 cstoresi4, cstoresf4, cstoredf4): New.
2659 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
2660 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2661 Receive the entire operands array.
2662 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
2663 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
2664 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
2665 Get test/op0/op1 from the operands array.
2666 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
2667
2668 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
2669 (h8300_expand_store): New.
2670 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
2671 (const_int 0)).
2672 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
2673 (h8300_expand_store): New.
2674 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
2675 or do not try to produce (set (cc0) REG).
2676 (peepholes): Wrap arguments with COMPARE. Add a peephole to
2677 change a compare into a move to a scratch register. Disable some
2678 peepholes when comparing with zero.
2679 (tstsi, tsthi, tstsi, cmpqi): Make private.
2680 (cmphi): Delete.
2681 (bCC, sCC): Delete.
2682 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
2683 cstoresi4): New.
f90b7a5a
PB
2684
2685 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
2686 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
2687 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
2688 (ix86_emit_i387_log1p): Use cbranchxf2.
2689 (ix86_expand_setcc): Return void.
2690 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
2691 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
2692 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
2693 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
2694 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
2695 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
2696 (sCC and bCC expanders): Remove.
2697 (stack_protect_test): Use cbranchcc4.
2698
fbdf817d
UB
2699 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
2700 Delete.
2701 (ia64_expand_compare): Accept three rtx by reference and return void.
2702 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
2703 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
2704 from *expr. Update *expr with the BImode comparison to do.
2705 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
2706 cmptf, bCC, sCC, conditional_trap): Delete.
2707 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
2708 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
2709 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
2710 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
2711 * config/ia64/predicates.md (ia64_cbranch_operator): New.
2712
2713 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
2714 type of last argument.
2715 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
2716 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
2717 use machine mode argument instead of branch_type. Remove dead
2718 code for floating-point comparisons.
2719 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
2720 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
2721 Remove.
2722 (cbranchsi4, cstoresi4): New.
2723 * config/iq2000/predicates.md (reg_or_const_operand): New.
2724
2725 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
2726 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
2727 (b<code>_op): Rewrite to...
2728 (bcc_op): ... this, using match_operator.
2729 (s<code>_op): Rewrite to...
2730 (scc_op): ... this, using match_operator.
2731 (s<code>_24_op): Rewrite to...
2732 (scc_op_24): ... this, using match_operator.
2733 (s<code>_<mode>): Rewrite to...
2734 (cstore<mode>4): ... this, using match_operator.
2735 (s<code>_<mode>_24): Rewrite to...
2736 (cstore<mode>4_24): ... this, using match_operator.
2737 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
2738 m32c_unpend_compare, m32c_expand_scc): Delete.
2739 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
2740 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
2741 (m32c_expand_movcc): Change NE to EQ if necessary.
2742 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
2743
2744 * config/m32r/m32r-protos.h (gen_cond_store): New.
2745 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
2746 (gen_cond_store): New, from sCC patterns.
2747 (m32r_expand_block_move): Use cbranchsi4.
2748 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
2749 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
2750 (cbranchsi4, cstoresi4): New.
2751
2752 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
2753 Delete.
2754 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 2755 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
2756 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
2757 Delete.
2758 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
2759 cmphi, cmpqi, bCC): Delete.
2760 (cbranchsi4, cbranchhi4, cbranchqi4): New.
2761 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
2762 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
2763 sets with COMPARE.
2764
2765 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
2766 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
2767 * config/m68k/constraints.md (H): New.
2768 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
2769 the define_insn below.
2770 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
2771 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
2772 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
2773 patterns): Wrap RHS with COMPARE.
2774 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
2775 (*cmpdi_internal): Name this pattern.
2776 (cmpdi): Change to define_insn.
2777 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
2778 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
2779 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
2780 predicate.
2781 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
2782 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
2783 (conditional_trap): Change to...
2784 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
2785 (*conditional_trap): Use the ordered_comparison_operator and
2786 const1_operand predicates.
2787 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
2788 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
2789 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
2790 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
2791
2792 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
2793 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
2794 (mcore_gen_compare): New.
2795 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
2796 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
2797 (mcore_gen_compare): ... this.
2798 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
2799 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
2800 (stack probe pattern): Use cbranchsi4.
2801
2802 * config/mips/predicates.md (mips_cstore_operator): New.
2803 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
2804 * config/mips/mips.md (any_cond): Delete.
2805 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
2806 always succeed.
2807 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
2808 fixuns_truncsfdi2): Use cbranch patterns.
2809 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
2810 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
2811 Adjust call to mips_expand_conditional_branch.
2812 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
2813 cstore<GPR:mode>4.
2814 * config/mips/mips-protos.h (mips_expand_conditional_branch,
2815 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
2816 * config/mips/mips.c (cmp_operands): Delete.
2817 (mips_emit_compare): Get comparison operands from *op0/*op1.
2818 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
2819 that it succeeds. Use op0/op1 instead of cmp_operands.
2820 (mips_expand_conditional_branch, mips_expand_conditional_move,
2821 mips_expand_conditional_trap): Likewise.
2822 (mips_block_move_loop): Use cbranch patterns.
2823 * config/mips/mips.h (cmp_operands): Delete.
2824
2825 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
2826 (mmix_gen_compare_reg): Just return a register in the right CC mode.
2827 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
2828 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
2829 (*cmpcc_folded): Rename to...
2830 (*cmpdi_folded): this.
2831 (*cmpcc): Rename to...
2832 (*cmps): ... this.
2833 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
2834 (bCC): Remove.
2835 (cbranchdi4): New.
2836 (cbranchdf4): New. Handle invalid comparisons here.
2837 * config/mmix/predicates.md (float_comparison_operator): New.
2838
2839 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
2840 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
2841 * config/mn10300/mn10300.md (tst): Delete.
2842 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
2843 Name these patterns and wrap RHS in a compare.
2844 (*cmpsi): Make this pattern private. Include tst.
2845 (*cmpsf): Make this pattern private.
2846 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
2847 (compare with zero peepholes): Likewise.
2848 (bCC): Remove.
2849 (cbranchsi4, cbranchsf4): New.
2850 (casesi): Use cbranchsi4.
2851
2852 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
2853 hppa_branch_type): Delete.
2854 (return_addr_rtx): Use cbranchsi4.
2855 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
2856 Emit CCFPmode comparison here.
2857 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
2858 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
2859 hppa_branch_type): Delete.
2860 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
2861 (movsicc, movdicc): Remove references to hppa_compare_op0,
2862 hppa_compare_op1 and compare_from_rtx.
2863 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
2864 (casesi): Use cbranchsi4.
2865
2866 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
2867 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
2868 * config/pdp11/pdp11.md (register_or_const0_operand): New.
2869 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
2870 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
2871 (bCC): Delete.
2872 (cbranchdf4, cbranchhi4, cbranchqi4): New.
2873 (*branch, *branch_inverted): New.
2874
2875 * config/picochip/picochip.md (cbranchhi4): Use
2876 ordered_comparison_operator.
2877 (cmphi, bCC): Remove.
2878
2879 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
2880 (trap_comparison_operator): Delete.
2881 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
2882 rs6000_emit_cbranch): Accept mode and operands.
2883 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
2884 rs6000_compare_fp_p): Delete.
2885 (rs6000_generate_compare): Accept mode and comparison. Extract code
2886 and op0/op1 from there. Replace references to rs6000_compare_op0
2887 and rs6000_compare_op1.
2888 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
2889 extract result from passed operands.
2890 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
2891 extract loc from passed operands.
2892 (rs6000_emit_cmove): Likewise.
2893 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
2894 rs6000_compare_fp_p): Delete.
2895 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
2896 (cbranch<GPR>4, cbranch<FP>4): New.
2897 (cstore<mode>4): New. Consolidate here all choices about when to use
2898 portable or specialized sCC sequences.
2899 (stack_protect_test): Use cbranchsi4.
2900 (conditional_trap): Replace with ctrap<GPR>4.
2901 (conditional trap insn): Replace trap_comparison_operator with
2902 ordered_comparison_operator.
2903
2904 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
2905 (s390_emit_prologue): Use ctrap.
2906 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
2907 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
2908 New predicates replacing...
2909 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
2910 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
2911 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
2912 (add<mode>cc): Do not use s390_compare_op0/op1.
2913 (s<code>): Change to...
2914 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
2915 (seq): Change to...
2916 (cstorecc4): ... this. Handle EQ or NE equally.
2917 (*sne): Un-privatize for use in cstorecc4.
2918 (b<code>): Change to...
2919 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
2920 (conditional_trap): Replace with...
2921 (ctrap<GPR>4, ctrap<FP>4): ... these.
2922 (stack_protect): Use cbranchcc4.
2923
2924 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
2925 * config/score/score-protos.h (score_gen_cmp): Delete.
2926 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
2927 (score_block_move-loop): Use cbranchsi4.
2928 * config/score/score.md (cbranchsi4): New.
2929 (cmpsi, bCC): Delete.
2930 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
2931 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
2932 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
2933 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
2934 * config/score/score3.h (score3_gen_cmp): Delete.
2935 * config/score/score7.h (score7_gen_cmp): Delete.
2936
2937 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
2938 (sh_emit_scc_to_t): ... this. Return void.
2939 (from_compare): Rename to...
2940 (sh_emit_compare_and_branch): ... this.
2941 (sh_emit_compare_and_set): New.
2942 (sh_expand_t_scc): Accept operands.
2943 * config/sh/predicates.md (sh_float_comparison_operator): New.
2944 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
2945 (prepare_scc_operands): Rename to...
2946 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
2947 arguments.
2948 (sh_emit_cheap_store_flag): New.
f90b7a5a 2949 (sh_emit_set_t_insn): New.
fbdf817d
UB
2950 (from_compare): Rename to...
2951 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
2952 handling of TARGET_SH2E floating point to avoid recursive call.
2953 Generate branch here.
2954 (sh_emit_compare_and_set): New.
2955 (sh_expand_t_scc): Get op0/op1 from arguments.
2956 (sh_emit_cheap_store_flag): New.
2957 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
2958 cases.
f90b7a5a 2959 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
2960 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
2961 (movsicc, movdicc): Do nothing when it recreated operands from
2962 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
2963 prepare_scc_operands (now sh_emit_scc_to_t).
2964 (udivdi3): Use cstoresi4.
2965 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
2966 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
2967 (cbranchint4_media, cbranchfp4_media): New.
2968 (casesi): Use cbranchdi4.
2969 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
2970 Delete.
2971 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
2972 (movnegt): Remove second operand.
2973 (cbranchsf4, cbranchdf4): New.
2974 (stack_protect): Use cbranchdi4/cbranchsi4.
2975
2976 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
2977 (gen_compare_reg): Accept comparison, extract part of it to...
2978 (gen_compare_reg_1): ... this.
2979 (gen_compare_operator): Delete.
2980 (gen_v9_scc): Accept separate destination, comparison code and arms.
2981 Do not use sparc_compare_op0/sparc_compare_op1.
2982 (emit_scc_insn, emit_conditional_branch_insn): New.
2983 (emit_v9_brxx): Make static. Remove useless assertion.
2984 (sparc_emit_float_lib_cmp): Return RTL instead of calling
2985 emit_cmp_insn.
2986 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
2987 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
2988 sparc_emit_float_lib_cmp): Adjust prototype.
2989 (emit_scc_insn, emit_conditional_branch_insn): New.
2990 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
2991 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
2992 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
2993 iterators to the top.
2994 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
2995 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 2996 snedi_special_trunc): Delete.
fbdf817d 2997 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 2998 and snedi_special_trunc.
fbdf817d
UB
2999 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
3000 cbranchdi4, cbranch<F:mode>4): New.
3001 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
3002 here. Use gen_compare_reg instead of gen_compare_operator.
3003 (conditional_trap): Replace with...
3004 (ctrapsi4, ctrapdi4): ... this.
3005 (stack_protect_test): Use cbranchcc4.
3006
3007 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
3008 argument to rtx.
3009 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
3010 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
3011 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
3012 from operands[0] or operands[3] depending on is_set.
3013 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
3014 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
3015 cmpdf, bCC), sCC: Remove.
3016 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
3017 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
3018 cstoredf4): New.
3019 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
3020 spu_emit_branch_or_set.
3021
3022 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
3023 Add two arguments.
3024 * config/stormy16/stormy16.h (xstormy16_compare_op0,
3025 xstormy16_compare_op1): Delete.
3026 * config/stormy16/stormy16.c (xstormy16_compare_op0,
3027 xstormy16_compare_op1): Delete.
3028 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
3029 Adjust calls.
3030 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
3031 (cmphi, cmpsi, bCC): Remove.
3032
3033 * config/v850/v850.md (tstsi, cmpsi): Fold into...
3034 (*cmpsi): ... this one.
3035 (cbranchsi4, cstoresi4): New.
3036 (bCC expanders): Delete.
3037 (sCC insns): Fold into...
3038 (*setcc): ... this one.
3039 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
3040 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
3041 (movsicc): Simplify.
3042 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
3043
fbdf817d
UB
3044 * config/vax/vax-protos.h (cond_name): New.
3045 (vax_output_conditional_branch): Remove.
3046 * config/vax/vax.c (cond_name): New.
3047 (vax_output_conditional_branch): Remove.
3048 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
3049 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
3050 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
3051 (bit<VAXint>): Wrap source with (compare).
3052 (b<code> and following unnamed pattern): Rename to *branch and
3053 *branch_reversed. Change macroization to match_operator.
3054 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
3055
3056 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
3057 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
3058 Change last argument to machine_mode.
3059 (xtensa_expand_scc): Add machine_mode argument.
3060 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
3061 (gen_conditional_move, xtensa_expand_conditional_branch,
3062 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
3063 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
3064 Adjust operand numbers.
3065 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
3066 Delete.
3067 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
3068 (cmpsi, cmpsf, b<code>, s<code>): Delete.
3069 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 3070
16670495
PB
30712009-05-12 Paolo Bonzini <bonzini@gnu.org>
3072
3073 * optabs.c (prepare_cmp_insn): Temporarily disable test that
3074 causes spurious differences between trunk and cond-optab branch.
3075
4a4a4e99
AO
30762009-05-12 Alexandre Oliva <aoliva@redhat.com>
3077
3078 PR target/37137
3079 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
3080
72b9acff
AO
30812009-05-12 Alexandre Oliva <aoliva@redhat.com>
3082
3083 * tree.c (iterative_hash_pointer): Delete.
3084 (iterative_hash_expr): Short-circuit handling of NULL pointer.
3085 Hash UIDs and versions of SSA names. Don't special-case built-in
3086 function declarations.
3087
b7dd69ac
ILT
30882009-05-11 Ian Lance Taylor <iant@google.com>
3089
3090 PR bootstrap/40103
3091 * graphite.c: Force -Wc++-compat to only be a warning before
3092 #including "cloog/cloog.h".
3093
ed102b70
MJ
30942009-05-11 Martin Jambor <mjambor@suse.cz>
3095
3096 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
3097
08f1af2e
JH
30982009-05-11 Jan Hubicka <jh@suse.cz>
3099
3100 * tree-ssa-loop-ivcanon.c: Include target.h
3101 (struct loop_size): new structure.
3102 (constant_after_peeling): New predicate.
3103 (tree_estimate_loop_size): New function.
3104 (estimated_unrolled_size): Rewrite for new estimates.
3105 (try_unroll_loop_completely): Use new estimates.
3106 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
3107
a7d39bd3
AP
31082009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
3109
3110 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
3111 libcpp interface change.
3112 (spu_macro_to_expand): Likewise.
3113
f5a1f0d0
PB
31142009-05-11 Paolo Bonzini <bonzini@gnu.org>
3115
3116 PR tree-optimization/40026
3117 * gimplify.c (gimplify_init_constructor): Change initial conditional
3118 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
3119 optimize_compound_literals_in_ctor.
3120
c260f01f
NS
31212009-05-11 Nathan Sidwell <nathan@codesourcery.com>
3122
3123 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
3124 New devices.
3125 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
3126
df398a37
L
31272009-05-11 H.J. Lu <hongjiu.lu@intel.com>
3128
3129 * tree-vect-data-refs.c (vect_analyze_group_access): Use
3130 HOST_WIDE_INT for gap.
3131
4da39468
IR
31322009-05-11 Ira Rosen <irar@il.ibm.com>
3133
3134 PR tree-optimization/40074
3135 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
3136 account in group size and step comparison.
3137
4effdf02
RG
31382009-05-11 Richard Guenther <rguenther@suse.de>
3139
3140 * passes.c (init_optimization_passes): Strip now incorrect comment.
3141 (execute_function_todo): Do not set PROP_alias.
3142 * tree-pass.h (PROP_alias): Remove.
3143 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
3144 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
3145 * tree-nrv.c (pass_return_slot): Likewise.
3146 * tree-object-size.c (pass_object_sizes): Likewise.
3147 * tree-ssa-dom.c (pass_dominator): Likewise.
3148 (pass_phi_only_cprop): Likewise.
3149 * tree-ssa-dse.c (pass_dse): Likewise.
3150 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
3151 (pass_cselim): Likewise.
3152 * tree-ssa-pre.c (pass_pre): Likewise.
3153 (pass_fre): Likewise.
3154 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
3155 * tree-ssa-sink.c (pass_sink_code): Likewise.
3156 * tree-stdarg.c (pass_stdarg): Likewise.
3157 * tree-tailcall.c (pass_tail_calls): Likewise.
3158 * tree-vrp.c (pass_vrp): Likewise.
3159
24b97832
ILT
31602009-05-10 Ian Lance Taylor <iant@google.com>
3161
3162 * basic-block.h (enum profile_status): Break out of struct
3163 control_flow_graph.
3164 * cgraph.h (struct inline_summary): Break out of struct
3165 cgraph_local_info.
3166 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
3167 of struct cgraph_order_sort.
fbdf817d 3168 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
3169 * cse.c (struct branch_path): Break out of struct
3170 cse_basic_block_data.
3171 * except.h (enum eh_region_type): Break out of struct eh_region.
3172 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 3173 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
3174 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
3175 ggc_pch_data.
fbdf817d
UB
3176 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
3177 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
3178 * sched-int.h (enum post_call_group): New enum, broken out of
3179 struct deps.
3180 (struct deps_reg): Break out of struct deps.
3181 * target.h (struct asm_int_op): Break out of struct gcc_target.
3182 * tree-eh.c (struct goto_queue_node): Break out of struct
3183 leh_tf_state.
3184 * tree-inline.h (enum copy_body_cge_which): Break out of
3185 copy_body_data.
3186 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
3187
3188 * c-decl.c (in_struct, struct_types): New static variables.
3189 (pushtag): Add loc parameter. Change all callers.
3190 (lookup_tag): Add ploc parameter. Change all callers.
3191 (check_compound_literal_type): New function.
3192 (parser_xref_tag): Add loc parameter. Change all callers. If
3193 -Wc++-compat, warn about struct/union/enum types defined within a
3194 struct or union.
3195 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
3196 and loc parameters. Change all callers. Change error calls to
3197 error_at, using loc. For a redefinition, if the location of the
3198 original definition is known, report it. Set in_struct and
fbdf817d 3199 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
3200 (finish_struct): Add new parameters enclosing_in_struct and
3201 enclosing_struct_types. Change all callers. Set
3202 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
3203 in the struct. If in a struct, add this struct to struct_types.
3204 (start_enum): Add loc parameter. Change all callers. Use
3205 error_at for errors, using loc. For a redefinition, if the
3206 location of the original definition is known, report it. If in a
3207 struct, add this enum type to struct_types. If -Wc++-compat warn
3208 if in sizeof, typeof, or alignof.
fbdf817d
UB
3209 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
3210 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
3211 (c_parser_enum_specifier): Get enum location for start_enum.
3212 (c_parser_struct_or_union_specifier): Get struct location for
3213 start_struct. Save in_struct and struct_types status between
3214 start_struct and finish_struct.
3215 (c_parser_cast_expression): Get location of cast.
3216 (c_parser_alignof_expression): Get location of type.
3217 (c_parser_postfix_expression): Likewise.
3218 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
3219 parameter. Change all callers. Call check_compound_literal_type.
3220 Use type_loc for error about variable size type.
3221 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
3222 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
3223 (c_cast_expr): Add loc parameter. Change all callers. If
3224 -Wc++-compat, warn about defining a type in a cast.
3225 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
3226 (start_enum, start_struct, finish_struct): Update declarations.
3227 (parser_xref_tag, c_cast_expr): Update declarations.
3228 (check_compound_literal_type): Declare.
3229
7a2738fa
BE
32302009-05-11 Ben Elliston <bje@au.ibm.com>
3231
3232 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
3233 for recent libcpp interface change.
3234 (rs6000_macro_to_expand): Likewise.
3235
af618949
MM
32362009-05-10 Michael Matz <matz@suse.de>
3237
3238 PR target/40031
3239 * config/arm/arm.c (require_pic_register): Emit on entry edge,
3240 not at entry of function.
3241
b7d7a473
RG
32422009-05-10 Richard Guenther <rguenther@suse.de>
3243
3244 PR tree-optimization/40081
3245 Revert
3246 * tree-sra.c (instantiate_element): Instantiate scalar replacements
3247 using the main variant of the element type. Do not fiddle with
3248 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3249
3250 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
3251 structs with volatile fields.
3252
078c3644
JH
32532009-05-10 Jan Hubicka <jh@suse.cz>
3254
3255 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
3256 (estimate_move_cost): Assert that it does not get called for
3257 VOID_TYPE_P.
078c3644
JH
3258 (estimate_num_insns): Skip VOID types in argument handling.
3259 (optimize_inline_calls): Delete unreachable blocks and verify that
3260 callgraph is valid.
3261
39ff5a96
JH
32622009-05-10 Jan Hubicka <jh@suse.cz>
3263
3264 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
3265 * cgraph.c (cgraph_mark_address_taken_node): New function.
3266 (dump_cgraph_node): Dump new flag.
3267 * cgraph.h (struct cgraph_node): Add address_taken.
3268 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
3269 * ipa.c (cgraph_postorder): Prioritize functions with address taken
3270 since new direct calls can be born.
3271
9a0c6187
JM
32722009-05-10 Joseph Myers <joseph@codesourcery.com>
3273
3274 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
3275 tok->val.node.node.
3276
4b685e14
JH
32772009-05-10 Jan Hubicka <jh@suse.cz>
3278
3279 PR middle-end/40084
fb0be169
EB
3280 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
3281 argument; rewrite.
4b685e14
JH
3282 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
3283 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
3284 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
3285 (fold_marked_statements): Update call to
3286 cgraph_update_edges_for_call_stmt.
4b685e14 3287
29d08eba
JM
32882009-05-10 Joseph Myers <joseph@codesourcery.com>
3289
3290 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
3291 identifiers in diagnostics.
3292 * config/arm/arm.c (arm_handle_fndecl_attribute,
3293 arm_handle_isr_attribute): Likewise.
3294 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 3295 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
3296 * config/bfin/bfin.c (handle_int_attribute,
3297 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
3298 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
3299 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
3300 Likewise.
3301 * config/darwin.c (darwin_handle_kext_attribute,
3302 darwin_handle_weak_import_attribute): Likewise.
3303 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
3304 h8300_handle_eightbit_data_attribute,
3305 h8300_handle_tiny_data_attribute): Likewise.
3306 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 3307 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
3308 * config/i386/winnt.c (ix86_handle_shared_attribute,
3309 ix86_handle_selectany_attribute): Likewise.
3310 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
3311 * config/m32c/m32c.c (function_vector_handler): Likewise.
3312 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
3313 m68hc11_handle_fntype_attribute): Likewise.
3314 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
3315 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
3316 * config/mips/mips.c (mips_insert_attributes,
3317 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
3318 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
3319 rs6000_handle_struct_attribute): Likewise.
3320 * config/sh/sh.c (sh_insert_attributes,
3321 sh_handle_resbank_handler_attribute,
3322 sh_handle_interrupt_handler_attribute,
3323 sh2a_handle_function_vector_handler_attribute,
3324 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
3325 Likewise.
3326 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
3327 * config/spu/spu.c (spu_handle_fndecl_attribute,
3328 spu_handle_vector_attribute): Likewise.
3329 * config/stormy16/stormy16.c
3330 (xstormy16_handle_interrupt_attribute): Likewise.
3331 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
3332 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
3333
f41c4af3
JM
33342009-05-10 Joseph Myers <joseph@codesourcery.com>
3335
782dc37a 3336 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
3337 (pp_translate_identifiers): New.
3338 (pp_identifier): Only conditionally translate identifier to locale
3339 character set.
3340 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
3341 (pp_base_tree_identifier): Only conditionally translate identifier
3342 to locale character set.
3343 * c-pretty-print.c (M_): Define.
3344 (pp_c_type_specifier, pp_c_primary_expression): Mark English
3345 fragments for conditional translation with M_.
3346 * tree-pretty-print.c (maybe_init_pretty_print): Disable
3347 identifier translation.
3348
896d7dbd
RG
33492009-05-10 Richard Guenther <rguenther@suse.de>
3350
3351 PR tree-optimization/40081
3352 * tree-sra.c (instantiate_element): Instantiate scalar replacements
3353 using the main variant of the element type. Do not fiddle with
3354 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
3355
9a23acef
JH
33562009-05-09 Jan Hubicka <jh@suse.cz>
3357
3358 PR middle-end/40080
3359 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
3360 indirect calls; verify cgraph afterwards.
3361
d563610d
JH
33622009-05-09 Jan Hubicka <jh@suse.cz>
3363
3364 PR bootstrap/40082
3365 * ipa.c (update_inlined_to_pointer): New function.
3366 (cgraph_remove_unreachable_nodes): Use it.
3367
f08a18d0
JH
33682009-05-09 Jan Hubicka <jh@suse.cz>
3369
3370 * tree-eh.c (struct leh_state): Remove prev_try.
3371 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
3372 not track prev_try.
3373 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
3374 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
3375 remove_eh_handler_and_replace, foreach_reachable_handler,
3376 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
3377 * except.h (struct eh_region): Remove eh_region_u_cleanup.
3378 (gen_eh_region_cleanup): Update prototype.
3379
0afd7219
JH
33802009-05-09 Jan Hubicka <jh@suse.cz>
3381
3382 PR middle-end/40043
3383 * except.c (copy_eh_region): Always set prev_try.
3384 (redirect_eh_edge_to_label): Find outer try.
3385 (foreach_reachable_handler): When looking for prev try
3386 handle case where previous try is not going to be taken.
3387
ad6c0864
MM
33882009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
3389
3390 PR tree-optimization/40049
3391 * tree-vect-stmts.c (vectorizable_operation): If the machine has
3392 only vector/vector shifts, convert the type of the constant to the
3393 appropriate type to avoid building incorrect trees, which
3394 eventually have problems with garbage collection.
3395
c94f9067
JM
33962009-05-08 Joseph Myers <joseph@codesourcery.com>
3397
3398 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
3399 -1 for complex floating-point types if honoring signed zeros.
3400
9187e02d
JH
34012009-05-08 Jan Hubicka <jh@suse.cz>
3402
20acb8a2
EB
3403 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
3404 argument; handle correctly when profile is absent.
9187e02d
JH
3405 (build_cgraph_edges): Update.
3406 (rebuild_cgraph_edges): Update.
20acb8a2
EB
3407 * cgraph.c: Do not include varray.h.
3408 (cgraph_set_call_stmt_including_clones): New function.
3409 (cgraph_create_edge_including_clones): Likewise
3410 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
3411 (cgraph_update_edges_for_call_stmt): Handle clones.
3412 (cgraph_remove_node): Handle clone tree.
3413 (cgraph_remove_node_and_inline_clones): New function.
3414 (dump_cgraph_node): Dump clone tree.
3415 (cgraph_clone_node): Handle clone tree.
20acb8a2 3416 (clone_function_name): Bring here from tree-inline.c.
9187e02d 3417 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
3418 * cgraph.h (ipa_replace_map): Move here from ipa.h.
3419 (cgraph_clone_info): New function.
9187e02d 3420 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
3421 (cgraph_remove_node_and_inline_clones,
3422 cgraph_set_call_stmt_including_clones,
3423 cgraph_create_edge_including_clones,
3424 cgraph_create_virtual_clone): Declare.
9187e02d
JH
3425 (cgraph_function_versioning): Use VEC argument.
3426 (compute_call_stmt_bb_frequency): Update prototype.
3427 (cgraph_materialize_all_clones): New function.
3428 * ipa-cp.c (ipcp_update_cloned_node): Remove.
3429 (ipcp_create_replace_map): Update to VECtors.
3430 (ipcp_update_callgraph): Use virtual clones.
3431 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
3432 (ipcp_update_profiling): Do not update local profiling.
3433 (ipcp_insert_stage): Use VECtors and virtual clones.
3434 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
3435 (clone_of_p): New function.
3436 (cgraph_preserve_function_body_p): Use clone tree.
3437 (cgraph_optimize): Materialize clones.
3438 (cgraph_function_versioning): Update for VECtors.
3439 (save_inline_function_body): Use clone tree.
20acb8a2
EB
3440 (cgraph_materialize_clone): New function.
3441 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
3442 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
3443 * ipa.c: Include gimple.h.
3444 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
3445 * ipa-prop.c (ipa_note_param_call): Update call to
3446 compute_call_stmt_bb_frequencycall.
9187e02d 3447 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 3448 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
3449 (copy_bb): Handle updating of clone tree; add new edge when new call
3450 appears.
3451 (expand_call_inline): Be strict about every call having edge.
3452 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
3453 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
3454 (tree_function_versioning): Use VECtors; always remove unreachable
3455 blocks and fold conditionals.
3456 * tree-inline.h: Do not include varray.h.
9187e02d
JH
3457 (tree_function_versioning): Remove.
3458 * Makefile.in (GTFILES): Remove tree-inline.c
3459 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
3460 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
3461 tree.
9187e02d 3462
9b86d6bb
L
34632009-05-08 H.J. Lu <hongjiu.lu@intel.com>
3464 Andrew Morrow <acm@google.com>
3465
3466 PR c/36892
3467 * c-common.c (c_common_attribute_table): Permit deprecated
3468 attribute to take an optional argument.
3469 (handle_deprecated_attribute): If the optional argument to
3470 __attribute__((deprecated)) is not a string ignore the attribute
3471 and emit a warning.
3472
3473 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
3474 * c-typeck.c (build_component_ref): Likewise.
3475 (build_external_ref): Likewise.
3476
3477 * toplev.c (warn_deprecated_use): Add an attribute argument.
3478 Emit the message associated with __attribute__((deprecated)).
3479
3480 * toplev.h (warn_deprecated_use): Updated.
3481
3482 * doc/extend.texi: Document new optional parameter to
3483 __attribute__((deprecated))
3484
82ad047f
ME
34852009-05-08 Michael Eager <eager@eagercon.com>
3486
3487 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
3488 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
3489
788d3075
RG
34902009-05-08 Richard Guenther <rguenther@suse.de>
3491
3492 PR tree-optimization/40062
3493 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
3494 Avoid exponential behavior.
3495
00952e97
PB
34962009-05-08 Paolo Bonzini <bonzini@gnu.org>
3497
3498 PR rtl-optimization/33928
3499 PR 26854
3500 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
3501 process_uses, build_single_def_use_links): New.
3502 (update_df): Update use_def_ref.
3503 (forward_propagate_into): Use get_def_for_use instead of use-def
3504 chains.
3505 (fwprop_init): Call build_single_def_use_links and let it initialize
3506 dataflow.
3507 (fwprop_done): Free use_def_ref.
3508 (fwprop_addr): Eliminate duplicate call to df_set_flags.
3509 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
3510 df_rd_simulate_one_insn): New.
3511 (df_rd_bb_local_compute_process_def): Update head comment.
3512 (df_chain_create_bb): Use the new RD simulation functions.
3513 * df.h (df_rd_simulate_artificial_defs_at_top,
3514 df_rd_simulate_one_insn): New.
3515 * opts.c (decode_options): Enable fwprop at -O1.
3516 * doc/invoke.texi (-fforward-propagate): Document this.
3517
2ca862e9
JM
35182009-05-08 Joseph Myers <joseph@codesourcery.com>
3519
3520 PR c/24581
3521 * c-typeck.c (build_binary_op): Handle arithmetic between one real
3522 and one complex operand specially.
3523 * tree-complex.c (some_nonzerop): Do not identify a real value as
3524 zero if flag_signed_zeros.
3525
3e807ffc
PB
35262009-05-08 Paolo Bonzini <bonzini@gnu.org>
3527
3528 PR rtl-optimization/33928
7925c06c 3529 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 3530
1bfdbb29
PB
35312009-05-08 Paolo Bonzini <bonzini@gnu.org>
3532
3533 PR rtl-optimization/33928
e913423f
EB
3534 * loop-invariant.c (struct use): Add addr_use_p.
3535 (struct def): Add n_addr_uses.
3536 (struct invariant): Add cheap_address.
3537 (create_new_invariant): Set cheap_address.
3538 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
3539 (record_uses): Pass df_ref to record_use.
3540 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
3541 used only as such.
1bfdbb29 3542
702cb2a0
KK
35432009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
3544
3545 * config/sh/sh.c: Do not include c-pragma.h.
3546
5e8df753
AP
35472009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
3548
3549 * config/spu/spu.c: Remove include of c-common.h.
3550
6ec637a4
JJ
35512009-05-07 Janis Johnson <janis187@us.ibm.com>
3552
3553 PR c/39037
3554 * c-common.h (mark_valid_location_for_stdc_pragma,
3555 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
3556 clear_float_const_decimal64, float_const_decimal64_p): New.
3557 * c.opt (Wunsuffixed-float-constants): New.
3558 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
3559 unsuffixed float constant, handle new warning.
3560 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
3561 * c-decl.c (c_scope): New flag float_const_decimal64.
3562 (set_float_const_decimal64, clear_float_const_decimal64,
3563 float_const_decimal64_p): New.
3564 (push_scope): Set new flag.
3565 * c-parser.c (c_parser_translation_unit): Mark when it's valid
3566 to use STDC pragmas.
3567 (c_parser_external_declaration): Ditto.
3568 (c_parser_compound_statement_nostart): Ditto.
3569 * c-pragma.c (valid_location_for_stdc_pragma,
3570 mark_valid_location_for_stdc_pragma,
3571 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
3572 handle_pragma_float_const_decimal64): New.
3573 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
3574 * cp/semantics.c (valid_location_for_stdc_pragma_p,
3575 set_float_const_decimal64, clear_float_const_decimal64,
3576 float_const_decimal64_p): New dummy functions.
3577 * doc/extend.texi (Decimal Float): Remove statement that the
3578 pragma, and suffix for double constants, are not supported.
3579 * doc/invoke.texi (Warning Options): List new option.
3580 (-Wunsuffixed-float-constants): New.
3581
45b9b2e9
SB
35822009-05-08 Steven Bosscher <steven@gcc.gnu.org>
3583
3584 * config/i386/i386.c: Do not include c-common.h.
3585
e71da632
MH
35862009-05-07 Mark Heffernan <meheff@google.com>
3587
3588 * doc/invoke.texi (Debugging Options): Document change of debugging
3589 dump location.
e913423f 3590 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
3591 aux_base_name directory.
3592
fe4c7bc6
HS
35932009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
3594
3595 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
3596 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
3597
3b3e44eb
RAE
35982009-05-07 Rafael Avila de Espindola <espindola@google.com>
3599
3600 * Makefile.in (install-plugin): Simplify a bit.
3601
fac41238
PB
36022009-05-07 Paolo Bonzini <bonzini@gnu.org>
3603
3604 * Makefile.in (OBJS-common): Add regcprop.o.
3605 (regcprop.o): New.
3606 * timevar.def (TV_CPROP_REGISTERS): New.
3607 * regrename.c (regrename_optimize): Return 0.
3608 (rest_of_handle_regrename): Delete.
3609 (pass_rename_registers): Point to regrename_optimize.
3610 (struct value_data_entry, struct value_data,
3611 kill_value_one_regno, kill_value_regno, kill_value,
3612 set_value_regno, init_value_data, kill_clobbered_value,
3613 kill_set_value, kill_autoinc_value, copy_value,
3614 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
3615 replace_oldest_value_reg, replace_oldest_value_addr,
3616 replace_oldest_value_mem, copyprop_hardreg_forward_1,
3617 debug_value_data, validate_value_data): Move...
3618 * regcprop.c: ... here.
3619 (rest_of_handle_cprop): Delete.
3620 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
3621
472e0df9
JJ
36222009-05-07 Jakub Jelinek <jakub@redhat.com>
3623
3624 PR middle-end/40057
3625 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
3626 GEN_INT for 1 << bitnum.
3627 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
3628 build_int_cst_type.
3629
0d50d55a
UB
36302009-05-07 Uros Bizjak <ubizjak@gmail.com>
3631
3632 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 3633 Remove wrong description of "nand" operation.
0d50d55a 3634
22f597f1
RG
36352009-05-06 Richard Guenther <rguenther@suse.de>
3636 Adam Nemet <anemet@caviumnetworks.com>
3637
3638 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
3639 comment. Add that if LHS is not a gimple register, then RHS1 has
3640 to be a single object (GIMPLE_SINGLE_RHS).
3641
641cac0b
AN
36422009-05-06 Adam Nemet <anemet@caviumnetworks.com>
3643
3644 * expr.c (get_def_for_expr): Move it up in the file.
3645 (store_field): When expanding a bit-field store, look at the
3646 defining gimple stmt for the masking conversion.
3647
5a5c6435
JJ
36482009-05-06 Janis Johnson <janis187@us.ibm.com>
3649
3650 PR middle-end/39986
3651 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
3652 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
3653 32-bit memcpy into long.
3654
96474f36
JJ
36552009-05-06 Jakub Jelinek <jakub@redhat.com>
3656
3657 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
3658 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
3659 new_reg_loc_descr.
3660 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
3661 instead of appending DW_OP_deref*.
3662
529ff441
MM
36632009-05-06 Michael Matz <matz@suse.de>
3664
3665 PR middle-end/40021
3666 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
3667 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
3668
9419a9fd
RAE
36692009-05-06 Rafael Avila de Espindola <espindola@google.com>
3670
3671 * Makefile.in (install-plugin): Fix srcdir handling.
3672
fff1894c
AB
36732009-05-06 Andrey Belevantsev <abel@ispras.ru>
3674
3675 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
3676 when processing for not_regs_needed bitmap.
3677 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
3678 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
3679 handling it for rhs.
3680
700ae70c
L
36812009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3682
ab3426a7 3683 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 3684 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
3685 * config/i386/predicates.md (incdec_operand): Likewise.
3686 (aligned_operand): Likewise.
3687 * config/i386/sse.md (divv8sf3): Likewise.
3688 (sqrtv8sf2): Likewise.
3689
67341fb5
L
36902009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3691
3692 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
3693
3694 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
3695
87946f42
L
36962009-05-06 H.J. Lu <hongjiu.lu@intel.com>
3697
3698 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
3699 ssemodesuffixf2c with avxmodesuffixf2c.
3700
1202aec1
JM
37012009-05-06 Joseph Myers <joseph@codesourcery.com>
3702
3703 PR c/40032
aa016ff7 3704 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 3705
6e57a01d
JJ
37062009-05-05 Jakub Jelinek <jakub@redhat.com>
3707
3708 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
3709 (struct tree_base): Adjust spacing for 8 bit boundaries.
3710 (struct tree_decl_common): Add decl_by_reference_flag bit.
3711 (DECL_BY_REFERENCE): Adjust.
3712 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
3713 print DECL_BY_REFERENCE bit.
3714 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
3715 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
3716 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
3717 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
3718 unconditionally.
3719
32f579f6
JJ
3720 PR middle-end/39666
3721 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
3722 range of the type, but default label is missing, add it with one
3723 of the existing labels instead of adding a new label for it.
3724
617ab743
JM
37252009-05-05 Joseph Myers <joseph@codesourcery.com>
3726
3727 * dwarf.h: Remove.
3728
bf016de8
RAE
37292009-05-05 Rafael Avila de Espindola <espindola@google.com>
3730
3731 * Makefile.in (enable_plugin, plugin_includedir): New.
3732 (install): Depend on install-plugin.
3733 (PLUGIN_HEADERS): New.
3734 (install-plugin): New.
3735 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
3736
7f8fdb9f
RG
37372009-05-05 Richard Guenther <rguenther@suse.de>
3738
3739 PR tree-optimization/40022
3740 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
3741 the only vuse.
3742 (phivn_valid_p): Fix tuplification error, simplify.
3743 (phiprop_insert_phi): Add dumps.
3744 (propagate_with_phi): Simplify.
3745
8d972839
RG
37462009-05-05 Richard Guenther <rguenther@suse.de>
3747
3748 PR middle-end/40023
aa016ff7 3749 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 3750
66ba9b0b
SZ
37512009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
3752
3753 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
3754 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
3755 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
3756 block_ultimate_origin): Rearrange the declarations line to match the
3757 comment that indicates the .c file which the functions are defined.
3758 (dwarf2out_*, set_decl_rtl): Add comment.
3759 (get_base_address): Adjust comment.
3760 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
3761 declarations line and add comment.
3762 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 3763
4f1e4960
JM
37642009-05-04 Joseph Myers <joseph@codesourcery.com>
3765
3766 * attribs.c (decl_attributes): Use %qE for identifiers in
3767 diagnostics.
3768 * cgraphunit.c (verify_cgraph_node): Translate function names to
3769 locale character set in diagnostics.
3770 * coverage.c (get_coverage_counts): Use %qE for identifiers in
3771 diagnostics.
3772 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
3773 Document that functions are named in UTF-8.
3774 * expr.c (expand_expr_real_1): Translate function names to locale
3775 character set in diagnostics.
3776 * gimplify.c (omp_notice_variable, omp_is_private,
3777 gimplify_scan_omp_clauses): Use %qE for identifiers in
3778 diagnostics.
3779 * langhooks.c (lhd_print_error_function): Translate function names
3780 to locale character set.
3781 * langhooks.h (decl_printable_name): Document that return value is
3782 in internal character set.
3783 * stmt.c: Include pretty-print.h
3784 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
3785 diagnostics.
3786 (resolve_operand_name_1): Translate named operand name to locale
3787 character set.
3788 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
3789 diagnostics.
3790 * toplev.c (announce_function): Translate function names to locale
3791 character set.
3792 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
3793 (default_tree_printer): Use pp_identifier or translate identifiers
3794 to locale character set. Mark "<anonymous>" for translation.
3795 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
3796 for identifiers in diagnostics.
3797 * tree.c (handle_dll_attribute): Use %qE for identifiers in
3798 diagnostics.
3799 * varasm.c (output_constructor): Use %qE for identifiers in
3800 diagnostics.
3801
40540e68
RAE
38022009-05-04 Rafael Avila de Espindola <espindola@google.com>
3803
3804 * configure.ac: use ` ` instead of $()
3805 * configure: Regenerate.
3806
33fc884c
BE
38072009-05-05 Ben Elliston <bje@au.ibm.com>
3808
3809 * config/pa/linux-atomic.c: Eliminate conditional include of
3810 errno.h on non-LP64 systems to simplify build requirements.
3811
88388a52
JM
38122009-05-04 Joseph Myers <joseph@codesourcery.com>
3813
3814 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
3815 diagnostics.
3816 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
3817 and pass value to identifier_to_locale.
3818 (warn_variable_length_array): Make name a tree.
3819 (grokdeclarator): Separate diagnostic texts for named and unnamed
3820 declarators. Use %qE for named declarators.
3821 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
3822 diagnostics.
3823 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
3824 identifiers in diagnostics.
3825 * c-typeck.c (push_member_name, start_init): Pass identifiers to
3826 identifier_to_locale. Mark "anonymous" strings for translation.
3827
960c5c79
ME
38282009-05-04 Michael Eager <eager@eagercon.com>
3829
3830 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 3831 address for DImode/DFmode only if double-precision FP regs.
960c5c79 3832
d083fbba
ME
38332009-05-04 Michael Eager <eager@eagercon.com>
3834
3835 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
3836 TARGET_SINGLE_FLOAT check.
3837
c3ba8d32
ME
38382009-05-04 Michael Eager <eager@eagercon.com>
3839
3840 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
3841
edce9f18
ME
38422009-05-04 Michael Eager <eager@eagercon.com>
3843
3844 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
3845 * config/rs6000/t-xilinx: New
3846
506d7b68
PB
38472009-05-04 Paolo Bonzini <bonzini@gnu.org>
3848
e913423f 3849 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
3850 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
3851 * gcc/explow.c (memory_address): Use target hook.
3852 * gcc/targhooks.c (default_legitimize_address): New.
3853 * gcc/targhooks.h (default_legitimize_address): New.
3854 * gcc/target.h (legitimize_address): New.
3855 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
3856 (TARGET_INITIALIZER): Include it.
3857 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
3858
3859 * config/bfin/bfin-protos.h (legitimize_address): Remove.
3860 * config/bfin/bfin.c (legitimize_address): Remove.
3861 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
3862 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
3863 Remove.
506d7b68
PB
3864 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
3865 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
3866
3867 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
3868 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
3869 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
3870 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
3871 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
3872 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
3873 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
3874 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
3875 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
3876 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
3877 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
3878 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
3879 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
3880 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
3881 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
3882 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
3883 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
3884 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
3885 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
3886 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
3887 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
3888 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
3889 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
3890
3891 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
3892 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
3893 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
3894 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
3895 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
3896 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
3897 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
3898 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
3899 (thumb_legitimize_address): Delete.
3900 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
3901 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
3902 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
3903 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
3904 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
3905 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
3906 Delete.
3907 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
3908 Delete.
506d7b68
PB
3909
3910 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
3911 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
3912 * config/m32r/m32r.c (m32r_legitimize_address): New.
3913 * config/m68k/m68k.c (m68k_legitimize_address): New.
3914 * config/score/score.c (score_legitimize_address): Standardize.
3915 * config/score/score3.c (score3_legitimize_address): Standardize.
3916 * config/score/score3.h (score3_legitimize_address): Adjust.
3917 * config/score/score7.c (score7_legitimize_address): Standardize.
3918 * config/score/score7.h (score7_legitimize_address): Adjust.
3919 * config/sh/sh.c (sh_legitimize_address): New.
3920 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
3921
3922 * gcc/config/s390/s390.c (legitimize_address): Rename to...
3923 (s390_legitimize_address): ... this.
3924 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
3925 (sparc_legitimize_address): ... this.
3926 * gcc/config/i386/i386.c (legitimize_address): Rename to...
3927 (ix86_legitimize_address): ... this.
3928 * gcc/config/avr/avr.c (legitimize_address): Rename to...
3929 (avr_legitimize_address): ... this.
3930 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
3931 (mn10300_legitimize_address): ... this.
3932 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
3933 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
3934 (alpha_expand_mov): Adjust call.
3935
3936 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
3937 * config/spu/spu.c (spu_legitimize_address): Likewise.
3938 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
3939 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
3940
a3af5087
JM
39412009-05-04 Joseph Myers <joseph@codesourcery.com>
3942
3943 * intl.c (locale_encoding, locale_utf8): New.
3944 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
3945 * intl.h (locale_encoding, locale_utf8): Declare.
3946 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
3947 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
3948 New.
3949 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
3950 argument.
3951 (pp_tree_identifier): Define to call pp_base_tree_identifier.
3952 (pp_base_tree_identifier): Declare as function.
3953 (identifier_to_locale): Declare.
3954 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 3955 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 3956
ea5cd5f1
RG
39572009-05-04 Richard Guenther <rguenther@suse.de>
3958
3959 PR middle-end/40015
3960 * builtins.c (fold_builtin_memory_op): Do not decay to element
3961 type if the size matches the whole array.
3962
ddc2690a
KH
39632009-05-04 Kazu Hirata <kazu@codesourcery.com>
3964
3965 * expmed.c (synth_mult): When trying out a shift, pass the result
3966 of a signed shift.
3967
ef268d34
KH
39682009-05-04 Kazu Hirata <kazu@codesourcery.com>
3969
3970 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
3971 (shiftsub1_cost): New.
3972 (init_expmed): Compute shiftsub1_cost.
3973 (synth_mult): Optimize multiplications by constants of the form
3974 -(2^^m-1) for some constant positive integer m.
3975
255d3827
RG
39762009-05-03 Richard Guenther <rguenther@suse.de>
3977
3978 PR c/39983
3979 * c-typeck.c (array_to_pointer_conversion): Do not built
3980 ADDR_EXPRs of arrays of pointer-to-element type.
3981 * c-gimplify.c (c_gimplify_expr): Revert change fixing
3982 up wrong ADDR_EXPRs after-the-fact.
3983 * c-common.c (strict_aliasing_warning): Strip pointer
3984 conversions for obtaining the original type.
3985 * builtins.c (fold_builtin_memset): Handle array types.
3986 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
3987 and array types
3988
16c33770
RG
39892009-05-03 Richard Guenther <rguenther@suse.de>
3990
3991 PR middle-end/23329
3992 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
3993 Do not lose casts from array types with unknown extent to array
3994 types with known extent.
3995 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
3996 alias set compatibility.
3997
62a67c94
MLI
39982009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
3999
4000 * flags.h (extra_warnings): Delete.
4001 * toplev.c (process_options): Handle Wuninitialized here.
4002 * opts.c (extra_warnings): Delete.
4003 (set_Wextra): Delete.
4004 (common_handle_option): -Wextra can be handled automatically.
4005 * c-opts.c (c_common_handle_option): Delete obsolete code.
4006 (c_common_post_options): Simplify comment.
4007 * common.opt (W): Add Var.
4008 (Wextra): Add Var.
4009 (Wuninitialized): Initialize to -1.
4010
8c7926c4
AN
40112009-05-03 Adam Nemet <anemet@caviumnetworks.com>
4012 Richard Guenther <rguenther@suse.de>
4013
4014 * expr.c (get_def_for_expr): New function.
4015 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
4016 SSA rather than trees.
4017 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
4018 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
4019
fa5da7de
JM
40202009-05-03 Joseph Myers <joseph@codesourcery.com>
4021
4022 * c-common.c (reswords): Add _Imaginary.
4023 * c-common.c (enum rid): Add RID_IMAGINARY.
4024
2ddd5020
PB
40252009-05-03 Paolo Bonzini <bonzini@gnu.org>
4026
4027 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
4028 Patch by Richard Guenther.
4029
aea88c05
AS
40302009-05-03 Anatoly Sokolov <aesok@post.ru>
4031
4032 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
4033 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
4034 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
4035 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
4036 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
4037 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
4038 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
4039 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
4040 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
4041 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
4042 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
4043 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
4044 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
4045 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
4046 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
4047 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
4048 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
4049 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
4050
85e59f3a
RG
40512009-05-02 Richard Guenther <rguenther@suse.de>
4052
4053 PR tree-optimization/39940
4054 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
4055 doing so.
4056
4636b850
RG
40572009-05-02 Richard Guenther <rguenther@suse.de>
4058
4059 PR middle-end/40001
4060 * tree-ssa.c (execute_update_addresses_taken): Properly check
4061 if we can mark a variable DECL_GIMPLE_REG_P.
4062 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
4063 back to the end of the function.
4064 (is_gimple_reg_type): Remove complex type special casing.
4065 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
4066 if not optimizing.
4067
5e10cb5a
BE
40682009-05-02 Ben Elliston <bje@au.ibm.com>
4069
4070 * doc/collect2.texi (Collect2): Document search path behaviour
4071 when configured with --with-ld.
4072
048bf48b
JH
40732009-05-02 Jan Hubicka <jh@suse.cz>
4074
4075 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
4076 parameter; update callers.
aa016ff7
UB
4077 (coalesce_cost_edge): EH edges are costier because they needs
4078 splitting even if not critical and even more costier when there are
4079 multiple EH predecestors.
048bf48b 4080
d5c5f9ab
JH
40812009-05-02 Jan Hubicka <jh@suse.cz>
4082
4083 * except.c (remove_eh_handler_and_replace): Handle updating after
4084 removing TRY blocks.
4085
2ed1959a
EB
40862009-05-02 Eric Botcazou <ebotcazou@adacore.com>
4087
4088 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4089
d363a7e7
SB
40902009-05-02 Steven Bosscher <steven@gcc.gnu.org>
4091
4092 * varasm.c: Do not include c-pragma.h.
4093 * attribs.c: Do not incude c-common.h.
4094
9c3d55b4
MM
40952009-05-01 Michael Matz <matz@suse.de>
4096
4097 * calls.c (initialize_argument_information): Handle SSA names like
4098 decls with a non MEM_P DECL_RTL.
4099
ea264ca5
SB
41002009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4101
4102 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
4103 * ipa-utils.c: Likewise.
4104 * ipa-type-escape.c: Likewise.
4105 * cgraphunit.c Do not include c-common.h.
4106 * ipa-pure-const.c: Likewise.
4107 * tree-if-conv.c: Likewise.
4108 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
4109 * ipa-struct-reorg.c: Likewise.
4110 * tree-nomudflap.c: Likewise.
4111 * tree-ssa-structalias.c: Likewise.
4112
6c5d4d1a
SB
41132009-05-01 Steven Bosscher <steven@gcc.gnu.org>
4114
4115 * store-motion.c: Many cleanups to make this pass a first-class
4116 citizen instead of an appendix to gcse load motion. Add TODO list
4117 to make this pass faster/cleaner/better.
4118
4119 (struct ls_expr): Post gcse.c-split cleanups.
4120 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
4121 "stores" field to "avail_stores".
4122 (pre_ldst_mems): Rename to store_motion_mems.
4123 (pre_ldst_table): Rename to store_motion_mems_table.
4124 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
4125 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
4126 (ldst_entry): Rename to st_expr_entry, update users.
4127 (free_ldst_entry): Rename to free_st_expr_entry, update users.
4128 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
4129 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
4130 update caller.
6c5d4d1a
SB
4131 (first_ls_expr): Rename to first_st_expr, update users.
4132 (next_ls_expr): Rename to next_st_expr, update users.
4133 (print_ldst_list): Rename to print_store_motion_mems. Print names of
4134 fields properly for store motion instead of names inherited from load
4135 motion in gcse.c.
4136 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
4137 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
4138 are done with it.
4139
4140 (ae_kill): Rename to st_kill, update users.
4141 (ae_gen): Rename to st_avloc, update users.
4142 (transp): Rename to st_transp, update users.
4143 (pre_insert_map): Rename to st_insert_map, update users.
4144 (pre_delete_map): Rename to st_delete_map, update users.
4145 (insert_store, build_store_vectors, free_store_memory,
4146 one_store_motion_pass): Update for abovementioned changes.
4147
4148 (gcse_subst_count, gcse_create_count): Remove.
4149 (one_store_motion_pass): New statistics counters "n_stores_deleted"
4150 and "n_stores_created", local variables.
4151
4152 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
4153 use for_each_rtx.
4154
4155 (regvec, compute_store_table_current_insn): Remove.
4156 (reg_set_info, reg_clear_last_set): Remove.
4157 (compute_store_table): Use DF caches instead of local dataflow
4158 solvers.
4159
b02cec6e
JM
41602009-05-01 Joseph Myers <joseph@codesourcery.com>
4161
4162 * c-objc-common.c (c_tree_printer): Print identifiers with
4163 pp_identifier, not pp_string. Mark "({anonymous})" for
4164 translation.
4165 * c-pretty-print.c (pp_c_ws_string): New.
4166 (pp_c_cv_qualifier, pp_c_type_specifier,
4167 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
4168 pp_c_storage_class_specifier, pp_c_function_specifier,
4169 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
4170 pp_c_primary_expression, pp_c_postfix_expression,
4171 pp_c_unary_expression, pp_c_shift_expression,
4172 pp_c_relational_expression, pp_c_equality_expression,
4173 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
4174 use pp_string and pp_c_ws_string in place of pp_identifier and
4175 pp_c_identifier for non-identifiers. Mark English strings for
4176 translation.
4177 * c-pretty-print.h (pp_c_ws_string): Declare.
4178
cd533689
PP
41792009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
4180 Roland McGrath <roland@redhat.com>
4181
aa016ff7 4182 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
4183 (ENABLE_LD_BUILDID): New configuration option.
4184 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
4185 (LINK_BUILDID_SPEC): New macro.
4186 (init_spec): If defined, prepend it between LINK_EH_SPEC and
4187 link_spec.
4188 * doc/install.texi: Document --enable-linker-build-id option.
4189 * configure: Rebuild.
4190 * config.in: Rebuild.
4191
ba6adec4
AN
41922009-04-30 Adam Nemet <anemet@caviumnetworks.com>
4193
4194 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
4195 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
4196 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
4197 MIPS_GP_SAVE_AREA_SIZE.
4198 * config/mips/mips.c (struct mips_frame_info): Update comment
4199 before arg_pointer_offset and hard_frame_pointer_offset.
4200 (mips_compute_frame_info): Update diagram before function: to
4201 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
4202 indicate the position of frame_pointer_rtx with -fstack-protector and
4203 to show args_size. Don't allocate cprestore area for leaf functions
4204 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
4205 cprestore_size.
4206 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
4207
48f5b722
MM
42082009-04-30 Michael Matz <matz@suse.de>
4209
ba6adec4
AN
4210 PR tree-optimization/39955
4211 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 4212
b65d6744
DK
42132009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
4214
4215 * ira.c (setup_cover_and_important_classes): Use safe macro
4216 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
4217 directly.
4218 * genpreds.c (write_tm_preds_h): Output suitable definition of
4219 REG_CLASS_FOR_CONSTRAINT.
4220
f136c8ae
RAE
42212009-04-30 Rafael Avila de Espindola <espindola@google.com>
4222
4223 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
4224 instead of an int.
4225 * bitmap.c (bitmap_descriptor): Likewise.
4226 * ggc-common.c (loc_descriptor): Likewise.
4227 * varray.c (varray_descriptor): Likewise.
4228 * vec.c (vec_descriptor): Likewise.
4229
43fcece8 42302009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
4231
4232 * Makefile.in (dce.o): Add $(EXCEPT_H).
4233 * dce.c: Include except.h and delete redundant vector definitions.
4234 (deletable_insn_p): Return false for non-call insns that can throw
4235 if DF is running.
4236
df35c271
SB
42372009-04-30 Steven Bosscher <steven@gcc.gnu.org>
4238
4239 * gcse.c (ae_gen): Remove.
4240 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
4241 and make non-static function to make it available in store-motion.c.
4242 Update call sites with search-and-replace.
4243 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
4244 extract_mentioned_regs, extract_mentioned_regs_helper,
4245 find_moveable_store, compute_store_table, load_kills_store, find_loads,
4246 store_killed_in_insn, store_killed_after, store_killed_before,
4247 build_store_vectors, insert_insn_start_basic_block, insert-store,
4248 remove_reachable_equiv_notes, replace_store_insn, delete_store,
4249 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
4250 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
4251 * store-motion.c: ...new file. Also copy data structures from gcse.c
4252 and clean up to remove parts not used by store motion.
4253 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
4254 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
4255
f711a87a
RR
42562009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4257
4258 PR target/38571
4259 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
4260 when optimizing for size.
4261
fa5ed76e
HPN
42622009-04-30 Hans-Peter Nilsson <hp@axis.com>
4263
4264 * gcse.c (gcse_constant_p): Fix typo in last change.
4265
0acbbdb0
RAE
42662009-04-30 Rafael Avila de Espindola <espindola@google.com>
4267
4268 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
4269
82f5c05d
AK
42702009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
4271
4272 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
4273
6d8f135b
JW
42742009-04-29 James E. Wilson <wilson@codesourcery.com>
4275
4276 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
4277 CONST_HIGH_PART result.
4278
c21ca196
AS
42792009-04-29 Anatoly Sokolov <aesok@post.ru>
4280
4281 * config/avr/avr.c (initial_elimination_offset): Rename to
4282 avr_initial_elimination_offset.
4283 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
4284 change return type to bool.
4285 (avr_can_eliminate): New function.
4286 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
4287 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
4288 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 4289 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
4290 avr_initial_elimination_offset.
4291 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
4292 (avr_initial_elimination_offset): Define.
4293
2a34bece 42942009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 4295 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
4296
4297 PR rtl-optimization/39938
4298 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
4299 * cfgrtl.c: Include insn-attr.h.
4300 (rest_of_pass_free_cfg): New function.
4301 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
4302 * resource.c (init_resource_info): Remove call to df_analyze.
4303
5dc7911e
RG
43042009-04-29 Richard Guenther <rguenther@suse.de>
4305
4306 PR target/39943
4307 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
4308 allow conversion to signed integers.
4309
1fe479fd
RG
43102009-04-29 Richard Guenther <rguenther@suse.de>
4311
4312 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
4313 shifts of floating point vectors if the shift amount is
4314 a constant multiple of the element size.
4315
8e001680
AK
43162009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
4317 Michael Matz <matz@suse.de>
4318
4319 PR middle-end/39927
4320 PR bootstrap/39929
4321 * tree-outof-ssa.c (emit_partition_copy): New function.
4322 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4323 insert_part_to_rtx_on_edge): Perform the partition base var
4324 copy using emit_partition_copy.
4325 (insert_value_copy_on_edge): Convert constants to the right mode.
4326 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
4327 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
4328
e50e3081
BS
43292009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4330
4331 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
4332 scan backwards to try to find a constant to initialize it.
4333
4e5d521b
BS
4334 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
4335 insn before the loop_end instruction, don't look past labels.
4336
7c90021d
RG
43372009-04-29 Richard Guenther <rguenther@suse.de>
4338
4339 PR middle-end/39937
4340 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
4341 loose type conversions.
4342 (forward_propagate_addr_expr): Fix tuplification bug. Remove
4343 stmts only if there are no uses of its definition.
4344
97a988bc
BS
43452009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4346
4347 * config/bfin/bfin.h (splitting_loops): Declare.
4348 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
4349 Reorder bit definitions to be ascending.
4350 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
4351 * config/bfin/bfin.c (splitting_loops): New variable.
4352 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
4353 (struct loop_info): Remove members INIT and LOOP_INIT.
4354 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
4355 the LSETUP sequence. Allow LC to be loaded from any register, but
4356 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
4357 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
4358 set to 1.
4359 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
4360 of reload_completed.
aa016ff7 4361
97a988bc
BS
4362 From Jie Zhang:
4363 * config/bfin/bfin.md (movsi_insn): Refine constraints.
4364
0c463e16
RAE
43652009-04-29 Rafael Avila de Espindola <espindola@google.com>
4366
4367 * Makefile.in (PLUGIN_VERSION_H): New.
4368 (OBJS-common): Remove plugin-version.o.
4369 (plugin.o): Depend on (PLUGIN_VERSION_H).
4370 (plugin-version.o): Remove.
4371 * configure: Regenerate
4372 * configure.ac: Create plugin-version.h.
4373 * gcc-plugin.h (plugin_gcc_version): Remove.
4374 (plugin_default_version_check): Change signature.
4375 * plugin-version.c: Remove.
4376 * plugin.c: Include plugin-version.h.
4377 (str_plugin_gcc_version_name): Remove.
4378 (try_init_one_plugin): Pass gcc version to plugin_init.
4379 (plugin_default_version_check): Both gcc and plugin versions are now
4380 arguments.
4381
307e7eab
BS
43822009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4383
4384 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
4385 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
4386 Remove special case testing for last insn of inner loops. Don't fail
4387 if the loop ends with a jump, emit an extra nop instead.
307e7eab 4388
c5d96723
BS
4389 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
4390 DREGS rather than comparing directly. Remove code that tries to
4391 account for latencies.
4392
de0b4ad5
RG
43932009-04-29 Richard Guenther <rguenther@suse.de>
4394
4395 PR tree-optimization/39941
4396 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
4397 eliminating an indirect call.
4398
3a19701a
RG
43992009-04-29 Richard Guenther <rguenther@suse.de>
4400
4401 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
4402 parameter. Allow invariants as base if !require_lvalue.
4403 (verify_gimple_assign_single): Adjust.
4404
a0a31d1e
BS
44052009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
4406
4407 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
4408 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
4409 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
4410 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
4411 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
4412 a VEC_SELECT.
aa016ff7
UB
4413 * config/bfin/bfin.c (bfin_expand_builtin,
4414 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 4415
795bd26a
RG
44162009-04-28 Richard Guenther <rguenther@suse.de>
4417
4418 * tree-vect-loop.c (get_initial_def_for_induction): Use
4419 correct types for pointer increment.
4420
04be270f
KG
44212009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4422
4423 * toplev.c (print_version): Update GMP version string calculation.
4424
e1a3b85c
EB
44252009-04-28 Eric Botcazou <ebotcazou@adacore.com>
4426
4427 PR rtl-optimization/39938
4428 * resource.c (init_resource_info): Add call to df_analyze.
4429
8224166e
UB
44302009-04-28 Uros Bizjak <ubizjak@gmail.com>
4431
4432 * config/alpha/alpha.md (usegp): Cast the result of
4433 alpha_find_lo_sum_using_gp to enum attr_usegp.
4434 * config/alpha/alpha.c (override_options): Remove end-of-structure
4435 marker element from cpu_table. Use array size of cpu_table to handle
4436 -mcpu and -mtune options.
4437 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
4438
c5f0fe67
JM
44392009-04-28 Joseph Myers <joseph@codesourcery.com>
4440
4441 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
4442 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
4443 tune_32 and tune_64.
4444 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
4445 support on PowerPC.
4446 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
4447 * config/rs6000/option-defaults.h: ... here. New file.
4448 (OPT_64, OPT_32): Define.
4449 (MASK_64BIT): Define to 0 if not already defined.
4450 (OPT_ARCH64, OPT_ARCH32): Define.
4451 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
4452 and tune_64.
4453
0c48a567
RR
44542009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4455
4456 * config/arm/arm.c (arm_override_options): Emit error on using
4457 fpa with AAPCS.
4458
f1028b9d
UB
44592009-04-28 Uros Bizjak <ubizjak@gmail.com>
4460
4461 PR rtl-optimization/39914
4462 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
4463 registers for allocnos created from user-defined variables only
4464 when not optimizing.
4465
e0dd989a
RG
44662009-04-28 Richard Guenther <rguenther@suse.de>
4467
4468 PR middle-end/39937
4469 * fold-const.c (fold_binary): Use distribute_real_division only
4470 on float types.
4471
9a17c91d
SE
44722009-04-28 Steve Ellcey <sje@cup.hp.com>
4473
4474 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
4475 add hpux-stdint.h to tm_file.
4476 (hppa[12]*-*-hpux11*): Ditto.
4477 (ia64*-*-hpux*): Ditto.
4478 * config/hpux-stdint.h: New.
60839f5d 4479 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 4480 __STDC_EXT__ for all compiles.
60839f5d
EB
4481 * config/pa/pa-hpux.h: Ditto.
4482 * config/pa/pa-hpux10.h: Ditto.
4483 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 4484
af04e659
CM
44852009-04-28 Catherine Moore <clm@codesourcery.com>
4486
4487 * debug.h (set_name): Add comment.
4488
04ef80ce
AP
44892009-04-28 Andrew Pinski <pinskia@gmail.com>
4490
4491 PR target/39929
4492 * config/darwin.c (machopic_gen_offset): Check
4493 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
4494 * config/arm/arm.c (require_pic_register): Likewise.
4495
65ad77af
PB
44962009-04-28 Paolo Bonzini <bonzini@gnu.org>
4497
8224166e
UB
4498 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
4499 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
4500 m32c_promote_prototypes): Delete.
65ad77af 4501
1b15a008
MM
45022009-04-28 Michael Matz <matz@suse.de>
4503
4504 PR middle-end/39922
4505 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
4506 constants.
4507
7569a6cc
RG
45082009-04-28 Richard Guenther <rguenther@suse.de>
4509
f1028b9d 4510 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 4511
ead204d9
RR
45122009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4513
4514 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
4515 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
4516 * config/arm/arm-tune.md: Regenerate.
4517
f2c45f08 45182009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 4519
f2c45f08
AM
4520 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
4521 block if there are complex incoming edges.
4522 (sel_merge_blocks): Remove useless assert.
4523 (sel_redirect_edge_and_branch): Check that edge was redirected.
4524 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
4525 (sel_find_rgns): Delete declaration.
4526 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
4527 the region when it is not a preheader.
4528
7a00d767
UB
45292009-04-28 Uros Bizjak <ubizjak@gmail.com>
4530
4531 PR c/39323
4532 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
4533
448ee662
RG
45342009-04-28 Richard Guenther <rguenther@suse.de>
4535
4536 * tree.h (SSA_NAME_VALUE): Remove.
4537 (struct tree_ssa_name): Remove value_handle member.
4538 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
4539 array for jump threading.
4540 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
4541 SSA_NAME_VALUEs.
4542 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
4543 * tree-flow.h (threadedge_initialize_values): Declare.
4544 (threadedge_finalize_values): Likewise.
4545 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
4546 (SSA_NAME_VALUE): Define.
4547 (threadedge_initialize_values): New function.
4548 (threadedge_finalize_values): Likewise.
4549 * tree-ssa-dom.c (ssa_name_values): New global variable.
4550 (SSA_NAME_VALUE): Define.
f1028b9d 4551 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 4552
8644a673
IR
45532009-04-28 Ira Rosen <irar@il.ibm.com>
4554
4555 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4556 Use REPORT_VECTORIZED_LOCATIONS instead
4557 REPORT_VECTORIZED_LOOPS.
4558 * tree-vectorizer.c (vect_verbosity_level): Make static.
4559 (vect_loop_location): Rename to vect_location.
4560 (vect_set_verbosity_level): Update comment.
4561 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
4562 and vect_location.
4563 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
4564 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
4565 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
4566 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
4567 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 4568 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 4569 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
4570 REPORT_UNVECTORIZED_LOCATIONS.
4571 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
4572 and vect_used_in_loop and to vect_unused_in_scope and
4573 vect_used_in_scope.
4574 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
4575 (vect_verbosity_level): Remove declaration.
4576 (vect_analyze_operations): Likewise.
4577 (vect_analyze_stmt): Declare.
4578 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
4579 REPORT_UNVECTORIZED_LOCATIONS.
4580 (vect_get_loop_niters): Fix indentation.
4581 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
4582 (vect_analyze_loop_operations): New function.
4583 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
4584 vect_analyze_operations.
4585 (vect_is_simple_reduction): Use new names.
4586 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
4587 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
4588 to specify whether the data references can be a part of interleaving
4589 chain.
8644a673
IR
4590 (vect_analyze_data_ref_dependence): Use new names.
4591 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
4592 (vect_create_addr_base_for_vector_ref): Remove redundant code.
4593 * tree-vect-patterns.c (widened_name_p): Use new names.
4594 (vect_recog_dot_prod_pattern): Likewise.
4595 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
4596 (process_use, vect_mark_stmts_to_be_vectorized,
4597 vect_model_simple_cost, vect_model_store_cost,
4598 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
4599 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
4600 vectorizable_operation, vectorizable_type_demotion,
4601 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
4602 vectorizable_condition): Likewise.
4603 (vect_analyze_operations): Split into vect_analyze_loop_operations
4604 and ...
4605 (vect_analyze_stmt): ... new function.
4606 (new_stmt_vec_info): Use new names.
4607 (vect_is_simple_use): Use new names and fix comment.
4608 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
4609 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
4610
b91322f2
UB
46112009-04-28 Uros Bizjak <ubizjak@gmail.com>
4612
4613 PR target/39911
4614 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
4615 and integer modes for x87 operands. Do not ICE for unsupported size,
4616 generate error instead. Generate error for unsupported operand types.
4617 ['z']: Do not handle HImode memory operands specially. Warning
4618 for floating-point operands. Fallthru to 'Z' for unsupported operand
4619 types. Do not ICE for unsupported size, generate error instead.
4620 (output_387_binary_op): Use %Z to output operands.
4621 (output_fp_compare): Ditto.
4622 (output_387_reg_move): Ditto.
4623
b2ed71b6
BE
46242009-04-28 Ben Elliston <bje@au.ibm.com>
4625
4626 PR c++/35652
4627 Revert:
4628
4629 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4630
4631 * builtins.c (c_strlen): Do not warn here.
4632 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
4633 * c-common.c (pointer_int_sum): Take an explicit location.
4634 Warn about offsets out of bounds.
4635 * c-common.h (pointer_int_sum): Adjust declaration.
4636
81f40b79
ILT
46372009-04-27 Ian Lance Taylor <iant@google.com>
4638
4639 * collect2.c (is_ctor_dtor): Change type of ret field in struct
4640 names to symkind.
4641 * dce.c (run_fast_df_dce): Change type of old_flags to int.
4642 * df-core.c (df_set_flags): Change return type to int. Change
4643 type of old_flags to int.
4644 (df_clear_flags): Likewise.
4645 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
4646 (df_get_conditional_uses): Likewise.
4647 * df.h (df_set_flags, df_clear_flags): Update declarations.
4648 * dwarf2out.c (struct indirect_string_node): Change type of form
4649 field to enum dwarf_form.
4650 (AT_string_form): Change return type to enum dwarf_form.
4651 * fixed-value.c (fixed_compare): Add cast to enum type.
4652 * fwprop.c (update_df): Change 0 to VOIDmode.
4653 * gensupport.c: Change 0 to UNKNOWN.
4654 * gimple.h (gimple_cond_code): Add cast to enum type.
4655 * haifa-sched.c (reemit_notes): Add cast to enum type.
4656 * hooks.c (hook_int_void_no_regs): Remove function.
4657 * hooks.h (hook_int_void_no_regs): Remove declaration.
4658 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 4659 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
4660 * real.c (real_arithmetic): Add cast to enum type.
4661 (real_compare): Likewise.
4662 * target.h (struct gcc_target): Change return type of
4663 branch_target_register_class to enum reg_class.
4664 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
4665 default_branch_target_register_class.
7a00d767 4666 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 4667 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 4668 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
4669 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
4670 cast to int.
4671 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
4672 ERROR_MARK.
4673 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
4674 vect_uninitialized_def. Change 0 to ERROR_MARK.
4675 * tree-vect-stmts.c (supportable_widening_operation): Don't
4676 initialize icode1 and icode2.
7a00d767 4677 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
4678 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
4679 and to STD_C89.
4680 (cmn_err_flag_specs): Change 0 to STD_C89.
4681 (cmn_err_char_table): Likewise.
4682 * config/arm/arm.c (get_arm_condition_code): Change type of code
4683 to enum arm_cond_code.
4684 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
4685 (IWMMXT_BUILTIN2): Likewise.
4686 (neon_builtin_type_bits): Don't define typedef.
4687 (neon_builtin_datum): Change type of bits field to int.
4688 (arm_expand_neon_args): Add cast to enum type.
4689 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
4690 TLS_MODEL_NONE.
4691 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
4692 casts to enum type.
4693 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
4694 MIPS_FP_COND_f.
4695 * config/mips/mips.md (jal_macro): Return enum constant.
4696 (single_insn): Likewise.
4697 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
4698 CODE_FOR_nothing.
4699 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4700 casts to enum type.
4701 * config/s390/s390.c (s390_tune_flags): Change type to int.
4702 (s390_arch_flags): Likewise.
7a00d767 4703 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
4704 * config/s390/s390.h (s390_tune_flags): Update declaration.
4705 (s390_arch_flags): Likewise.
4706 * config/sh/sh.c (prepare_move_operands): Compare
4707 tls_symbolic_operand result with enum constant.
4708 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
4709 (sh_expand_prologue): Add cast to enum type.
4710 (sh_expand_epilogue): Likewise.
4711 (tls_symbolic_operand): Change return type to enum tls_model.
4712 (fpscr_set_from_mem): Add cast to enum type.
4713 (legitimize_pic_address): Compare tls_symbolic_operand result with
4714 enum constant.
4715 (sh_target_reg_class): Change return type to enum reg_class.
4716 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
4717 PROCESSOR_xxx.
7a00d767
UB
4718 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
4719 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
4720 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
4721 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
4722 (delayed_branch, tls_call_delay): Likewise.
4723 (eligible_for_sibcall_delay): Likewise.
4724 (eligible_for_return_delay): Likewise.
4725 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
4726 (spu_expand_builtin_1): Likewise.
4727
4728 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
4729 for all types of conversions.
4730 (output_init_element): Issue -Wc++-compat warning if needed when
4731 initializing a bitfield with enum type.
4732 * c-parser.c (c_parser_expression): Set original_type to
4733 original_type of right hand operand of comman operator.
4734
e4ae5e77
RW
47352009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4736
4737 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
4738 grammar nits.
7a00d767 4739 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
4740 * doc/cpp.texi (Standard Predefined Macros)
4741 (Implementation-defined behavior): Likewise.
7a00d767 4742 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
4743 * doc/gimple.texi (GIMPLE Exception Handling)
4744 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 4745 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
4746 * doc/invoke.texi (Warning Options, Optimize Options)
4747 (AVR Options, Darwin Options): Likewise.
4748 (Optimize Options): Reformulate -fwhole-program description.
4749 * doc/loop.texi (Lambda): Likewise.
4750 * doc/md.texi (Output Template, Define Constraints)
4751 (Standard Names, Insn Splitting): Likewise.
4752 * doc/options.texi (Option properties): Likewise.
4753 * doc/passes.texi (Tree-SSA passes): Likewise.
4754 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
4755 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
4756 (File Names and DBX): Likewise.
4757 * doc/trouble.texi (Incompatibilities): Likewise.
4758
1883802f 47592009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
4760
4761 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
4762 instruction is correct.
4763
1883802f 47642009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
4765
4766 Allow non-constant arguments to conversion intrinsics.
4767 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
4768 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
4769 * spu.c (print_operand): Handle 'v' and 'w'.
4770 (exp2_immediate_p, spu_gen_exp2): Define.
4771 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
4772 spu_convtf_1): Update parameter descriptions.
7a00d767 4773 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
4774 * constraints.md ('v', 'w'): New.
4775 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
4776 Remove.
4777 (i2f, I2F): New define_mode_attr.
4778 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
4779 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
4780 fixuns_truncv4sfv4si2): Update to use mode attribute.
4781 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
4782 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
4783 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
4784 patterns for combine.
4785
5f39ad47
SB
47862009-04-27 Steven Bosscher <steven@gcc.gnu.org>
4787
4788 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
4789 (cprop, hoist, pre, store_motion): New debug counters.
4790 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
4791 is not an RTL pass anymore.
4792 (pass_profiling): Remove extern decl for pass removed in 2005.
4793 (pass_gcse, pass_jump_bypass): Remove.
4794 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
4795 to 0 for clean state.
4796 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
4797 * cse.c (gate_handle_cse_after_global_opts,
4798 rest_of_handle_cse_after_global_opts): New functions.
4799 (pass_cse_after_global_opts): New pass, does local CSE.
4800 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
4801 (TV_CPROP): New timevar.
4802 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
4803 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
4804 (gcse_main, recompute_all_luids): Remove.
4805 (compute_hash_table_work): Call max_reg_num instead of reading
4806 max_gcse_regno.
4807 (cprop_jump): Don't set run_jump_opt_after_gcse.
4808 (constprop_register): Always allow to alter jumps.
4809 (cprop_insn): Likewise.
4810 (do_local_cprop): Likewise.
4811 (local_cprop_pass): Likewise. Return non-zero if something changed.
4812 (cprop): Remove function, fold interesting bits into one_cprop_pass.
4813 (find_implicit_sets): Add note about missed optimization opportunity.
4814 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
4815 pass_rtl_cprop execute function.
4816 Don't bother tracking the pass number, each pass gets its own dumpfile
4817 now anyway.
4818 Always allow to alter jumpsand bypass jumps.
4819 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
4820 will just find no suitable set.
4821 (pre_edge_insert): Fix dumping, this function is for PRE only.
4822 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
4823 pass_rtl_pre execute function.
4824 (hoist_code): Return non-zero if something changed. Keep track of
4825 substitutions and insertions for statistics gathering similar to PRE.
4826 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
4827 called from the pass_rtl_hoist execute function. Show pass statistics.
4828 (compute_store_table): Use max_reg_num directly instead of using the
4829 formerly global max_gcse_regno.
4830 (build_store_vectors): Likewise.
4831 (replace_store_insn): Fix dumping.
4832 (store_motion): Rename to ...
4833 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
4834 pass, called from the pass_rtl_store_motion execute function. Keep
4835 track of substitutions and insertions for statistics gathering similar
4836 to PRE.
4837 (bypass_jumps): Remove, fold interesting bits into ...
4838 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
4839 from the pass_rtl_cprop execute function.
4840 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
4841 pass_jump_bypass): Remove.
4842 (gate_handle_gcse, rest_of_handle_gcse): Remove.
4843 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
4844 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
4845 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
4846 (gate_rtl_store_motion, execute_rtl_store_motion,
4847 pass_rtl_store_motion): New.
4848 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
4849 make it clear that -fcse-skip-blocks is a no-op for backward compat.
4850 * passes.c (init_optimization_passes): Remove pass_gcse and
4851 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
4852 and cse_after_global_opts in place of pass_gcse. Schedule cprop
4853 instead of pass_jump_bypass.
4854
c685de4a
RG
48552009-04-27 Richard Guenther <rguenther@suse.de>
4856
4857 PR middle-end/39928
4858 * gimplify.c (gimplify_expr): If we are required to create
4859 a temporary make sure it ends up as register.
4860
72d41f29
L
48612009-04-27 H.J. Lu <hongjiu.lu@intel.com>
4862
4863 PR target/39903
4864 * config/i386/i386.c (construct_container): Don't call
4865 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
4866 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
4867
e97809c6
MM
48682009-04-27 Michael Matz <matz@suse.de>
4869
4870 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
4871 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
4872 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
4873 (dump_replaceable_exprs): Take a bitmap.
4874 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
4875 array.
4876 (expand_gimple_basic_block): Likewise.
4877 * tree-ssa-ter.c (struct temp_expr_table_d): Make
4878 replaceable_expressions member a bitmap.
4879 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
4880 (mark_replaceable): Likewise.
4881 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
4882 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
4883
211ca15c
RG
48842009-04-27 Richard Guenther <rguenther@suse.de>
4885
4886 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
4887 (verify_stmts): Dispatch to gimple/type verification code.
4888 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
4889 issue with call argument types.
4890
fca5f3d1
MM
48912009-04-27 Michael Matz <matz@suse.de>
4892
4893 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
4894 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
4895 to above.
4896
a1fa3e79 48972009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 4898 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
4899
4900 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
4901 a label's basic block.
4902 (mark_target_live_regs): Tidy and rework obsolete comments.
4903 Change back DF problem to LIVE. If a label starts a basic block,
4904 assume that all registers that used to be live then still are.
4905 (init_resource_info): If a label starts a basic block, set its
4906 BLOCK_FOR_INSN accordingly.
4907 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
4908
33b223c0
RG
49092009-04-27 Richard Guenther <rguenther@suse.de>
4910
4911 * tree-flow-inline.h (function_ann): Remove.
4912 (get_function_ann): Likewise.
4913 * tree-dfa.c (create_function_ann): Remove.
4914 * tree-flow.h (struct static_var_ann_d): Remove.
4915 (struct function_ann_d): Likewise.
4916 (union tree_ann_d): Remove fdecl member.
4917 (function_ann_t): Remove.
4918 (function_ann, get_function_ann, create_function_ann): Remove
4919 declarations.
4920
e3136fa2
UB
49212009-04-27 Uros Bizjak <ubizjak@gmail.com>
4922
4923 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
4924
f87c9042
JH
49252009-04-27 Jan Hubicka <jh@suse.cz>
4926
4927 * ipa-pure-const.c (struct funct_state_d): New fields
4928 state_previously_known, looping_previously_known; remove
4929 state_set_in_source.
4930 (analyze_function): Use new fields.
4931 (propagate): Avoid assumption that state_set_in_source imply
4932 nonlooping.
4933
4934 * tree-ssa-loop-niter.c (finite_loop_p): New function.
4935 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
4936 * cfgloop.h (finite_loop_p): Declare.
4937
33abd718
MM
49382009-04-26 Michael Matz <matz@suse.de>
4939
e3136fa2 4940 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 4941
ddc34084
MM
49422009-04-26 Michael Matz <matz@suse.de>
4943
4944 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
4945 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
4946 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
4947 pass_mark_used_blocks): Remove.
4948 * tree-optimize.c (pass_free_datastructures,
4949 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
4950 * passes.c (init_optimization_passes): Don't call
4951 pass_mark_used_blocks, remove dead code.
4952
1fec7ed4
L
49532009-04-26 H.J. Lu <hongjiu.lu@intel.com>
4954
4955 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
4956 * tree-ssa-live.h (register_ssa_partition): Likewise.
4957
4e3825db
MM
49582009-04-26 Michael Matz <matz@suse.de>
4959
4960 Expand from SSA.
4961 * builtins.c (fold_builtin_next_arg): Handle SSA names.
4962 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
4963 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
4964 SSA names.
4965 (compare_pairs): Swap cost comparison.
4966 (coalesce_ssa_name): Don't use change_partition_var.
4967 * tree-nrv.c (struct nrv_data): Add modified member.
4968 (finalize_nrv_r): Set it.
4969 (tree_nrv): Use it to update statements.
4970 (pass_nrv): Require PROP_ssa.
4971 * tree-mudflap.c (mf_decl_cache_locals,
4972 mf_build_check_statement_for): Use make_rename_temp.
4973 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
4974 * alias.c (find_base_decl): Handle SSA names.
4975 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
4976 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
4977 * rtl.h (set_reg_attrs_for_parm): Declare.
4978 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
4979 to "optimized", remove unused locals at finish.
4980 (execute_free_datastructures): Make global, call
4981 delete_tree_cfg_annotations.
4982 (execute_free_cfg_annotations): Don't call
4983 delete_tree_cfg_annotations.
4984
4985 * ssaexpand.h: New file.
4986 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 4987 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
4988 (expand_expr_real_1): Expand SSA names.
4989 * cfgexpand.c (toplevel): Include ssaexpand.h.
4990 (SA): New global variable.
4991 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
4992 (SSAVAR): New macro.
4993 (set_rtl): New helper function.
4994 (add_stack_var): Deal with SSA names, use set_rtl.
4995 (expand_one_stack_var_at): Likewise.
4996 (expand_one_stack_var): Deal with SSA names.
4997 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
4998 before unique numbers.
4999 (expand_stack_vars): Use set_rtl.
5000 (expand_one_var): Accept SSA names, add asserts for them, feed them
5001 to above subroutines.
5002 (expand_used_vars): Expand all partitions (without default defs),
5003 then only the local decls (ignoring those expanded already).
5004 (expand_gimple_cond): Remove edges when jumpif() expands an
5005 unconditional jump.
5006 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
5007 or remove abnormal edges. Ignore insns setting the LHS of a TERed
5008 SSA name.
5009 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
5010 members of SA; deal with PARM_DECL partitions here; expand
5011 all PHI nodes, free tree datastructures and SA. Commit instructions
5012 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
5013 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
5014 info and statements at start, collect garbage at finish.
5015 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
5016 (VAR_ANN_PARTITION) Remove.
5017 (change_partition_var): Don't declare.
5018 (partition_to_var): Always return SSA names.
5019 (var_to_partition): Only accept SSA names.
5020 (register_ssa_partition): Only check argument.
5021 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
5022 member.
5023 (delete_var_map): Don't free it.
5024 (var_union): Only accept SSA names, simplify.
5025 (partition_view_init): Mark only useful SSA names as used.
5026 (partition_view_fini): Only deal with SSA names.
5027 (change_partition_var): Remove.
5028 (dump_var_map): Use ssa_name instead of partition_to_var member.
5029 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
5030 basic blocks.
5031 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
5032 (struct _elim_graph): New member const_dests; nodes member vector of
5033 ints.
5034 (set_location_for_edge): New static helper.
5035 (create_temp): Remove.
5036 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 5037 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
5038 (new_elim_graph): Allocate const_dests member.
5039 (clean_elim_graph): Truncate const_dests member.
5040 (delete_elim_graph): Free const_dests member.
5041 (elim_graph_size): Adapt to new type of nodes member.
5042 (elim_graph_add_node): Likewise.
5043 (eliminate_name): Likewise.
5044 (eliminate_build): Don't take basic block argument, deal only with
5045 partition numbers, not variables.
5046 (get_temp_reg): New static helper.
5047 (elim_create): Use it, deal with RTL temporaries instead of trees.
5048 (eliminate_phi): Adjust all calls to new signature.
5049 (assign_vars, replace_use_variable, replace_def_variable): Remove.
5050 (rewrite_trees): Only do checking.
5051 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
5052 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
5053 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
5054 contains_tree_r, MAX_STMTS_IN_LATCH,
5055 process_single_block_loop_latch, analyze_edges_for_bb,
5056 perform_edge_inserts): Remove.
5057 (expand_phi_nodes): New global function.
5058 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
5059 functions, initialize new parameter, remember partitions having a
5060 default def.
5061 (finish_out_of_ssa): New global function.
5062 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
5063 don't reset in_ssa_p here, don't disable TER when mudflap.
5064 (pass_del_ssa): Remove.
5065 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
5066 partition members.
5067 (execute_free_datastructures): Declare.
5068 * Makefile.in (SSAEXPAND_H): New variable.
5069 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
5070 * basic-block.h (commit_one_edge_insertion): Declare.
5071 * passes.c (init_optimization_passes): Move pass_nrv and
5072 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
5073 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
5074 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
5075 (redirect_branch_edge): Deal with super block when expanding, split
5076 out jump patching itself into ...
5077 (patch_jump_insn): ... here, new static helper.
5078
17c665a9
MM
50792009-04-26 Michael Matz <matz@suse.de>
5080
5081 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
5082 beyond num_ssa_names.
5083 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
5084 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
5085
92061771
JJ
50862009-04-26 Jakub Jelinek <jakub@redhat.com>
5087
ce372372
JJ
5088 PR inline-asm/39543
5089 * fwprop.c (forward_propagate_asm): New function.
5090 (forward_propagate_and_simplify): Propagate also into __asm, if it
5091 doesn't increase the number of referenced registers.
5092
92061771
JJ
5093 PR c/39889
5094 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
5095
50962009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
5097
5098 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
5099 note_nonlocal_vla_type for nonlocal VLAs.
5100 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
5101 contains_remapped_vars, remap_vla_decls): New functions.
5102 (convert_nonlocal_reference_stmt): If not optimizing, call
5103 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
5104 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
5105 if it wasn't found in var_map.
5106 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
5107 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
5108 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
5109 declare_vars.
5110 * gimplify.c (nonlocal_vlas): New variable.
5111 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
5112 referenced VLAs.
5113 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 5114
4561e242
JJ
5115 * dwarf2out.c (loc_descr_plus_const): New function.
5116 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
5117 mem_loc_descriptor, loc_descriptor_from_tree_1,
5118 descr_info_loc, gen_variable_die): Use it.
5119
a9548ddf
JJ
5120 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
5121 !TREE_STATIC VAR_DECLs.
5122 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
5123 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
5124 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
5125 DECL_BY_REFERENCE is valid.
5126 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
5127 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
5128 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
5129 Copy DECL_BY_REFERENCE.
5130 (struct nesting_copy_body_data): New type.
5131 (nesting_copy_decl): New function.
5132 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
5133 if they have variable length.
5134
10555d08
MM
51352009-04-26 Michael Matz <matz@suse.de>
5136
5137 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
5138 mark new temporaries for renaming.
5139
e11187cc
JM
51402009-04-26 Joseph Myers <joseph@codesourcery.com>
5141
5142 PR c/39581
5143 * c-decl.c (global_bindings_p): Return negative value.
5144 (c_variable_size): New. Based on variable_size from
5145 stor-layout.c.
5146 (grokdeclarator): Call c_variable_size not variable_size.
5147
f6a51d31
UB
51482009-04-26 Uros Bizjak <ubizjak@gmail.com>
5149
5150 * config/i386/i386.c (print_operand) ['z']: Fix typo.
5151
4b97723d
KT
51522009-04-26 Kai Tietz <kai.tietz@onevision.com>
5153
5154 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
5155 Redefine it to just use mingw/include.
5156 (ASM_SPEC): Rules for -m32 and -m64.
5157 (LINK_SPEC): Use Likewise.
5158 (SPEC_32): New define.
5159 (SPEC_64): Likewise.
5160 (SUB_LINK_SPEC): Likewise.
5161 (MULTILIB_DEFAULTS): New define.
5162 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
5163 Add multilib options.
5164 (MULTILIB_DIRNAMES): Likewise.
5165 (MULTILIB_OSDIRNAMES): Likewise.
5166 (LIBGCC): Likewise.
5167 (INSTALL_LIBGCC): Likewise.
5168
991d6621
JM
51692009-04-26 Joseph Myers <joseph@codesourcery.com>
5170
5171 PR c/39556
5172 * c-tree.h (enum c_inline_static_type): New.
5173 (record_inline_static): Declare.
5174 * c-decl.c (struct c_inline_static, c_inline_statics,
5175 record_inline_static, check_inline_statics): New.
5176 (pop_file_scope): Call check_inline_statics.
5177 (start_decl): Call record_inline_static instead of pedwarning
5178 directly for static in inline function.
5179 * c-typeck.c (build_external_ref): Call record_inline_static
5180 instead of pedwarning directly for static referenced in inline
5181 function.
5182
4a81774c
SB
51832009-04-26 Steven Bosscher <steven@gcc.gnu.org>
5184
5185 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
5186 not new but only being rescanned.
5187 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
5188 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
5189 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
5190 record_set_info, compute_set, grealloc): Remove.
5191 (recompute_all_luids): New function.
5192 (gcse_main): Don't compute sets, and don't do related memory
5193 allocations/free-ing. If something changed before the end of the
5194 pass, update LUIDs using recompute_all_luids.
5195 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
5196 (free_gcse_mem): Don't free it either.
5197 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
5198 Use the df insn LUIDs.
5199 (load_killed_in_block): Likewise.
5200 (compute_hash_table_work): Don't compute reg_set_in_block.
5201 (compute_transp): Use DF_REG_DEF_CHAINs.
5202 (local_cprop_pass): Don't use compute_sets and related functions.
5203 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
5204 Use get_max_uid() instead of max_cuid.
5205 (insert_insn_end_basic_block, pre_insert_copy_insn,
5206 update_ld_motion_stores): Don't try to
5207 keep reg_set tables up to date.
5208 (pre_insert_copies): Use df insn LUIDs.
5209 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
5210 (reg_set_info): Don't use extra bitmap argument.
5211 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
5212 information to compute regs_set_in_block.
5213 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
5214 (bypass_jumps): Don't use compute_sets and friends.
5215
e8f99a9d
RW
52162009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5217
5218 PR testsuite/39710
5219 * opts.c (undocumented_msg): Do not leave blank even with
5220 ENABLE_CHECKING.
5221
6895bac8
JM
52222009-04-25 Joseph Myers <joseph@codesourcery.com>
5223
5224 * c-decl.c (build_enumerator): Allow values folding to integer
5225 constants but not integer constant expressions with a pedwarn if
5226 pedantic.
5227
24070fcb
JM
52282009-04-25 Joseph Myers <joseph@codesourcery.com>
5229
5230 PR c/39582
5231 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
5232 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
5233 type is an integer constant.
5234
d6d89aa1
UB
52352009-04-25 Uros Bizjak <ubizjak@gmail.com>
5236
5237 PR target/39897
5238 * config/i386/i386.c (print_operand) ['z']: Revert handling of
5239 HImode operands.
5240
92f6fd0b
JM
52412009-04-25 Joseph Myers <joseph@codesourcery.com>
5242
5243 PR c/39564
5244 * c-decl.c (grokdeclarator): Diagnose declarations of functions
5245 with variably modified return type and no storage class
5246 specifiers, except for the case of nested functions. Distinguish
5247 extern declarations of functions with variably modified return
5248 types from those of objects with variably modified types.
5249
a3710436
JH
52502009-04-25 Jan Hubicka <jh@suse.cz>
5251
5252 * tree.c (list_equal_p): New function.
5253 * tree.h (list_equal_p): Declare.
5254 * coretypes.h (edge_def, edge, const_edge, basic_block_def
5255 basic_block_def, basic_block, const_basic_block): New.
5256 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
5257 (redirect_eh_edge): New function.
5258 (make_eh_edge_update_phi): EH edges are not abnormal.
5259 * except.c: Include tree-flow.h.
5260 (list_match): New function.
5261 (eh_region_replaceable_by_p): New function.
5262 (replace_region): New function.
5263 (hash_type_list): New function.
5264 (hash_eh_region): New function.
5265 (eh_regions_equal_p): New function.
5266 (merge_peers): New function.
5267 (remove_unreachable_regions): Verify EH tree when checking;
5268 merge peers.
5269 (copy_eh_region_1): New function.
5270 (copy_eh_region): New function.
5271 (push_reachable_handler): New function.
5272 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
5273 regions without label but with live RESX.
5274 * except.h (redirect_eh_edge_to_label): New.
5275 * tree-flow.h (redirect_eh_edge): New.
5276 * coretypes.h (edge_def, edge, const_edge, basic_block_def
5277 basic_block_def, basic_block, const_basic_block): Remove.
5278 * Makefile.in (except.o): Add dependency on tree-flow.h
5279 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
5280 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
5281 Remove.
5282
3764d512
EB
52832009-04-25 Eric Botcazou <ebotcazou@adacore.com>
5284
5285 PR bootstrap/39645
5286 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
5287 on the destination of memcpy.
5288
1c62e8f2
PB
52892009-04-25 Paolo Bonzini <bonzini@gnu.org>
5290
5291 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
5292 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
5293 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
5294
496a4ef5
JH
52952009-04-25 Jan Hubicka <jh@suse.cz>
5296
5297 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
5298 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
5299 to be reached by different label than left.
5300 (update_eh_edges): Update comment; remove edge_to_remove if possible
5301 and return true if suceeded.
5302 (cleanup_empty_eh): Accept sharing map; handle shared regions.
5303 (cleanup_eh): Compute sharing map.
5304 * except.c (remove_eh_handler_and_replace): Add argument if we should
5305 update regions.
5306 (remove_unreachable_regions): Update for label sharing.
5307 (label_to_region_map): Likewise.
5308 (get_next_region_sharing_label): New function.
5309 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
5310 prev_try pointers.
5311 (remove_eh_handler): Update.
5312 (remove_eh_region_and_replace_by_outer_of): New function.
5313 * except.h (struct eh_region): Add next_region_sharing_label.
5314 (remove_eh_region_and_replace_by_outer_of,
5315 get_next_region_sharing_label): Declare.
5316 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
5317
53182009-04-25 Jan Hubicka <jh@suse.cz>
5319
5320 * tree-cfg.c (split_critical_edges): Split also edges where we can't
5321 insert code even if they are not critical.
5322
53232009-04-25 Jan Hubicka <jh@suse.cz>
5324
5325 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5326 (gimple_can_remove_branch_p): EH edges won't remove branch by
5327 redirection.
5328 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
5329 updating of non-abnormal EH edges.
5330 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
5331 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
5332 (split_critical_edges): Split also edges where emitting code on them
5333 will lead to splitting later.
5334
a3a5e3d1
UB
53352009-04-25 Uros Bizjak <ubizjak@gmail.com>
5336 H.J. Lu <hongjiu.lu@intel.com>
5337
5338 PR target/39590
5339 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
5340 the configured assembler supports fildq and fistpq mnemonics.
5341 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
5342 * configure: Regenerated.
5343 * config.in: Ditto.
5344
5345 * config/i386/i386.c (print_operand): Handle 'Z'.
5346 ['z']: Remove handling of special fild/fist suffixes.
5347 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
5348 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
5349 suffix of fild insn.
5350 (*floatsi<mode>2_vector_mixed): Ditto.
5351 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
5352 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
5353 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
5354 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
5355 * config/i386/gas.h (GAS_MNEMONICS): Remove.
5356
23750d7f
BE
53572009-04-25 Ben Elliston <bje@au.ibm.com>
5358
5359 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
5360 the source of a set operation.
5361
e6ff3083
AS
53622009-04-25 Anatoly Sokolov <aesok@post.ru>
5363
5364 * target.h (struct gcc_target): Add case_values_threshold field.
5365 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
5366 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
5367 * targhooks.c (default_case_values_threshold): New function.
5368 * targhooks.h (default_case_values_threshold): Declare function.
5369 * stmt.c (expand_case): Use case_values_threshold target hook.
5370 * expr.h (case_values_threshold): Remove declartation.
5371 * expr.c (case_values_threshold): Remove function.
5372 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
5373
5374 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
5375 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5376 (avr_case_values_threshold): Declare as static.
5377 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
5378
5379 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
5380 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
5381 (mn10300_case_values_threshold): New function.
5382
569c72fc
L
53832009-04-24 H.J. Lu <hongjiu.lu@intel.com>
5384
5385 * ira.c (setup_cover_and_important_classes): Add enum cast.
5386
ff3cb468
VM
53872009-04-24 Vladimir Makarov <vmakarov@redhat.com>
5388
5389 * genpreds.c (write_enum_constraint_num): Output definition of
5390 CONSTRAINT_NUM_DEFINED_P macro.
5391 * ira.c (setup_cover_and_important_classes): Use
5392 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
5393
4f7be849
DD
53942009-04-24 DJ Delorie <dj@redhat.com>
5395
5396 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
5397 __SH2A_SINGLE_ONLY__ also.
5398
735b94a7
SE
53992009-04-24 Steve Ellcey <sje@cup.hp.com>
5400
5401 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
5402 (movdf_internal): Ditto.
5403 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
5404 SFmode and DFmode constants.
5405 (ia64_print_operand): Add 'G' format for printing
5406 floating point constants.
5407
77a30264
RG
54082009-04-24 Richard Guenther <rguenther@suse.de>
5409
5410 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
5411 from unsigned additions.
5412
2b6da65c
JM
54132009-04-24 Joseph Myers <joseph@codesourcery.com>
5414
5415 * c-typeck.c (set_init_index): Allow array designators that are
5416 not integer constant expressions with a pedwarn if pedantic.
5417
f5a17c43
BS
54182009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5419
5420 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
5421 zero if no overlap in nonzero bits between the operands.
5422
32e8bb8e
ILT
54232009-04-24 Ian Lance Taylor <iant@google.com>
5424
5425 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
5426 (record_dead_and_set_regs): Likewise.
5427 * df.h (struct df_mw_hardreg): Change flags field to int.
5428 (struct df_base_ref): Likewise.
5429 (struct df): Change changeable_flags field to int.
5430 * df-scan.c (df_defs_record): Change clobber_flags to int.
5431 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
5432 constants rather than #define macros.
5433 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
5434 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
5435 (enum dwarf_calling_convention): Likewise.
5436 (enum dwarf_line_number_x_ops): Likewise.
5437 (enum dwarf_call_frame_info): Likewise.
5438 (enum dwarf_source_language): Likewise.
5439 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
5440 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
5441 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
5442 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
5443 * genrecog.c (maybe_both_true_2): Change c to int.
5444 (write_switch): Likewise. Add cast to enum type.
5445 * gimplify.c (gimplify_omp_for): Handle return values from
5446 gimplify_expr using MIN rather than bitwise or.
5447 (gimplify_expr): Add cast to enum type.
5448 * ipa-prop.c (update_jump_functions_after_inlining): Change
5449 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
5450 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
5451 Add casts to enum type.
32e8bb8e
ILT
5452 (setup_cover_and_important_classes): Change cl to int. Add casts
5453 to enum type.
5454 (setup_class_translate): Change cl and mode to int.
5455 (ira_init_once): Change mode to int.
5456 (free_register_move_costs): Likewise.
5457 (setup_prohibited_mode_move_regs): Add casts to enum type.
5458 * langhooks.c (add_builtin_function_common): Rework assertion that
5459 value fits bitfield.
5460 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
5461 * omega.c (omega_do_elimination): Avoid math on enum types.
5462 * optabs.c (expand_vec_shift_expr): Remove casts to int.
5463 * opts.c (set_debug_level): Change 2 to enum constant. Use new
5464 int local to handle integral_argment value.
5465 * regmove.c (try_auto_increment): Change PUT_MODE to
5466 PUT_REG_NOTE_KIND.
5467 * reload.c (push_secondary_reload): Add casts to enum type.
5468 (secondary_reload_class, find_valid_class): Likewise.
5469 * reload1.c (emit_input_reload_insns): Likewise.
5470 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
5471 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
5472 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
5473 constant.
5474 * tree.c (build_common_builtin_nodes): Add casts to enum type.
5475 * tree-complex.c (complex_lattice_t): Typedef to int rather than
5476 enum type.
5477 (expand_complex_libcall): Add casts to enum type.
5478 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
5479 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
5480 with ERROR_MARK, not NUM_TREE_CODES.
5481 (vect_create_epilog_for_reduction): Likewise.
5482 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 5483 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
5484 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
5485 enum machine_mode.
5486 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
5487 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 5488 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
5489 * var-tracking.c (get_init_value): Change return type to enum
5490 var_init_status.
5491 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
5492 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
5493 arm_fp_model.
5494 (arm_override_options): Add casts to enum type.
5495 (arm_emit_tls_decoration): Likewise.
5496 * config/i386/i386.c (ix86_function_specific_restore): Add casts
5497 to enum type.
5498 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
5499 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
5500 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
5501 enum type.
5502 * config/s390/s390.c (code_for_builtin_64): Change to array of
5503 enum insn_code.
5504 (code_for_builtin_31): Likewise.
5505 (s390_expand_builtin): Change code_for_builtin to enum insn_code
5506 const *.
5507 * config/sparc/sparc.c (sparc_override_options): Change value
5508 field in struct code_model to enum cmodel. In initializer change
5509 0 to NULL and add cast to enum type.
5510
5511 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
5512 Change all callers. Issue a -Wc++-compat warning using
5513 lhs_origtype if necessary.
5514 (convert_for_assignment): Issue -Wc++-compat warnings about
5515 invalid conversions to enum type on assignment.
5516 * c-common.h (build_modify_expr): Update declaration.
5517
ac4fc08a
NC
55182009-04-24 Nick Clifton <nickc@redhat.com>
5519
5520 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
5521 (function_arg_advance): Likewise.
5522 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
5523 5th alternative.
5524
f22e891a
AK
55252009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
5526
5527 * config/s390/constraints.md ('I', 'J'): Fix condition.
5528
ad58aabe
DN
55292009-04-24 Diego Novillo <dnovillo@google.com>
5530
5531 * gengtype-parse.c (parse_error): Add newline after message.
5532
879a4a01
L
55332009-04-24 H.J. Lu <hongjiu.lu@intel.com>
5534
5535 * config/i386/sse.md (avxmodesuffixs): Removed.
5536 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
5537 (*avx_pinsr<ssevecsize>): This.
5538
f63426af
BS
55392009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
5540
5541 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
5542 follow chains of regs with a single definition, and allow expressions
5543 that are function_invariant_p.
ce72fe6c 5544 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 5545
30349c74
PB
55462009-04-24 Paolo Bonzini <bonzini@gnu.org>
5547
5548 PR middle-end/39867
5549 * fold-const.c (fold_cond_expr_with_comparison): When folding
5550 > and >= to MAX, make sure the MAX uses the same type as the
5551 comparison's operands.
5552
8d8256c1
NC
55532009-04-24 Nick Clifton <nickc@redhat.com>
5554
5555 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
5556 addressing for DImode accesses.
5557 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 5558 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 5559
6216f94e
JJ
55602009-04-24 Jakub Jelinek <jakub@redhat.com>
5561
5562 PR rtl-optimization/39794
5563 * alias.c (canon_true_dependence): Add x_addr argument.
5564 * rtl.h (canon_true_dependence): Adjust prototype.
5565 * cse.c (check_dependence): Adjust canon_true_dependence callers.
5566 * cselib.c (cselib_invalidate_mem): Likewise.
5567 * gcse.c (compute_transp): Likewise.
5568 * dse.c (scan_reads_nospill): Likewise.
5569 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
5570 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
5571 canon_base_addr of the group, plus optional offset.
5572 (struct group_info): Rename canon_base_mem to
5573 canon_base_addr.
5574 (get_group_info): Set canon_base_addr to canon_rtx of base, not
5575 canon_rtx of base_mem.
5576
6de7a512
PB
55772009-04-23 Paolo Bonzini <bonzini@gnu.org>
5578
5579 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
5580 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
5581
4a3a2376
UW
55822009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5583
5584 * config/spu/spu-builtins.h: Delete file.
5585
5586 * config/spu/spu.h (enum spu_builtin_type): Move here from
5587 spu-builtins.h.
5588 (struct spu_builtin_description): Likewise. Add GTY marker.
5589 Do not use enum spu_function_code or enum insn_code.
5590 (spu_builtins): Add extern declaration.
5591
5592 * config/spu/spu.c: Do not include "spu-builtins.h".
5593 (enum spu_function_code, enum spu_builtin_type_index,
5594 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
5595 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
5596 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
5597 unsigned_V2DI_type_node): Move here from spu-builtins.h.
5598 (spu_builtin_types): Make static. Add GTY marker.
5599 (spu_builtins): Add extern declaration with GTY marker.
5600 Include "gt-spu.h".
5601
5602 * config/spu/spu-c.c: Do not include "spu-builtins.h".
5603 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
5604 Check programmatically whether all parameters are scalar.
5605
5606 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
5607
bbaba73f
EB
56082009-04-23 Eric Botcazou <ebotcazou@adacore.com>
5609
5610 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
5611 assignment from the constructor either if the target is volatile.
5612
ee93c1c6
DJ
56132009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
5614
5615 * config/arm/arm.md (insv): Do not share operands[0].
5616
b2f21330
NS
56172009-04-23 Nathan Sidwell <nathan@codesourcery.com>
5618
5619 * config/vxlib-tls.c (active_tls_threads): Delete.
5620 (delete_hook_installed): New.
5621 (tls_delete_hook): Don't delete the delete hook.
5622 (tls_destructor): Delete it here.
5623 (__gthread_set_specific): Adjust installing the delete hook.
5624 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
5625 __gthread_leave_tsd_dtor_context.
5626
4782dfa7
RAE
56272009-04-23 Rafael Avila de Espindola <espindola@google.com>
5628
5629 * c-format.c (gcc_tdiag_char_table): Add support for %E.
5630
bf758008
UB
56312009-04-23 Uros Bizjak <ubizjak@gmail.com>
5632
5633 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
5634 enum type.
5635 (alpha_rtx_costs): Ditto.
5636 (emit_unlikely_jump): Use add_reg_note.
5637 (emit_frame_store_1): Ditto.
5638 (alpha_expand_prologue): Ditto.
5639 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5640 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
5641
7323a100
NC
56422009-04-23 Nick Clifton <nickc@redhat.com>
5643
5644 * config/v850/v850.md (epilogue): Remove suppressed code.
5645 (return): Rename to return_simple and remove test of frame size.
5646 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
5647 to gen_return_simple.
5648
360032ba
JY
56492009-04-22 Jing Yu <jingyu@google.com>
5650
5651 PR testsuite/39781
5652 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5653
53650abe
AP
56542009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
5655
5656 PR C/31499
5657 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
5658 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
5659 value is a VECTOR_CST, the element type is the element type of the
5660 vector.
5661
89043e8a
DD
56622009-04-22 DJ Delorie <dj@redhat.com>
5663
5664 * config/m32c/m32c.h: Update GTY annotations to new syntax.
5665
023f059b
JJ
56662009-04-22 Jakub Jelinek <jakub@redhat.com>
5667
5668 * alias.c (find_base_term): Move around LO_SUM case, so that
5669 CONST falls through into PLUS/MINUS handling.
5670
2c0eba5a
JJ
5671 PR c/39855
5672 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
5673 into 0, use omit_one_operand.
5674
9a461028
BE
56752009-04-23 Ben Elliston <bje@au.ibm.com>
5676
5677 * config/rs6000/linux-unwind.h (get_regs): Remove type
5678 puns. Change the type of `pc' to an array of unsigned ints and
5679 update all users. Constify frame24.
5680
653e2568
DD
56812009-04-22 DJ Delorie <dj@redhat.com>
5682
5683 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
5684 declarations before code.
5685 (current_function_special_page_vector): Likewise.
5686 (m32c_expand_insv): Silence a warning.
5687
60839f5d 56882009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
5689
5690 * alias.c: Update GTY annotations to new syntax.
5691 * basic-block.h: Likewise.
5692 * bitmap.h: Likewise.
5693 * c-common.h: Likewise.
5694 * c-decl.c: Likewise.
5695 * c-parser.c: Likewise.
5696 * c-pragma.c: Likewise.
5697 * c-tree.h: Likewise.
5698 * cfgloop.h: Likewise.
5699 * cgraph.h: Likewise.
5700 * config/alpha/alpha.c: Likewise.
5701 * config/arm/arm.h: Likewise.
5702 * config/avr/avr.h: Likewise.
5703 * config/bfin/bfin.c: Likewise.
5704 * config/cris/cris.c: Likewise.
5705 * config/darwin.c: Likewise.
5706 * config/frv/frv.c: Likewise.
5707 * config/i386/i386.c: Likewise.
5708 * config/i386/i386.h: Likewise.
5709 * config/i386/winnt.c: Likewise.
5710 * config/ia64/ia64.h: Likewise.
5711 * config/iq2000/iq2000.c: Likewise.
5712 * config/mips/mips.c: Likewise.
5713 * config/mmix/mmix.h: Likewise.
5714 * config/pa/pa.c: Likewise.
5715 * config/pa/pa.h: Likewise.
5716 * config/rs6000/rs6000.c: Likewise.
5717 * config/s390/s390.c: Likewise.
5718 * config/sparc/sparc.c: Likewise.
5719 * config/xtensa/xtensa.c: Likewise.
5720 * cselib.h: Likewise.
5721 * dbxout.c: Likewise.
5722 * dwarf2out.c: Likewise.
5723 * except.c: Likewise.
5724 * except.h: Likewise.
5725 * fixed-value.h: Likewise.
5726 * function.c: Likewise.
5727 * function.h: Likewise.
5728 * gimple.h: Likewise.
5729 * integrate.c: Likewise.
5730 * optabs.c: Likewise.
5731 * output.h: Likewise.
5732 * real.h: Likewise.
5733 * rtl.h: Likewise.
5734 * stringpool.c: Likewise.
5735 * tree-data-ref.c: Likewise.
5736 * tree-flow.h: Likewise.
5737 * tree-scalar-evolution.c: Likewise.
5738 * tree-ssa-address.c: Likewise.
5739 * tree-ssa-alias.h: Likewise.
5740 * tree-ssa-operands.h: Likewise.
5741 * tree.c: Likewise.
5742 * tree.h: Likewise.
5743 * varasm.c: Likewise.
5744 * varray.h: Likewise.
5745 * vec.h: Likewise.
bf758008 5746 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
5747 * doc/gty.texi: Update GTY documentation to new syntax.
5748 * gengtype-lex.l: Enforce attribute-like syntax for GTY
5749 annotations on structs.
5750 * gengtype-parse.c: Likewise.
5751
a123d175
MH
57522009-04-22 Mark Heffernan <meheff@google.com>
5753
bf758008 5754 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 5755
4c7c486a
KH
57562009-04-22 Kazu Hirata <kazu@codesourcery.com>
5757
5758 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
5759 where appropriate.
5760
6e782a29
KH
57612009-04-22 Kazu Hirata <kazu@codesourcery.com>
5762
5763 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
5764 the same as a PLUS without a shift. Increase the cost of a
5765 CONST_INT in MULT.
5766
38d2336a
MLI
57672009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5768
5769 * Makefile.in: Update dependencies.
bf758008 5770 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
5771 * errors.h: Remove bogus comment about compatibility.
5772 (warning): Update declaration.
5773 * genautomata.c: Update all calls to warning.
5774 * gimple.c: Do not include errors.h. Include toplev.h.
5775 * tree-ssa-structalias.c: Do not include errors.h.
5776 * omega.c: Likewise.
5777 * tree-ssa-reassoc.c: Likewise.
5778 * config/spu/spu-c.c: Likewise.
5779 * config/spu/t-spu-elf: Update dependencies.
5780
aea4deba
RG
57812009-04-22 Richard Guenther <rguenther@suse.de>
5782
5783 PR tree-optimization/39824
5784 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
5785 make sure the types are compatible.
5786
cfc93532
MLI
57872009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
5788
5789 PR c++/14875
5790 * c-common.c (c_parse_error): Take a token_flags parameter.
5791 Use token_type for the token type instead.
5792 Pass token_flags to cpp_type2name.
5793 * c-common.h (c_parse_error): Update declaration.
5794 * c-parser.c (c_parser_error): Pass 0 as token flags.
5795
8632d02a
AB
57962009-04-22 Andrey Belevantsev <abel@ispras.ru>
5797
5798 PR rtl-optimization/39580
5799 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
5800
4c33221c
UW
58012009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5802
5803 * function.c (expand_function_end): Do not emit a jump to the "naked"
5804 return label for fall-through returns.
5805 * except.c (sjlj_emit_function_exit): Always place the call to the
5806 unregister function at the location installed by expand_function_end.
5807
9925bce0
RG
58082009-04-22 Richard Guenther <rguenther@suse.de>
5809
5810 PR tree-optimization/39845
5811 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
5812 (gen_inbound_check): Likewise.
5813
24a40b35
NS
58142009-04-22 Nathan Sidwell <nathan@codesourcery.com>
5815
5816 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
5817 padding for PPC.
5818 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
5819 * config/vxlib.c (__gthread_once): Add race guard for PPC.
5820
6c34a092
PB
58212009-04-22 Paolo Bonzini <bonzini@gnu.org>
5822
5823 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
5824 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
5825 shift counts to avoid out-of-bounds array accesses.
5826
baa48dfa
PB
58272009-04-22 Paolo Bonzini <bonzini@gnu.org>
5828
5829 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
5830 (Pmode): Move above.
5831
7d83f4f5
UB
58322009-04-22 Uros Bizjak <ubizjak@gmail.com>
5833
5834 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
5835 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
5836 GET_CODE macro. Use IN_RANGE macro where appropriate.
5837 * config/alpha/alpha.h: Ditto.
5838 * config/alpha/alpha.md: Ditto.
5839 * config/alpha/constraints.md: Ditto.
5840 * config/alpha/predicates.md: Ditto.
5841
3ad606bc
PB
58422009-04-22 Paolo Bonzini <bonzini@gnu.org>
5843
5844 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
5845 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5846 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5847 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5848 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5849 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5850 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5851 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5852 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5853 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5854 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5855 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5856 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5857 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5858 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5859 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5860 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5861 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5862 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5863 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5864 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5865 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5866 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5867 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5868 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5869 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5870 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
5871
3cabd6d1
LB
58722009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5873
5874 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
5875 references from comments.
5876 * cfgbuild.c: (count_basic_blocks): Delete.
5877 (find_basic_blocks_1): Delete.
5878 (find_basic_blocks): Delete.
5879 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 5880 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
5881 * except.h (finish_eh_generation): Delete.
5882 * basic-block.h (find_basic_blocks): Delete.
5883 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
5884
270d1bcd
DK
58852009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
5886
5887 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
5888 (sdbout_parms): Likewise.
5889
b757d36f
KK
58902009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
5891
5892 * config/sh/sh.c (prepare_cbranch_operands): Use
5893 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
5894 (expand_cbranchdi4): Likewise.
5895 (from_compare): Add cast to enum type.
5896 (expand_cbranchsi4): Use add_reg_note.
5897 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
5898 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
5899 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
5900 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
5901 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
5902 instead of CODE_FOR_nothing.
5903 (cbranchdi4): Likewise. Fix the order of arguments for
5904 gen_rtx_fmt_ee.
5905 (push_fpscr): Use add_reg_note.
5906 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
5907 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
5908
ad41bd84
JM
59092009-04-21 Joseph Myers <joseph@codesourcery.com>
5910
5911 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
5912 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
5913 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
5914 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
5915 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
5916 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
5917 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
5918 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
5919 config/alpha/x-vms, config/arc/t-arc,
5920 config/arm/README-interworking, config/arm/arm-c.c,
5921 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
5922 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
5923 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
5924 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
5925 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
5926 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
5927 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
5928 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
5929 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
5930 config/cris/t-elfmulti, config/crx/t-crx,
5931 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
5932 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
5933 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
5934 config/h8300/t-h8300, config/i386/athlon.md,
5935 config/i386/darwin-libgcc.10.4.ver,
5936 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
5937 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
5938 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
5939 config/i386/t-linux64, config/i386/t-nwld,
5940 config/i386/t-rtems-i386, config/i386/t-sol2-10,
5941 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
5942 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
5943 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
5944 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
5945 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
5946 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
5947 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
5948 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
5949 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
5950 config/m68k/t-uclinux, config/mcore/t-mcore,
5951 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
5952 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
5953 config/mips/crtn.asm, config/mips/irix-crti.asm,
5954 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
5955 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
5956 config/mips/mips-fixed.md, config/mips/sb1.md,
5957 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
5958 config/mips/t-iris6, config/mips/t-isa3264,
5959 config/mips/t-libgcc-mips16, config/mips/t-linux64,
5960 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
5961 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
5962 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
5963 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
5964 config/mn10300/t-linux, config/mn10300/t-mn10300,
5965 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
5966 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
5967 config/picochip/libgccExtras/clzsi2.asm,
5968 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
5969 config/rs6000/darwin-libgcc.10.4.ver,
5970 config/rs6000/darwin-libgcc.10.5.ver,
5971 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
5972 config/rs6000/t-aix43, config/rs6000/t-aix52,
5973 config/rs6000/t-darwin, config/rs6000/t-fprules,
5974 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
5975 config/rs6000/t-lynx, config/rs6000/t-netbsd,
5976 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
5977 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
5978 config/rs6000/t-rtems, config/rs6000/t-spe,
5979 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
5980 config/score/t-score-elf, config/sh/divcost-analysis,
5981 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
5982 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
5983 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
5984 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
5985 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
5986 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
5987 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
5988 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
5989 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
5990 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
5991 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
5992 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
5993 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
5994 limitx.h, version.c, xcoff.h: Add copyright and license notices.
5995 * config/h8300/genmova.sh: Include copyright and license notices
5996 in generated output.
5997 * config/h8300/mova.md: Regenerate.
5998 * doc/install.texi2html: Include word "Copyright" in copyright
5999 notice and use name "Free Software Foundation, Inc.".
6000 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
6001 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
6002 ChangeLog-2007, ChangeLog-2008: Correct dates.
6003
ca80e52b
EB
60042009-04-21 Eric Botcazou <ebotcazou@adacore.com>
6005
6006 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
6007 NE_EXPR operations as well.
6008 * c-parser.c (c_parser_condition): Do not set location information on
6009 the condition.
6010 (c_parser_conditional_expression): Likewise.
6011 (c_parser_binary_expression): Set location information on operators.
6012 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
6013 TRUTH_NOT_EXPR has been folded.
6014 * fold-const.c (fold_truth_not_expr): Copy location information from
6015 the incoming expression to the outgoing one.
6016 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
6017 recursive calls on the LHS of the operator but pass that of the
6018 operator to recursive calls on the RHS of the operator. Set it
6019 on the COND_EXPR.
6020 (shortcut_cond_expr): Set the locus of the operator on the second
6021 COND_EXPR and that of the expression on the first in degenerate cases.
6022 Pass the locus of the expression to calls to shortcut_cond_r.
6023 Set the locus of the 'then' block on the associated jump, if any.
6024 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
6025 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
6026 expression to call to gimplify_boolean_expr.
6027
35091630
KT
60282009-04-21 Kai Tietz <kai.tietz@onevision.com>
6029
6030 * config.gcc: Add additional configuration for
6031 i686-w64-mingw* and x86_64-w64-mingw* triplet.
6032 * config/i386/mingw-w64.h: New mingw-w64 specific header.
6033 (CPP_SPEC): Redefine for allowing -municode option.
6034 (STARTFILE_SPEC): Likewise.
6035 * config/i386/t-mingw-w64: New.
6036 * config/i386/mingw-w64.opt: New.
6037 (municode): Add new target option.
6038 * doc/invoke.texi (municode): Add documentation for new option.
6039
0267afc4
ILT
60402009-04-21 Ian Lance Taylor <iant@google.com>
6041
6042 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6043 Correct test for number of arguments.
6044 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
6045
2ba9daa7
AS
60462009-04-21 Andreas Schwab <schwab@linux-m68k.org>
6047
6048 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
6049 argument of emit_library_call.
6050
ad8a1ac0
RG
60512009-04-21 Richard Guenther <rguenther@suse.de>
6052
6053 PR middle-end/39829
6054 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
6055 inside VIEW_CONVERT_EXPRs.
6056
7156c8ab
MJ
60572009-04-21 Martin Jambor <mjambor@suse.cz>
6058
6059 * tree-switch-conversion.c (build_constructors): Split a long line.
6060 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
6061 (build_one_array): Create assigns of constants if possible, do not
6062 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
6063 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
6064 make_rename_temp. Do not call mark_symbols_for_renaming, call
6065 update_stmt.
6066 (gen_def_assigns): Do not call mark_symbols_for_renaming or
6067 find_new_referenced_vars, call update_stmt.
6068 (gen_inbound_check): Use create_tmp_var and create ssa names manually
6069 instead of calling make_rename_temp. Do not call
6070 find_new_referenced_vars or mark_symbols_for_renaming, call
6071 update_stmt.
6072
2970ccb3
RG
60732009-04-21 Richard Guenther <rguenther@suse.de>
6074
6075 PR tree-optimization/39827
7d83f4f5 6076 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
6077 (tree_ssa_phiprop): Pass the correct array size.
6078
47f402d1
UB
60792009-04-21 Uros Bizjak <ubizjak@gmail.com>
6080
6081 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
6082
1e4ae551
MLI
60832009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
6084
6085 PR 16202
6086 * c-typeck.c (lvalue_p): Move declaration ...
6087 * c-common.h (lvalue_p): ... to here.
6088 * c-common.c (candidate_equal_p): New.
6089 (add_tlist): Use it.
6090 (merge_tlist): Use it.
6091 (warn_for_collisions_1): Likewise.
6092 (warning_candidate_p): Accept more candidates.
6093 (verify_tree): A warning candidate can be an expression. Use
6094 candidate_equal_p.
6095
244609a6
BE
60962009-04-21 Ben Elliston <bje@au.ibm.com>
6097
6098 PR target/5267
6099 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
6100 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
6101 options. Remove -mcall-solaris documentation.
6102
9c650d90
MLI
61032009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
6104
6105 PR c++/13358
6106 * doc/invoke.texi (-Wlong-long): Update description.
6107 * c-lex (interpret_integer): Only warn if there was no previous
6108 overflow and -Wlong-long is enabled.
6109 * c-decl.c (declspecs_add_type): Drop redundant flags.
6110 * c.opt (Wlong-long): Init to -1.
6111 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
6112 and front-end warn_long_long. Wlong-long only depends on other
6113 flags if it is uninitialized.
6114 * c-parser.c (disable_extension_diagnostics): warn_long_long is
6115 the same for CPP and FE.
6116 (restore_extension_diagnostics): Likewise.
6117
bbbbb16a
ILT
61182009-04-20 Ian Lance Taylor <iant@google.com>
6119
6120 Fix enum conversions which are invalid in C++:
47f402d1
UB
6121 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
6122 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6123 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
6124 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 6125 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 6126 (dbxout_parms): Likewise.
47f402d1 6127 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
6128 (df_clear_flags): Likewise.
6129 * df-problems.c (df_rd_bb_local_compute_process_def): Change
6130 top_flag parameter to int.
6131 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
6132 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
6133 Remove cast.
bbbbb16a
ILT
6134 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
6135 (df_ref_create_structure, df_def_record_1): Likewise.
6136 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
6137 (df_notes_rescan): Change 0 to VOIDmode in function call.
6138 (df_get_call_refs, df_insn_refs_collect): Likewise.
6139 (df_bb_regs_collect): Likewise.
6140 (df_entry_block_defs_collect): Likewise.
6141 (df_exit_block_uses_collect): Likewise.
6142 * df.h: Update declarations.
6143 * double-int.c (double_int_divmod): Add cast to enum type.
6144 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
6145 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
6146 (based_loc_descr): Likewise.
6147 (loc_descriptor_from_tree_1): Change first_op and second_op to
6148 enum dwarf_location_atom. Add cast to enum type.
6149 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 6150 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6151 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
6152 (do_store_flag): Likewise.
6153 * fixed-value.h (struct fixed_value): Change mode to enum
6154 machine_mode.
47f402d1 6155 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
6156 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
6157 function call.
6158 (insert_insn_decl, insert_decl, insert_state): Likewise.
6159 (automata_list_finish): Likewise.
6160 * genrecog.c (process_define_predicate): Add cast to enum type.
6161 * gensupport.c (init_predicate_table): Add cast to enum type.
6162 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
6163 function call.
6164 (gimple_build_call_1, gimple_build_label): Likewise.
6165 (gimple_build_goto, gimple_build_asm_1): Likewise.
6166 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 6167 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
6168 (enum fallback): Rename from enum fallback_t.
6169 (fallback_t): Typedef as int.
6170 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
6171 GSI_SAME_STMT in function call.
6172 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
6173 enum type.
6174 (setup_reg_class_relations): Likewise.
47f402d1 6175 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
6176 (setup_prohibited_class_mode_regs): Add cast to enum type.
6177 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 6178 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
6179 (record_address_regs): Change i to enum reg_class.
6180 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
6181 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
6182 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
6183 (GET_MODE_2XWIDER_MODE): Likewise.
6184 (GET_CLASS_NARROWEST_MODE): Likewise.
6185 * omp-low.c (expand_omp_for): Add cast to enum type.
6186 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
6187 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
6188 * postreload.c (reload_cse_simplify_operands): Change rclass local
6189 to enum reg_class.
6190 * predict.c (combine_predictions_for_insn): Change best_predictor
6191 and predictor to enum br_predictor.
6192 (combine_predictions_for_bb): Likewise.
6193 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
6194 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 6195 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
6196 * reginfo.c (init_move_cost): Add casts to enum type.
6197 (init_reg_sets_1, init_fake_stack_mems): Likewise.
6198 * regmove.c (regclass_compatible_p): Change class0 and class1 to
6199 enum reg_class.
6200 * reload.c (find_valid_class): Add casts to enum type.
6201 (push_reload): Change 0 to NO_REGS in function call.
6202 (find_reloads): Change this_alternative to array of enum
6203 reg_class. Remove some now-unnecessary casts.
6204 (make_memloc): Change 0 to VOIDmode in function call.
6205 * reload1.c (reload): Change 0 to VOIDmode in function call.
6206 (eliminate_regs_1, elimination_effects): Likewise.
6207 (eliminate_regs_in_insn): Likewise.
6208 (emit_input_reload_insns): Add cast to enum type.
6209 (delete_output_reload): Change 0 to VOIDmode in function call.
6210 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
6211 to enum type in function call.
6212 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
6213 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 6214 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
6215 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
6216 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
6217 (dump_function): Likewise.
6218 * tree-dump.h: Update declarations.
6219 * tree-pass.h: Update declarations.
6220 * varasm.c (assemble_integer): Change mclass to enum mode_class.
6221 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
6222 enum type.
6223 (arm_rtx_costs_1): Correct parenthesization.
6224 (arm_rtx_costs): Add casts to enum type.
6225 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
6226 (vfp_emit_fstmd): Use add_rg_note.
6227 (emit_multi_reg_push, emit_sfm): Likewise.
6228 (thumb_set_frame_pointer): Likewise.
6229 (arm_expand_prologue): Likewise.
6230 (arm_regno_class): Change return type to enum reg_class.
6231 (thumb1_expand_prologue): Use add_reg_note.
6232 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
6233 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
6234 in function call.
6235 * config/arm/gentune.sh: Add cast to enum type.
6236 * config/arm/arm-tune.md: Rebuild.
6237 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
6238 (ix86_split_fp_branch, predict_jump): Likewise.
6239 (ix86_expand_multi_arg_builtin): Change sub_code from enum
6240 insn_code to enum rtx_code.
6241 (ix86_builtin_vectorized_function): Add cast to enum type.
6242 * config/i386/i386.md (truncdfsf2): Change slot to enum
6243 ix86_stack_slot.
6244 (truncxf<mode>2, isinf<mode>2): Likewise.
6245 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
6246 enum type.
6247 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
6248 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
6249 (insert_bundle_state): Change 1 to INSERT in function call.
6250 (ia64_add_bundle_selector_before): Likewise.
6251 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
6252 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
6253 (restore_stack_nonlocal): Likewise.
6254 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
6255 function call.
6256 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
6257 function call.
6258 (mips_rtx_costs): Likewise.
6259 (mips_override_options): Add casts to enum type.
6260 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
6261 in function call.
6262 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
6263 (store_reg, set_reg_plus_d): Likewise.
6264 (hppa_expand_prologue, hppa_profile_hook): Likewise.
6265 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6266 cast to enum type.
6267 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
6268 function call.
6269 (emit_unlikely_jump): Use add_reg_note.
6270 (rs6000_emit_allocate_stack): Likewise.
6271 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
6272 (output_toc): Change 1 to INSERT in function call.
6273 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
6274 (rs6000_initialize_trampoline): Likewise.
6275 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
6276 function call.
6277 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
6278 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
6279 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
6280 (save_gprs): Use add_reg_note.
6281 (s390_emit_prologue): Likewise.
47f402d1 6282 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6283 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
6284 (sparc_fold_builtin): Add cast to enum type.
6285 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
6286 enum insn_code.
6287 (spu_expand_prologue): Use add_reg_note.
47f402d1 6288 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
6289
62902009-04-20 Ian Lance Taylor <iant@google.com>
6291
6292 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
6293 (c_parser_postfix_expression_after_primary): Get VEC for list of
6294 arguments. Get original types of arguments. Call
6295 build_function_call_vec.
6296 (cached_expr_list_1, cached_expr_list_2): New static variables.
6297 (c_parser_expr_list): Change return type to VEC *. Add
6298 p_orig_types parameter. Change all callers.
6299 (c_parser_release_expr): New static function.
6300 (c_parser_vec_to_tree_list): New static function.
6301 * c-typeck.c (build_function_call): Rewrite to build a VEC and
6302 call build_function_call_vec.
6303 (build_function_call_vec): New function, based on old
6304 build_function_call.
6305 (convert_arguments): Remove nargs and argarray parameters. Change
6306 values to a VEC. Add origtypes parameter.
47f402d1 6307 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
6308 (convert_for_assignment): Add origtype parameter. Change all
6309 callers. If warn_cxx_compat, check for conversion to an enum
6310 type when calling a function.
6311 (store_init_value): Add origtype parameter. Change all callers.
6312 (digest_init): Likewise.
6313 (struct init_node): Add origtype field.
6314 (add_pending_init): Add origtype parameter. Change all callers.
6315 (output_init_element): Likewise.
6316 (output_pending_init_elements): Pass origtype from init_node to
6317 output_init_element.
f28a61ab 6318 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
6319 output_init_element.
6320 (c_finish_return): Add origtype parameter. Change all callers.
6321 * c-common.c (sync_resolve_size): Change params to VEC *. Change
6322 caller.
6323 (sync_resolve_params): Likewise.
47f402d1 6324 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 6325 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 6326 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
6327 * c-decl.c (finish_decl): Add origtype parameter. Change all
6328 callers. Call build_function_call_vec rather than
6329 build_function_call for cleanup.
6330 * c-tree.h: Update declarations.
6331 * c-common.h: Update declarations.
6332 * stub-objc.c (objc_rewrite_function_call): Change parameter from
6333 params to first_param.
6334 * target.h (struct gcc_target): Change resolve_overloaded_builtin
6335 params parameter from tree to void *.
6336 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6337 Change arglist parameter to have type void *, and to be a pointer
6338 to a VEC.
6339 * config/rs6000/rs6000-protos.h
6340 (altivec_resolve_overloaded_builtin): Update declaration.
6341 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
6342 fnargs parameter to have type void *, and to be a pointer to a
6343 VEC. Call build_function_call_vec instead of
6344 build_function_call.
47f402d1 6345 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 6346
6ff078d4 63472009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 6348 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
6349 H.J. Lu <hongjiu.lu@intel.com>
6350
6351 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
6352
6353 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
6354 (IX86_LEA_PRIORITY): Likewise.
6355 (distance_non_agu_define): New function.
6356 (distance_agu_use): Likewise.
6357 (ix86_lea_for_add_ok): Likewise.
6358 (ix86_dep_by_shift_count): Likewise.
6359
6360 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
6361 should split for LEA.
6362
6363 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
6364 function.
6365 (ix86_dep_by_shift_count): Likewise.
6366
87a5b4cc
RG
63672009-04-20 Richard Guenther <rguenther@suse.de>
6368
6369 * expr.c (handled_component_p): Move ...
6370 * tree.h (handled_component_p): ... here.
6371 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
6372 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
6373 and REALPART_EXPR to be in one group.
6374
438c239d
RG
63752009-04-20 Richard Guenther <rguenther@suse.de>
6376
6377 * basic-block.h (get_all_dominated_blocks): Declare.
6378 * dominance.c (get_all_dominated_blocks): New function.
6379 * tree-cfg.c (get_all_dominated_blocks): Remove.
6380 (remove_edge_and_dominated_blocks): Adjust.
6381 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
6382 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
6383 instead of recursing.
6384
fed5ae11
DK
63852009-04-20 Doug Kwan <dougkwan@google.com>
6386
6387 * cgraph.h (cgraph_node_ptr): New type for vector functions.
6388 (struct cgraph_node_set_def): New type.
6389 (cgraph_node_set) New type. Also declare vector functions.
6390 (struct cgraph_node_set_element_def): New type.
6391 (cgraph_node_set_element): Ditto.
6392 (cgraph_node_set_iterator): New iterator type.
6393 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
6394 cgraph_node_set_remove, dump_cgraph_node_set,
6395 debug_cgraph_node_set): New prototypes.
6396 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
6397 cgraph_node_set_size): New inlines.
6398 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
6399 including cgraph.h.
6400 (struct ipa_opt_pass): Add struct cgraph_node_set_def
6401 argument to function 'write_summary'.
6402 * ipa.c: Include ggc.h.
6403 (hash_cgraph_node_set_element,
6404 eq_cgraph_node_set_element, cgraph_node_set_new,
6405 cgraph_node_set_add, cgraph_node_set_remove,
6406 cgraph_node_set_find, dump_cgraph_node_set,
6407 debug_cgraph_node_set): New functions.
6408 * Makefile.in (ipa.o): Add dependency on GGC_H.
6409
c4551b28
IR
64102009-04-20 Ira Rosen <irar@il.ibm.com>
6411
6412 PR tree-optimization/39675
2ba9daa7 6413 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
6414 check of the return code of vect_schedule_slp. Check that
6415 stmt_vec_info still exists for the statement, before checking its
6416 vectorization type.
c4551b28 6417
21a495fb
MM
64182009-04-20 Michael Matz <matz@suse.de>
6419
6420 * Makefile.in (generated_files): Take out $(simple_generated_c).
6421
8e208874
DK
64222009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
6423
6424 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
6425 (UINTPTR_TYPE): Likewise.
6426
a45e580b
JM
64272009-04-19 Joseph Myers <joseph@codesourcery.com>
6428
6429 PR c/37481
6430 * c-typeck.c (digest_init): Check for initializing an array with a
6431 string literal.
6432
20845d35
JM
64332009-04-19 Joseph Myers <joseph@codesourcery.com>
6434
6435 PR c/19771
6436 * c-semantics.c (pop_stmt_list): Propagate
6437 STATEMENT_LIST_HAS_LABEL to parent statement list.
6438
28143fdd
AN
64392009-04-19 Adam Nemet <anemet@caviumnetworks.com>
6440
6441 * config/mips/mips.h (mips_tune_attr): New macro.
6442 * config/mips/mips.md (cpu): Use it.
6443
da377db9
JM
64442009-04-19 Joseph Myers <joseph@codesourcery.com>
6445
6446 PR c/38243
6447 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
6448 declaring a tag.
6449
3baf459d
DN
64502009-04-19 Diego Novillo <dnovillo@google.com>
6451
6452 * toplev.c (compile_file): Move call to coverage_finish ...
6453 * cgraphunit.c (ipa_passes): ... here.
6454 Call cgraph_process_new_functions.
6455 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
6456 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
6457
b6fa5b01
JH
64582009-04-19 Jan Hubicka <jh@suse.cz>
6459
47f402d1
UB
6460 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
6461 cfun.
b6fa5b01
JH
6462 (dump_cgraph_node): Dump can throw external flag.
6463 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
6464
ca409efd
MLI
64652009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
6466
6467 PR c/32061
6468 PR c++/36954
6469 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
6470 * common.opt (Wlogical-op): Move from here...
6471 * c.opt (Wlogical-op): ... to here.
6472 * c-typeck.c (parser_build_binary_op): Update call to
6473 warn_logical_operator.
6474 * c-opts.c (c_common_post_options): Enable warn_logical_op with
6475 extra_warnings.
6476 * c-common.c (warn_logical_op): Update.
6477 * c-common.h (warn_logical_op): Update declaration.
6478
9db4cdd3
EB
64792009-04-19 Eric Botcazou <ebotcazou@adacore.com>
6480
6481 * tree.c (protected_set_expr_location): Fix formatting.
6482
f37acdf9
JM
64832009-04-18 Joseph Myers <joseph@codesourcery.com>
6484
6485 PR c/27676
6486 * c-typeck.c (readonly_warning): new.
6487 (build_unary_op, build_modify_expr): Use readonly_warning for
6488 storing into something readonly but not const-qualified.
6489
2b4b7036
JM
64902009-04-18 Joseph Myers <joseph@codesourcery.com>
6491
6492 PR c/22367
6493 * c-typeck.c (build_unary_op): Check for taking address of
6494 expression of type void.
6495
3ce62965
JM
64962009-04-18 Joseph Myers <joseph@codesourcery.com>
6497
6498 PR c/35210
6499 * c-typeck.c (build_function_call): Check for calling a function
6500 with qualified void return types. Call require_complete_type when
6501 generating a trap.
6502
2505c5ed
JH
65032009-04-18 Jan Hubicka <jh@suse.cz>
6504
6505 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
6506 Set nothrow flag.
6507 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
6508 can_throw_external flag.
6509 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
6510 * ipa-pure-const.c (ignore_edge): New function.
6511 (propagate): Compute order for NOTHROW computation; set NOTHROWs
6512 only over can_throw_external edges.
6513 (local_pure_const): Add nothrow flag.
6514 * ipa-utils.c (searchc): Add ignore_edge callback.
6515 (ipa_utils_reduced_inorder): Add ignore_edge callback.
6516 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
6517 (set_nothrow_function_flags): Update cgraph.
6518 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
6519
2586ba4b
RG
65202009-04-18 Richard Guenther <rguenther@suse.de>
6521
6522 PR middle-end/39804
6523 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
6524 (fold_stmt): ... this and ...
6525 (fold_stmt_inplace): ... this.
6526 (fold_stmt_1): Fold references in calls and asms.
6527 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
6528
1eefab17
KH
65292009-04-18 Kazu Hirata <kazu@codesourcery.com>
6530
6531 * tree-vrp.c (ssa_name_nonzero_p): Remove.
6532 * tree.h: Remove the prototype for ssa_name_nonzero_p.
6533
aa424b01
KH
65342009-04-18 Kazu Hirata <kazu@codesourcery.com>
6535
6536 * tree.c (function_args_count): Remove.
6537 * tree.h: Remove the prototype for function_args_count.
6538
613a896b
KH
65392009-04-18 Kazu Hirata <kazu@codesourcery.com>
6540
6541 * tree-iterator.c (expr_only): Remove.
6542 * tree.h: Remove the prototype for expr_only.
6543
579e694c
KH
65442009-04-18 Kazu Hirata <kazu@codesourcery.com>
6545
6546 * reginfo.c (cannot_change_mode_set_regs): Remove.
6547 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
6548
ee7e3ad3
AS
65492009-04-08 Anatoly Sokolov <aesok@post.ru>
6550
6551 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
6552 whether operands 0 and 1 overlaps.
6553
92ef7fb1
MLI
65542009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
6555
6556 PR middle-end/36902
6557 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
6558 pointer. Use warning_at instead of warning.
6559 (search_for_addr_array): Likewise.
6560 (check_array_bounds): Likewise.
6561 (check_all_array_refs): Check that the incoming edge is not in the
6562 list of edges to be removed.
6563 (check_all_array_refs): Avoid the temporal pointer.
6564 (vrp_visit_cond_stmt): Fix typo.
6565 (simplify_switch_using_ranges): Handle the case where the switch
6566 index is an integer constant.
6567
0e097268
AN
65682009-04-18 Adam Nemet <anemet@caviumnetworks.com>
6569
6570 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
6571
c782f1dd
KH
65722009-04-18 Kazu Hirata <kazu@codesourcery.com>
6573
6574 * doc/extend.texi, doc/invoke.texi: Fix typos.
6575
668fb0e8
CC
65762009-04-17 Cary Coutant <ccoutant@google.com>
6577
6578 * tree-flow-inline.h (get_lineno): Fix inverted test.
6579
4d4014c1
DN
65802009-04-17 Diego Novillo <dnovillo@google.com>
6581
6582 * tree-ssa-pre.c (create_expression_by_pieces): Remove
6583 assertion for AVAIL_OUT.
6584
2984e1b6
MF
65852009-04-17 Mike Frysinger <vapier@gentoo.org>
6586
6587 PR target/38627
6588 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
6589 * config/sh/linux-atomic.asm: Likewise.
6590
9994a182
DN
65912009-04-17 Diego Novillo <dnovillo@google.com>
6592
6593 * except.c (debug_eh_tree): New.
6594 (struct eh_region, struct eh_status): Move ...
6595 * except.h: ... here.
6596 (add_type_for_runtime): Declare extern.
6597 (lookup_type_for_runtime): Likewise.
6598 (debug_eh_tree): Declare.
6599 * Makefile.in (GTFILES): List except.h before except.c
6600
07485407
DN
66012009-04-17 Diego Novillo <dnovillo@google.com>
6602
47f402d1 6603 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
6604 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
6605 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
6606 (find_vars_r): ... here.
6607 * tree-flow.h (find_referenced_vars_in): Declare.
6608 * tree-ssa-pre.c (create_expression_by_pieces): Assert
6609 that AVAIL_OUT exists for BLOCK.
6610 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
6611 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
6612 (tree-parloops.o): Likewise.
6613
4e53d196
SB
66142009-04-17 Simon Baldwin <simonb@google.com>
6615
6616 * toplev.c (default_tree_printer): Add handling for %E format.
6617
413d3aa8
DN
66182009-04-17 Diego Novillo <dnovillo@google.com>
6619
47f402d1
UB
6620 * tree-pretty-print.c (dump_generic_node): Add break after
6621 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
6622 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
6623 FUNCTION_TYPE together. Call print_struct_decl when printing
6624 structures and TDF_SLIM is not given.
413d3aa8
DN
6625 (print_struct_decl): Fix logic for detecting recursion.
6626
5a691e98
RAE
66272009-04-17 Rafael Avila de Espindola <espindola@google.com>
6628
6629 PR 31567
6630 * gcc.c (create_at_file): New.
6631 (compile_input_file_p): New.
6632 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
6633 * main.c (main): Update call to toplev_main.
6634 * toplev.c (toplev_main): Change signature. Call expandargv.
6635 * toplev.h (toplev_main): Change signature.
6636
9eacf7a6
EB
66372009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6638
6639 * dwarf2out.c (field_byte_offset): Use the type size as the field size
6640 if the latter is not constant.
6641
58298177
DE
66422009-04-17 David Edelsohn <edelsohn@gnu.org>
6643
6644 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
6645
5b4c43d7
EB
66462009-04-17 Eric Botcazou <ebotcazou@adacore.com>
6647
6648 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
6649 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
6650
b51605c4
RG
66512009-04-17 Richard Guenther <rguenther@suse.de>
6652
6653 * tree-ssa-structalias.c (get_constraint_for_component_ref):
6654 Handle component references view-converting an invariant address.
6655
9e3be889
AN
66562009-04-17 Adam Nemet <anemet@caviumnetworks.com>
6657
6658 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
6659 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
6660 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
6661 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
6662 Use @deftypevr rather than @deftypevar.
6663
7c3e9dc3
RG
66642009-04-17 Richard Guenther <rguenther@suse.de>
6665
47f402d1 6666 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
6667 (get_prop_source_stmt): Likewise.
6668 (can_propagate_from): Likewise.
6669
aca600aa
AS
66702009-04-17 Andrew Stubbs <ams@codesourcery.com>
6671
6672 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
6673 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
6674 (--with-multilib-list): Add default value.
6675 * configure: Regenerate.
6676 * Makefile.in (TM_ENDIAN_CONFIG): Define.
6677 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
6678 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
6679 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
6680 Don't add default cpu to multilib list unnecessarily, but do enable
6681 the relevant compiler option..
6682 Add support for --with-multilib-list=<blank> and
6683 --with-multilib-list=!<somelib> to supress unwanted multilibs.
6684 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
6685 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
6686 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
6687 TM_MULTILIB_CONFIG.
6688 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
6689 (MULTILIB_OSDIRNAMES): New variable.
6690 * config/sh/t-1e: Delete file.
6691 * config/sh/t-mlib-sh1: Delete file.
6692 * config/sh/t-mlib-sh2: Delete file.
6693 * config/sh/t-mlib-sh2a: Delete file.
6694 * config/sh/t-mlib-sh2a-nofpu: Delete file.
6695 * config/sh/t-mlib-sh2a-single: Delete file.
6696 * config/sh/t-mlib-sh2a-single-only: Delete file.
6697 * config/sh/t-mlib-sh2e: Delete file.
6698 * config/sh/t-mlib-sh3e: Delete file.
6699 * config/sh/t-mlib-sh4: Delete file.
6700 * config/sh/t-mlib-sh4-nofpu: Delete file.
6701 * config/sh/t-mlib-sh4-single: Delete file.
6702 * config/sh/t-mlib-sh4-single-only: Delete file.
6703 * config/sh/t-mlib-sh4a: Delete file.
6704 * config/sh/t-mlib-sh4a-nofpu: Delete file.
6705 * config/sh/t-mlib-sh4a-single: Delete file.
6706 * config/sh/t-mlib-sh4a-single-only: Delete file.
6707 * config/sh/t-mlib-sh4al: Delete file.
6708 * config/sh/t-mlib-sh5-32media: Delete file.
6709 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
6710 * config/sh/t-mlib-sh5-64media: Delete file.
6711 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
6712 * config/sh/t-mlib-sh5-compact: Delete file.
6713 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
6714 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
6715 * doc/install.texi (Options specification): Add
6716 --with-multilib-list and --with-endian.
6717
cf8aba7f
RAE
67182009-04-17 Rafael Avila de Espindola <espindola@google.com>
6719
6720 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
6721 REVISION_c.
6722 (OBJS-common): Add plugin-version.o.
6723 (plugin-version.o): New.
6724 * gcc-plugin.h (plugin_gcc_version): New.
6725 (plugin_default_version_check): New.
6726 (plugin_init_func, plugin_init): Add version argument.
6727 * plugin-version.c: New.
6728 * plugin.c (str_plugin_gcc_version_name): New.
6729 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
6730 pass it to the init function.
6731 (plugin_default_version_check): New.
6732
61e20b90
RG
67332009-04-17 Richard Guenther <rguenther@suse.de>
6734
6735 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
6736 for decl-vs-decl disambiguation.
6737
90c6fd8a
AK
67382009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
6739
6740 * config/s390/s390.h (s390_tune_attr): New macro definition.
6741 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
6742
9fe9fe04
RG
67432009-04-17 Richard Guenther <rguenther@suse.de>
6744
6745 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
6746 (fold_stmt_r): Likewise.
6747 (maybe_fold_reference): New function.
6748 (fold_gimple_assign): Handle cases fold_stmt_r did.
6749 (fold_stmt): Do not use fold_stmt_r.
6750 (fold_stmt_inplace): Likewise.
6751
7e673273
RG
67522009-04-17 Richard Guenther <rguenther@suse.de>
6753
6754 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
6755 (record_equivalences_from_stmt): Remove useless checks and
6756 simplifications.
6757 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
6758 the type is already suitable.
6759
fabf2749
PB
67602009-04-17 Paolo Bonzini <bonzini@gnu.org>
6761
6762 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
6763
68f7b061
UB
67642009-04-17 Uros Bizjak <ubizjak@gmail.com>
6765
6766 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
6767 (CMPtype): Define as __gcc_CMPtype.
6768
532bfb0a
AJ
67692009-04-17 Aurelien Jarno <aurelien@aurel32.net>
6770
6771 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
6772 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
6773
e3ac77ff
RG
67742009-04-17 Richard Guenther <rguenther@suse.de>
6775
6776 PR tree-optimization/39746
6777 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
6778 special-casing for builtins and static variable use/def.
6779 (call_may_clobber_ref_p_1): Likewise.
6780
7072a650
ILT
67812009-04-16 Ian Lance Taylor <iant@google.com>
6782
6783 * df.h: Include "timevar.h".
6784 (struct df_problem): Change tv_id field to timevar_id_t.
6785 * tree-pass.h: Include "timevar.h".
6786 (struct opt_pass): Change tv_id field to timevar_id_t.
6787 * timevar.h (timevar_id_t): Define TV_NONE.
6788 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
6789 TV_NONE rather than tv_id != 0.
6790 (execute_one_pass): Likewise.
6791 * Makefile.in (DF_H): Add $(TIMEVAR_H).
6792 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
6793 dependencies to $(TREE_PASS_H).
6794 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
6795 to TV_NONE.
6796 (pass_branch_target_load_optimize2): Likewise.
6797 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
6798 (pass_outof_cfg_layout_mode): Likewise.
6799 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
6800 (pass_rebuild_cgraph_edges): Likewise.
6801 (pass_remove_cgraph_callee_edges): Likewise.
6802 * df-core.c (pass_df_initialize_opt): Likewise.
6803 (pass_df_initialize_no_opt): Likewise.
6804 (pass_df_finish): Likewise.
6805 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
6806 * except.c (pass_set_nothrow_function_flags): Likewise.
6807 (pass_convert_to_eh_region_ranges): Likewise.
6808 * final.c (pass_compute_alignments): Likewise.
6809 * function.c (pass_instantiate_virtual_regs): Likewise.
6810 (pass_init_function): Likewise.
6811 (pass_leaf_regs): Likewise.
6812 (pass_match_asm_constraints): Likewise.
6813 * gimple-low.c (pass_lower_cf): Likewise.
6814 (pass_mark_used_blocks): Likewise.
6815 * init-regs.c (pass_initialize_regs): Likewise.
6816 * integrate.c (pass_initial_value_sets): Likewise.
6817 * ira.c (pass_ira): Likewise.
6818 * jump.c (pass_cleanup_barriers): Likewise.
6819 * omp-low.c (pass_expand_omp): Likewise.
6820 (pass_lower_omp): Likewise.
6821 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
6822 * recog.c (pass_split_all_insns): Likewise.
6823 (pass_split_after_reload): Likewise.
6824 (pass_split_before_regstack): Likewise.
6825 (pass_split_before_sched2): Likewise.
6826 (pass_split_for_shorten_branches): Likewise.
6827 * reginfo.c (pass_reginfo_init): Likewise.
6828 (pass_subregs_of_mode_init): Likewise.
6829 (pass_subregs_of_mode_finish): Likewise.
6830 * passes.c (pass_postreload): Likewise.
6831 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
6832 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
6833 (pass_warn_function_return): Likewise.
6834 (pass_warn_function_noreturn): Likewise.
6835 * tree-complex.c (pass_lower_complex): Likewise.
6836 (pass_lower_complex_O0): Likewise.
6837 * tree-if-conv.c (pass_if_conversion): Likewise.
6838 * tree-into-ssa.c (pass_build_ssa): Likewise.
6839 * tree-mudflap.c (pass_mudflap_1): Likewise.
6840 (pass_mudflap_2): Likewise.
6841 * tree-nomudflap.c (pass_mudflap_1): Likewise.
6842 (pass_mudflap_2): Likewise.
6843 * tree-nrv.c (pass_return_slot): Likewise.
6844 * tree-object-size.c (pass_object_sizes): Likewise.
6845 * tree-optimize.c (pass_all_optimizations): Likewise.
6846 (pass_early_local_passes): Likewise.
6847 (pass_all_early_optimizations): Likewise.
6848 (pass_cleanup_cfg): Likewise.
6849 (pass_cleanup_cfg_post_optimizing): Likewise.
6850 (pass_free_datastructures): Likewise.
6851 (pass_free_cfg_annotations): Likewise.
6852 (pass_fixup_cfg): Likewise.
6853 (pass_init_datastructures): Likewise.
6854 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
6855 (pass_late_warn_uninitialized): Likewise.
6856 (pass_update_address_taken): Likewise.
6857 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
6858 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
6859 (pass_cse_sincos): Likewise.
6860 (pass_convert_to_rsqrt): Likewise.
6861 * tree-ssa-structalias.c (pass_build_alias): Likewise.
6862 * tree-stdarg.c (pass_stdarg): Likewise.
6863 * tree-tailcall.c (pass_tail_recursion): Likewise.
6864 (pass_tail_calls): Likewise.
6865 * tree-vect-generic.c (pass_lower_vector): Likewise.
6866 (pass_lower_vector_ssa): Likewise.
6867 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
6868
0051ef59
JM
68692009-04-16 Joseph Myers <joseph@codesourcery.com>
6870
6871 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
6872 XLR entry.
6873 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
6874 Handle -march=xlr.
6875 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
6876 logical and signext.
6877
b3f8558a
KK
68782009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
6879
6880 PR target/39767
6881 * config/sh/predicates.md (arith_operand): Check if the operand
6882 of TRUNCATE is a REG.
6883
f57597d9
KH
68842009-04-16 Kazu Hirata <kazu@codesourcery.com>
6885
6886 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
6887 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
6888
b172d063
KH
68892009-04-16 Kazu Hirata <kazu@codesourcery.com>
6890
6891 * tree-iterator.c (tsi_split_statement_list_after,
6892 tsi_split_statement_list_before): Remove.
6893 * tree-iterator.h: Remove the prototypes for
532bfb0a 6894 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 6895
78fe4f1f
KH
68962009-04-16 Kazu Hirata <kazu@codesourcery.com>
6897
6898 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
6899 * tree-ssa-propagate.h: Remove the prototype for
6900 stmt_makes_single_load.
6901
43dd3201
KH
69022009-04-16 Kazu Hirata <kazu@codesourcery.com>
6903
6904 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
6905 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
6906
4252a4aa
KH
69072009-04-16 Kazu Hirata <kazu@codesourcery.com>
6908
6909 * tree-iterator.c (EXPR_LAST_BODY): Remove.
6910
bfb69968
KH
69112009-04-16 Kazu Hirata <kazu@codesourcery.com>
6912
6913 * except.c (eh_region_outer_p): Remove.
6914 * except.h: Remove the prototype for eh_region_outer_p.
6915
c7db7fa5
KH
69162009-04-16 Kazu Hirata <kazu@codesourcery.com>
6917
6918 * function.c (current_function_assembler_name): Remove.
6919 * function.h: Remove the prototype for
6920 current_function_assembler_name.
6921
efc0b2bd
ILT
69222009-04-16 Ian Lance Taylor <iant@google.com>
6923
532bfb0a 6924 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
6925 (add_reg_note): Call alloc_reg_note.
6926 * rtl.h (alloc_reg_note): Declare.
6927 * combine.c (try_combine): Use alloc_reg_note.
6928 (recog_for_combine, move_deaths): Likewise.
6929 (distribute_notes): Use alloc_reg_note and add_reg_note.
6930 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
6931 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
6932 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
6933
6080348f
VM
69342009-04-16 Vladimir Makarov <vmakarov@redhat.com>
6935
6936 PR rtl-optimization/39762
6937 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
6938 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 6939 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 6940
6080348f
VM
6941 * ira-conflicts.c (process_regs_for_copy): Use function
6942 ira_get_register_move_cost instead of global
6943 ira_register_move_cost.
6944
6945 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
6946 color_pass, move_spill_restore, update_curr_costs): Ditto.
6947
6948 * ira-lives.c (process_single_reg_class_operands): Ditto.
6949
6950 * ira-emit.c (emit_move_list): Ditto.
6951
6952 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
6953 (record_reg_classes): Ditto. Use functions
6954 ira_get_register_move_cost and ira_get_may_move_cost instead of
6955 global vars ira_register_move_cost, ira_may_move_out_cost and
6956 ira_may_move_in_cost.
6957 (record_address_regs): Don't call ira_init_register_move_cost.
6958 Use function ira_get_may_move_cost instead of global
6959 ira_may_move_in_cost.
6960 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 6961 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 6962 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 6963
646bea10
RG
69642009-04-16 Richard Guenther <rguenther@suse.de>
6965
6966 * tree-cfg.c (verify_gimple_assign_binary):
6967 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
6968 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
6969 (create_general_new_stmt): Note that this function is broken.
6970
02e819ff
RAE
69712009-04-16 Rafael Avila de Espindola <espindola@google.com>
6972
6973 * common.opt (fhelp): Add Var(help_flag).
6974 * gcc-plugin.h (plugin_info): Add help.
6975 * plugin.c (plugin_name_args): Add help.
6976 (register_plugin_info): Set plugin->help.
6977 (print_help_one_plugin): New.
6978 (print_plugins_help): New.
6979 * plugin.h (print_plugins_help): New.
6980 * toplev.c (toplev_main): Call print_plugins_help if needed.
6981
ccacdf06
RG
69822009-04-16 Richard Guenther <rguenther@suse.de>
6983
6984 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
6985 (gimple_ior_addresses_taken_1): New function.
6986 (gimple_ior_addresses_taken): Likewise.
6987 * gimple.h (struct gimple_statement_with_ops_base): Remove
6988 addresses_taken member.
6989 (gimple_ior_addresses_taken): Declare.
6990 (gimple_addresses_taken, gimple_addresses_taken_ptr,
6991 gimple_set_addresses_taken): Remove.
6992 * ipa-reference.c (mark_address): New function.
6993 (scan_stmt_for_static_refs): Use it for marking addresses taken.
6994 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
6995 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
6996 (gimple_add_to_addresses_taken): Remove.
6997 (get_tmr_operands): Call mark_address_taken.
6998 (get_asm_expr_operands): Likewise.
6999 (get_expr_operands): Likewise.
7000 (build_ssa_operands): Do not clear the addresses_taken bitmap.
7001 (free_stmt_operands): Do not free it.
7002 * tree-ssa.c (delete_tree_ssa): Likewise.
7003 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
7004
346ef3fa
RG
70052009-04-16 Richard Guenther <rguenther@suse.de>
7006
7007 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
7008 (walk_stmt_load_store_ops): Likewise.
7009 * gimple.c (get_base_loadstore): New function.
7010 (walk_stmt_load_store_addr_ops): Likewise.
7011 (walk_stmt_load_store_ops): Likewise.
7012 * ipa-pure-const.c (check_op): Simplify.
7013 (check_load, check_store): New functions.
7014 (check_stmt): Use walk_stmt_load_store_ops.
7015 * ipa-reference.c (mark_load): Adjust signature.
7016 (mark_store): Likewise.
7017 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
7018
44e9f006
RAE
70192009-04-16 Rafael Avila de Espindola <espindola@google.com>
7020
7021 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
7022 (plugin_info): New.
7023 * opts.c (common_handle_option): Don't call print_version.
7024 * plugin.c (plugin_name_args): Add version.
7025 (register_plugin_info): New.
7026 (register_callback): Handle PLUGIN_INFO.
7027 (try_init_one_plugin): New.
7028 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
7029 if failed to init.
7030 (finalize_one_plugin): New.
7031 (finalize_plugins): New.
7032 (print_one_plugin): New.
7033 (print_plugins_versions): New.
7034 * plugin.h (print_plugins_versions): New.
7035 (finalize_plugins): New.
7036 * toplev.c (compile_file): Don't call initialize_plugins.
7037 (print_version): Call print_plugins_versions.
7038 (toplev_main): Call initialize_plugins. Print version if needed.
7039 Call finalize_plugins.
7040
41fd0f9b
RAE
70412009-04-16 Rafael Avila de Espindola <espindola@google.com>
7042
7043 * common.opt (fversion): New.
7044 * gcc.c (print_version): New.
7045 (process_command): Don't print the version. Just set print_version.
7046 (main): Print version. Call subprocesses if print_version and
7047 verbose_flag are set.
7048 * opts.c (common_handle_option): Handle OPT_fversion.
7049
550918ca 70502009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 7051 Ira Rosen <irar@il.ibm.com>
550918ca
RG
7052
7053 PR tree-optimization/39698
7054 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
7055 type of the reduction variable. Only generate the def if
7056 it is needed.
7057
7058 * omp-low.c (expand_omp_for_generic): When converting to a pointer
7059 make sure to first convert to an integer of the same precision.
7060 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
7061 the type of the evolution correctly in computing the new
7062 induction variable base.
7063
54634841
RG
70642009-04-16 Richard Guenther <rguenther@suse.de>
7065
7066 PR middle-end/39625
7067 * tree-cfg.c (make_blocks): Split statements with to-be
7068 abnormal SSA names on the lhs.
7069
b6fc2cdb
PB
70702009-04-16 Paolo Bonzini <bonzini@gnu.org>
7071
7072 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
7073 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
7074 * c-typeck.c (really_start_incremental_init): Likewise.
7075 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
7076 (TARGET_INITIALIZER): Remove it.
7077 * target.h (struct target): Remove vector_opaque_p.
7078 * tree.c (build_opaque_vector_type): New.
7079 * tree.h (TYPE_VECTOR_OPAQUE): New.
7080 (build_opaque_vector_type): Declare.
7081 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
7082 * config/rs6000/rs6000.c (build_opaque_vector_type,
7083 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
7084 (rs6000_init_builtins): Use build_opaque_vector_type for
7085 opaque_V4SI_type_node.
7086
a417cdd9
CM
70872009-04-15 Catherine Moore <clm@codesourcery.com>
7088
532bfb0a
AJ
7089 * debug.h (set_name): Declare.
7090 * dwarf2out.c (dwarf2out_set_name): Declare.
7091 (dwarf2_debug_hooks): Add set_name.
7092 (find_AT_string): New.
7093 (add_AT_string): Call find_AT_string.
7094 (dwarf2out_set_name): New.
7095 * cp/decl.c (grokdeclarator): Call set_name.
7096 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
7097 * debug.c (do_nothing_debug_hooks): Likewise.
7098 * dbxout.c (dbx_debug_hooks): Likewise.
7099 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 7100
60839f5d 71012009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 7102
532bfb0a
AJ
7103 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
7104 reg for single-precision FPU.
7105 * config/rs6000/rs6000.md (movsi_internal1): Only for
7106 !TARGET_SINGLE_FPU.
7107 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
7108 single-precision FP regs.
7109
ada39f0b
RG
71102009-04-15 Richard Guenther <rguenther@suse.de>
7111
7112 * omp-low.c (lower_rec_input_clauses): Build correct address
7113 expressions.
7114 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 7115 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
7116 (generate_memset_zero): Fix types.
7117 * tree-profile.c (prepare_instrumented_value): Correctly
7118 widen a pointer.
7119
6866c6e8
ILT
71202009-04-15 Ian Lance Taylor <iant@google.com>
7121
7122 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
7123 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
7124 for -Wall and for -Wc++-compat.
7125 (c_common_post_options): For C++, set warn_enum_compare if not
7126 already set.
7127 * c-tree.h (struct c_expr): Add field original_type.
7128 (build_external_ref): Update declaration.
7129 * c-parser.c (c_parser_braced_init): Set original_type.
7130 (c_parser_initelt): Likewise.
7131 (c_parser_expr_no_commas): Likewise.
7132 (c_parser_conditional_expression): Likewise.
7133 (c_parser_cast_expression): Likewise.
7134 (c_parser_unary_expression): Likewise. Pull setting of
7135 original_code to top of function.
7136 (c_parser_sizeof_expression): Set original_type.
7137 (c_parser_alignof_expression): Likewise.
7138 (c_parser_postfix_expression): Likewise. Pull setting of
7139 original_code to top of function.
532bfb0a 7140 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
7141 (c_parser_postfix_expression_after_primary): Likewise.
7142 (c_parser_expression): Likewise.
7143 * c-typeck.c (build_external_ref): Add type parameter. Change all
7144 callers.
7145 (c_expr_sizeof_expr): Set original_type field.
7146 (parser_build_unary_op): Likewise.
7147 (parser_build_binary_op): Likewise. Optionally warn about
7148 comparisons of enums of different types.
7149 (digest_init): Set original_type field.
7150 (really_start_incremental_init): Likewise.
7151 (push_init_level, pop_init_level): Likewise.
7152 * doc/invoke.texi (Warning Options): -Wenum-compare now
7153 supported in C.
7154
f116fecf
RG
71552009-04-15 Richard Guenther <rguenther@suse.de>
7156
7157 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
7158 out a necessary conversion.
7159 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
7160 names we didn't value number.
7161 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
7162
25e20805
RG
71632009-04-15 Richard Guenther <rguenther@suse.de>
7164
7165 PR tree-optimization/39764
7166 * tree-ssa-ccp.c (get_value): Canonicalize value with
7167 canonicalize_float_value.
7168
90cc3676
JH
71692009-04-15 Jan Hubicka <jh@suse.cz>
7170
7171 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
7172 Wrong version of patch.
7173
6d14c006
JH
71742009-04-15 Jan Hubicka <jh@suse.cz>
7175
7176 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
7177
5afaa917
NS
71782009-04-15 Nathan Sidwell <nathan@codesourcery.com>
7179
7180 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
7181 our distinct integral and vector types.
7182
3b482fca
RAE
71832009-04-15 Rafael Avila de Espindola <espindola@google.com>
7184
7185 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
7186 * init.c (build_vtbl_address): Remove call to assemble_external.
7187
6cd1d2e2
DJ
71882009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
7189
7190 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
7191 output for other floating point modes.
7192
dab71827
DN
71932009-04-14 Diego Novillo <dnovillo@google.com>
7194
7195 * diagnostic.c (diagnostic_report_diagnostic): Do not
7196 warn about loaded plugins for DK_ERROR and DK_WARNING.
7197 * c-decl.c (declspecs_add_type): Move call to
7198 invoke_plugin_callbacks ...
7199 * c-parser.c (c_parser_declspecs): ... here.
7200 * plugin.c (dump_active_plugins): Tidy output.
7201
68a607d8
DN
72022009-04-14 Diego Novillo <dnovillo@google.com>
7203 Le-Chun Wu <lcwu@google.com>
7204
7205 * configure.ac: Add --enable-plugin support.
7206 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
7207 * Makefile.in (PLUGIN_H): Define.
7208 Export ENABLE_PLUGIN and GMPINC to site.exp.
7209 Add PLUGINLIBS to link command.
7210 Add/modify dependencies for plugin.o and files including plugin.h.
7211 (plugin.o): New.
7212 * config.in: Regenerate.
2ba9daa7 7213
68a607d8
DN
7214 * opts.c (common_handle_option): Handle OPT_fplugin_ and
7215 OPT_fplugin_arg_.
7216
72172009-04-14 Le-Chun Wu <lcwu@google.com>
7218
7219 * tree-pass.h (register_one_dump_file): Add a prototype for
7220 register_one_dump_file.
7221 * toplev.c (compile_file): Call initialize_plugins.
7222 (do_compile): Call invoke_plugin_callbacks.
7223 (toplev_main): Call invoke_plugin_callbacks.
7224 * common.opt: Add -fplugin= and -fplugin-arg-.
7225 * gcc-plugin.h: New public header file for plugins to include.
7226 * plugin.c: New source file.
7227 * plugin.h: New internal header file.
7228 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 7229
68a607d8
DN
7230 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
7231
72322009-04-14 Diego Novillo <dnovillo@google.com>
7233
7234 * doc/plugins.texi: New.
7235 * doc/gccint.texi: Add reference to Plugins chapter.
7236 * doc/invoke.texi: Document -fplugin and -fplugin-arg
7237 * diagnostic.c (diagnostic_report_diagnostic): Warn about
7238 loaded plugins, if any.
7239 * timevar.def (TV_PLUGIN_INIT): Define.
7240 (TV_PLUGIN_RUN): Define.
7241 * plugin.c: Include timevar.h
7242 (plugins_active_p): New.
7243 (dump_active_plugins): New.
7244 (debug_active_plugins): New.
7245
50617257
JM
72462009-04-14 Joseph Myers <joseph@codesourcery.com>
7247
7248 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
7249 library paths.
7250 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
7251
b32f6fff
KH
72522009-04-14 Kazu Hirata <kazu@codesourcery.com>
7253
7254 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
7255 the same as a minus without a shift.
7256
85d04fa2
NC
72572009-04-14 Nick Clifton <nickc@redhat.com>
7258
7259 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
7260 comparisons with small integers will always produce a short
7261 branch.
7262
e495a0c8
RAE
72632009-04-14 Rafael Avila de Espindola <espindola@google.com>
7264
7265 Merge:
e495a0c8
RAE
7266 2008-12-19 Diego Novillo <dnovillo@google.com>
7267
532bfb0a 7268 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 7269
ad41bd84 72702009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
7271
7272 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
7273 verification.
7274 (verify_gimple_assign_binary): Likewise. Handle shifts and
7275 rotates correctly.
7276 (verify_gimple_phi): Print the mismatched argument position.
7277 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
7278 Fix types.
7279 (vect_update_init_of_dr): Likewise.
7280 * matrix-reorg.c (transform_access_sites): Do what the
7281 comment suggests.
7282 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
7283
60839f5d 72842009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
7285
7286 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
7287 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
7288 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 7289 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
7290 remove duplicate config
7291
b0e2d008
DR
72922009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
7293
7294 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
7295 file_name:line_number type locator of the call site.
2ba9daa7 7296
1244a8b7
VM
72972009-04-13 Vladimir Makarov <vmakarov@redhat.com>
7298
7299 * genautomata.c: Put blank after comma.
7300 (automaton_decls): New.
7301 (struct unit_usage): Add comments to member next.
7302 (store_alt_unit_usage): Keep the list ordered.
7303 (unit_present_on_list_p, equal_alternatives_p): New.
7304 (check_regexp_units_distribution): Check units distribution
7305 correctness correctly.
7306 (main): Don't write automata if error is found. Return correct
7307 exit code.
2ba9daa7 7308
1244a8b7
VM
7309 * config/m68k/cf.md (cfv4_ds): Remove.
7310 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
7311 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
7312
7313 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
7314 power4-load-ext, power4-store, power4-store-update,
7315 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
7316 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
7317 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
7318 power4-sqrt, power4-isync): Modify reservation to make correct
7319 unit distribution to automata.
7320
7321 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
7322 power5-store-update, power5-two, power5-three, power5-lmul,
7323 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 7324
f7dd1864
AN
73252009-04-13 Adam Nemet <anemet@caviumnetworks.com>
7326
7327 * except.c (pass_set_nothrow_function_flags): Set name and add
7328 TODO_dump_func.
7329 (set_nothrow_function_flags): Mention in the dump file when
7330 changing a function to nothrow.
7331
59a1171f
OS
73322009-04-13 Ozkan Sezer <sezeroz@gmail.com>
7333
7334 PR/39066
7335 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
7336 instead of unsigned long.
7337
934c2060
RR
73382009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7339
f7dd1864
AN
7340 * config/arm/arm.c (return_used_this_function): Remove.
7341 (arm_output_function_prologue): Remove use of
934c2060 7342 return_used_this_function.
f7dd1864 7343 (output_return_instruction): Replace use of
934c2060
RR
7344 return_used_this_function
7345 by cfun->machine->return_used_this_function.
f7dd1864
AN
7346 (arm_output_epilogue): Likewise.
7347 (arm_output_function_epilogue): Likewise.
7348 (thumb_unexpanded_epilogue): Likewise.
7349 * config/arm/arm.h (struct machine_function):
934c2060 7350 New member return_used_this_function.
f7dd1864 7351
ae5cc016
MM
73522009-04-12 Mark Mitchell <mark@codesourcery.com>
7353
7354 * doc/install.texi: Correct description of default directory for
7355 --with-gxx-include-dir.
7356
a0ce68df 73572009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
7358
7359 * fold-const.c (build_range_check): Properly deal with enumeral and
7360 boolean base types.
7361
3906a4a1
SB
73622009-04-12 Steven Bosscher <steven@gcc.gnu.org>
7363
7364 * doc/invoke.texi (max_gcse_passes): Remove documentation.
7365 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
7366 * params.h (MAX_GCSE_PASSES): Remove.
7367 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
7368 in sequence. Remove ability to run multiple passes.
7369 (bypass_jumps): Report run as third CPROP pass.
7370
efaadb93
AN
73712009-04-12 Adam Nemet <anemet@caviumnetworks.com>
7372
7373 PR middle-end/39651
7374 * except.c (can_throw_external): Look at each insn in a SEQUENCE
7375 when deciding whether the whole SEQUENCE can throw.
7376
4c48007b
UB
73772009-04-12 Uros Bizjak <ubizjak@gmail.com>
7378
7379 PR target/39740
7380 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
7381 offseted label references.
7382
b4104018
JH
73832009-04-11 Jan Hubicka <jh@suse.cz>
7384
7385 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
7386
32848948
RG
73872009-04-11 Richard Guenther <rguenther@suse.de>
7388
7389 PR middle-end/39732
7390 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
7391 return variables as TREE_ADDRESSABLE.
7392
8810712e
RG
73932009-04-11 Richard Guenther <rguenther@suse.de>
7394
7395 PR tree-optimization/39713
7396 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
7397 reference trees have SSA_NAME operands.
7398
fa78c0c1
RG
73992009-04-11 Richard Guenther <rguenther@suse.de>
7400
7401 PR c/39712
7402 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
7403 address expressions.
7404
4d722130
DK
74052009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
7406
7407 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
7408 match changes in Cygwin 1.7
7409 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
7410 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
7411
567a90f5
PB
74122009-04-10 Paolo Bonzini <bonzini@gnu.org>
7413
7414 PR tree-optimization/39701
7415 * doc/invoke.texi (Optimization Options): Document change in
7416 meaning and initialization of -fdelete-null-pointer-checks.
7417
1ad2f450
L
74182009-04-10 H.J. Lu <hongjiu.lu@intel.com>
7419
7420 PR middle-end/39701
7421 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
7422
7423 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
7424 here.
7425
7426 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
7427
1afc5373
CF
74282009-04-10 Chao-ying Fu <fu@mips.com>
7429
7430 * doc/tm.texi (Instruction Output): Document
7431 TARGET_ASM_FINAL_POSTSCAN_INSN.
7432 * target.h (final_postscan_insn): New field in asm_out.
7433 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7434 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
7435 * final.c (final_scan_insn): Call
7436 targetm.asm_out.final_postscan_insn after outputting
7437 an asm macro and a normal instruction.
7438
7439 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
7440 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
7441 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
7442 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
7443 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
7444
4d35e75c
PB
74452009-04-10 Paolo Bonzini <bonzini@gnu.org>
7446
7447 PR middle-end/39701
1ad2f450
L
7448 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
7449 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 7450
62c49b83
L
74512009-04-10 H.J. Lu <hongjiu.lu@intel.com>
7452
7453 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
7454
80558628
L
74552009-04-09 H.J. Lu <hongjiu.lu@intel.com>
7456
7457 PR target/39678
7458 * config/i386/i386.c (classify_argument): Handle SCmode with
7459 (bit_offset % 64) != 0.
7460
8c70d28b
SL
74612009-04-09 Sandra Loosemore <sandra@codesourcery.com>
7462
7463 * doc/invoke.texi (Optimize Options): Add cross-reference to
7464 -Q --help=optimizers examples.
7465
e1ff19bf
BE
74662009-04-10 Ben Elliston <bje@au.ibm.com>
7467
7468 PR target/36800
7469 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
7470 regalign for the reg == fpr and TDmode case.
7471
52daca75
DA
74722009-04-09 David Ayers <ayers@fsfe.org>
7473
7474 PR objc/29200
7475 * objc/objc-act.c (warn_with_method): Remove helper function.
7476 (check_duplicates): Call warning and inform directly.
7477 (really_start_method): Likewise.
7478
b45f0e58
PB
74792009-04-09 Paolo Bonzini <bonzini@gnu.org>
7480
7481 * expmed.c (expand_divmod): Always use a comparison for a division
7482 by a large unsigned integer.
7483
1ad2f450
L
7484 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
7485 for things others than variables or functions as nonzero.
b45f0e58 7486
748086b7
JJ
74872009-04-09 Nick Clifton <nickc@redhat.com>
7488
7489 * unwind-compat.c: Change copyright header to refer to version
7490 3 of the GNU General Public License with version 3.1 of the
7491 GCC Runtime Library Exception and to point readers at the
7a715bba 7492 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
7493 * config/alpha/crtfastmath.c: Likewise.
7494 * config/alpha/linux-unwind.h: Likewise.
7495 * config/alpha/qrnnd.asm: Likewise.
7496 * config/alpha/vms-crt0-64.c: Likewise.
7497 * config/alpha/vms-crt0.c: Likewise.
7498 * config/alpha/vms-dwarf2.asm: Likewise.
7499 * config/alpha/vms-dwarf2eh.asm: Likewise.
7500 * config/alpha/vms-psxcrt0-64.c: Likewise.
7501 * config/alpha/vms-psxcrt0.c: Likewise.
7502 * config/alpha/vms_tramp.asm: Likewise.
7503 * config/arc/initfini.c: Likewise.
7504 * config/arc/lib1funcs.asm: Likewise.
7505 * config/arm/bpabi-v6m.S: Likewise.
7506 * config/arm/bpabi.S: Likewise.
7507 * config/arm/bpabi.c: Likewise.
7508 * config/arm/crti.asm: Likewise.
7509 * config/arm/crtn.asm: Likewise.
7510 * config/arm/ieee754-df.S: Likewise.
7511 * config/arm/ieee754-sf.S: Likewise.
7512 * config/arm/lib1funcs.asm: Likewise.
7513 * config/arm/libunwind.S: Likewise.
7514 * config/arm/linux-atomic.c: Likewise.
7515 * config/arm/mmintrin.h: Likewise.
7516 * config/arm/pr-support.c: Likewise.
7517 * config/arm/unaligned-funcs.c: Likewise.
7518 * config/arm/unwind-arm.c: Likewise.
7519 * config/arm/unwind-arm.h: Likewise.
7520 * config/avr/libgcc.S: Likewise.
7521 * config/bfin/crti.s: Likewise.
7522 * config/bfin/crtlibid.s: Likewise.
7523 * config/bfin/crtn.s: Likewise.
7524 * config/bfin/lib1funcs.asm: Likewise.
7525 * config/bfin/linux-unwind.h: Likewise.
7526 * config/cris/arit.c: Likewise.
7527 * config/cris/cris_abi_symbol.c: Likewise.
7528 * config/darwin-64.c: Likewise.
7529 * config/darwin-crt2.c: Likewise.
7530 * config/darwin-crt3.c: Likewise.
7531 * config/darwin.h: Likewise.
7532 * config/dbxelf.h: Likewise.
7533 * config/dfp-bit.c: Likewise.
7534 * config/dfp-bit.h: Likewise.
7535 * config/elfos.h: Likewise.
7536 * config/fixed-bit.c: Likewise.
7537 * config/fixed-bit.h: Likewise.
7538 * config/fp-bit.c: Likewise.
7539 * config/fp-bit.h: Likewise.
7540 * config/fr30/crti.asm: Likewise.
7541 * config/fr30/crtn.asm: Likewise.
7542 * config/fr30/lib1funcs.asm: Likewise.
7543 * config/freebsd-spec.h: Likewise.
7544 * config/frv/cmovd.c: Likewise.
7545 * config/frv/cmovh.c: Likewise.
7546 * config/frv/cmovw.c: Likewise.
7547 * config/frv/frvbegin.c: Likewise.
7548 * config/frv/frvend.c: Likewise.
7549 * config/frv/lib1funcs.asm: Likewise.
7550 * config/glibc-stdint.h: Likewise.
7551 * config/h8300/clzhi2.c: Likewise.
7552 * config/h8300/crti.asm: Likewise.
7553 * config/h8300/crtn.asm: Likewise.
7554 * config/h8300/ctzhi2.c: Likewise.
7555 * config/h8300/fixunssfsi.c: Likewise.
7556 * config/h8300/lib1funcs.asm: Likewise.
7557 * config/h8300/parityhi2.c: Likewise.
7558 * config/h8300/popcounthi2.c: Likewise.
7559 * config/i386/ammintrin.h: Likewise.
7560 * config/i386/att.h: Likewise.
7561 * config/i386/avxintrin.h: Likewise.
7562 * config/i386/biarch64.h: Likewise.
7563 * config/i386/bmmintrin.h: Likewise.
7564 * config/i386/cpuid.h: Likewise.
7565 * config/i386/cross-stdarg.h: Likewise.
7566 * config/i386/crtfastmath.c: Likewise.
7567 * config/i386/crtprec.c: Likewise.
7568 * config/i386/cygming-crtbegin.c: Likewise.
7569 * config/i386/cygming-crtend.c: Likewise.
7570 * config/i386/cygwin.asm: Likewise.
7571 * config/i386/emmintrin.h: Likewise.
7572 * config/i386/gmm_malloc.h: Likewise.
7573 * config/i386/gthr-win32.c: Likewise.
7574 * config/i386/i386.h: Likewise.
7575 * config/i386/immintrin.h: Likewise.
7576 * config/i386/linux-unwind.h: Likewise.
7577 * config/i386/linux64.h: Likewise.
7578 * config/i386/mm3dnow.h: Likewise.
7579 * config/i386/mmintrin-common.h: Likewise.
7580 * config/i386/mmintrin.h: Likewise.
7581 * config/i386/nmmintrin.h: Likewise.
7582 * config/i386/pmm_malloc.h: Likewise.
7583 * config/i386/pmmintrin.h: Likewise.
7584 * config/i386/smmintrin.h: Likewise.
7585 * config/i386/sol2-c1.asm: Likewise.
7586 * config/i386/sol2-ci.asm: Likewise.
7587 * config/i386/sol2-cn.asm: Likewise.
7588 * config/i386/sol2-gc1.asm: Likewise.
7589 * config/i386/tmmintrin.h: Likewise.
7590 * config/i386/unix.h: Likewise.
7591 * config/i386/w32-unwind.h: Likewise.
7592 * config/i386/wmmintrin.h: Likewise.
7593 * config/i386/x86-64.h: Likewise.
7594 * config/i386/x86intrin.h: Likewise.
7595 * config/i386/xmmintrin.h: Likewise.
7596 * config/ia64/crtbegin.asm: Likewise.
7597 * config/ia64/crtend.asm: Likewise.
7598 * config/ia64/crtfastmath.c: Likewise.
7599 * config/ia64/crti.asm: Likewise.
7600 * config/ia64/crtn.asm: Likewise.
7601 * config/ia64/fde-glibc.c: Likewise.
7602 * config/ia64/lib1funcs.asm: Likewise.
7603 * config/ia64/linux-unwind.h: Likewise.
7604 * config/ia64/quadlib.c: Likewise.
7605 * config/ia64/unwind-ia64.c: Likewise.
7606 * config/linux.h: Likewise.
7607 * config/m32c/m32c-lib1.S: Likewise.
7608 * config/m32c/m32c-lib2-trapv.c: Likewise.
7609 * config/m32c/m32c-lib2.c: Likewise.
7610 * config/m32r/initfini.c: Likewise.
7611 * config/m68hc11/larith.asm: Likewise.
7612 * config/m68hc11/m68hc11-crt0.S: Likewise.
7613 * config/m68k/cf.md: Likewise.
7614 * config/m68k/crti.s: Likewise.
7615 * config/m68k/crtn.s: Likewise.
7616 * config/m68k/lb1sf68.asm: Likewise.
7617 * config/m68k/linux-unwind.h: Likewise.
7618 * config/mcore/crti.asm: Likewise.
7619 * config/mcore/crtn.asm: Likewise.
7620 * config/mcore/lib1.asm: Likewise.
7621 * config/mips/linux-unwind.h: Likewise.
7622 * config/mips/loongson.h: Likewise.
7623 * config/mips/mips16.S: Likewise.
7624 * config/mmix/crti.asm: Likewise.
7625 * config/mmix/crtn.asm: Likewise.
7626 * config/pa/fptr.c: Likewise.
7627 * config/pa/hpux-unwind.h: Likewise.
7628 * config/pa/lib2funcs.asm: Likewise.
7629 * config/pa/linux-atomic.c: Likewise.
7630 * config/pa/linux-unwind.h: Likewise.
7631 * config/pa/milli64.S: Likewise.
7632 * config/pa/quadlib.c: Likewise.
7633 * config/pa/stublib.c: Likewise.
7634 * config/picochip/libgccExtras/adddi3.asm: Likewise.
7635 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
7636 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
7637 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
7638 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
7639 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
7640 * config/picochip/libgccExtras/divmod15.asm: Likewise.
7641 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
7642 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
7643 * config/picochip/libgccExtras/longjmp.asm: Likewise.
7644 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
7645 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
7646 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
7647 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
7648 * config/picochip/libgccExtras/setjmp.asm: Likewise.
7649 * config/picochip/libgccExtras/subdi3.asm: Likewise.
7650 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
7651 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
7652 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
7653 * config/rs6000/750cl.h: Likewise.
7654 * config/rs6000/altivec.h: Likewise.
7655 * config/rs6000/biarch64.h: Likewise.
7656 * config/rs6000/crtresfpr.asm: Likewise.
7657 * config/rs6000/crtresgpr.asm: Likewise.
7658 * config/rs6000/crtresxfpr.asm: Likewise.
7659 * config/rs6000/crtresxgpr.asm: Likewise.
7660 * config/rs6000/crtsavfpr.asm: Likewise.
7661 * config/rs6000/crtsavgpr.asm: Likewise.
7662 * config/rs6000/darwin-asm.h: Likewise.
7663 * config/rs6000/darwin-fallback.c: Likewise.
7664 * config/rs6000/darwin-fpsave.asm: Likewise.
7665 * config/rs6000/darwin-ldouble.c: Likewise.
7666 * config/rs6000/darwin-tramp.asm: Likewise.
7667 * config/rs6000/darwin-unwind.h: Likewise.
7668 * config/rs6000/darwin-vecsave.asm: Likewise.
7669 * config/rs6000/darwin-world.asm: Likewise.
7670 * config/rs6000/e500crtres32gpr.asm: Likewise.
7671 * config/rs6000/e500crtres64gpr.asm: Likewise.
7672 * config/rs6000/e500crtres64gprctr.asm: Likewise.
7673 * config/rs6000/e500crtrest32gpr.asm: Likewise.
7674 * config/rs6000/e500crtrest64gpr.asm: Likewise.
7675 * config/rs6000/e500crtresx32gpr.asm: Likewise.
7676 * config/rs6000/e500crtresx64gpr.asm: Likewise.
7677 * config/rs6000/e500crtsav32gpr.asm: Likewise.
7678 * config/rs6000/e500crtsav64gpr.asm: Likewise.
7679 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
7680 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
7681 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
7682 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
7683 * config/rs6000/eabi-ci.asm: Likewise.
7684 * config/rs6000/eabi-cn.asm: Likewise.
7685 * config/rs6000/eabi.asm: Likewise.
7686 * config/rs6000/linux-unwind.h: Likewise.
7687 * config/rs6000/linux64.h: Likewise.
7688 * config/rs6000/paired.h: Likewise.
7689 * config/rs6000/paired.md: Likewise.
7690 * config/rs6000/ppc64-fp.c: Likewise.
7691 * config/rs6000/ppu_intrinsics.h: Likewise.
7692 * config/rs6000/rs6000.h: Likewise.
7693 * config/rs6000/si2vmx.h: Likewise.
7694 * config/rs6000/sol-ci.asm: Likewise.
7695 * config/rs6000/sol-cn.asm: Likewise.
7696 * config/rs6000/spe.h: Likewise.
7697 * config/rs6000/spu2vmx.h: Likewise.
7698 * config/rs6000/sysv4.h: Likewise.
7699 * config/rs6000/tramp.asm: Likewise.
7700 * config/rs6000/vec_types.h: Likewise.
7701 * config/s390/linux-unwind.h: Likewise.
7702 * config/s390/tpf-unwind.h: Likewise.
7703 * config/score/crti.asm: Likewise.
7704 * config/score/crtn.asm: Likewise.
7705 * config/sh/crt1.asm: Likewise.
7706 * config/sh/crti.asm: Likewise.
7707 * config/sh/crtn.asm: Likewise.
7708 * config/sh/divtab-sh4-300.c: Likewise.
7709 * config/sh/divtab-sh4.c: Likewise.
7710 * config/sh/divtab.c: Likewise.
7711 * config/sh/lib1funcs-4-300.asm: Likewise.
7712 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
7713 * config/sh/lib1funcs.asm: Likewise.
7714 * config/sh/lib1funcs.h: Likewise.
7715 * config/sh/linux-atomic.asm: Likewise.
7716 * config/sh/linux-unwind.h: Likewise.
7717 * config/sh/shmedia.h: Likewise.
7718 * config/sh/sshmedia.h: Likewise.
7719 * config/sh/ushmedia.h: Likewise.
7720 * config/sparc/crtfastmath.c: Likewise.
7721 * config/sparc/linux-unwind.h: Likewise.
7722 * config/sparc/sol2-c1.asm: Likewise.
7723 * config/sparc/sol2-ci.asm: Likewise.
7724 * config/sparc/sol2-cn.asm: Likewise.
7725 * config/spu/divmodti4.c: Likewise.
7726 * config/spu/divv2df3.c: Likewise.
7727 * config/spu/float_disf.c: Likewise.
7728 * config/spu/float_unsdidf.c: Likewise.
7729 * config/spu/float_unsdisf.c: Likewise.
7730 * config/spu/float_unssidf.c: Likewise.
7731 * config/spu/mfc_multi_tag_release.c: Likewise.
7732 * config/spu/mfc_multi_tag_reserve.c: Likewise.
7733 * config/spu/mfc_tag_release.c: Likewise.
7734 * config/spu/mfc_tag_reserve.c: Likewise.
7735 * config/spu/mfc_tag_table.c: Likewise.
7736 * config/spu/multi3.c: Likewise.
7737 * config/spu/spu_internals.h: Likewise.
7738 * config/spu/spu_intrinsics.h: Likewise.
7739 * config/spu/spu_mfcio.h: Likewise.
7740 * config/spu/vec_types.h: Likewise.
7741 * config/spu/vmx2spu.h: Likewise.
7742 * config/stormy16/stormy16-lib2.c: Likewise.
7743 * config/svr4.h: Likewise.
7744 * config/sync.c: Likewise.
7745 * config/v850/lib1funcs.asm: Likewise.
7746 * config/vxlib-tls.c: Likewise.
7747 * config/vxlib.c: Likewise.
7748 * config/vxworks-dummy.h: Likewise.
7749 * config/xtensa/crti.asm: Likewise.
7750 * config/xtensa/crtn.asm: Likewise.
7751 * config/xtensa/ieee754-df.S: Likewise.
7752 * config/xtensa/ieee754-sf.S: Likewise.
7753 * config/xtensa/lib1funcs.asm: Likewise.
7754 * config/xtensa/lib2funcs.S: Likewise.
7755 * config/xtensa/linux-unwind.h: Likewise.
7756 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
7757 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
7758 * coretypes.h: Likewise.
7759 * crtstuff.c: Likewise.
7760 * defaults.h: Likewise.
7761 * dwarf2.h: Likewise.
7762 * emutls.c: Likewise.
7763 * gbl-ctors.h: Likewise.
7764 * gcov-io.h: Likewise.
7765 * ginclude/float.h: Likewise.
7766 * ginclude/iso646.h: Likewise.
7767 * ginclude/stdarg.h: Likewise.
7768 * ginclude/stdbool.h: Likewise.
7769 * ginclude/stddef.h: Likewise.
7770 * ginclude/stdfix.h: Likewise.
7771 * ginclude/stdint-gcc.h: Likewise.
7772 * ginclude/tgmath.h: Likewise.
7773 * gthr-aix.h: Likewise.
7774 * gthr-dce.h: Likewise.
7775 * gthr-gnat.c: Likewise.
7776 * gthr-gnat.h: Likewise.
7777 * gthr-lynx.h: Likewise.
7778 * gthr-mipssde.h: Likewise.
7779 * gthr-nks.h: Likewise.
7780 * gthr-posix.c: Likewise.
7781 * gthr-posix.h: Likewise.
7782 * gthr-posix95.h: Likewise.
7783 * gthr-rtems.h: Likewise.
7784 * gthr-single.h: Likewise.
7785 * gthr-solaris.h: Likewise.
7786 * gthr-tpf.h: Likewise.
7787 * gthr-vxworks.h: Likewise.
7788 * gthr-win32.h: Likewise.
7789 * gthr.h: Likewise.
7790 * libgcc2.c: Likewise.
7791 * libgcc2.h: Likewise.
7792 * libgcov.c: Likewise.
7793 * tsystem.h: Likewise.
7794 * typeclass.h: Likewise.
7795 * unwind-c.c: Likewise.
7796 * unwind-compat.h: Likewise.
7797 * unwind-dw2-fde-compat.c: Likewise.
7798 * unwind-dw2-fde-darwin.c: Likewise.
7799 * unwind-dw2-fde-glibc.c: Likewise.
7800 * unwind-dw2-fde.c: Likewise.
7801 * unwind-dw2-fde.h: Likewise.
7802 * unwind-dw2.c: Likewise.
7803 * unwind-dw2.h: Likewise.
7804 * unwind-generic.h: Likewise.
7805 * unwind-pe.h: Likewise.
7806 * unwind-sjlj.c: Likewise.
7807 * unwind.inc: Likewise.
7808 * config/arm/neon-gen.ml: Change generated copyright header to
7809 refer to version 3 of the GNU General Public License with
7810 version 3.1 of the GCC Runtime Library Exception and to point
7811 readers at the COPYING3 and COPYING3.RUNTIME files and the
7812 FSF's license web page.
7813 * config/arm/arm_neon.h: Regenerate.
7814
78152009-04-09 Jakub Jelinek <jakub@redhat.com>
7816
7817 * config/cris/cris.md: Change copyright header to refer to version
7818 3 of the GNU General Public License.
7819 * doc/install.texi2html: Change copyright header to refer to version
7820 3 of the GNU General Public License and to point readers at the
7821 COPYING3 file and the FSF's license web page.
7822 * config/vax/linux.h: Likewise.
7823
4a77c72b
PB
78242009-04-09 Paolo Bonzini <bonzini@gnu.org>
7825
1ad2f450
L
7826 * config/i386/i386.md (cmpcc): New.
7827 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
7828 (sync_compare_and_swap_cc*): Delete.
7829
7830 * config/s390/s390.c (s390_compare_emitted): Remove.
7831 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
7832 s390_compare_emitted used to be handled. Assert that modes match.
7833 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
7834 refer to sync_compare_and_swap_ccsi.
7835 * config/s390/s390.h (s390_compare_emitted): Remove.
7836 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
7837 instead of s390_compare_emitted.
7838 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
7839 instead of s390_compare_emitted.
7840 * config/s390/s390.md (cmpcc): New.
7841 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
7842 CC_REGNUM, do not pretend it's set.
7843 (sync_compare_and_swap_cc*): Delete.
7844 * config/s390/predicates.md (cc_reg_operand): New.
7845
7846 * expr.c (sync_compare_and_swap_cc): Delete.
7847 * optabs.h (sync_compare_and_swap_cc): Delete.
7848 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
7849 is being used with can_compare_p.
7850 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
7851 (find_cc_set): New.
7852 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
7853 look for a MODE_CC set instead. Use emit_store_flag.
7854 (expand_compare_and_swap_loop): Likewise, with some additional
7855 complication to avoid a force_reg when useless. Use
7856 emit_cmp_and_jump_insns.
7857 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
7858 * doc/md.texi (sync_compare_and_swap_cc): Merge with
7859 sync_compare_and_swap documentation.
4a77c72b 7860
0c0efb33
JH
78612009-04-09 Jan Hubicka <jh@suse.cz>
7862
7863 * except.c (find_prev_try): Break out from ....
7864 (duplicate_eh_regions): ... here; properly update prev_try pointers
7865 when duplication part of tree.
7866 (dump_eh_tree): Improve dumping.
7867 (verify_eh_region): New.
7868 (verify_eh_tree): Use it.
7869
22a65a54
RG
78702009-04-06 Richard Guenther <rguenther@suse.de>
7871
7872 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
7873 &ARRAY addresses by adjusting their types and prepending
7874 a conversion.
7875 * tree-cfg.c (verify_gimple_assign_single): Verify that
7876 addresses are correct.
7877
f76968e6
RG
78782009-04-09 Richard Guenther <rguenther@suse.de>
7879
7880 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
7881 indices into an array reference if possible.
7882 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7883 Fold POINTER_PLUS_EXPR statements with invariant address.
7884
c90c5fb5
AM
78852009-04-09 Alan Modra <amodra@bigpond.net.au>
7886
7887 PR target/39634
7888 * config.gcc (powerpc64-*-linux*): Always build biarch.
7889
17cede2e
JM
78902009-04-09 Joseph Myers <joseph@codesourcery.com>
7891
7892 PR c/39613
7893 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
7894 it and pedwarn if this results in an INTEGER_CST.
7895
a3337ea2
KG
78962009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7897
7898 * doc/install.texi: Update minimum GMP version. Remove obsolete
7899 text in MPFR section.
7900
ce9ba79b
JJ
79012009-04-08 Jakub Jelinek <jakub@redhat.com>
7902
7903 * dwarf2out.c (class_scope_p): New static inline.
7904 (class_or_namespace_scope_p): Use it.
7905 (gen_variable_die): Use DW_TAG_member tag for static data member
7906 declarations instead of DW_TAG_variable.
7907
4f0ae266
JJ
7908 PR middle-end/39573
7909 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
7910 variables.
7911
d27f0ddc
RG
79122009-04-08 Richard Guenther <rguenther@suse.de>
7913
7914 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
7915 valueize random data.
7916
557cc596
DE
79172009-04-08 David Edelsohn <edelsohn@gnu.org>
7918
7919 * config.gcc (aix tm_file): Add aix-stdint.h.
7920 (aix tm clause use_gcc_stdint): Set to wrap.
7921 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 7922
75ccc1e7
RG
79232009-04-08 Richard Guenther <rguenther@suse.de>
7924
7925 PR middle-end/36291
7926 * tree-dfa.c (add_referenced_var): Do not recurse into
7927 global initializers.
7928 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
7929 exposed variables.
7930 (fold_const_aggregate_ref): Likewise.
7931
c6963675
PB
79322009-04-08 Paolo Bonzini <bonzini@gnu.org>
7933
6c44cf79
L
7934 * recog.c (ordered_comparison_operator): New.
7935 * gensupport.c (std_preds): Add it.
c6963675
PB
7936 * doc/md.texi (Machine-Independent Predicates): Document it.
7937
6d07ad98
JH
79382009-04-08 Jan Hubicka <jh@suse.cz>
7939
7940 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
7941 * function.h (rtl_eh): Remove exception_handler_label_map.
7942 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
7943 remove_exception_handler_label, for_each_eh_label_1): Remove.
7944 (rtl_remove_unreachable_regions): Remove.
7945 (convert_from_eh_region_ranges): Do not remove unreachable regions.
7946 (find_exception_handler_labels): Don't build the hashtable.
7947 (maybe_remove_eh_handler): Remove.
7948 (for_each_eh_label): Rewrite to walk the tree.
7949 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
7950 * except.h (maybe_remove_eh_handler): Remove.
7951 * passes.c (init_optimization_passes): Schedule second EH cleanup
7952 before out-of-ssa.
7953 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
7954 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
7955
7ddf71e3
PB
79562009-04-08 Paolo Bonzini <bonzini@gnu.org>
7957
7958 * genoutput.c (validate_optab_operands): New.
7959 (gen_insn, gen_expand): Call it.
7960
7961 * genflags.c (gen_insn): Detect misused iterators.
7962 (main): Pass line_no to gen_insn, exit with status 1 on error.
7963
7964 * genextract.c (line_no): Make global.
7965 (VEC_safe_set_locstr): Change assertion to error message.
7966 (main): Exit with status 1 on error.
7967
4d84fe7c
JM
79682009-04-08 Joseph Myers <joseph@codesourcery.com>
7969
7970 PR c/39614
7971 PR c/39673
7972 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7973 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7974 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
7975 * c-convert.c (convert): Do not call fold on results of conversion
7976 functions when the result is a C_MAYBE_CONST_EXPR.
7977 * c-parser.c (c_parser_postfix_expression): Do not fold condition
7978 of __builtin_choose_expr.
7979 * c-typeck.c (remove_c_maybe_const_expr): New.
7980 (build_unary_op, build_conditional_expr, build_compound_expr,
7981 build_binary_op, c_objc_common_truthvalue_conversion): Call
7982 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
7983 integer operands.
7984
60839f5d 79852009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 7986
2ba9daa7 7987 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 7988 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 7989
8e481a2c
DS
79902009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
7991
7992 PR bootstrap/39660
7993 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
7994 mix declarations and code.
7995
ee618c17
BE
79962009-04-08 Ben Elliston <bje@au.ibm.com>
7997
7998 * gcc.c: Replace `CC' with `GCC' throughout.
7999
f2a758a2
L
80002009-04-07 H.J. Lu <hongjiu.lu@intel.com>
8001
8002 * doc/invoke.texi: Document Atom support.
8003
6ea2bd47
JM
80042009-04-07 Jason Merrill <jason@redhat.com>
8005
8006 PR c++/25185
8007 * c-common.h, c-common.c: Add flag_pretty_templates.
8008 * c-opts.c (c_common_handle_option): Set it.
8009 * c.opt: Add -fno-pretty-templates.
8010 * doc/invoke.texi (C++ Dialect Options): Likewise.
8011
fcb82ab0
UB
80122009-04-07 Uros Bizjak <ubizjak@gmail.com>
8013
8014 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
8015 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
8016 (ia64_expand_builtin): Likewise.
8017
dc5e7298
MJ
80182009-04-07 Martin Jambor <mjambor@suse.cz>
8019
8020 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
8021 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
8022 ADDR_EXPRS are include too.
8023
0609b355
RG
80242009-04-07 Richard Guenther <rguenther@suse.de>
8025
8026 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
8027 decls are only used if passes as parameters or if they are
8028 local statics and the call is not to a builtin.
8029 (call_may_clobber_ref_p_1): Likewise.
8030
d8e535fa
PB
80312009-04-07 Paolo Bonzini <bonzini@gnu.org>
8032
8033 * expr.c (do_store_flag): Remove last argument. Simplify code
8034 to avoid duplication of tests already done by can_compare_p.
8035 (expand_expr_real_1): Adjust caller.
8036
c3c64f50
PB
80372009-04-07 Paolo Bonzini <bonzini@gnu.org>
8038
fcb82ab0
UB
8039 * optabs.c (can_compare_p): Test the predicate of a
8040 cbranch and cstore pattern.
c3c64f50 8041
9a53bc17
PB
80422009-04-07 Paolo Bonzini <bonzini@gnu.org>
8043
fcb82ab0
UB
8044 * expr.c (convert_move): Use emit_store_flag instead of
8045 "emulating" it.
9a53bc17 8046
67b8f1c1
PB
80472009-04-07 Paolo Bonzini <bonzini@gnu.org>
8048
fcb82ab0
UB
8049 * config/i386/i386.c (ix86_compare_emitted): Remove.
8050 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
8051 ix86_compare_op0 like ix86_compare_emitted used to be handled.
8052 * config/i386/i386.h (ix86_compare_emitted): Remove.
8053 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
8054 instead of ix86_compare_emitted.
8055 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 8056
44509946
AS
80572009-04-07 Andrew Stubbs <ams@codesourcery.com>
8058
8059 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
8060 Add t-sysroot-suffix to tmake_file.
8061 * config/print-sysroot-suffix.sh: New file.
8062 * config/t-sysroot-suffix: New file.
8063
ca22d882
BE
80642009-04-07 Ben Elliston <bje@au.ibm.com>
8065
8066 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
8067 as the latter produces a warning when the target does not support
8068 infinity.
8069
95aac11b
BE
80702009-04-07 Ben Elliston <bje@au.ibm.com>
8071
8072 * dfp.c: Replace type punning assignments with memcpy throughout.
8073 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 8074
633dd061
AM
80752009-04-07 Alan Modra <amodra@bigpond.net.au>
8076
8077 PR target/39634
8078 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
8079 Include soft-fp/t-softfp after rs6000/t-linux64.
8080
fe0a25ec
EB
80812009-04-06 Eric Botcazou <ebotcazou@adacore.com>
8082
8083 * stor-layout.c (set_sizetype): Use the full precision of their
8084 machine mode for bitsize types.
8085
0c011bc3
L
80862009-04-06 H.J. Lu <hongjiu.lu@intel.com>
8087
8088 * config/i386/i386.md: Revert 2 accidental checkins.
8089
b6837b94 80902009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 8091 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
8092 H.J. Lu <hongjiu.lu@intel.com>
8093
8094 Atom pipeline model, tuning and insn selection.
8095 * config.gcc (atom): Add atom config options and target.
8096
8097 * config/i386/atom.md: New.
8098
8099 * config/i386/i386.c (atom_cost): New cost.
8100 (m_ATOM): New macro flag.
8101 (initial_ix86_tune_features): Set m_ATOM.
8102 (x86_accumulate_outgoing_args): Likewise.
8103 (x86_arch_always_fancy_math_387): Likewise.
8104 (processor_target): Add Atom cost.
8105 (cpu_names): Add Atom cpu name.
8106 (override_options): Set Atom ISA.
8107 (ix86_issue_rate): New case PROCESSOR_ATOM.
8108 (ix86_adjust_cost): Likewise.
8109
8110 * config/i386/i386.h (TARGET_ATOM): New target macro.
8111 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
8112 (TARGET_OPT_AGU): New target option.
8113 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
8114 (processor_type): Add PROCESSOR_ATOM.
8115
8116 * config/i386/i386.md (cpu): Add new value "atom".
8117 (use_carry, movu): New attr.
8118 (atom.md): Include atom.md.
8119 (adddi3_carry_rex64): Set attr "use_carry".
8120 (addqi3_carry): Likewise.
8121 (addhi3_carry): Likewise.
8122 (addsi3_carry): Likewise.
8123 (*addsi3_carry_zext): Likewise.
8124 (subdi3_carry_rex64): Likewise.
8125 (subqi3_carry): Likewise.
8126 (subhi3_carry): Likewise.
8127 (subsi3_carry): Likewise.
8128 (x86_movdicc_0_m1_rex64): Likewise.
8129 (*x86_movdicc_0_m1_se): Likewise.
8130 (x86_movsicc_0_m1): Likewise.
8131 (*x86_movsicc_0_m1_se): Likewise.
8132 (*adddi_1_rex64): Emit add insn as much as possible.
8133 (*addsi_1): Likewise.
8134 (return_internal): Set atom_unit.
8135 (return_internal_long): Likewise.
8136 (return_pop_internal): Likewise.
8137 (*rcpsf2_sse): Set atom_sse_attr attr.
8138 (*qrt<mode>2_sse): Likewise.
8139 (*prefetch_sse): Likewise.
8140
8141 * config/i386/i386-c.c (ix86_target_macros_internal): New case
8142 PROCESSOR_ATOM.
8143 (ix86_target_macros_internal): Likewise.
8144
8145 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
8146 (*prefetch_sse_rex): Likewise.
8147 (sse_rcpv4sf2): Likewise.
8148 (sse_vmrcpv4sf2): Likewise.
8149 (sse_sqrtv4sf2): Likewise.
8150 (<sse>_vmsqrt<mode>2): Likewise.
8151 (sse_ldmxcsr): Likewise.
8152 (sse_stmxcsr): Likewise.
8153 (*sse_sfence): Likewise.
8154 (sse2_clflush): Likewise.
8155 (*sse2_mfence): Likewise.
8156 (*sse2_lfence): Likewise.
8157 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
8158 (<sse>_movup<ssemodesuffixf2c>): Likewise.
8159 (avx_movdqu<avxmodesuffix>): Likewise.
8160 (avx_lddqu<avxmodesuffix>): Likewise.
8161 (sse2_movntv2di): Change attr "type" to "ssemov".
8162 (sse2_movntsi): Likewise.
8163 (rsqrtv8sf2): Change attr "type" to "sseadd".
8164 (sse3_addsubv2df3): Set attr "atom_unit".
8165 (sse3_h<plusminus_insn>v4sf3): Likewise.
8166 (*sse2_pmaddwd): Likewise.
8167 (*vec_extractv2di_1_rex64): Likewise.
8168 (*vec_extractv2di_1_avx): Likewise.
8169 (sse2_psadbw): Likewise.
8170 (ssse3_phaddwv8hi3): Likewise.
8171 (ssse3_phaddwv4hi3): Likewise.
8172 (ssse3_phadddv4si3): Likewise.
8173 (ssse3_phadddv2si3): Likewise.
8174 (ssse3_phaddswv8hi3): Likewise.
8175 (ssse3_phaddswv4hi3): Likewise.
8176 (ssse3_phsubwv8hi3): Likewise.
8177 (ssse3_phsubwv4hi3): Likewise.
8178 (ssse3_phsubdv4si3): Likewise.
8179 (ssse3_phsubdv2si3): Likewise.
8180 (ssse3_phsubswv8hi3): Likewise.
8181 (ssse3_phsubswv4hi3): Likewise.
8182 (ssse3_pmaddubsw128): Likewise.
8183 (sse3_pmaddubsw: Likewise.
8184 (ssse3_palignrti): Likewise.
8185 (ssse3_palignrdi): Likewise.
8186
53e350d3
GP
81872009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
8188
8189 * doc/install.texi (Specific): Fix two cross-references to MinGW.
8190
439ef907
RG
81912009-04-06 Richard Guenther <rguenther@suse.de>
8192
8193 PR tree-optimization/28868
8194 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
8195 of which PHI results we inserted.
8196 (insert_into_preds_of_block): Record inserted PHIs.
8197 (eliminate): Eliminate redundant PHI nodes.
8198 (init_pre): Init inserted_phi_names.
8199
4bad83f5
RG
82002009-04-06 Richard Guenther <rguenther@suse.de>
8201
8202 PR tree-optimization/39643
8203 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
8204 IMAGPART_EXPRs of complex constants.
8205 (execute_fold_all_builtins): If we folded a call queue
8206 TODO_update_address_taken.
8207
570c4247
JH
82082009-04-06 Jan Hubicka <jh@suse.cz>
8209
8210 PR middle-end/39659
8211 * except.c (remove_unreachable_regions): Propagate may_contain_throw
8212 flag.
8213
a460d7a1
AS
82142009-04-06 Andrew Stubbs <ams@codesourcery.com>
8215
8216 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
8217 delay slot.
8218 (ic_invalidate_array): Likewise.
8219
60839f5d 82202009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
8221
8222 * calls.c (emit_library_call_value_1): Fix a problem with parameter
8223 alignment for library calls.
8224
7d253f6e
DS
82252009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
8226
8227 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
8228 (mingw32 tm clause use_gcc_stdint): Set to wrap.
8229 * config/i386/mingw-stdint.h: New file.
8230
941c3614
RB
82312009-04-05 Richard Guenther <rguenther@suse.de>
8232
8233 PR tree-optimization/39648
8234 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
8235 our &A vs. &A[0] IL deficiencies.
8236
12633413
JH
82372009-04-04 Jan Hubicka <jh@suse.cz>
8238
941c3614
RB
8239 * except.c (sjlj_find_directly_reachable_regions): Be ready for
8240 removed toplevel regions.
12633413
JH
8241 (sjlj_mark_call_sites): Likewise.
8242
bb2aaded
DK
82432009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
8244
8245 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
8246 (cygwin tm clause use_gcc_stdint): Set to wrap.
8247 * config/i386/cygwin-stdint.h: New file.
8248
86290011
RG
82492009-04-04 Richard Guenther <rguenther@suse.de>
8250
8251 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
8252 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
8253 single-argument PHIs if we are in loop-closed SSA form.
8254 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
8255 for the pre-condition.
8256 (slpeel_tree_peel_loop_to_edge): Likewise.
8257 (vect_build_loop_niters): Take an optional sequence to append stmts.
8258 (vect_generate_tmps_on_preheader): Likewise.
8259 (vect_do_peeling_for_loop_bound): Take extra guards for the
8260 pre-condition.
8261 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
8262 the cost model check.
8263 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 8264 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
8265 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
8266 (vect_do_peeling_for_loop_bound): Likewise.
8267 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
8268 loop bound only record extra pre-conditions, do not apply loop
8269 versioning.
8270
5eeeac64
RG
82712009-04-04 Richard Guenther <rguenther@suse.de>
8272
8273 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
8274 renaming code.
8275
1ff7d06b
JH
82762009-04-04 Jan Hubicka <jh@suse.cz>
8277
8278 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
8279 last_basic_block for size of bb->index indexed array.
8280 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
8281 compute_out, link_btr_uses, build_btr_def_use_webs,
8282 build_btr_def_use_webs, migrate_btr_defs): Likewise.
8283
14925fcd
JH
82842009-04-04 Jan Hubicka <jh@suse.cz>
8285
8286 * except.c (remove_eh_handler_and_replace): Break out from ...
8287 (remove_eh_handler): ... here.
8288 (bring_to_root): New function.
8289 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
8290 handled ones, bring others to root of tree.
8291
4e6d1743
JH
82922009-04-04 Jan Hubicka <jh@suse.cz>
8293
4cb735f7
JH
8294 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
8295 (all_phis_safe_to_merge): New function.
8296 (update_info): New structure.
8297 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
8298 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 8299
c6803d43
RG
83002009-04-04 Richard Guenther <rguenther@suse.de>
8301
8302 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
8303 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
8304 (append_vuse): Likewise.
8305
54f5943c
JJ
83062009-04-04 Jakub Jelinek <jakub@redhat.com>
8307
8308 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
8309 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
8310 instead of REG_UNSAVED for DW_CFA_undefined.
8311 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
8312 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
8313 outermost frame.
8314
aad2bccb
RE
83152009-04-04 Richard Earnshaw <rearnsha@arm.com>
8316
8317 PR target/39501
8318 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
8319 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
8320 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
8321
aa7069aa
RG
83222009-04-04 Richard Guenther <rguenther@suse.de>
8323
8324 PR tree-optimization/8781
8325 PR tree-optimization/37892
8326 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
8327 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
8328 (valueize_refs): Call it for *& valueizations.
8329 (shared_reference_ops_from_ref): Rename to ...
8330 (valueize_shared_reference_ops_from_ref): ... this and valueize.
8331 (shared_reference_ops_from_call): Rename to ...
8332 (valueize_shared_reference_ops_from_call): ... this and valueize.
8333 (vn_reference_lookup): Update.
8334 (visit_reference_op_call): Likewise.
8335 * tree-ssa-pre.c (phi_translate_1): Fold *&.
8336 (eliminate): Value-replace the call address in call statements.
8337
cd15ad3e
RG
83382009-04-04 Richard Guenther <rguenther@suse.de>
8339
8340 PR tree-optimization/39636
8341 * tree-ssa-forwprop.c
8342 (forward_propagate_addr_into_variable_array_index): Check for
8343 GIMPLE_ASSIGN before accessing the rhs code.
8344
462f3262
JM
83452009-04-03 Jason Merrill <jason@redhat.com>
8346
8347 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
8348
6adb807e
SE
83492009-04-03 Steve Ellcey <sje@cup.hp.com>
8350
8351 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
8352 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
8353 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
8354 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
8355 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
8356 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
8357 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
8358 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
8359 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
8360 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
8361 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
8362 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
8363 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
8364 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
8365 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
8366 Use fr_reg_or_fp01_operand instead of fr_register_operand
8367
8368 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
8369 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
8370 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
8371
174b3107
VM
83722009-04-03 Vladimir Makarov <vmakarov@redhat.com>
8373
b844e5d8
L
8374 PR rtl-optimization/39607
8375 PR rtl-optimization/39631
7a715bba
UB
8376
8377 Revert:
2ba9daa7 8378
174b3107
VM
8379 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
8380 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8381 instead of DF_LR_OUT.
8382 * ira-lives.c (process_bb_node_lives): Ditto.
8383 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8384 instead of DF_LR_{OUT,IN}.
8385 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8386 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8387
535b544a
SB
83882009-04-03 Steven Bosscher <steven@gcc.gnu.org>
8389
8390 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
8391 (execute_lower_omp): Always run but take the short way out if -fopenmp
8392 is not given.
8393 (gate_lower_omp): Remove, forcing the pass manager to always run the
8394 pass and always set PROP_gimple_lomp.
8395 (pass_lower_omp): Remove gate function.
8396 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
8397 PROP_trees. Instead, require it.
8398 * ipa-cp.c (pass_ipa_cp): Likewise.
8399 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
8400 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
8401 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
8402 and PROP_gimple_leh.
8403
5006671f
RG
84042009-04-03 Richard Guenther <rguenther@suse.de>
8405
8406 PR middle-end/13146
8407 PR tree-optimization/23940
8408 PR tree-optimization/33237
8409 PR middle-end/33974
8410 PR middle-end/34093
8411 PR tree-optimization/36201
8412 PR tree-optimization/36230
8413 PR tree-optimization/38049
8414 PR tree-optimization/38207
8415 PR tree-optimization/38230
8416 PR tree-optimization/38301
8417 PR tree-optimization/38585
8418 PR middle-end/38895
8419 PR tree-optimization/38985
8420 PR tree-optimization/39299
8421 * tree-ssa-structalias.h: Remove.
8422 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
8423 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
8424 (struct vuse_element_d): Remove.
8425 (struct vuse_vec_d): Likewise.
8426 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
8427 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
8428 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
8429 VUSE_ELEMENT_VAR): Likewise.
8430 (struct voptype_d): Likewise.
8431 (NUM_VOP_FREE_BUCKETS): Likewise.
8432 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
8433 (struct stmt_operands_d): Remove.
8434 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
8435 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
8436 VDEF_NUM, VDEF_VECT): Likewise.
8437 (copy_virtual_operands): Remove.
8438 (operand_build_cmp): Likewise.
8439 (create_ssa_artificial_load_stmt): Likewise.
8440 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
8441 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
8442 vuse_index and mayuse_index members. Pack and move done and iter_type
8443 members to the front.
8444 (SSA_OP_VMAYUSE): Remove.
8445 (SSA_OP_VIRTUAL_USES): Adjust.
8446 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
8447 (unlink_stmt_vdef): Declare.
8448 (add_to_addressable_set): Remove.
8449 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
8450 (vrp_visit_stmt): Likewise.
8451 * doc/tree-ssa.texi (Alias analysis): Update.
8452 * doc/invoke.texi (max-aliased-vops): Remove docs.
8453 (avg-aliased-vops): Likewise.
8454 * tree-into-ssa.c (syms_to_rename): Remove.
8455 (need_to_update_vops_p): Likewise.
8456 (need_to_initialize_update_ssa_p): Rename to ...
8457 (update_ssa_initialized_fn): ... this. Track function we are
8458 initialized for.
8459 (symbol_marked_for_renaming): Simplify.
8460 (add_new_name_mapping): Do not set need_to_update_vops_p.
8461 (dump_currdefs): Use SYMS_TO_RENAME.
8462 (rewrite_update_stmt): Always walk all uses/defs.
8463 (dump_update_ssa): Adjust.
8464 (init_update_ssa): Take function argument. Track what we are
8465 initialized for.
8466 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
8467 (create_new_def_for): Initialize for cfun, assert we are initialized
8468 for cfun.
8469 (mark_sym_for_renaming): Simplify.
8470 (mark_set_for_renaming): Do not initialize update-ssa.
8471 (need_ssa_update_p): Simplify. Take function argument.
8472 (name_mappings_registered_p): Assert we ask for the correct function.
8473 (name_registered_for_update_p): Likewise.
8474 (ssa_names_to_replace): Likewise.
8475 (release_ssa_name_after_update_ssa): Likewise.
8476 (update_ssa): Likewise. Use SYMS_TO_RENAME.
8477 (dump_decl_set): Do not print a newline.
8478 (debug_decl_set): Do it here.
8479 (dump_update_ssa): And here.
8480 * tree-ssa-loop-im.c (move_computations): Adjust.
8481 (movement_possibility): Likewise.
8482 (determine_max_movement): Likewise.
8483 (gather_mem_refs_stmt): Likewise.
8484 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
8485 or NAME_MEMORY_TAG.
8486 * tree-complex.c (update_all_vops): Remove.
8487 (expand_complex_move): Adjust.
8488 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
8489 Simplify test for memory referencing statement. Exclude
8490 non-invariant ADDR_EXPRs.
8491 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
8492 * tree-loop-distribution.c (generate_memset_zero): Adjust.
8493 (rdg_flag_uses): Likewise.
8494 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
8495 related code.
8496 (tree_optimize_tail_calls_1): Also split the
8497 edge from the entry block if we have degenerate PHI nodes in
8498 the first basic block.
8499 * tree.c (init_ttree): Remove memory-tag related code.
8500 (tree_code_size): Likewise.
8501 (tree_node_structure): Likewise.
8502 (build7_stat): Re-write to be build6_stat.
8503 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
8504 (SSA_VAR_P): Adjust.
8505 (struct tree_memory_tag): Remove.
8506 (struct tree_memory_partition_tag): Likewise.
8507 (union tree_node): Adjust.
8508 (build7): Re-write to be build6.
8509 * tree-pass.h (pass_reset_cc_flags): Remove.
8510 (TODO_update_address_taken): New flag.
8511 (pass_simple_dse): Remove.
8512 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
8513 * params.h (MAX_ALIASED_VOPS): Remove.
8514 (AVG_ALIASED_VOPS): Likewise.
8515 * omp-low.c (expand_omp_taskreg): Update SSA form.
8516 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
8517 aliases the lhs in a copy stmt.
8518 * tree-ssa-dse.c (struct address_walk_data): Remove.
8519 (memory_ssa_name_same): Likewise.
8520 (memory_address_same): Likewise.
8521 (get_kill_of_stmt_lhs): Likewise.
8522 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
8523 unused stores. Look through PHI nodes into post-dominated regions.
8524 (dse_optimize_stmt): Simplify. Properly remove stores.
8525 (tree_ssa_dse): Compute dominators.
8526 (execute_simple_dse): Remove.
8527 (pass_simple_dse): Likewise.
8528 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
8529 gimple_loaded_syms and gimple_stored_syms computation.
8530 * toplev.c (dump_memory_report): Dump alias and pta stats.
8531 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
8532 (vn_reference_eq): Likewise.
8533 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
8534 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
8535 valueize_vuses): Remove.
8536 (get_def_ref_stmt_vuses): Simplify. Rename to ...
8537 (get_def_ref_stmt_vuse): ... this.
8538 (vn_reference_lookup_2): New function.
8539 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
8540 walking equivalent vuses. Simplify.
8541 (vn_reference_lookup): Likewise.
8542 (vn_reference_insert): Likewise.
8543 (vn_reference_insert_pieces): Likewise.
8544 (visit_reference_op_call): Simplify.
8545 (visit_reference_op_load): Likewise.
8546 (visit_reference_op_store): Likewise.
8547 (init_scc_vn): Remove shared_lookup_vuses initialization.
8548 (free_scc_vn): Remove shared_lookup_vuses freeing.
8549 (sort_vuses, sort_vuses_heap): Remove.
8550 (get_ref_from_reference_ops): Export.
8551 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
8552 vector with single vuse pointer.
8553 (vn_reference_lookup_pieces, vn_reference_lookup,
8554 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
8555 (shared_vuses_from_stmt): Remove.
8556 (get_ref_from_reference_ops): Declare.
8557 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
8558 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
8559 memory-tag related code.
8560 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
8561 (likely_value): Add comment, skip static-chain of call statements.
8562 (surely_varying_stmt_p): Adjust.
8563 (gimplify_and_update_call_from_tree): Likewise.
8564 (execute_fold_all_builtins): Do not rebuild alias info.
8565 (gimplify_and_update_call_from_tree): Properly update VOPs.
8566 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
8567 (copy_ref_info): Remove memory-tag related code.
8568 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
8569 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
8570 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
8571 computation.
8572 * tree-ssa-dom.c (gimple_p): Remove typedef.
8573 (eliminate_redundant_computations): Adjust.
8574 (record_equivalences_from_stmt): Likewise.
8575 (avail_expr_hash): Likewise.
8576 (avail_expr_eq): Likewise.
7a715bba 8577 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
8578 (stmt_makes_single_load): Likewise.
8579 (stmt_makes_single_store): Likewise.
8580 * tree-ssa-alias.c: Rewrite completely.
8581 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
8582 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
8583 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
8584 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
8585 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
8586 Remove public functions.
8587 (pass_reset_cc_flags): Remove.
8588 (pass_build_alias): Move ...
8589 * tree-ssa-structalias.c (pass_build_alias): ... here.
8590 * tree-ssa-alias.c (may_be_aliased): Move ...
8591 * tree-flow-inline.h (may_be_aliased): ... here.
8592 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
8593 count_uses_and_derefs): Move ...
8594 * gimple.c: ... here.
8595 * gimple.h (count_uses_and_derefs): Declare.
8596 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
8597 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
8598 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
8599 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
8600 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
8601 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
8602 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
8603 New functions.
8604 * tree-dfa.c (refs_may_alias_p): Move ...
8605 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
8606 * tree-ssa-alias.h: New file.
8607 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
8608 (statement_sink_location): Likewise.
8609 * opts.c (decode_options): Do not adjust max-aliased-vops or
8610 avg-aliased-vops values.
8611 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
8612 (TV_CALL_CLOBBER): Likewise.
8613 (TV_FLOW_SENSITIVE): Likewise.
8614 (TV_FLOW_INSENSITIVE): Likewise.
8615 (TV_MEMORY_PARTITIONING): Likewise.
8616 (TV_ALIAS_STMT_WALK): New timevar.
8617 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
8618 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
8619 (get_address_description): Remove memory-tag related code.
8620 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
8621 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
8622 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
8623 and immediate uses in statements. Document.
8624 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
8625 (dump_symbols): Remove.
8626 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
8627 * alias.c (get_deref_alias_set): New function split out from ...
8628 (get_alias_set): ... here.
8629 * alias.h (get_deref_alias_set): Declare.
8630 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
8631 type parameter. Remove restrict pointer handling. Create a
8632 ref-all pointer in case type-based alias sets do not conflict.
8633 (vect_analyze_data_refs): Remove SMT related code.
8634 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
8635 (vectorizable_load): Likewise.
8636 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
8637 (DR_SYMBOL_TAG, DR_VOPS): Remove.
8638 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
8639 Ignore vops and SMTs.
8640 (dr_analyze_alias): Likewise..
8641 (free_data_ref): Likewise.
8642 (create_data_ref): Likewise.
8643 (analyze_all_data_dependences): Likewise.
8644 (get_references_in_stmt): Adjust.
8645 * tree-flow-inline.h (gimple_aliases_computed_p,
8646 gimple_addressable_vars, gimple_call_clobbered_vars,
8647 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
8648 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
8649 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
8650 gimple_mem_ref_stats): Remove.
8651 (gimple_vop): New function.
8652 (op_iter_next_use): Remove vuses and mayuses cases.
8653 (op_iter_next_def): Remove vdefs case.
8654 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
8655 (clear_and_done_ssa_iter): Do not set removed fields.
8656 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
8657 Assert we are not iterating over vuses or vdefs if not also
8658 iterating over uses or defs.
8659 (op_iter_init_use): Likewise.
8660 (op_iter_init_def): Likewise.
8661 (op_iter_next_vdef): Remove.
8662 (op_iter_next_mustdef): Likewise.
8663 (op_iter_init_vdef): Likewise.
8664 (compare_ssa_operands_equal): Likewise.
8665 (link_use_stmts_after): Handle vuse operand.
8666 (is_call_used): Use is_call_clobbered.
8667 (is_call_clobbered): Global variables are always call clobbered,
8668 query the call-clobbers bitmap.
8669 (mark_call_clobbered): Ignore global variables.
8670 (clear_call_clobbered): Likewise.
8671 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
8672 virtual operands sanity check.
8673 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
8674 Remove.
8675 (TARGET_MEM_REF): Remove TMR_TAG operand.
8676 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
8677 Remove call-clobber related code.
8678 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
8679 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
8680 partitions or escape reason.
8681 (get_single_def_stmt, get_single_def_stmt_from_phi,
8682 get_single_def_stmt_with_phi): Remove.
8683 (dump_referenced_vars): Tidy.
8684 (get_ref_base_and_extent): Allow bare decls.
8685 (collect_dfa_stats): Adjust.
8686 * graphite.c (rename_variables_in_stmt): Adjust.
8687 (graphite_copy_stmts_from_block): Likewise.
8688 (translate_clast): Likewise.
8689 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
8690 (EXPR_DIES): New.
8691 (translate_vuse_through_block): Use the oracle.
8692 (phi_translate_1): Adjust.
8693 (value_dies_in_block_x): Use the oracle. Cache the outcome
8694 in EXPR_DIES.
8695 (valid_in_sets): Check if the VUSE for
8696 a REFERENCE is available.
8697 (eliminate): Do not remove stmts during elimination,
8698 instead queue and remove them afterwards.
8699 (do_pre): Do not rebuild alias info.
8700 (pass_pre): Run TODO_rebuild_alias before PRE.
8701 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
8702 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
8703 (mark_all_v_defs_stmt): Remove.
8704 (mark_all_v_defs_seq): Adjust.
8705 (sra_replace): Likewise.
8706 (scalarize_use): Likewise.
8707 (scalarize_copy): Likewise.
8708 (scalarize_init): Likewise.
8709 (scalarize_ldst): Likewise.
8710 (todoflags): Remove.
8711 (tree_sra): Do not rebuild alias info.
8712 (tree_sra_early): Adjust.
8713 (pass_sra): Run TODO_update_address_taken before SRA.
8714 * tree-predcom.c (set_alias_info): Remove.
8715 (prepare_initializers_chain): Do not call it.
8716 (mark_virtual_ops_for_renaming): Adjust.
8717 (mark_virtual_ops_for_renaming_list): Remove.
8718 (initialize_root_vars): Adjust.
8719 (initialize_root_vars_lm): Likewise.
8720 (prepare_initializers_chain): Likewise.
8721 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
8722 (may_propagate_copy_into_stmt): Likewise.
8723 (merge_alias_info): Do nothing for now.
8724 (propagate_tree_value_into_stmt): Adjust.
8725 (stmt_may_generate_copy): Likewise.
8726 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
8727 not mark symbols for renaming.
8728 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
8729 with the same statement, make sure to update the new pointed-to one.
8730 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
8731 call statements, do not mark symbols for renaming.
8732 (mark_operand_necessary): Dump something.
8733 (ref_may_be_aliased): New function.
8734 (mark_aliased_reaching_defs_necessary_1): New helper function.
8735 (mark_aliased_reaching_defs_necessary): Likewise.
8736 (mark_all_reaching_defs_necessary_1): Likewise.
8737 (mark_all_reaching_defs_necessary): Likewise.
8738 (propagate_necessity): Do not process virtual PHIs. For
8739 non-aliased loads mark all reaching definitions as necessary.
8740 For aliased loads and stores mark the immediate dominating
8741 aliased clobbers as necessary.
8742 (visited): New global static.
8743 (perform_tree_ssa_dce): Free visited bitmap after propagating
8744 necessity.
8745 (remove_dead_phis): Perform simple dead virtual PHI removal.
8746 (remove_dead_stmt): Properly unlink virtual operands when
8747 removing stores.
8748 (eliminate_unnecessary_stmts): Schedule PHI removal after
8749 stmt removal.
8750 * tree-ssa-ter.c (is_replaceable_p): Adjust.
8751 (process_replaceable): Likewise.
8752 (find_replaceable_in_bb): Likewise.
8753 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
8754 based on the single gimple vop.
8755 (verify_flow_insensitive_alias_info): Remove.
8756 (verify_flow_sensitive_alias_info): Likewise.
8757 (verify_call_clobbering): Likewise.
8758 (verify_memory_partitions): Likewise.
8759 (verify_alias_info): Likewise.
8760 (verify_ssa): Adjust..
8761 (execute_update_addresses_taken): Export. Update SSA
8762 manually. Optimize only when optimizing. Use a local bitmap.
8763 (pass_update_address_taken): Remove TODO_update_ssa, add
8764 TODO_dump_func.
8765 (pass_update_address_taken): Just use TODO_update_address_taken.
8766 (init_tree_ssa): Do not initialize addressable_vars.
8767 (verify_ssa): Verify new VUSE / VDEF properties.
8768 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
8769 Do not call verify_alias_info.
8770 (delete_tree_ssa): Clear the VUSE, VDEF operands.
8771 Do not free the loaded and stored syms bitmaps. Reset the escaped
8772 and callused solutions. Do not free addressable_vars.
8773 Remove memory-tag related code.
8774 (warn_uninitialized_var): Aliases are always available.
8775 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
8776 * lambda-code.c (can_put_in_inner_loop): Adjust.
8777 (can_put_after_inner_loop): Likewise.
8778 (perfect_nestify): Likewise.
8779 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
8780 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
8781 (vectorizable_conversion): Do not mark symbols for renaming.
8782 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
8783 (expand_call_inline): Unlink the calls virtual operands before
8784 replacing it.
8785 (tree_function_versioning): Do not call update_ssa if we are not
8786 updating clones. Simplify.
8787 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
8788 (propagate_with_phi): Likewise..
8789 * tree-outof-ssa.c (create_temp): Remove memory tag and call
8790 clobber code. Assert we are not aliased or global.
8791 * tree-flow.h: Include tree-ssa-alias.h
8792 (enum escape_type): Remove.
8793 (struct mem_sym_stats_d): Likewise.
8794 (struct mem_ref_stats_d): Likewise.
8795 (struct gimple_df): Add vop member. Remove global_var,
8796 call_clobbered_vars, call_used_vars, addressable_vars,
8797 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
8798 escaped and callused members.
8799 (struct ptr_info_def): Remove all members, add points-to solution
8800 member pt.
8801 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
8802 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
8803 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
8804 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
8805 (tree-ssa-alias.o): Likewise.
8806 (toplev.o): Add tree-ssa-alias.h
8807 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
8808 * gimple.c (gimple_set_bb): Fix off-by-one error.
8809 (is_gimple_reg): Do not handle memory tags.
8810 (gimple_copy): Also copy virtual operands.
8811 Delay updating the statement. Do not reset loaded and stored syms.
8812 (gimple_set_stored_syms): Remove.
8813 (gimple_set_loaded_syms): Likewise.
8814 (gimple_call_copy_skip_args): Copy the virtual operands
8815 and mark the new statement modified.
8816 * tree-ssa-structalias.c (may_alias_p): Remove.
8817 (set_uids_in_ptset): Take the alias set to prune with as
8818 parameter. Fold in the alias test of may_alias_p.
8819 (compute_points_to_sets): Compute whether a ptr is dereferenced
8820 in a local sbitmap.
8821 (process_constraint): Deal with &ANYTHING on the lhs, reject all
8822 other ADDRESSOF constraints on the lhs.
8823 (get_constraint_for_component_ref): Assert that we don't get
8824 ADDRESSOF constraints from the base of the reference.
8825 Properly generate UNKNOWN_OFFSET for DEREF if needed.
8826 (struct variable_info): Remove collapsed_to member.
8827 (get_varinfo_fc): Remove.
8828 (new_var_info): Do not set collapsed_to.
8829 (dump_constraint): Do not follow cycles.
8830 (dump_constraint_graph): Likewise.
8831 (build_pred_graph): Likewise.
8832 (build_succ_graph): Likewise.
8833 (rewrite_constraints): Likewise.
8834 (do_simple_structure_copy): Remove.
8835 (do_rhs_deref_structure_copy): Remove.
8836 (do_lhs_deref_structure_copy): Remove.
8837 (collapse_rest_of_var): Remove.
8838 (do_structure_copy): Re-implement.
8839 (pta_stats): New global variable.
8840 (dump_pta_stats): New function.
8841 (struct constraint_expr): Make offset signed.
8842 (UNKNOWN_OFFSET): Define special value.
8843 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
8844 (solution_set_expand): New helper function split out from ...
8845 (do_sd_constraint): ... here.
8846 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
8847 (do_ds_constraint): Likewise.
8848 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
8849 and CALLUSED = *CALLUSED.
8850 (set_union_with_increment): Make inc argument signed.
8851 (type_safe): Remove.
8852 (get_constraint_for_ptr_offset): Handle unknown and negative
8853 constant offsets.
8854 (first_vi_for_offset): Handle offsets before start. Bail
8855 out early for offsets beyond the variable extent.
8856 (first_or_preceding_vi_for_offset): New function.
8857 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
8858 Together with ESCAPED = *ESCAPED this properly computes reachability.
8859 (find_what_var_points_to): New function.
8860 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
8861 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
8862 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
8863 pt_solutions_intersect): New functions.
8864 (compute_call_used_vars): Remove.
8865 (compute_may_aliases): New main entry into PTA computation.
8866 * gimple.h (gimple_p): New typedef.
8867 (struct gimple_statement_base): Remove references_memory_p.
8868 (struct gimple_statement_with_memory_ops_base): Remove
8869 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
8870 members.
8871 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
8872 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
8873 gimple_set_references_memory): Remove.
8874 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
8875 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
8876 New functions.
8877 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
8878 (verify_expr): Allow RESULT_DECL.
8879 (gimple_duplicate_bb): Do not copy virtual operands.
8880 (gimple_duplicate_sese_region): Adjust.
8881 (gimple_duplicate_sese_tail): Likewise.
8882 (mark_virtual_ops_in_region): Remove.
8883 (move_sese_region_to_fn): Do not call it.
8884 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
8885 and pass_simple_dse.
8886 (execute_function_todo): Handle TODO_update_address_taken,
8887 call execute_update_addresses_taken for TODO_rebuild_alias.
8888 (execute_todo): Adjust.
8889 (execute_one_pass): Init dump files early.
8890 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
8891 call-clobbered.
8892 (create_general_new_stmt): Clear vops.
8893 * tree-ssa-reassoc.c (get_rank): Adjust.
8894 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
8895 symbols for renaming.
8896 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
8897 (PARAM_AVG_ALIASED_VOPS): Likewise.
8898 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
8899 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 8900 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
8901 (operand_build_cmp, copy_virtual_operands,
8902 create_ssa_artificial_load_stmt, add_to_addressable_set,
8903 gimple_add_to_addresses_taken): Remove public functions.
8904 (unlink_stmt_vdef): New function.
8905
457d1d00
AM
89062009-04-03 Alan Modra <amodra@bigpond.net.au>
8907
8908 * config.gcc (powerpc-*-linux*): Merge variants.
8909
e19da24c 89102009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 8911 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
8912
8913 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
8914 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
8915 cop0_sp_offset.
8916 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
8917 keep_interrupts_masked_p, use_debug_exception_return_p.
8918 (mips_attribute_table): Add interrupt, use_shadow_register_set,
8919 keep_interrupts_masked, use_debug_exception_return.
8920 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
8921 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
8922 New functions.
8923 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
8924 (mips_print_operand): Process COP0 registers to print $0 .. $31
8925 correctly for GAS to process.
8926 (mips_interrupt_extra_call_saved_reg_p): New function.
8927 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
8928 extra registers.
8929 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
8930 (mips_compute_frame_info): Add supports for interrupt context that
8931 includes doubleword accumulators and COP0 registers.
8932 (mips_for_each_saved_acc): New function.
8933 (mips_for_each_saved_gpr_and_fpr): Change the function name from
8934 mips_for_each_saved_reg.
8935 (mips_save_reg): Save accumulators.
8936 (mips_kernel_reg_p): A new for_each_rtx callback.
8937 (mips_expand_prologue): Support interrupt handlers.
8938 (mips_restore_reg): Restore accumulators.
8939 (mips_expand_epilogue): Support interrupt handlers.
8940 (mips_can_use_return_insn): Return false for interrupt handlers.
8941 (mips_epilogue_uses): New function.
8942 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
8943 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
8944 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
8945 cop0_move): New instructions.
8946 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
8947 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
8948 defines.
8949 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
8950 New defines.
8951 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
8952 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
8953 interrupt handlers, we use K0 as the temporary register.
8954 (EPILOGUE_USES): Change to a function call.
8955 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
8956 handlers, we use K0 as the temporary register.
2ba9daa7 8957
e19da24c
CF
8958 * doc/extend.texi (Function Attributes): Document interrupt,
8959 use_shadow_register_set, keep_interrupts_masked,
8960 use_debug_exception_return for MIPS attributes.
8961
aa1ca044
AM
89622009-04-03 Alan Modra <amodra@bigpond.net.au>
8963
8964 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
8965 Remove a number of t-files from tmake_file.
8966 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
8967 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
8968 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
8969 target_prototype, not TARGET_PROTOTYPE.
8970 (LINK_OS_GNU_SPEC): Define.
8971 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
8972 and darwin-ldoubdle.c.
8973
14fdc613
MM
89742009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8975
8976 PR driver/39293
8977 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
8978 (cpp_options): Ditto.
8979 (default_compilers): Ditto.
8980 (display_help): Ditto.
8981 (process_command): Ditto.
8982 (do_spec_1): Ditto.
8983 (set_input): Use lbasename instead of duplicate code.
8984 (save_temps_prefix): New static for -save-temps=obj.
8985 (save_temps_length): Ditto.
2ba9daa7 8986
14fdc613
MM
8987 * doc/invoke.texi (-save-temps=obj): Document new variant to
8988 -save-temps switch.
8989
d3aa398e
JL
89902009-04-02 Jeff Law <law@redhat.com>
8991
8992 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
8993 variable.
8994
83f0ccb8
L
89952009-04-02 H.J. Lu <hongjiu.lu@intel.com>
8996
8997 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
8998 * configure: Regenerated.
8999
dcb6e951
RAE
90002009-04-02 Rafael Avila de Espindola <espindola@google.com>
9001
9002 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
9003 share the argument list.
9004
d85478c2
RAE
90052009-04-02 Rafael Avila de Espindola <espindola@google.com>
9006
9007 Merge
9008
9009 2009-02-12 Diego Novillo <dnovillo@google.com>
9010
83f0ccb8
L
9011 * varpool.c (debug_varpool): New.
9012 * cgraph.h (debug_varpool): Declare.
d85478c2 9013
34f42a49
JH
90142009-04-02 Jan Hubicka <jh@suse.cz>
9015
9016 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
9017 pass.
9018
a4747b4a
L
90192009-04-02 H.J. Lu <hongjiu.lu@intel.com>
9020
9021 * config/i386/i386.c (ix86_abi): Move initialization to ...
9022 (override_options): Here.
9023
63a9de54
CB
90242009-04-02 Christian Bruel <christian.bruel@st.com>
9025
9026 * config/sh/sh.c (sh_dwarf_register_span): New function.
9027 (TARGET_DWARF_REGISTER_SPAN): Define.
9028 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 9029
2f0fa28e
IR
90302009-04-02 Ira Rosen <irar@il.ibm.com>
9031
9032 PR tree-optimization/39595
2ba9daa7 9033 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
9034 interleaved loads group is not greater than the SLP group size.
9035
bbf7ce11
RAE
90362009-04-02 Rafael Avila de Espindola <espindola@google.com>
9037
9038 * builtins.c (is_builtin_name): New.
9039 (called_as_built_in): Use is_builtin_name.
9040 * tree.h (is_builtin_name): New.
9041 * varasm.c (incorporeal_function_p): Use is_builtin_name
9042
47e4dfcf
AS
90432009-04-02 Andrew Stubbs <ams@codesourcery.com>
9044
9045 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
9046
d0940d56
DS
90472009-04-02 Dodji Seketeli <dodji@redhat.com>
9048
9049 PR c++/26693
532bfb0a 9050 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
9051 * c-common.c (set_underlying_type): ... here.
9052 Also, make sure the function properly sets TYPE_STUB_DECL() on
9053 the newly created typedef variant type.
9054 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
9055 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
9056 points.
d0940d56 9057
bf1cbdc6
RG
90582009-04-02 Richard Guenther <rguenther@suse.de>
9059
9060 PR tree-optimization/37221
9061 * tree-flow.h (degenerate_phi_result): Declare.
9062 * tree-ssa-dom.c (degenerate_phi_result): Export.
9063 * tree-scalar-evolution.c (analyze_initial_condition): If
9064 the initial condition is defined by a degenerate PHI node
9065 use the degenerate value.
9066
87cfb32c
EB
90672009-04-01 Eric Botcazou <ebotcazou@adacore.com>
9068
9069 PR rtl-optimization/39588
9070 * combine.c (merge_outer_ops): Do not set the constant when this
9071 is not necessary.
9072 (simplify_shift_const_1): Do not modify it either in this case.
9073
bbb6eae8
SB
90742009-04-01 Steven Bosscher <steven@gcc.gnu.org>
9075
9076 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
9077 tuning is deprecated if -mtune value is set to an Itanium1 variant.
9078
839a3b8a
JJ
90792009-04-01 Janis Johnson <janis187@us.ibm.com>
9080
9081 PR c/29027
9082 * c-lex.c (interpret_float): Default (no suffix) is double.
9083
667e8acb
XDL
90842009-04-1 Xinliang David Li <davidxl@google.com>
9085
9086 * config/i386/i386.c (legitimate_constant_p): Recognize
9087 all one vector constant.
9088
60839f5d 90892009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9090
60839f5d 9091 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
9092 Change #include order to silence two warnings.
9093
60839f5d 90942009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9095
60839f5d 9096 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
9097 (ASM_SPEC): Pass -k to the assembler for PIC code.
9098
60839f5d 90992009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9100
60839f5d
EB
9101 * config.gcc: Add vax-*-linux* to the switch.
9102 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
9103 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
9104
60839f5d 91052009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9106
60839f5d 9107 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 9108 Use predicate macros instead of GET_CODE() == foo.
60839f5d 9109 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
9110 ashlsi3, rotrsi3, <unnamed>): Likewise.
9111
60839f5d 91122009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9113
60839f5d 9114 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 9115 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
9116 * config/vax/constraints.md: Likewise.
9117 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
9118 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
9119 * config/vax/predicates.md: Likewise.
9120 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 9121 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
9122 * config/vax/vax.h: Likewise.
9123 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 9124
60839f5d 91252009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9126
60839f5d 9127 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
9128 (indirectable_address_p, adjacent_operands_p): Add spaces around
9129 braces.
60839f5d 9130 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 9131
60839f5d 91322009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9133
60839f5d 9134 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
9135 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
9136 index_term_p, reg_plus_index_p, legitimate_address_p,
9137 vax_mode_dependent_address_p): Update comments to match functions
9138 modified by the recent int->bool conversion.
9139
60839f5d 91402009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9141
60839f5d
EB
9142 * config/vax/builtins.md: Update copyright message.
9143 * config/vax/constraints.md: Likewise.
9144 * config/vax/netbsd-elf.h: Likewise.
9145 * config/vax/predicates.md: Likewise.
9146 * config/vax/vax-protos.h: Likewise.
9147 * config/vax/vax.c: Likewise.
9148 * config/vax/vax.h: Likewise.
9149 * config/vax/vax.md: Likewise.
9150 * config/vax/vax.opt: Likewise.
c4e75102 9151
60839f5d 91522009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 9153
60839f5d 9154 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 9155 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
9156 * config/vax/constraints.md (B, R): Likewise.
9157 * config/vax/predicates.md (external_memory_operand,
c4e75102 9158 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
9159 * config/vax/vax.c (vax_output_int_add): Likewise.
9160 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
9161 untyped_call): Likewise.
9162
60839f5d 91632009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 9164
7a715bba
UB
9165 * config/vax/predicates.md: New file.
9166 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
9167 external_const_operand, nonsymbolic_operand, external_memory_operand,
9168 indirect_memory_operand, indexed_memory_operand,
9169 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
9170 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
9171 predicate.
7a715bba
UB
9172 * config/vax/constraints.md: New file.
9173 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
9174 New constraint.
9175 * config/vax/builtins.md: New file.
9176 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
9177 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
9178 jbbccisi): Define.
c4e75102
MT
9179 * config/vax/vax.opt (mqmath): Add option.
9180 * config/vax/vax.md (isfx): Extend with DI.
9181 (VAXintQH, VAXintQHSD): Define.
9182 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
9183 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
9184 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
9185 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
9186 (movdi): Update constraints and use vax_output_int_move().
9187 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
9188 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
9189 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
9190 nonlocal_goto): New.
9191 (mov<mode>): Extend accepted operand types.
9192 (subdi3_old): Rename from subdi3, change update constraints and use
9193 a new implementation.
60839f5d 9194 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
9195 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
9196 MOVE_RATIO, CLEAR_RATIO): Define.
9197 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
9198 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
9199 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 9200 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
9201 (split_quadword_operands): Make static and really allow variable
9202 splitting.
9203 (print_operand_address): Update for PIC generation.
9204 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
9205 indexable_address_p, fixup_mathdi_operand,
9206 vax_expand_addsub_di_operands, adjacent_operands_p): New.
9207 (vax_float_literal, legitimate_constant_p,
9208 indirectable_constant_address_p, index_term_p,
9209 reg_plus_index_p): Return bool instead of int.
9210 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
9211 where needed.
9212 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
9213 generation.
9214 (vax_output_conditional_branch): Indent.
9215 (legitimate_constant_address_p, indirectable_constant_address_p,
9216 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
9217 vax_mode_dependent_address_p): Return bool instead of int, update for
9218 PIC generation.
9219 * config/vax/vax-protos.h (legitimate_constant_address_p,
9220 legitimate_constant_p, legitimate_address_p,
9221 vax_mode_dependent_address_p): Change declaration to bool.
9222 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
9223 vax_expand_addsub_di_operands, vax_output_int_subtract,
9224 vax_output_movmemsi): Declare.
9225 (split_quadword_operands, vax_float_literal): Delete declaration.
9226 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
9227 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
9228 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
9229 ASM_OUTPUT_DWARF_PCREL): Define.
9230 (ASM_SPEC): Change definition to allow PIC generation.
9231
9332c6eb
L
92322009-04-01 Steve Ellcey <sje@cup.hp.com>
9233
9234 * doc/sourcebuild.texi: Update front-end requirements.
9235
d93e052c
JJ
92362009-04-01 Jakub Jelinek <jakub@redhat.com>
9237
9238 PR target/39226
9239 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
9240 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
9241 (booldi3_internal3): Use boolean_or_operator instead of
9242 boolean_operator.
9243
6ccb2a4a
JM
92442009-04-01 Joseph Myers <joseph@codesourcery.com>
9245
9246 PR c/39605
9247 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
9248 declarator whose size is not an integer constant expression but
9249 folds to an integer constant, then treat it as a constant
9250 subsequently.
9251
299b87f8
RG
92522009-04-01 Richard Guenther <rguenther@suse.de>
9253
9254 * fold-const.c (fold_plusminus_mult_expr): Do not fold
9255 i * 4 + 2 to (i * 2 + 1) * 2.
9256
b85eb797
JJ
92572009-04-01 Jakub Jelinek <jakub@redhat.com>
9258
9259 PR c/37772
9260 * c-parser.c (c_parser_asm_statement): Skip until close paren and
9261 return if c_parser_asm_string_literal returned NULL.
9262
235e1fe8
NC
92632009-04-01 Nick Clifton <nickc@redhat.com>
9264
9265 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
9266 already defined.
9267 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
9268 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
9269 other typedefs to avoid conflicts with libgcc2.c. Define labels
9270 to gain 16-bit bit-manipulation functions from libgcc2.c and then
9271 include it.
9272 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
9273 to gain 16-bit trapping arithmetic functions from libgcc2.c and
9274 then include it.
9275
d6868399
RAE
92762009-04-01 Rafael Avila de Espindola <espindola@google.com>
9277
7a715bba
UB
9278 * varasm.c (default_function_rodata_section): Declare DOT as
9279 const char*.
d6868399 9280
73d21f56 92812009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 9282 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
9283
9284 PR/39492
9285 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
9286 Make object_name unique for each process.
9287
03742a9b
JJ
92882009-04-01 Jakub Jelinek <jakub@redhat.com>
9289
9290 PR other/39591
9291 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
9292 addressable variables in the parallel that could go out of scope while
9293 running queued tasks.
9294
4223ff5f
AS
92952009-04-01 Anatoly Sokolov <aesok@post.ru>
9296
9297 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
9298 (CASE_VALUES_THRESHOLD): Redefine.
9299 * config/avr/avr.c (avr_override_options): Remove initialization of
9300 avr_case_values_threshold variable.
9301 (avr_case_values_threshold): Remove variable. Add new function.
9302 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
9303 * config/avr/avr.opt (mno-tablejump): Remove option.
9304 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
9305
e893f6f3
DD
93062009-04-01 DJ Delorie <dj@redhat.com>
9307
9308 * varasm.c (default_function_rodata_section): Don't assume
9309 anything about where the first '.' in the section name is.
9310
b246d100
AM
93112009-04-01 Alan Modra <amodra@bigpond.net.au>
9312
9313 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
9314 rs6000_emit_stack_tie.
9315
d3e37a9e
ILT
93162009-03-31 Ian Lance Taylor <iant@google.com>
9317
9318 * tree-eh.c (tree_remove_unreachable_handlers): Compare
9319 gimple_code with GIMPLE_RESX, not RESX.
9320
c1b61fca
JM
93212009-03-31 Joseph Myers <joseph@codesourcery.com>
9322
9323 * c-common.c (c_get_ident): New.
7a715bba 9324 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 9325
c2d2ad48
BE
93262009-04-01 Ben Elliston <bje@au.ibm.com>
9327
9328 * config/rs6000/sysv4.opt (msdata): Improve option description.
9329
13d1a6e7
SE
93302009-03-31 Steve Ellcey <sje@cup.hp.com>
9331
9332 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
9333 (divdf3_internal_lat): Remove.
9334 (divxf3_internal_lat): Remove.
9335 (divxf3_internal_thr): Remove.
9336 (divxf): Use divxf3_internal.
9337 * config/ia64/div.md (divsf3_internal_lat): New.
9338 (divdf3_internal_lat): New.
9339 (divxf3_internal): New.
9340
207bf79d
JM
93412009-03-31 Joseph Myers <joseph@codesourcery.com>
9342
9343 PR c/448
9344 * Makefile.in (USE_GCC_STDINT): Define.
9345 (stmp-int-hdrs): Install stdint.h if applicable.
9346 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
9347 if known.
9348 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
9349 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
9350 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9351 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9352 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9353 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9354 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9355 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9356 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9357 (c_common_nodes_and_builtins): Initialize
9358 underlying_wchar_type_node. Do not initialize
9359 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
9360 nodes for new types.
9361 (c_stddef_cpp_builtins): Define macros for new types.
9362 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
9363 Remove.
9364 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
9365 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
9366 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
9367 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
9368 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
9369 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
9370 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
9371 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
9372 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
9373 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
9374 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
9375 int16_type_node, int32_type_node, int64_type_node,
9376 uint8_type_node, uint16_type_node, c_uint32_type_node,
9377 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
9378 int_least32_type_node, int_least64_type_node,
9379 uint_least8_type_node, uint_least16_type_node,
9380 uint_least32_type_node, uint_least64_type_node,
9381 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
9382 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
9383 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
9384 uintptr_type_node): Define.
9385 * c-cppbuiltin.c (builtin_define_constants,
9386 builtin_define_type_minmax): New.
9387 (builtin_define_stdint_macros): Define more macros.
9388 (c_cpp_builtins): Define more limit macros.
9389 (type_suffix): New.
9390 (builtin_define_type_max): Define in terms of
9391 builtin_define_type_minmax. Remove is_long parameter. All
9392 callers changed.
9393 * config.gcc (use_gcc_stdint): Define.
9394 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
9395 Add newlib-stdint.h for generic targets.
9396 * config/glibc-stdint.h, config/newlib-stdint.h,
9397 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
9398 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
9399 * config/score/score.h (UINTPTR_TYPE): Define.
9400 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
9401 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
9402 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9403 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9404 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9405 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9406 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9407 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
9408 * config/spu/spu.h (STDINT_LONG32): Define.
9409 * configure.ac (use_gcc_stdint): Substitute.
9410 * configure: Regenerate.
9411 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
9412 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
9413 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
9414 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
9415 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
9416 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
9417 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
9418 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
9419 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
9420 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
9421 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
9422 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
9423 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
9424 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
9425 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
9426 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
9427 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
9428 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
9429 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
9430 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
9431 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
9432 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
9433 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
9434 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9435 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
9436 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
9437 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
9438 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9439 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
9440
ed853664
BS
94412009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
9442
9443 * loop-iv.c (suitable_set_for_replacement): Renamed from
9444 simplify_using_assignment; changed to return bool and to accept new
9445 args DEST and SRC. Return true iff we find a source/destination pair
9446 that can be used to make a replacement, and fill SRC and DEST if so.
9447 Remove arg ALTERED. Don't deal with altered regs here. All callers
9448 changed.
9449 (simplify_using_initial_values): Deal with altered regs here and track
9450 more precisely the effect they have on the validity of our expression.
9451
1569e190
BS
9452 * loop-iv.c (simplify_using_condition): A condition of the form
9453 (EQ REG CONST) can be used to simply make a substitution.
9454 (simplify_using_initial_values): Keep track of conditions we have seen
9455 and keep using them to simplify new expressions, while applying the
9456 same substitutions to them as to the expression.
9457
1d1eb80c
BS
9458 * simplify-rtx.c (simplify_relational_operation_1): Simplify
9459 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
9460 GEU/LTU reversed.
9461
28af33b0
BS
9462 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
9463 changed. Use this when trying to improve the upper bound.
9464 Generate the comparison by using simplify_gen_relational.
9465
b30321cd
BS
9466 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
9467
60081874
BS
9468 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
9469 functions.
2ba9daa7 9470 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
9471 replace_in_expr to make replacements. Call replace_single_def_regs
9472 once on the initial version of the expression.
9473
bebc6e07
RR
94742009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9475
fcb82ab0 9476 PR target/27237
bebc6e07 9477 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 9478
6b12efe9
RG
94792009-03-31 Richard Guenther <rguenther@suse.de>
9480
9481 PR middle-end/31029
9482 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
9483 equality comparisons. Fold C - X CMP X if C % 2 == 1.
9484
108f6c2f
RG
94852009-03-31 Richard Guenther <rguenther@suse.de>
9486
9487 * tree.h (div_if_zero_remainder): Declare.
9488 * fold-const.c (div_if_zero_remainder): Export.
9489 * tree-ssa-forwprop.c
9490 (forward_propagate_addr_into_variable_array_index): Handle
9491 constant array index addition outside of the variable index.
9492
8f612190
JM
94932009-03-31 Joseph Myers <joseph@codesourcery.com>
9494
9495 PR target/39592
9496 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
9497 define_splits, floatunssi<mode>2): Require x87 conversions from
9498 DImode to be permitted.
9499
47580d22
JM
95002009-03-31 Joseph Myers <joseph@codesourcery.com>
9501
9502 PR preprocessor/15638
9503 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
9504
ba4d8f9d
RG
95052009-03-31 Richard Guenther <rguenther@suse.de>
9506
9507 PR middle-end/23401
9508 PR middle-end/27810
9509 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
9510 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
9511 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
9512 a separate statement.
9513 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
9514 (lookup_tmp_var): Likewise.
9515 (is_gimple_formal_tmp_or_call_rhs): Remove.
9516 (is_gimple_reg_or_call_rhs): Rename to ...
9517 (is_gimple_reg_rhs_or_call): ... this.
9518 (is_gimple_mem_or_call_rhs): Rename to ...
9519 (is_gimple_mem_rhs_or_call): ... this.
9520 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
9521 DECL_GIMPLE_REG_P only if is_formal is true.
9522 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
9523 for non-proper post-modify expression gimplification.
9524 (gimplify_self_mod_expr): For post-modify expressions gimplify
9525 the lvalue to a minimal lvalue.
9526 (rhs_predicate_for): Remove formal temp case.
9527 (gimplify_modify_expr_rhs): Likewise.
9528 (gimplify_addr_expr): Use is_gimple_reg.
9529 (gimplify_expr): Remove formal temp cases.
9530 (gimple_regimplify_operands): Likewise.
9531 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
9532 and FILTER_EXPR like constants.
9533 * gimple.c (walk_gimple_op): Fix val_only initialization, use
9534 is_gimple_reg.
9535 (is_gimple_formal_tmp_rhs): Remove.
9536 (is_gimple_reg_rhs): Remove special casing.
9537 (is_gimple_mem_rhs): Fix.
9538 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
9539 (is_gimple_formal_tmp_var): Remove.
9540 (is_gimple_formal_tmp_reg): Likewise.
9541 (is_gimple_min_lval): Allow invariant component ref parts.
9542 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
9543 is_gimple_formal_tmp_reg): Remove declarations.
9544 * tree-cfg.c (verify_expr): Verify that variables with address
9545 taken do not have DECL_GIMPLE_REG_P set.
9546 * tree-mudflap.c (mf_build_check_statement_for): Use
9547 force_gimple_operand instead of gimplify_expr.
9548
8de9b877
AZ
95492009-03-31 Ayal Zaks <zaks@il.ibm.com>
9550
9551 * modulo-sched.c (sms_schedule_by_order): Pass the actual
9552 schedulable rows to compute_split_row.
9553
b5e3caf2
BE
95542009-03-31 Ben Elliston <bje@au.ibm.com>
9555
9556 PR target/31635
9557 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
9558 OPT_mvrsave.
9559
9752c4ad
AM
95602009-03-31 Alan Modra <amodra@bigpond.net.au>
9561
9562 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
9563 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
9564 * configure: Regenerate.
9565 * config.in: Regenerate.
9566 * config/rs6000/rs6000.opt (mtls-markers): Add.
9567 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
9568 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
9569 (tls_ld_aix, tls_ld_sysv): Likewise.
9570 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
9571 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
9572
b597d1b6
AM
95732009-03-31 Alan Modra <amodra@bigpond.net.au>
9574
9575 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
9576
a203a221
JH
95772009-03-30 Jan Hubicka <jh@suse.cz>
9578
b597d1b6
AM
9579 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
9580 out of RESX.
9581 (tree_remove_unreachable_handlers): Cleanup EH predecestor
9582 detection and label handling.
a203a221 9583
5b0c0b2c
VM
95842009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9585
9586 * ira-int.h (ira_allocno): Rename left_conflicts_num to
9587 left_conflicts_size.
9588 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
9589 ALLOCNO_LEFT_CONFLICTS_SIZE.
9590
9591 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
9592 remove_allocno_from_bucket_and_push,
9593 allocno_spill_priority_compare, push_allocnos_to_stack,
9594 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9595 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
9596 (setup_allocno_left_conflicts_num): Ditto. Rename to
9597 setup_allocno_left_conflicts_size.
9598 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
9599 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
9600 setup_allocno_left_conflicts_size instead of
9601 setup_allocno_left_conflicts_num.
9602
9603 * ira-build.c (ira_create_allocno): Use
9604 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
9605 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 9606
9a48a93f
VM
96072009-03-30 Vladimir Makarov <vmakarov@redhat.com>
9608
9609 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
9610 instead of DF_LR_OUT.
9611
9612 * ira-lives.c (process_bb_node_lives): Ditto.
9613
9614 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
9615 instead of DF_LR_{OUT,IN}.
9616
9617 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
9618
9619 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
9620
4c936d4f
JH
96212009-03-30 Jan Hubicka <jh@suse.cz>
9622
9623 * except.c (label_to_region_map): Fix thinko.
9624
f4d9f129
SE
96252009-03-30 Steve Ellcey <sje@cup.hp.com>
9626
9627 PR middle-end/38237
9628 * tree.h (tree_find_value): New declaration.
9629 * tree.c (tree_find_value): New function.
9630 * varasm.c (assemble_external): Avoid duplicate entries on lists.
9631
b3f27c15
JJ
96322009-03-30 Jakub Jelinek <jakub@redhat.com>
9633
9634 PR debug/39563
9635 * c-decl.c (struct c_binding): Add locus field.
9636 (bind): Add locus argument, set locus field from it.
9637 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
9638 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
9639 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
9640 implicitly_declare, undeclared_variable, lookup_label,
9641 declare_label, c_make_fname_decl, c_builtin_function,
9642 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
9643 bind callers.
9644
ad41bd84 96452009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
9646
9647 PR target/38781
9648 * config/i386/i386.c (classify_argument): Check total size of
9649 structure.
9650
133f9369
MJ
96512009-03-30 Martin Jambor <mjambor@suse.cz>
9652
9653 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
9654 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
9655 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
9656 respectively.
9657
9658 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
9659 seen_variable_array_ref while also traversing a union.
9660
9661 * tree-inline.c (optimize_inline_calls): Do not call
9662 cgraph_node_remove_callees.
9663 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
9664 (pass_remove_cgraph_callee_edges): New variable.
9665 * passes.c (init_optimization_passes): Add
9666 pass_remove_cgraph_callee_edges after early inlining and before all
9667 late intraprocedural passes.
9668
9669 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
9670
1190f2eb
PB
96712009-03-30 Paolo Bonzini <bonzini@gnu.org>
9672
9673 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
9674 Fix typos in names.
9675
fedc1775
PB
96762009-03-30 Paolo Bonzini <bonzini@gnu.org>
9677
fcb82ab0
UB
9678 * combine.c (simplify_comparison): Use have_insn_for.
9679 * dojump.c (do_jump): Likewise.
fedc1775 9680
65c5ae8b
PB
96812009-03-30 Paolo Bonzini <bonzini@gnu.org>
9682
9683 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
9684 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
9685 sparc_compare_op0 like sparc_compare_emitted used to be handled.
9686 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
9687 instead of sparc_compare_emitted.
9688 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
9689 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
9690 instead of sparc_compare_emitted.
9691
d25aa7ab
PB
96922009-03-30 Paolo Bonzini <bonzini@gnu.org>
9693
9694 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
9695 enter/exit cfglayout mode.
9696 (pass_partition_block): Require it.
9697 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
9698 (combine_instructions): Track basic blocks instead of labels.
9699 (update_cfg_for_uncondjump): New.
9700 (try_combine): Use it. Update jumps after rescanning.
9701 (pass_combine): Require PROP_cfglayout.
9702 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
9703
9c9e26f5
PB
97042009-03-30 Paolo Bonzini <bonzini@gnu.org>
9705
fcb82ab0
UB
9706 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
9707 Provide/destroy PROP_cfglayout respectively.
9708 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
9709 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 9710
28ddeea1
PB
97112009-03-30 Paolo Bonzini <bonzini@gnu.org>
9712
9713 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
9714 fold_convert_const_fixed_from_fixed,
9715 fold_convert_const_fixed_from_int,
9716 fold_convert_const_fixed_from_real, fold_negate_const): Do not
9717 set TREE_CONSTANT_OVERFLOW.
9718 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
9719 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
9720
ebfd146a
IR
97212009-03-30 Ira Rosen <irar@il.ibm.com>
9722
9723 * tree-vect-loop-manip.c: New file.
9724 * tree-vectorizer.c: Update documentation and included files.
9725 (vect_loop_location): Make extern.
9726 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
9727 (rename_variables_in_bb, rename_variables_in_loop,
9728 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
9729 slpeel_update_phi_nodes_for_guard1,
9730 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
9731 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
9732 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 9733 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
9734 find_loop_location): Likewise.
9735 (new_stmt_vec_info): Move to tree-vect-stmts.c.
9736 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
9737 get_vectype_for_scalar_type, vect_is_simple_use,
9738 supportable_widening_operation, supportable_narrowing_operation):
9739 Likewise.
9740 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
9741 (new_loop_vec_info, destroy_loop_vec_info,
9742 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
9743 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
9744 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
9745 (vect_supportable_dr_alignment): Likewise.
9746 * tree-vectorizer.h (tree-data-ref.h): Include.
9747 (vect_loop_location): Declare.
9748 Reorganize function declarations according to the new file structure.
9749 * tree-vect-loop.c: New file.
2ba9daa7 9750 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
9751 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
9752 * tree-vect-data-refs.c: New file.
9753 * tree-vect-patterns.c (timevar.h): Don't include.
9754 * tree-vect-stmts.c: New file.
2ba9daa7 9755 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 9756 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
9757 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
9758 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
9759 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
9760 (tree-vect-analyze.o): Remove.
9761 (tree-vect-transform.o): Likewise.
9762 (tree-vect-data-refs.o): Add rule.
2ba9daa7 9763 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
9764 tree-vect-slp.o): Likewise.
9765 (tree-vect-patterns.o): Remove redundant dependencies.
9766 (tree-vectorizer.o): Likewise.
9767 * tree-vect-slp.c: New file.
9768
40a1cfba
RW
97692009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9770
9771 * optc-gen.awk: Warn if an option flag has multiple different
9772 help strings.
9773
a9a7a9a2
SP
97742009-03-30 Sebastian Pop <sebastian.pop@amd.com>
9775
9776 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
9777 -floop-block): Document dependences on PPL, CLooG and Graphite.
9778
8ce94e44
JM
97792009-03-30 Joseph Myers <joseph@codesourcery.com>
9780
9781 PR rtl-optimization/323
9782 * c-common.c (c_fully_fold, convert_and_check,
9783 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
9784 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
9785 * c-common.def (EXCESS_PRECISION_EXPR): New.
9786 * c-cppbuiltin.c (builtin_define_float_constants): Define
9787 constants with enough digits for long double.
9788 * c-lex.c (interpret_float): Interpret constant with excess
9789 precision where appropriate.
9790 * c-opts.c (c_common_post_options): Set
9791 flag_excess_precision_cmdline. Give an error for
9792 -fexcess-precision=standard for C++ for processors where the
9793 option is significant.
9794 * c-parser.c (c_parser_conditional_expression): Handle excess
9795 precision in condition.
9796 * c-typeck.c (convert_arguments): Handle arguments with excess
9797 precision.
9798 (build_unary_op): Move excess precision outside operation.
9799 (build_conditional_expr): Likewise.
9800 (build_compound_expr): Likewise.
9801 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
9802 (build_modify_expr): Handle excess precision in RHS.
9803 (convert_for_assignment): Handle excess precision in converted
9804 value.
9805 (digest_init, output_init_element, process_init_element): Handle
9806 excess precision in initializer.
9807 (c_finish_return): Handle excess precision in return value.
9808 (build_binary_op): Handle excess precision in operands and add
9809 excess precision as needed for operation.
9810 * common.opt (-fexcess-precision=): New option.
9811 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
9812 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
9813 For standard excess precision, output explicit conversion to and
9814 truncation from XFmode.
9815 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
9816 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
9817 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
9818 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
9819 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
9820 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
9821 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
9822 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
9823 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
9824 define_splits, sqrt<mode>2): Disable where appropriate for
9825 standard excess precision.
9826 * convert.c (convert_to_real): Do not shorten arithmetic to type
9827 for which excess precision would be used.
9828 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
9829 * doc/invoke.texi (-fexcess-precision=): Document option.
9830 (-mfpmath=): Correct index entry.
9831 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
9832 flag_excess_precision): New.
9833 * langhooks.c (lhd_post_options): Set
9834 flag_excess_precision_cmdline.
9835 * opts.c (common_handle_option): Handle -fexcess-precision=.
9836 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
9837 init_excess_precision): New.
9838 (lang_dependent_init_target): Call init_excess_precision.
9839 * tree.c (excess_precision_type): New.
9840 * tree.h (excess_precision_type): Declare.
9841
1e57bf47
JM
98422009-03-30 Joseph Myers <joseph@codesourcery.com>
9843
9844 PR c/35235
9845 * c-typeck.c (build_component_ref): Do not copy qualifiers from
9846 non-lvalue to component.
9847
148e4216
JM
98482009-03-29 Joseph Myers <joseph@codesourcery.com>
9849
9850 PR preprocessor/34695
9851 * Makefile.in (c-opts.o): Depend on c-tree.h.
9852 * c-common.c: Move down include of diagnostic.h.
9853 (done_lexing, c_cpp_error): New.
9854 * c-common.h (done_lexing): Declare.
9855 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
9856 (parse_in).
9857 * c-opts.c: Include c-tree.h.
9858 (c_common_init_options): Set preprocessor error callback.
9859 (c_common_handle_option): Do not set preprocessor
9860 inhibit_warnings, warnings_are_errors, warn_system_headers,
9861 pedantic_errors or inhibit_warnings flags.
9862 (c_common_post_options): Do not check cpp_errors (parse_in).
9863 (c_common_finish): Do not output dependencies if there were
9864 errors. Do not check return value of cpp_finish.
9865 * c-ppoutput.c (pp_file_change): Set input_location.
9866 * c-tree.h (c_cpp_error): Declare.
9867 * diagnostic.c (diagnostic_set_info_translated): Also initialize
9868 override_column.
9869 (diagnostic_build_prefix): Check override_column.
9870 * diagnostic.h (diagnostic_info): Add override_column field.
9871 (diagnostic_override_column): Define.
9872
2ec5deb5
PB
98732009-03-28 Paolo Bonzini <bonzini@gnu.org>
9874
ba20e309
UB
9875 * c-common.c (c_expand_expr, c_staticp): Remove.
9876 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
9877 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
9878 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
9879 * c-gimplify.c (gimplify_compound_literal_expr,
9880 optimize_compound_literals_in_ctor): Remove.
9881 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
9882 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
9883 * c-semantics.c (emit_local_var): Remove.
9884
9885 * langhooks-def.h (lhd_expand_expr): Remove.
9886 * langhooks.c (lhd_expand_expr): Remove.
9887 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
9888
9889 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
9890 handling from c-semantics.c; don't call into langhook.
9891 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
9892 * gimplify.c (gimplify_compound_literal_expr,
9893 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
9894 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
9895 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
9896 as was done in c-gimplify.c.
9897 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
9898 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
9899 Move from c-common.h.
9900 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
9901
9902 * tree.c (staticp): Do not call langhook.
9903 * langhooks.c (lhd_staticp): Delete.
9904 * langhooks-def.h (lhd_staticp): Delete prototype.
9905 (LANG_HOOKS_STATICP): Delete.
9906 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
9907
ba20e309
UB
9908 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
9909 instead of DECL_STMTs.
2ec5deb5 9910
928c19bb
JM
99112009-03-29 Joseph Myers <joseph@codesourcery.com>
9912
9913 PR c/456
9914 PR c/5675
9915 PR c/19976
9916 PR c/29116
9917 PR c/31871
9918 PR c/35198
9919 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
9920 void_type_node.
9921 (fold_call_expr): Return a NOP_EXPR from folding rather than the
9922 contained expression.
ba20e309 9923 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
9924 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
9925 conditional expressions for C.
9926 (decl_constant_value_for_optimization): Move from
ba20e309 9927 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
9928 whether optimizing and that the expression is a VAR_DECL not of
9929 array type instead of doing such checks in the caller. Do not
9930 check pedantic. Call gcc_unreachable for C++.
9931 * c-common.def (C_MAYBE_CONST_EXPR): New.
9932 * c-common.h (c_fully_fold, c_save_expr,
9933 decl_constant_value_for_optimization): New prototypes.
9934 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9935 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9936 EXPR_INT_CONST_OPERANDS): Define.
9937 * c-convert.c (convert): Strip nops from expression.
9938 * c-decl.c (groktypename): Take extra parameters expr and
9939 expr_const_operands. Update call to grokdeclarator.
9940 (start_decl): Update call to grokdeclarator. Add statement for
9941 expressions used in type of decl.
9942 (grokparm): Update call to grokdeclarator.
9943 (push_parm_decl): Update call to grokdeclarator.
9944 (build_compound_literal): Add parameter non_const and build a
9945 C_MAYBE_COSNT_EXPR if applicable.
9946 (grokdeclarator): Take extra parameters expr and
9947 expr_const_operands. Track expressions used in declaration
9948 specifiers and declarators. Fold array sizes and track whether
9949 they are constant expressions and whether they are integer
9950 constant expressions.
9951 (parser_xref_tag): Set expr and expr_const_operands fields in
9952 return value.
9953 (grokfield): Update call to grokdeclarator.
9954 (start_function): Update call to grokdeclarator.
9955 (build_null_declspecs): Set expr and expr_const_operands fields in
9956 return value.
9957 (declspecs_add_type): Handle expressions in typeof specifiers.
9958 * c-parser.c (c_parser_declspecs): Set expr and
9959 expr_const_operands fields for declaration specifiers.
9960 (c_parser_enum_specifier): Likewise.
9961 (c_parser_struct_or_union_specifier): Likewise.
9962 (c_parser_typeof_specifier): Likewise. Update call to
9963 groktypename. Fold expression as needed. Return expressions with
9964 type instead of adding statements.
9965 (c_parser_attributes): Update calls to c_parser_expr_list.
9966 (c_parser_statement_after_labels): Fold expression before passing
9967 to objc_build_throw_stmt.
9968 (c_parser_condition): Fold expression.
9969 (c_parser_asm_operands): Fold expression.
9970 (c_parser_conditional_expression): Use c_save_expr. Update call
9971 to build_conditional_expr.
9972 (c_parser_alignof_expression): Update call to groktypename.
9973 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
9974 original_code. Fold expression argument of va_arg. Create
9975 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
9976 argument to va_arg. Update calls to groktypename. Fold array
9977 index for offsetof. Verify that first argument to
9978 __builtin_choose_expr has integer type.
9979 (c_parser_postfix_expression_after_paren_type): Update calls to
9980 groktypename and build_compound_literal. Handle expressions with
9981 side effects in type name.
9982 (c_parser_postfix_expression_after_primary): Update call to
9983 c_parser_expr_list. Set original_code for calls to
9984 __builtin_constant_p.
9985 (c_parser_expr_list): Take extra parameter fold_p. Fold
9986 expressions if requested.
9987 (c_parser_objc_type_name): Update call to groktypename.
9988 (c_parser_objc_synchronized_statement): Fold expression.
9989 (c_parser_objc_receiver): Fold expression.
9990 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
9991 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
9992 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
9993 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
9994 (struct c_typespec): Add elements expr and expr_const_operands.
9995 (struct c_declspecs): Add elements expr and expr_const_operands.
9996 (groktypename, build_conditional_expr, build_compound_literal):
9997 Update prototypes.
9998 (in_late_binary_op): Declare.
9999 * c-typeck.c (note_integer_operands): New function.
10000 (in_late_binary_op): New variable.
10001 (decl_constant_value_for_broken_optimization): Move to c-common.c
10002 and rename to decl_constant_value_for_optimization.
10003 (default_function_array_conversion): Do not strip nops.
10004 (default_conversion): Do not call
10005 decl_constant_value_for_broken_optimization.
10006 (build_array_ref): Do not fold result.
10007 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
10008 result when operand is a VLA.
10009 (c_expr_sizeof_type): Update call to groktypename. Handle
10010 expressions included in type name. Use C_MAYBE_CONST_EXPR for
10011 result when operand names a VLA type.
10012 (build_function_call): Update call to build_compound_literal.
10013 Only fold result for calls to __builtin_* functions. Strip
10014 NOP_EXPR from INTEGER_CST returned from such functions. Fold
10015 the function designator.
10016 (convert_arguments): Fold arguments. Update call to
10017 convert_for_assignment.
10018 (build_unary_op): Handle increment and decrement of
10019 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
10020 decrement earlier. Fold operand of increment and decrement.
10021 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
10022 built for integer operand. Wrap returns that are INTEGER_CSTs
10023 without being integer constant expressions or that have integer
10024 constant operands without being INTEGER_CSTs.
10025 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
10026 (build_conditional_expr): Add operand ifexp_bcp. Track whether
10027 result is an integer constant expression or can be used in
10028 unevaluated parts of one and avoid folding and wrap as
10029 appropriate. Fold operands before possibly doing -Wsign-compare
10030 warnings.
10031 (build_compound_expr): Wrap result for C99 if operands can be used
10032 in integer constant expressions.
10033 (build_c_cast): Update call to digest_init. Do not ignore
10034 overflow from casting floating-point constants to integers. Wrap
10035 results that could be confused with integer constant expressions,
10036 null pointer constants or floating-point constants.
10037 (c_cast_expr): Update call to groktypename. Handle expressions
10038 included in type name.
10039 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
10040 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
10041 Update calls to convert_for_assignment.
10042 (convert_for_assignment): Take new parameter
10043 null_pointer_constant. Do not strip nops or call
10044 decl_constant_value_for_broken_optimization. Set
10045 in_late_binary_op for conversions to boolean.
10046 (store_init_value): Update call to digest_init.
10047 (digest_init): Take new parameter null_pointer_constant. Do not
10048 call decl_constant_value_for_broken_optimization. pedwarn for
10049 initializers not constant expressions. Update calls to
10050 convert_for_assignment.
10051 (constructor_nonconst): New.
10052 (struct constructor_stack): Add nonconst element.
10053 (really_start_incremental_init, push_init_level, pop_init_level):
10054 Handle constructor_nonconst and nonconst element.
10055 (set_init_index): Call constant_expression_warning for array
10056 designators.
10057 (output_init_element): Fold value. Set constructor_nonconst as
10058 applicable. pedwarn for initializers not constant expressions.
10059 Update call to digest_init. Call constant_expression_warning
10060 where constant initializers are required.
10061 (process_init_element): Use c_save_expr.
10062 (c_finish_goto_ptr): Fold expression.
10063 (c_finish_return): Fold return value. Update call to
10064 convert_for_assignment.
10065 (c_start_case): Fold switch expression.
10066 (c_process_expr_stmt): Fold expression.
10067 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 10068 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
10069 (build_binary_op): Track whether results are integer constant
10070 expressions or may occur in such, disable folding and wrap results
10071 as applicable. Fold operands for -Wsign-compare warnings unless
10072 in_late_binary_op.
10073 (c_objc_common_truthvalue_conversion): Handle results folded to
10074 integer constants that are not integer constant expressions.
10075 * doc/extend.texi: Document when typeof operands are evaluated,
10076 that condition of __builtin_choose_expr is an integer constant
10077 expression, and more about use of __builtin_constant_p in
10078 initializers.
10079
5babbcc0
RG
100802009-03-29 Richard Guenther <rguenther@suse.de>
10081
10082 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
10083 propagate addresses of array references.
10084
0340f2ba
SB
100852009-03-29 Steven Bosscher <steven@gcc.gnu.org>
10086
10087 * regmove.c (perhaps_ends_bb_p): Remove.
10088 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
10089 from INSN and check that the main loop stays within that basic block.
10090 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
10091 (regmove_forward_pass): Split out from regmove_optimize. Use
10092 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
10093 (regmove_backward_pass): Split out from regmove_optimize. Use
10094 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
10095 (regmove_optimize): Simplify.
10096
eeae74a1
L
100972009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10098
10099 PR target/39545
10100 * config/i386/i386.c (classify_argument): Ignore flexible array
10101 member in struct and warn ABI change.
10102
a24078b2
L
101032009-03-29 H.J. Lu <hongjiu.lu@intel.com>
10104
10105 * config/i386/i386-protos.h (ix86_agi_dependent): New.
10106
10107 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
10108 (ix86_adjust_cost): Updated.
10109
a8da523f
JH
101102009-03-29 Jan Hubicka <jh@suse.cz>
10111
10112 PR middle-end/28850
10113 * tree-pass.h (pass_cleanup_eh): New function.
10114 (remove_unreachable_regions): Break code handling RTL
10115 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
10116 that can not be reached by runtime.
10117 (can_be_reached_by_runtime): New function.
10118 (label_to_region_map): New function.
10119 (num_eh_regions): New function.
10120 (rtl_remove_unreachable_regions): New function.
10121 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
10122 (remove_eh_region): New function.
10123 * except.h: Include sbitmap and vecprim.
10124 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
10125 num_eh_regions): Declare.
10126 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 10127 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
10128 * tree-eh.c (tree_remove_unreachable_handlers): New function.
10129 (tree_empty_eh_handler_p): New function.
10130 (cleanup_empty_eh): New function.
10131 (cleanup_eh): New function.
10132 (pass_cleanup_eh): New function.
10133
98f358e5
JH
101342009-03-29 Jan Hubicka <jh@suse.cz>
10135
10136 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
10137 for removed regions.
10138
13a9fa44
JH
101392009-03-29 Jan Hubicka <jh@suse.cz>
10140
10141 * except.c (dump_eh_tree): Dump all datastructures.
10142
e38cf733
JH
101432009-03-29 Jan Hubicka <jh@suse.cz>
10144
10145 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
10146 (duplicate_eh_regions_1): Likewise.
10147 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
10148 vector; call EH verification.
10149 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10150 Be ready for region being removed.
10151
12802c2b
JH
101522009-03-29 Jan Hubicka <jh@suse.cz>
10153
10154 * bitmap.c (bitmap_last_set_bit): New function.
10155 * bitmap.h (bitmap_last_set_bit): Declare.
10156
4ea80a41
DA
101572009-03-29 David Ayers <ayers@fsfe.org>
10158
10159 PR objc/27377
10160 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
10161 by calling objc_compare_types and surpress warnings about
10162 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 10163
4ea80a41 101642009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
10165
10166 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
10167 call initialize_inline_failed.
10168 (initialize_inline_failed): Move it from here ...
10169 * cgraph.c (initialize_inline_failed): ... to here.
10170 (cgraph_create_edge): Call initialize_inline_failed rather than
10171 setting inline_failed directly.
10172
7fb0ee07
BE
101732009-03-29 Ben Elliston <bje@au.ibm.com>
10174
10175 PR target/32542
10176 * sysv4.opt (msdata): Improve comment.
10177 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
10178 * sysv4.h (SVR4_ASM_SPEC): Likewise.
10179
0be77bf2
BE
101802009-03-29 Ben Elliston <bje@au.ibm.com>
10181
10182 PR target/30451
10183 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
10184 load and store attributes.
10185
593812b6
BE
101862009-03-29 Ben Elliston <bje@au.ibm.com>
10187
10188 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
10189 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
10190 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
10191 * doc/extend.texi (X86 Built-in Functions): Add index entries for
10192 __builtin_infq and __builtin_huge_valq.
10193
8272d11d
AS
101942009-03-28 Anatoly Sokolov <aesok@post.ru>
10195
10196 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
10197 atmega8m1 devices.
10198 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10199 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
10200
74fe548b
XDL
102012009-03-28 Xinliang David Li <davidxl@google.com>
10202
2ba9daa7 10203 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
10204 (do_dbg_cnt): New function.
10205
33977f81
JH
102062009-03-28 Jan Hubicka <jh@suse.cz>
10207
10208 Merge from pretty-ipa:
10209
10210 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 10211
33977f81
JH
10212 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10213 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
10214 * passes.c (function_called_by_processed_nodes_p): New.
10215 * ipa-pure-const.c (check_call): Fix handling of operands.
10216 (analyze_function): Dump debug output for skipped bodies.
10217 (local_pure_const): Use function_called_by_processed_nodes_p.
10218 * dwarf2out.c (reference_to_unused): Use output.
10219 * passes.c (do_per_function_toporder): Likewise.
10220
10221 2008-11-12 Jan Hubicka <jh@suse.cz>
10222
10223 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
10224 * ipa-pure-const.c (funct_state_d): Add can throw field; make
10225 state_set_in_source enum
10226 (check_decl): Ignore memory tags; do not set fake looping flags;
10227 dump diagnostics.
10228 (check_operand, check_tree, check_rhs_var, check_lhs_var,
10229 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
10230 (check_call, analyze_function): Rewrite.
10231 (check_stmt): New.
10232 (add_new_function): Update call of analyze_function.
10233 (generate_summary): Add call of analyze_function.
10234 (propagate): Propagate can_throw; handle state_set_in_source correctly.
10235 (local_pure_const): New function.
10236 (pass_local_pure_const): New pass.
10237 * ipa-inline.c (inline_transform): Set after_inlining.
10238 * tree-eh.c (stmt_can_throw_external): New.
10239 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
10240 work with aliasing built.
10241 * tree-flow.h (stmt_can_throw_external): New.
10242 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
10243 and local pure/const pass in early and late optimization queue.
ba20e309 10244
617f3897
MJ
102452009-03-28 Martin Jambor <mjambor@suse.cz>
10246
10247 * fold-const.c (get_pointer_modulus_and_residue): New parameter
10248 allow_func_align.
10249 (fold_binary): Allow function decl aligment consideration is the
10250 second argument is integer constant one.
10251 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
10252 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
10253 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
10254
fe89fbc5
JH
102552009-03-28 Jan Hubicka <jh@suse.cz>
10256
10257 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
10258 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
10259 * function.h (rtl_data): Add nothrow flag.
10260 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
10261 set DECL_NOTHROW for AVAILABLE functions.
10262
574872ff
JJ
102632009-03-28 Jakub Jelinek <jakub@redhat.com>
10264
b3bf8855
JJ
10265 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
10266 following vector keyword has expansion starting with pixel or bool
10267 keyword, expand vector to __vector and pixel or bool to __pixel or
10268 __bool.
10269
574872ff
JJ
10270 PR c++/39554
10271 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
10272 warn_if_disallowed_function_p): Removed.
10273 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
10274 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
10275 warning_if_disallowed_function_p.
10276 * flags.h (warn_if_disallowed_function_p,
10277 warn_disallowed_functions): Removed.
10278 * common.opt (Wdisallowed-function-list=): Removed.
10279 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
10280
b005da11
RG
102812009-03-28 Richard Guenther <rguenther@suse.de>
10282
10283 PR tree-optimization/38723
10284 * tree-ssa-pre.c (compute_avail): Add all default definitions to
10285 the entry block.
10286
1de812a6
JH
102872009-03-28 Jan Hubicka <jh@suse.cz>
10288
10289 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
10290 test introduced by my previous patch.
10291
fbb789d4
RG
102922009-03-28 Richard Guenther <rguenther@suse.de>
10293
10294 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
10295 the PHIs value undefined.
10296
6f1873a1
JH
102972009-03-28 Jan Hubicka <jh@suse.cz>
10298
10299 * tree-pass.h (pass_fixup_cfg): New pass.
10300 * ipa-inline.c (inline_transform): Set
10301 always_inline_functions_inlined/after_inlining.
10302 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
10303 (pass_fixup_cfg): New pass.
10304 * passes.c (init_optimization_passes): Add fixup_cfg.
10305
17021bc8
RG
103062009-03-28 Richard Guenther <rguenther@suse.de>
10307
10308 PR tree-optimization/38458
10309 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
10310 argument use the arguments copy-of value.
10311
e8114fba
RG
103122009-03-28 Richard Guenther <rguenther@suse.de>
10313
10314 PR tree-optimization/38180
10315 * tree-ssa-ccp.c (get_default_value): Simplify.
10316 (likely_value): Likewise.
10317 (surely_varying_stmt_p): Properly handle VOP case.
10318 (ccp_initialize): Likewise.
10319 (ccp_fold): Handle propagating through *&.
10320 (fold_const_aggregate_ref): Also handle decls.
10321
257eb6e3
JH
103222009-03-28 Jan Hubicka <jh@suse.cz>
10323
10324 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
10325 * cgraph.h (cgraph_node): Likewise.
10326 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
10327 (cgraph_reset_node): Use process flag.
10328 (cgraph_mark_functions_to_output): Likewise.
10329 (cgraph_expand_function): Likewise.
10330 (cgraph_expand_all_functions): Likewise.
10331 (cgraph_output_in_order): Likewise.
10332 * dwarf2out.c (reference_to_unused): Likewise.
10333 * passes.c do_per_function_toporder): Likewise.
10334
61a05df1
JH
103352009-03-28 Jan Hubicka <jh@suse.cz>
10336
10337 Bring from lto-branch:
ba20e309 10338
61a05df1
JH
10339 2008-09-03 Doug Kwan <dougkwan@google.com>
10340
10341 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
10342 enums instead of reason strings.
10343 * cgraph.c (cgraph_create_edge): Same.
10344 (cgraph_inline_failed_string): New function.
10345 * cgraph.h (cgraph_inline_failed_t): New enum type.
10346 (cgraph_inline_failed_string): New prototype.
10347 (struct cgraph_edge): Change type of INLINED_FAILED from constant
10348 char pointer to cgraph_inline_failed_t.
10349 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
10350 (cgraph_default_inline_p): Ditto.
60839f5d 10351 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
10352 to cgraph_inline_failed_t pointer.
10353 * cif-code.def: New file.
10354 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
10355 reason string.
10356 (cgraph_check_inline_limits): Change type of REASON to pointer to
10357 cgraph_inline_failed_t. Replace reason strings with enums.
10358 (cgraph_default_inline_p): Ditto.
10359 (cgraph_recursive_inlining_p): Ditto.
10360 (update_caller_keys): Change type of FAILED_REASON to
10361 cgraph_inline_failed_t.
10362 (cgraph_set_inline_failed): Change type of REASON to pointer to
10363 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
10364 convert enums to strings for text output.
10365 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
10366 to be of type cgraph_inline_failed_t. Replace reason strings with
10367 enums. Call cgraph_inline_failed_string to covert enums
10368 to strings for text output.
10369 (cgraph_decide_inlining): Replace reason strings with enums.
10370 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
10371 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
10372 for text output.
10373 * tree-inline.c (expand_call_inline): Change type of REASON
10374 to cgraph_inline_failed_t. Replace reason strings with enums.
10375 Call cgraph_inline_failed_string for text output.
10376 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
10377 (cgraph.o): Ditto.
10378
144e8aac
JH
103792009-03-28 Jan Hubicka <jh@suse.cz>
10380
10381 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
10382 cgraph_clone_node): Remove master clone handling.
10383 (cgraph_is_master_clone, cgraph_master_clone): Remove.
10384 * cgraph.h (master_clone): Remove.
10385 (cgraph_is_master_clone, cgraph_master_clone): Remove.
10386 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
10387 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
10388
4a371c8d
JH
103892009-03-28 Jan Hubicka <jh@suse.cz>
10390
10391 * cgraph.c (cgraph_function_body_availability): Functions declared
10392 inline are always safe to assume that it is not going to be replaced.
10393
6cdb0ee3
RG
103942009-03-28 Richard Guenther <rguenther@suse.de>
10395
10396 PR tree-optimization/38513
10397 * tree-ssa-pre.c (eliminate): Remove redundant stores.
10398 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
10399 EXC_PTR_EXPR and FILTER_EXPR.
10400 (get_ref_from_reference_ops): Likewise.
10401
8ca1fd76
RG
104022009-03-28 Richard Guenther <rguenther@suse.de>
10403
10404 PR tree-optimization/38968
10405 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
10406 Use FLOOR_MOD_EXPR to compute misalignment.
10407
a254e44d
RG
104082009-03-28 Richard Guenther <rguenther@suse.de>
10409
10410 PR tree-optimization/37795
10411 * tree.h (combine_comparisons): Declare.
10412 * fold-const.c (combine_comparisons): Export.
10413 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
10414 comparisons.
10415 (ifcombine_iforif): Use combine_comparisons.
10416
a8ee227c
JH
104172009-03-28 Jan Hubicka <jh@suse.cz>
10418
10419 * tree-eh.c (inlinable_call_p): New function.
10420 (make_eh_edges): Use it.
10421 (verify_eh_edges): Use it.
10422 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
10423 * except.c (reachable_next_level): Add inlinable_function argument
10424 (sjlj_find_directly_reachable_regions): Update.
10425 (add_reachable_handler): Do not set saw_any_handlers.
10426 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
10427 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
10428 Add new inlinable call parameter.
10429 (can_throw_internal, can_throw_external): Update.
10430 * except.h (can_throw_internal_1, can_throw_external_1,
10431 foreach_reachable_handler): Update declaration.
10432
52c0e446
JM
104332009-03-28 Joseph Myers <joseph@codesourcery.com>
10434
10435 * config/arm/t-arm-coff, config/h8300/coff.h,
10436 config/i386/i386-aout.h, config/i386/i386-coff.h,
10437 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
10438 config/pdp11/2bsd.h, config/rs6000/aix41.h,
10439 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
10440 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
10441 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
10442 sys-types.h: Remove.
10443 * Makefile.in: Remove protoize and fixproto support and references
10444 in comments.
10445 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
10446 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
10447 Remove.
10448 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
10449 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
10450 unprotoize$(exeext).
10451 (rest.encap): Don't depend on $(STMP_FIXPROTO)
10452 (.PHONY): Don't depend on proto.
10453 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
10454 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
10455 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
10456 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
10457 build/gen-protos.o, build/scan.o, xsys-protos.h,
10458 build/fix-header$(build_exeext), build/fix-header.o,
10459 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
10460 stmp-install-fixproto): Remove.
10461 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
10462 SYSCALLS.c or fixproto files.
10463 (install-common): Don't install protoize.
10464 (install-headers-tar, install-headers-cpio, install-headers-cp):
10465 Don't depend on $(STMP_FIXPROTO).
10466 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
10467 install fixproto files or write out fixproto settings.
10468 (uninstall): Don't uninstall protoize.
10469 * config.gcc (use_fixproto): Remove.
10470 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
10471 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
10472 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
10473 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
10474 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
10475 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
10476 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
10477 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
10478 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
10479 * config/t-vxworks (STMP_FIXPROTO): Remove.
10480 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
10481 STMP_FIXPROTO): Remove.
10482 * config.in, configure: Regenerate.
10483 * crtstuff.c (gid_t, uid_t): Don't undefine.
10484 * doc/install.texi: Change m68k-coff to m68k-elf in example.
10485 (arm-*-coff, arm-*-aout: Remove target entries.
10486 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
10487 Remove mention of AIX 4.1.
10488 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
10489 * doc/invoke.texi (Running Protoize): Remove.
10490 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
10491 (Protoize Caveats): Remove.
10492 * tsystem.h: Update comments on headers assumed to exist.
10493
20a07f44
VM
104942009-03-27 Vladimir Makarov <vmakarov@redhat.com>
10495
10496 * genautomata.c: Add a new year to the copyright. Add a new
10497 reference.
10498 (struct insn_reserv_decl): Add comments for member bypass_list.
10499 (find_bypass): Remove.
10500 (insert_bypass): New.
10501 (process_decls): Use insert_bypass.
10502 (output_internal_insn_latency_func): Output all bypasses with the
10503 same input insn in one switch case.
10504
10505 * rtl.def (define_bypass): Describe bypass choice.
10506 * doc/md.texi (define_bypass): Ditto.
10507
3a0d06c1
RB
105082009-03-27 Richard Guenther <rguenther@suse.de>
10509
10510 * gimplify.c (mark_addressable): Export.
10511 * tree-flow.h (mark_addressable): Declare.
10512 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
10513 * tree-ssa.c (verify_phi_args): Verify that address taken
10514 variables have TREE_ADDRESSABLE set.
10515
105162009-03-27 Richard Guenther <rguenther@suse.de>
10517
10518 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
10519 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
10520 Do not mark decls TREE_ADDRESSABLE.
10521 (build_fold_addr_expr): Adjust.
10522 (fold_addr_expr): Remove.
10523 (fold_unary): Use build_fold_addr_expr.
10524 (fold_comparison): Likewise.
10525 (split_address_to_core_and_offset): Likewise.
10526 * coverage.c (tree_coverage_counter_addr): Mark the array decl
10527 TREE_ADDRESSABLE.
10528 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
10529 (gimplify_modify_expr_to_memcpy): Mark source and destination
10530 addressable.
10531 * omp-low.c (create_omp_child_function): Mark the object decl
10532 TREE_ADDRESSABLE.
10533 (lower_rec_input_clauses): Mark the var we take the address of
10534 TREE_ADDRESSABLE.
10535 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
10536
2ac26e15
L
105372009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10538
10539 PR middle-end/39315
10540 * cfgexpand.c (expand_one_stack_var_at): Change alignment
10541 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
10542
472c7fbd
RG
105432009-03-27 Richard Guenther <rguenther@suse.de>
10544
10545 PR tree-optimization/39120
10546 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
10547 constraints.
10548 (handle_lhs_call): Process return constraints. Add escape
10549 constraints if necessary.
10550 (handle_const_call): Fill out return constraints. Make nested
10551 case more precise. Avoid consttmp if possible.
10552 (handle_pure_call): Fill out return constraints. Avoid
10553 callused if possible.
10554 (find_func_aliases): Simplify call handling.
10555
105562009-03-27 Richard Guenther <rguenther@suse.de>
10557
10558 PR tree-optimization/39120
10559 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
10560 as a representative.
10561 (solve_graph): Do propagate CALLUSED.
10562 (handle_pure_call): Use a scalar constraint from CALLUSED for
10563 the return value.
10564 (find_what_p_points_to): CALLUSED shall not appear in poins-to
10565 solutions.
10566
d9223014
L
105672009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10568
10569 PR c/39323
10570 * c-common.c (handle_aligned_attribute): Properly check alignment
10571 overflow. Use (1U << i) instead of (1 << i).
10572
ba20e309 10573 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
10574
10575 * expr.h (get_mem_align_offset): Updated.
10576
10577 * tree.h (tree_decl_common): Change align to "unsigned int" and
10578 move it before pointer_alias_set.
10579
689b689c
L
105802009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10581 Jakub Jelinek <jakub@redhat.com>
10582
10583 PR target/38034
10584 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
10585 gr_register_operand with gr_reg_or_0_operand.
10586 (cmpxchg_rel_di): Likewise.
10587 (sync_lock_test_and_set<mode>): Likewise.
10588
c619e982
L
105892009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10590
10591 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
10592 (true_regnum): Likewise.
10593
10594 * rtlanal.c (subreg_info): Moved to ...
10595 * rtl.h (subreg_info): Here. New.
10596 (subreg_get_info): New.
10597
10598 * rtlanal.c (subreg_get_info): Make it extern.
10599
51212b32
L
106002009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10601
10602 PR target/39472
10603 * config/i386/i386.c (ix86_abi): New.
10604 (override_options): Handle -mabi=.
ba20e309 10605 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
10606 (ix86_call_abi_override): Likewise.
10607 (init_cumulative_args): Likewise.
10608 (function_arg_advance): Likewise.
10609 (function_arg_64): Likewise.
10610 (function_arg): Likewise.
10611 (ix86_pass_by_reference): Likewise.
10612 (ix86_function_value_regno_p): Likewise.
10613 (ix86_build_builtin_va_list_abi): Likewise.
10614 (setup_incoming_varargs_64): Likewise.
10615 (is_va_list_char_pointer): Likewise.
10616 (ix86_init_machine_status): Likewise.
ba20e309 10617 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
10618 (ix86_function_type_abi): Return enum calling_abi. Rewrite
10619 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 10620 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
10621 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
10622 with ix86_abi.
10623 (ix86_fn_abi_va_list): Updated.
10624
10625 * config/i386/i386.h (ix86_abi): New.
10626 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
10627 (CONDITIONAL_REGISTER_USAGE): Likewise.
10628 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
10629 (machine_function): Likewise.
10630
10631 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
10632 with ix86_abi.
10633 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
10634 (STACK_BOUNDARY): Likewise.
10635 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
10636
10637 * config/i386/i386.opt (mabi=): New.
10638
10639 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
10640 return enum calling_abi.
10641 (ix86_function_type_abi): Likewise.
10642 (ix86_function_abi): Removed.
10643
10644 * doc/invoke.texi: Document -mabi= option for x86.
10645
7338ea63
KG
106462009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10647
10648 * builtins.c (real_dconstp): Delete.
10649 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
10650
68599f33
DS
106512009-03-27 Dodji Seketeli <dodji@redhat.com>
10652 Jakub Jelinek <jakub@redhat.com>
10653
10654 PR debug/37959
10655 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
10656 (gen_subprogram_die): When a function is explicit, generate the
10657 DW_AT_explicit attribute.
10658 * langhooks.h (struct lang_hooks_for_decls): Add
10659 function_decl_explicit_p langhook.
10660 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
10661 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
10662
9f5e9983
JJ
106632009-03-27 Jakub Jelinek <jakub@redhat.com>
10664
64d7685c
JJ
10665 * builtins.c (fold_builtin_memory_op): Optimize memmove
10666 into memcpy if we can prove source and destination don't overlap.
10667
9f5e9983
JJ
10668 * tree-inline.c: Include gt-tree-inline.h.
10669 (clone_fn_id_num): New variable.
10670 (clone_function_name): New function.
10671 (tree_function_versioning): Use it.
10672 * Makefile.in (GTFILES): Add tree-inline.c.
10673
e54d52a8
MM
106742009-03-27 Mark Mitchell <mark@codesourcery.com>
10675
10676 * BASE-VER: Change to 4.5.0.
10677
e9d51dc6
XDL
106782009-03-27 Xinliang David Li <davidxl@google.com>
10679
10680 PR tree-optimization/39557
10681 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
10682
4577cea1
XDL
106832009-03-27 Xinliang David Li <davidxl@google.com>
10684
10685 PR tree-optimization/39548
2ba9daa7 10686 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
10687 candidate check.
10688
0f7464f4
L
106892009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10690
10691 * c-common.c (pointer_int_sum): Use %wd on return from
10692 tree_low_cst.
10693
a8847a7f
L
106942009-03-27 H.J. Lu <hongjiu.lu@intel.com>
10695
10696 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
10697 on return from tree_low_cst.
10698
b0957daf
AP
106992009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
10700
10701 PR c++/36799
ba20e309
UB
10702 * ginclude/stdarg.h (va_copy): Define also for
10703 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 10704
a5f805df
MLI
107052009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
10706
10707 PR c++/35652
10708 * builtins.h (c_strlen): Do not warn here.
10709 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
10710 * c-common.c (pointer_int_sum): Take an explicit location.
10711 Warn about offsets out of bounds.
10712 * c-common.h (pointer_int_sum): Adjust declaration.
10713
6f401211
RW
107142009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10715
a5f805df
MLI
10716 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
10717 markup glitch.
6f401211 10718
5a59b39e
JJ
107192009-03-26 Jakub Jelinek <jakub@redhat.com>
10720
10721 PR c++/39554
10722 * opts.c (warn_if_disallowed_function_p): Don't assume
10723 get_callee_fndecl must return non-NULL.
10724
d5f89b53
VM
107252009-03-26 Vladimir Makarov <vmakarov@redhat.com>
10726
10727 PR rtl-optimization/39522
10728 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
10729 when reg_reloaded_valid is set.
10730
61238a79
UW
107312009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10732
10733 * config/spu/divv2df3.c: New file.
10734 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
10735 (DPBIT_FUNCS): Filter out _div_df.
10736
03f8829b
BS
107372009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
10738
10739 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
10740 a jump insn, count that jump in the distance to the loop start.
10741
9fdcdc74
KK
107422009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
10743
10744 PR target/39523
10745 * config/sh/sh.c (calc_live_regs): Fix condition for global
10746 registers except PIC_OFFSET_TABLE_REGNUM.
10747
46994828
KT
107482009-03-25 Kai Tietz <kai.tietz@onevision.com>
10749
10750 PR/39518
10751 * doc/invoke.texi (-mconsole): New.
10752 (-mcygwin): New.
10753 (-mno-cygwin): New.
10754 (-mdll): New.
10755 (-mnop-fun-dllimport): New.
10756 (-mthread): New.
10757 (-mwin32): New.
10758 (-mwindows): New.
10759 (sub section "i386 and x86-64 Windows Options"): New.
10760
60839f5d 107612009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
10762
10763 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
10764 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
10765
ae560440
RG
107662009-03-25 Richard Guenther <rguenther@suse.de>
10767
10768 PR middle-end/39497
10769 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
10770 of -Wno-error.
10771
cd510f15
AM
107722009-03-25 Andrey Belevantsev <abel@ispras.ru>
10773
10774 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
10775 neither of haifa/selective schedulers are working.
10776
44ab0f0e
RW
107772009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10778
10779 * doc/invoke.texi (Debugging Options): Fix description of
10780 -fno-merge-debug-strings.
10781
ad9646c7
HPN
107822009-03-24 Hans-Peter Nilsson <hp@axis.com>
10783
e6142656
HPN
10784 * config/cris/libgcc.ver: New version-script.
10785 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
10786
ad9646c7
HPN
10787 * configure.ac <GAS features, nop mnemonic>: Add pattern
10788 crisv32-*-* for "nop".
ba20e309 10789 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
10790 * configure: Regenerate.
10791
09ac4473
IR
107922009-03-24 Ira Rosen <irar@il.ibm.com>
10793
10794 PR tree-optimization/39529
10795 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
10796 mark_sym_for_renaming for the tag copied to the new vector
10797 pointer.
10798
d94a427e
AL
107992009-03-24 Arthur Loiret <aloiret@debian.org>
10800
ba20e309 10801 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
10802 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
10803 EXTRA_SPEC_FUNCTIONS.
10804 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
10805 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
10806 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
10807 -march and -mtune options.
10808
60839f5d 108092009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
10810
10811 * config/m68k/t-rtems: Add m5329 multilib.
10812
603f5959
DS
108132009-03-24 Dodji Seketeli <dodji@redhat.com>
10814 Jakub Jelinek <jakub@redhat.com>
10815
10816 PR debug/39524
10817 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
10818 nodes.
10819
c5cdb03f
JJ
108202009-03-23 Jakub Jelinek <jakub@redhat.com>
10821
10822 PR c/39495
10823 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
10824 instead of c_parser_expression_conv, if original_code isn't one of the
10825 4 allowed comparison codes, fail.
10826
3691626c
RG
108272009-03-23 Richard Guenther <rguenther@suse.de>
10828
10829 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
10830 * tree.h (struct tree_type): Likewise.
10831 * reload.h (struct insn_chain): Likewise.
10832 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
10833 * function.h (struct function): Likewise.
10834 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
10835
88ccb72a
JJ
108362009-03-23 Jakub Jelinek <jakub@redhat.com>
10837
10838 PR tree-optimization/39516
10839 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
10840
60839f5d 108412009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 10842
2ba9daa7 10843 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
10844 should be set true if BITS_PER_WORD of target is bigger than 32
10845
f82162f8
HPN
108462009-03-22 Hans-Peter Nilsson <hp@axis.com>
10847
10848 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
10849 Translate -B-options to -rpath-link. Correct existing
10850 rpath-link and conditionalize on !nostdlib.
10851
048fd785
RW
108522009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10853
10854 * doc/extend.texi (Function Attributes, Variable Attributes):
10855 Fix typos.
10856 * doc/invoke.texi (Debugging Options, Optimize Options)
10857 (i386 and x86-64 Options, MCore Options): Likewise.
10858
6e75c1a9
JJ
108592009-03-20 Jakub Jelinek <jakub@redhat.com>
10860
10861 PR debug/37890
10862 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
10863 it for block local namespace aliases.
10864 (gen_decl_die): Pass context_die to gen_namespace_die.
10865
ea1199ee
JJ
108662009-03-19 Jakub Jelinek <jakub@redhat.com>
10867
10868 PR c/39495
10869 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
10870 minimum or maximum value.
10871
58929c10
AO
108722009-03-19 Alexandre Oliva <aoliva@redhat.com>
10873
10874 * reginfo.c (globalize_reg): Recompute derived reg sets.
10875
60839f5d 108762009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
10877
10878 PR target/39063
10879 * libgcc2.c (mprotect): Do not use signed arguments for
10880 VirtualProtect, use DWORD arguments. Also fix the 'may
10881 be used uninitialized' warning for the np variable.
10882
f57c2f04
JJ
108832009-03-19 Jakub Jelinek <jakub@redhat.com>
10884
10885 PR target/39496
10886 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
10887 functions using regparm calling conventions when not optimizing.
10888 (ix86_function_sseregparm): Similarly for sseregparm calling
10889 conventions.
10890
9e517d61
LF
108912009-03-19 Li Feng <nemokingdom@gmail.com>
10892
10893 PR middle-end/39500
10894 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
10895 dependence if the first conflict is after niter iterations.
10896
8ef20026
HPN
108972009-03-19 Hans-Peter Nilsson <hp@axis.com>
10898
10899 PR middle-end/38609
10900 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
10901 functions with dynamic stack-pointer adjustments.
10902
64e4a1a6
BE
109032009-03-19 Ben Elliston <bje@au.ibm.com>
10904
10905 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
10906 option; change to -msdata=data.
10907
9a0f3e86
RW
109082009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10909
10910 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
10911 and -fopenmp.
10912
09bc5979
EB
109132009-03-18 Eric Botcazou <ebotcazou@adacore.com>
10914
10915 PR target/35180
10916 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
10917
332459cd
SL
109182009-03-18 Sandra Loosemore <sandra@codesourcery.com>
10919
10920 * doc/invoke.texi (Code Gen Options): Expand discussion of
10921 -fno-common.
10922
8f5929e1
JJ
109232009-03-18 Jakub Jelinek <jakub@redhat.com>
10924
10925 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
10926 * matrix-reorg.c (struct matrix_info): Likewise.
10927 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
10928 * rtl.h (struct mem_attrs): Likewise.
10929 * df.h (struct df): Likewise.
10930 * tree-data-ref.h (struct data_dependence_relation): Likewise.
10931 * ira-int.h (struct ira_allocno): Likewise.
10932 * df-scan.c (struct df_collection_rec): Likewise.
10933 * ira.c (struct equivalence): Likewise.
10934 * function.c (struct temp_slot): Likewise.
10935 * cfgloop.h (struct loop): Likewise.
10936
d130d647
JJ
10937 PR debug/39485
10938 * function.c (use_register_for_decl): When not optimizing, disregard
10939 register keyword for variables with types containing methods.
10940
9968d233
SP
109412009-03-18 Sebastian Pop <sebastian.pop@amd.com>
10942
10943 PR middle-end/39447
10944 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
10945 (is_simple_operand): Call contains_component_ref_p before calling data
10946 reference analysis that would fail on COMPONENT_REFs.
10947
10948 * tree-vrp.c (search_for_addr_array): Fix formatting.
10949
69484bfd
RG
109502009-03-18 Richard Guenther <rguenther@suse.de>
10951
10952 * tree-vect-transform.c (vect_loop_versioning): Fold the
10953 generated comparisons.
10954 * tree-vectorizer.c (set_prologue_iterations): Likewise.
10955 (slpeel_tree_peel_loop_to_edge): Likewise.
10956
66811228
RW
109572009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10958
0631b69f
RW
10959 PR middle-end/37805
10960 * opts.c (print_specific_help): In addition to `undocumented',
10961 accept `separate' and `joined' flags if passed alone. Describe
10962 output by the first matched one of those.
10963 (common_handle_option): Skip over empty strings.
10964 * gcc.c (display_help): Fix help string for `--help='.
10965 * doc/invoke.texi (Option Summary, Overall Options): With
10966 `--help=', classes and qualifiers can both be repeated, but
10967 only the latter can be negated. One should not pass only
10968 negated qualifiers. Fix markup and examples.
10969
66811228
RW
10970 Revert
10971 2008-10-14 Jakub Jelinek <jakub@redhat.com>
10972 PR middle-end/37805
10973 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
10974 and -fhelp=separate.
10975
3c072c6b
JY
109762009-03-17 Jing Yu <jingyu@google.com>
10977
10978 PR middle-end/39378
80c65208
JY
10979 * function.h (struct rtl_data): Move is_thunk from here...
10980 (struct function): ...to here.
10981 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
10982 * varasm.c (assemble_start_function): Change is_thunk from crtl to
10983 cfun.
80c65208
JY
10984 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
10985 cfun.
10986 (alpha_does_function_need_gp, alpha_start_function): Likewise.
10987 (alpha_output_function_end_prologue): Likewise.
10988 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
10989 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
10990 (rs6000_output_function_epilogue): Likewise.
10991 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 10992
9ade279b
UB
109932009-03-17 Uros Bizjak <ubizjak@gmail.com>
10994
10995 PR target/39482
10996 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
10997 from different units in a single alternative.
10998 (*truncdfsf_i387): Ditto.
10999 (*truncxfsf2_mixed): Ditto.
11000 (*truncxfdf2_mixed): Ditto.
11001
16e60c17
JJ
110022009-03-17 Jakub Jelinek <jakub@redhat.com>
11003
98381eb4
JJ
11004 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
11005 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
11006
df5deb18
JJ
11007 PR debug/39474
11008 * tree-ssa-live.c (remove_unused_locals): Don't remove local
11009 unused non-artificial variables when not optimizing.
11010
a3f596ba
JJ
11011 PR debug/39471
11012 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
11013 DW_TAG_imported_module even if decl is IMPORTED_DECL with
11014 NAMESPACE_DECL in its DECL_INITIAL.
11015
6b2b8871
JJ
11016 PR middle-end/39443
11017 * optabs.c (set_user_assembler_libfunc): New function.
11018 * expr.h (set_user_assembler_libfunc): New prototype.
11019 * c-common.c: Include libfuncs.h.
11020 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
11021 for memcmp, memset, memcpy, memmove and abort.
11022 * Makefile.in (c-common.o): Depend on libfuncs.h.
11023
16e60c17
JJ
11024 PR debug/39412
11025 * dwarf2out.c (gen_inlined_enumeration_type_die,
11026 gen_inlined_structure_type_die, gen_inlined_union_type_die,
11027 gen_tagged_type_instantiation_die): Removed.
11028 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
11029 do nothing.
11030
4d936aca
JJ
110312009-03-17 Janis Johnson <janis187@us.ibm.com>
11032
11033 PR testsuite/38526
11034 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
11035 its use.
11036 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
11037 (check-parallel-%): Ditto.
11038 (check-consistency): Ditto.
11039
4e9b2e50
KT
110402009-03-17 Kai Tietz <kai.tietz@onevision.com>
11041
11042 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
11043 local variable rhs by NULL_TREE.
11044
21440b2d
L
110452009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11046
11047 PR target/39477
9ade279b 11048 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 11049
d8905c6a
L
110502009-03-17 H.J. Lu <hongjiu.lu@intel.com>
11051
11052 PR target/39476
9ade279b 11053 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
11054
110552009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
11056
11057 PR target/39473
11058 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
11059 for ms->sysv ABI calls only in 64bit mode.
11060
11061 * config/i386/i386.md (untyped_call): Support 32bit.
11062
cdcabece
L
110632009-03-16 H.J. Lu <hongjiu.lu@intel.com>
11064
11065 * doc/extend.texi: Replace x86_65 with x86_64.
11066
97b4ba9f
JJ
110672009-03-16 Jakub Jelinek <jakub@redhat.com>
11068
11069 PR tree-optimization/39455
11070 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
11071 mismatches for POINTER_TYPE_P (type).
11072 (number_of_iterations_le): Likewise.
11073
60839f5d 110742009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
11075
11076 * config/picochip/picochip.c: Removed profiling support.
11077 * config/picochip/picochip.md: Removed profiling instruction.
11078 * config/picochip/picochip.h: Removed profiling builtin.
11079
f38095f3
JM
110802009-03-16 Joseph Myers <joseph@codesourcery.com>
11081
11082 * doc/install.texi (--with-host-libstdcxx): Document.
11083
2cb4817b
AS
110842009-03-14 Anatoly Sokolov <aesok@post.ru>
11085
11086 PR target/34299
11087 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
11088 generate a warning if the function name does not begin with
11089 "__vector" and the function has either the 'signal' or 'interrupt'
11090 attribute, from here to ...
11091 (avr_declare_function_name): ...here. New function.
11092 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
11093 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
11094
39b2ac74
JJ
110952009-03-14 Jakub Jelinek <jakub@redhat.com>
11096
11097 PR bootstrap/39454
11098 * cse.c (fold_rtx): Don't modify original const_arg1 when
11099 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
11100 separate variable instead.
11101 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
11102 from out of range shift counts.
11103 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
11104
ad41bd84 111052009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 11106
60839f5d 11107 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
11108 diagnostic.h with $(DIAGNOSTIC_H).
11109
ad41bd84 111102009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
11111
11112 PR target/39431
11113 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
11114 predicate.
11115 * config/i386/sync.md (sync_compare_and_swap<mode>,
11116 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
11117 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
11118 into a register.
11119 (sync_double_compare_and_swapdi_pic,
11120 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
11121 cmpxchg8b_pic_memory_operand instead of just memory_operand.
11122
122c59c7
L
111232009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11124
11125 PR target/39445
9ade279b 11126 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 11127
cec8874f
L
111282009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11129
11130 PR target/39327
11131 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11132 (avx_addsubv4df3): Likewise.
11133 (*avx_addsubv4sf3): Likewise.
11134 (sse3_addsubv4sf3): Likewise.
11135
bbb52802
L
111362009-03-12 H.J. Lu <hongjiu.lu@intel.com>
11137
11138 PR target/38824
9ade279b 11139 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 11140
a812fb07
VM
111412009-03-12 Vladimir Makarov <vmakarov@redhat.com>
11142
11143 PR debug/39432
11144 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
11145 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11146 registers for allocnos created from user-defined variables.
11147
4caab5ba
UW
111482009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11149
11150 PR target/39181
11151 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
11152 of non-integer mode as well.
11153
498e51ca
AN
111542009-03-11 Adam Nemet <anemet@caviumnetworks.com>
11155
11156 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
11157 for functions for which the parameter types are unknown.
11158
9bfaf89d
JJ
111592009-03-11 Jakub Jelinek <jakub@redhat.com>
11160
11161 PR target/39137
9ade279b 11162 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
11163 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
11164 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
11165 * config/i386/i386.c (ix86_local_alignment): For
11166 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
11167 long long variables on the stack to avoid dynamic realignment.
11168 Allow the first argument to be a decl rather than type.
11169 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
11170
18a3bdcb
NC
111712009-03-11 Nick Clifton <nickc@redhat.com>
11172
11173 PR target/5362
40190a76
NC
11174 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
11175 options.
11176 Add description to mno-lsim option.
11177 * config/mcore/mcore.h: Remove comment about deprecated m4align
11178 option.
11179 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
11180 * doc/invoke.texi: Add description of mno-lsim and
11181 mstack-increment options.
11182
18a3bdcb
NC
11183 * config/fr30/fr30.opt: Document the -mno-lsim option.
11184 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
11185 and -mno-lsim options.
11186
dc215785
UW
111872009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11188
11189 * fold-const.c (fold_comparison): Only call fold_inf_compare
11190 if the mode supports infinities.
11191
7716876b
JM
111922009-03-11 Jason Merrill <jason@redhat.com>
11193
11194 PR debug/39086
11195 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
11196 end already did. Notice GIMPLE_CALL modifications of the result.
11197 Don't copy debug information from an ignored decl or a decl from
11198 another function.
11199
ddef83d2
RG
112002009-03-10 Richard Guenther <rguenther@suse.de>
11201 Nathan Froyd <froydnj@codesourcery.com>
11202
11203 PR middle-end/37850
9ade279b 11204 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
11205 (__divMODE3): Likewise.
11206
9a9ba8d9
JJ
112072009-03-09 Jakub Jelinek <jakub@redhat.com>
11208
11209 PR tree-optimization/39394
11210 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
11211 DECL_SIZE_UNIT of variable length FIELD_DECLs.
11212
929b7fc3
AK
112132009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11214
11215 * recog.c (verfiy_changes): Disallow renaming of hard regs in
11216 inline asms for register asm ("") declarations.
11217
1803581d
EB
112182009-03-09 Eric Botcazou <ebotcazou@adacore.com>
11219
11220 * fold-const.c (fold_unary): Fix comment.
11221
8454d27e
JH
112222009-03-07 Jan Hubicka <jh@suse.cz>
11223
11224 PR target/39361
969a5433
JJ
11225 * tree-inline.c (setup_one_parameter): Do replacement of const
11226 argument by constant in SSA form.
8454d27e 11227
3a695389
UW
112282009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11229
11230 PR middle-end/38028
11231 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
11232 determine alignment passed to assign_stack_local.
11233 (assign_parms_unsplit_complex): Likewise.
11234 * except.c (sjlj_build_landing_pads): Likewise.
11235
9f0e7885
JJ
112362009-03-06 Jakub Jelinek <jakub@redhat.com>
11237
65401a0b
JJ
11238 PR middle-end/39360
11239 * tree-flow.h (add_referenced_var): Return bool instead of void.
11240 * tree-dfa.c (add_referenced_var): Return result of
11241 referenced_var_check_and_insert call.
11242 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
11243 of referenced_var_check_and_insert.
11244
9f0e7885 11245 PR debug/39372
9ade279b 11246 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
11247 (gen_variable_die): Emit DW_AT_location on abstract static variable's
11248 DIE, don't emit it if abstract origin already has it.
11249 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
11250 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
11251
3b664bd1
JBG
112522009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11253
ba20e309 11254 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
11255 detection.
11256 (write_tm_constrs_h): Indent generated code.
11257
d8f8ca80
RR
112582009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11259
11260 * doc/extend.texi (Function Attributes): Add documentation
11261 for isr attributes.
11262
6c3d550c
JJ
112632009-03-06 Jakub Jelinek <jakub@redhat.com>
11264
11265 PR debug/39387
11266 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
11267 take locus from its DECL_SOURCE_LOCATION instead of input_location.
11268
f9e96751
BS
112692009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
11270
11271 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
11272 the loop as bad.
11273
ee0ee7e2
JJ
112742009-03-05 Jakub Jelinek <jakub@redhat.com>
11275
11276 PR debug/39379
11277 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
11278 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
11279
6c6094f1
UB
112802009-03-05 Uros Bizjak <ubizjak@gmail.com>
11281
11282 * config/i386/i386.md (R8_REG, R9_REG): New constants.
11283 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
11284 constants instead of magic numbers.
11285 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
11286 (QI_REG_P): Ditto.
11287 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
11288 (x86_64_ms_abi_int_parameter_registers): Ditto.
11289 (x86_64_int_return_registers): Ditto.
09f8a8d3 11290 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
11291 (ix86_expand_call): Ditto for clobbered_registers array.
11292 (ix86_hard_regno_mode_ok): Ditto.
11293 (x86_extended_QIreg_mentioned_p): Ditto.
11294
b267bd41
R
112952009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
11296
6c6094f1 11297 PR tree-optimization/39349
1f3ad3f0
R
11298 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
11299
b267bd41
R
11300 * combine.c (gen_lowpart_for_combine): Use omode when generating
11301 clobber.
11302
1242bc9d
R
113032009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
11304
6c6094f1 11305 PR rtl-optimization/39235
1242bc9d
R
11306 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
11307
48f03606
ZD
113082009-03-04 Zdenek Dvorak <ook@ucw.cz>
11309
11310 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
11311
b505e785
RG
113122009-03-04 Richard Guenther <rguenther@suse.de>
11313
11314 PR tree-optimization/39362
11315 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
11316 that occur in abnormal PHIs should be varying.
11317
f017bf5e
ZD
113182009-03-04 Zdenek Dvorak <ook@ucw.cz>
11319
11320 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
11321 Extend comments.
11322 (simple_iv): Take loop as an argument instead of statement.
11323 * tree-scalar-evolution.h (simple_iv): Declaration changed.
11324 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
11325 to simple_iv.
11326 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
11327 Ditto.
11328 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
11329 * matrix-reorg.c (analyze_transpose): Ditto.
11330 * tree-data-ref.c (dr_analyze_innermost): Ditto.
11331 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
11332 * tree-predcom.c (ref_at_iteration): Ditto.
11333 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
11334
6a66f28e
RG
113352009-03-04 Richard Guenther <rguenther@suse.de>
11336
11337 PR tree-optimization/39358
11338 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
11339 escaped_id and callused_id.
11340 (solve_graph): Likewise.
11341
57e454ee
RG
113422009-03-04 Richard Guenther <rguenther@suse.de>
11343
11344 PR tree-optimization/39339
11345 * tree-sra.c (try_instantiate_multiple_fields): Make it
11346 no longer ICE on the above.
11347
a6fe9ed4
JM
113482009-03-03 Joseph Myers <joseph@codesourcery.com>
11349
11350 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
11351 that fits within Pmode.
11352
dc672951
SE
113532009-03-03 Steve Ellcey <sje@cup.hp.com>
11354
11355 PR middle-end/10109
11356 * tm.texi (LIBCALL_VALUE): Update description.
11357
8b9d598f
SE
113582009-03-03 Steve Ellcey <sje@cup.hp.com>
11359
11360 PR middle-end/34443
11361 * doc/extend.texi (section): Update description.
11362
13e4e36e
L
113632009-03-03 H.J. Lu <hongjiu.lu@intel.com>
11364
11365 PR middle-end/39345
11366 * tree-inline.c (remapped_type): New.
11367 (can_be_nonlocal): Call remapped_type instead of remap_type.
11368
067dd3c9
JJ
113692009-03-03 Jakub Jelinek <jakub@redhat.com>
11370
11371 PR fortran/39354
11372 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
11373 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
11374
9bd9f738
RG
113752009-03-03 Richard Guenther <rguenther@suse.de>
11376
11377 PR middle-end/39272
11378 * tree.c (tree_nonartificial_location): New function.
11379 * tree.h (tree_nonartificial_location): Declare.
11380 * builtins.c (expand_builtin_memory_chk): Provide location
11381 of the call location for artificial function pieces.
11382 (maybe_emit_chk_warning): Likewise.
11383 (maybe_emit_sprintf_chk_warning): Likewise.
11384 (maybe_emit_free_warning): Likewise.
11385 * expr.c (expand_expr_real_1): Likewise.
11386
f07049c8
JJ
113872009-03-03 Jakub Jelinek <jakub@redhat.com>
11388
11389 PR tree-optimization/39343
11390 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
11391 COMPONENT_REF t has ARRAY_TYPE.
11392
7d4fba4a
SP
113932009-03-02 Sebastian Pop <sebastian.pop@amd.com>
11394
11395 PR middle-end/39335
11396 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
11397 when the type precision of the induction variable should be
11398 larger than the type precision of nit.
11399 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
11400 * graphite.c (graphite_loop_normal_form): Same.
11401 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
11402
78168632
UB
114032009-03-02 Uros Bizjak <ubizjak@gmail.com>
11404
11405 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
11406 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 11407 numbers to describe clobbered registers.
78168632 11408 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
11409 * config/i386/mmx.md (mmx_emms): Ditto.
11410 (mmx_femms): Ditto.
78168632 11411
63553059
RS
114122009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
11413
11414 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
11415 of ABI_64.
11416
500a1f85
UW
114172009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11418
11419 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
11420 (spu_section_type_flags): New function.
11421
962aae34
UB
114222009-03-02 Uros Bizjak <ubizjak@gmail.com>
11423
11424 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
11425 reg_class_contents of FLOAT_REGS into a temporary.
11426
6dfb529c 114272009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 11428 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
11429
11430 PR tree-optimization/39318
11431 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
11432 information to the vectorized statement.
11433
6b5629db
UB
114342009-03-01 Uros Bizjak <ubizjak@gmail.com>
11435
434426d2
UB
11436 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
11437 variable. Use defined names instead of magic constants for REX SSE
11438 registers.
6b5629db 11439
14e5b285
RG
114402009-03-01 Richard Guenther <rguenther@suse.de>
11441
11442 PR tree-optimization/39331
11443 * omp-low.c (lower_send_shared_vars): Do not receive new
11444 values for the reference of DECL_BY_REFERENCE parms or results.
11445
526d73ab
JH
114462009-03-01 Jan Hubicka <jh@suse.cz>
11447
11448 PR debug/39267
11449 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
11450 BLOCK_NONLOCALIZED_VAR): New macros.
11451 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
11452 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
11453 gen_decl_die): Add origin argument. Allow generation of die with
11454 origin at hand only.
526d73ab 11455 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
11456 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
11457 of gen_*.
526d73ab
JH
11458 (gen_block_die): Fix checking for unused blocks.
11459 (process_scope_var): Break out from .... ; work with origins only.
11460 (decls_for_scope) ... here; process nonlocalized list.
11461 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
11462 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
11463 vars.
526d73ab
JH
11464 (dump_scope_block): Dump them.
11465 * tree-inline.c (remap_decls): Handle nonlocalized vars.
11466 (remap_block): Likewise.
11467 (can_be_nonlocal): New predicate.
11468 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
11469
7a9d3fe8
RW
114702009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11471
11472 * configure: Regenerate.
11473
b3cdf3cb
RW
114742009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11475
a16d1645 11476 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 11477 Reuse help texts for duplicate options which do not have any.
a16d1645 11478
1156c176
RW
11479 * gcc.c (display_help): Document --version.
11480
033505fc
RW
11481 * gcc.c (main): If print_help_list and verbose_flag, ensure
11482 driver output comes before subprocess output.
11483
4d077054
RW
11484 * optc-gen.awk: Assign all remaining fields to help string,
11485 space-separated, for multi-line help in *.opt.
11486
a072f1cf
RW
11487 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
11488 -Wno-pedantic-ms-format is for MinGW targets only.
11489
b3cdf3cb
RW
11490 * doc/options.texi (Option file format): Fix bad indentation,
11491 restoring dropped sentence.
11492
a3aadcc5
JH
114932009-02-28 Jan Hubicka <jh@suse.cz>
11494
11495 * tree-inline.c (tree_function_versioning): Output debug info.
11496
1cf5abb3
JH
114972009-02-28 Jan Hubicka <jh@suse.cz>
11498
11499 PR debug/39267
11500 * tree-inline.c (setup_one_parameter): Do not copy propagate
11501 arguments when not optimizing.
11502
c4d3f42f
L
115032009-02-28 H.J. Lu <hongjiu.lu@intel.com>
11504
11505 PR target/39327
11506 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
11507 (avx_addsubv4df3): Likewise.
11508 (*avx_addsubv4sf3): Likewise.
11509 (sse3_addsubv4sf3): Likewise.
11510 (*avx_addsubv2df3): Likewise.
11511 (sse3_addsubv2df3): Likewise.
11512 (avx_unpckhps256): Correct item selectors.
11513 (avx_unpcklps256): Likewise.
11514 (avx_unpckhpd256): Likewise.
11515 (avx_unpcklpd256): Likewise.
11516
eb50f5f4
JH
115172009-02-28 Jan Hubicka <jh@suse.cz>
11518
11519 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
11520 static vars.
11521 (copy_arguments_for_versioning): If var is declared don't declare it.
11522 (tree_function_versioning): First setup substitutions and then copy
11523 args.
11524
26140130
JH
115252009-02-27 Jan Hubicka <jh@suse.cz>
11526
11527 PR debug/39267
11528 * cgraph.h (varpool_output_debug_info): Remove.
11529 * cgraphunit.c (varpool_output_debug_info): Remove.
11530 * dwarf2out.c (deferred_locations_struct): New struct
11531 (deferred_locations): New type.
11532 (deferred_locations_list): New static var.
11533 (deffer_location): New function.
11534 (gen_variable_die): Use it.
11535 (decls_for_scope): Output info on local static vars.
11536 (dwarf2out_finish): Process deferred locations.
11537 * varpool.c (varpool_output_debug_info): Remove.
11538
cff7525f
JH
115392009-02-27 Jan Hubicka <jh@suse.cz>
11540
11541 PR debug/39267
11542 * tree.h (TREE_PROTECTED): Fix comment.
11543 (BLOCK_HANDLER_BLOCK): Remove.
11544 (struct tree_block): Remove handler_block add body_block.
11545 (inlined_function_outer_scope_p): New.
11546 (is_body_block): Remove.
11547 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
11548 * dwarf2out.c (is_inlined_entry_point): Remove.
11549 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
11550 (gen_block_die): Use is_inlined_entry_point check. Remove body block
11551 code.
cff7525f
JH
11552 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
11553 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
11554 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
11555 block with multiple subblocks.
cff7525f
JH
11556 (dump_scope_block): Prettier output; dump more flags and info.
11557 (dump_scope_blocks): New.
11558 (remove_unused_locals): Use dump_scope_blocks.
11559 * tree-flow.h (dump_scope_blocks): Declare.
11560 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
11561 * stmt.c (is_body_block): Remove.
11562 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
11563 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
11564
c20993b9
SP
115652009-02-27 Sebastian Pop <sebastian.pop@amd.com>
11566
11567 PR middle-end/39308
2ba9daa7 11568 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
11569 number_of_iterations_exit from a gcc_assert.
11570
e3cba5e5
AK
115712009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11572
60839f5d 11573 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
11574 jumps if COND is NULL.
11575 (find_cond_jump): New function.
11576 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 11577 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 11578
9dadeeb8
UB
115792009-02-26 Uros Bizjak <ubizjak@gmail.com>
11580
11581 * config/alpha/alpha.h (alpha_expand_mov): Return false if
11582 force_const_mem returns NULL_RTX.
11583
625d3251
EB
115842009-02-26 Jan Hubicka <jh@suse.cz>
11585
11586 PR debug/39267
11587 * cgraph.h (varpool_output_debug_info): Remove.
11588 * cgraphunit.c (varpool_output_debug_info): Remove.
11589 * dwarf2out.c (deferred_locations_struct): New struct
11590 (deferred_locations): New type.
11591 (deferred_locations_list): New static var.
11592 (deffer_location): New function.
11593 (gen_variable_die): Use it.
11594 (decls_for_scope): Output info on local static vars.
11595 (dwarf2out_finish): Process deferred locations.
11596 * varpool.c (varpool_output_debug_info): Remove.
11597
38432148 115982009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
11599
11600 PR rtl-optimization/39241
11601 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
11602 to subreg_offset_representable_p.
11603
62d049cf
PB
116042009-02-25 Paolo Bonzini <bonzini@gnu.org>
11605
11606 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
11607 execute function prototype. Get f and nregs from max_reg_num
11608 and get_insns. Remove the first backward pass as it's dead,
11609 guard the forward pass by flag_expensive_optimizations.
11610 (rest_of_handle_regmove): Delete.
11611 (pass_regmove): Replace it with regmove_optimize.
11612
f618d33e
MJ
116132009-02-25 Martin Jambor <mjambor@suse.cz>
11614
11615 PR tree-optimization/39259
11616 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 11617 calls_alloca function flags.
f618d33e
MJ
11618 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
11619 calls are detected.
11620
c8a05f7c
PB
116212009-02-25 Paolo Bonzini <bonzini@gnu.org>
11622
11623 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
11624 flags_set_1_rtx, flags_set_1_set): Delete.
11625 (regmove_optimize): Do not call mark_flags_life_zones.
11626
6d2538f5
JB
116272009-02-24 Julian Brown <julian@codesourcery.com>
11628
11629 PR target/35965
11630 * config/arm/arm.c (require_pic_register): Only set
11631 cfun->machine->pic_reg once per function.
11632
a2fa6772
SL
116332009-02-24 Sandra Loosemore <sandra@codesourcery.com>
11634
11635 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 11636 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 11637
5472de36
SE
116382009-02-24 Steve Ellcey <sje@cup.hp.com>
11639
11640 PR target/33785
11641 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
11642
844216f3
RG
116432009-02-24 Richard Guenther <rguenther@suse.de>
11644
11645 PR debug/39285
11646 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
11647
71adbef3 116482009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 11649 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
11650
11651 PR tree-optimization/39233
11652 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
11653 from converting them to a generic type.
11654
f1a558e0
SP
116552009-02-23 Sebastian Pop <sebastian.pop@amd.com>
11656
11657 PR tree-optimization/39260
11658 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
11659 contains a condition with a real type.
11660 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
11661
d8028f2c
JM
116622009-02-23 Jason Merrill <jason@redhat.com>
11663
11664 PR c++/38880
11665 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
11666 narrowing_initializer_constant_valid_p.
2ba9daa7 11667 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
11668 null_pointer_node for adding a pointer to itself.
11669
9283b513
JH
116702009-02-23 Jan Hubicka <jh@suse.cz>
11671
11672 PR c/12245
9dadeeb8
UB
11673 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
11674 resizing.
9283b513 11675
61e04322
JH
116762009-02-23 Jan Hubicka <jh@suse.cz>
11677
9dadeeb8
UB
11678 PR tree-optimization/37709
11679 * tree.c (block_ultimate_origin): Move here from dwarf2out.
11680 * tree.h (block_ultimate_origin): Declare.
11681 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
11682 * tree-ssa-live.c (remove_unused_scope_block_p):
11683 Eliminate blocks containig no instructions nor live variables nor
11684 nested blocks.
11685 (dump_scope_block): New function.
11686 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 11687 enable dumping at TDF_DETAILS.
61e04322 11688
38432148 116892009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
11690
11691 * config/i386/i386.c (classify_argument): Don't allow COImode
11692 and OImode.
11693 (function_arg_advance_32): Don't allow OImode.
11694 (function_arg_32): Likewise.
11695 (function_value_32): Likewise.
11696 (return_in_memory_32): Likewise.
11697 (function_arg_64): Remove OImode comment.
11698
38432148 116992009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
11700
11701 PR target/39261
11702 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
11703 ix86_expand_vector_set for V4DImode in 64bit mode only.
11704 (ix86_expand_vector_init_one_var): Likewise.
11705
dcd739a6
SP
117062009-02-21 Sebastian Pop <sebastian.pop@amd.com>
11707
11708 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
11709
6c3b938d
RS
117102009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
11711
8e361f23 11712 PR bootstrap/39257
6c3b938d
RS
11713 * loop-iv.c: Revert last change.
11714 * emit-rtl.c: Likewise.
11715
38432148 117162009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
11717
11718 PR target/39256
11719 * config/i386/i386.c (type_natural_mode): Remove an extra
11720 space in the warning message.
11721 (function_value_32): Handle 32-byte vector modes.
11722 (return_in_memory_32): Likewise.
11723
2ec62529
RS
117242009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
11725
11726 * loop-iv.c (truncate_value): New function.
11727 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
11728 of lowpart_subreg.
11729 (lowpart_subreg): Move to...
11730 * emit-rtl.c: ...here.
11731
ecb8c3cc 117322009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 11733
ecb8c3cc
DS
11734 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
11735 accidental and undocumented change at revision 140860.
11736
ae46a823
JM
117372009-02-21 Joseph Myers <joseph@codesourcery.com>
11738
11739 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
11740 take gimple_seq * arguments.
11741 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
11742 types_compatible_p langhook.
11743
07d8efe3 117442009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 11745 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
11746
11747 * config/arm/arm.c (arm_builtin_va_list): New function.
11748 (arm_expand_builtin_va_start): Likewise.
11749 (arm_gimplify_va_arg_expr): Likewise.
11750 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
11751 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
11752 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
11753 (va_list_type): New variable.
11754 (arm_mangle_type): Mangle va_list_type appropriately.
11755
b1fb9f56
JJ
117562009-02-20 Jakub Jelinek <jakub@redhat.com>
11757
11758 PR middle-end/39157
11759 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
11760 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
11761 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
11762 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
11763 parameter to 1000 for -O1 by default.
11764 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
11765 parameter.
11766 * loop-invariant.c: Include params.h.
11767 (move_loop_invariants): Don't call move_single_loop_invariants on
11768 very large loops.
11769
5bc0807c
JM
117702009-02-20 Jaka Mocnik <jaka@xlab.si>
11771
11772 * calls.c (emit_library_call_value_1): Use slot_offset instead of
11773 offset when calculating bounds for indexing stack_usage_map. Fixes
11774 a buffer overflow with certain target setups.
11775
c69cd1f5
JJ
117762009-02-20 Jakub Jelinek <jakub@redhat.com>
11777
11778 PR target/39240
11779 * calls.c (expand_call): Clear try_tail_call if caller and callee
11780 disagree in promotion of function return value.
11781
09812622
JJ
117822009-02-19 Jakub Jelinek <jakub@redhat.com>
11783
11784 PR target/39175
11785 * c-common.c (c_determine_visibility): If visibility changed and
11786 DECL_RTL has been already set, call make_decl_rtl to update symbol
11787 flags.
11788
68017cb4
L
117892009-02-19 H.J. Lu <hongjiu.lu@intel.com>
11790
11791 PR c++/39188
11792 * varasm.c (assemble_variable): Don't check DECL_NAME when
11793 globalizing a variable.
11794
ab4194da
JM
117952009-02-19 Joseph Myers <joseph@codesourcery.com>
11796
11797 PR c/38483
11798 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
11799 expression before any __builtin_trap call.
11800 * c-typeck.c (build_function_call): Convert and check function
11801 arguments before generating a call to a trap. Evaluate the
11802 function arguments before the trap.
11803
6b67572e
UB
118042009-02-19 Uros Bizjak <ubizjak@gmail.com>
11805
11806 PR target/39228
11807 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
11808 (UNSPEC_FXAM_MEM): New unspec.
11809 (fxam<mode>2_i387_with_temp): New insn and split pattern.
11810 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
11811 memory using fxam<mode>2_i387_with_temp to remove excess precision.
11812
9e39dba6
RG
118132009-02-19 Richard Guenther <rguenther@suse.de>
11814
11815 PR tree-optimization/39207
11816 PR tree-optimization/39074
11817 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
11818 storedanything_tree): New.
11819 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 11820 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
11821 (build_succ_graph): Add edges from STOREDANYTHING to all
11822 non-direct nodes.
11823 (init_base_vars): Initialize STOREDANYTHING.
11824 (compute_points_to_sets): Free substitution info after
11825 building the succ graph.
11826 (ipa_pta_execute): Likewise.
11827
11828 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
11829 field.
11830 (do_ds_constraint): Do not add to special var or non-pointer
11831 field solutions.
11832 (type_could_have_pointers): Split out from ...
11833 (could_have_pointers): ... here. For arrays use the element type.
11834 (create_variable_info_for): Initialize may_have_pointers.
11835 (new_var_info): Likewise.
11836 (handle_lhs_call): Make the HEAP variable unknown-sized.
11837 (intra_create_variable_infos): Use a type with pointers for
11838 PARM_NOALIAS, make it unknown-sized.
11839
fd7b2603
L
118402009-02-18 H.J. Lu <hongjiu.lu@intel.com>
11841
11842 PR target/39224
6b67572e 11843 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 11844
98b80692
JM
118452009-02-18 Jason Merrill <jason@redhat.com>
11846
11847 PR target/39179
11848 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
11849 value if DECL_EXTERNAL.
11850 * tree-sra.c (sra_walk_gimple_assign): Likewise.
11851 * target.h (gcc_target::binds_local_p): Clarify "module".
11852 * tree.h (TREE_PUBLIC): Clarify "module".
11853
0705d3f4
L
118542009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
11855
11856 PR target/38891
11857 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
11858 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
11859
bce08d50
L
118602009-02-17 H.J. Lu <hongjiu.lu@intel.com>
11861
11862 PR target/39082
11863 * c.opt (Wabi): Support C and ObjC.
11864 (Wpsabi): New.
11865
11866 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
11867
11868 * config/i386/i386.c (classify_argument): Warn once about the ABI
11869 change when passing union with long double.
11870
11871 * doc/invoke.texi: Update -Wabi for warning psABI changes.
11872
5600f233
JM
118732009-02-18 Joseph Myers <joseph@codesourcery.com>
11874
11875 PR c/35447
11876 * c-parser.c (c_parser_compound_statement): Always enter and leave
11877 a scope.
11878
8cd01fe6
JDA
118792009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11880
11881 PR target/34587
11882 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
11883
418df9d7
JJ
118842009-02-18 Jakub Jelinek <jakub@redhat.com>
11885
11886 PR tree-optimization/36922
11887 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
11888 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
11889 Likewise.
11890
082d2ebb
RS
118912009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11892
11893 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
11894 to 0 for EABI64.
11895
17de576c
RS
118962009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11897
11898 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
11899
6d8d5435
RS
119002009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
11901
11902 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
11903 tree sharing.
11904
e69ff910
RB
119052009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
11906 Richard Sandiford <rdsandiford@googlemail.com>
11907
11908 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
11909 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
11910 (loongson_biadd): ...this.
11911
6b24ee26
RG
119122009-02-17 Richard Guenther <rguenther@suse.de>
11913
11914 PR tree-optimization/39202
11915 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
11916 a var make sure to follow existing collapses.
11917
91ab2c86
RG
119182009-02-17 Richard Guenther <rguenther@suse.de>
11919
11920 PR middle-end/39214
11921 * langhooks.c (lhd_print_error_function): Check for NULL block.
11922
73a63870
RG
119232009-02-17 Richard Guenther <rguenther@suse.de>
11924
11925 PR tree-optimization/39204
11926 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
11927 of the PHI arg.
11928
0e08f686
UB
119292009-02-17 Uros Bizjak <ubizjak@gmail.com>
11930
11931 * config/soft-fp/double.h: Update from glibc CVS.
11932
a60b7ddb
RG
119332009-02-17 Richard Guenther <rguenther@suse.de>
11934
11935 PR tree-optimization/39207
11936 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
11937 strict-aliasing warnings for pointers pointing to NULL.
11938
a47e20fd
JM
119392009-02-16 Joseph Myers <joseph@codesourcery.com>
11940
11941 PR c/35446
11942 * c-parser.c (c_parser_braced_init): Call pop_init_level when
11943 skipping until next close brace.
11944
50aab7dc
L
119452009-02-16 H.J. Lu <hongjiu.lu@intel.com>
11946
11947 PR target/37049
11948 * config/i386/i386.c (ix86_expand_push): Set memory alignment
11949 to function argument boundary.
11950
68e53db0
HS
119512009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
11952
11953 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
11954 in the lea_add. Reload eventually constraints it properly.
0d50d55a 11955 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
11956 "b", since it is not needed anymore.
11957
09e361bb
JJ
119582009-02-16 Jakub Jelinek <jakub@redhat.com>
11959
11960 * gthr-dce.h: Uglify function parameter and local variable names.
11961 * gthr-gnat.h: Likewise.
11962 * gthr-mipssde.h: Likewise.
11963 * gthr-nks.h: Likewise.
11964 * gthr-posix95.h: Likewise.
11965 * gthr-posix.h: Likewise.
11966 * gthr-rtems.h: Likewise.
11967 * gthr-single.h: Likewise.
11968 * gthr-solaris.h: Likewise.
11969 * gthr-tpf.h: Likewise.
11970 * gthr-vxworks.h: Likewise.
11971 * gthr-win32.h: Likewise.
11972
47f5a48f
L
119732009-02-15 H.J. Lu <hongjiu.lu@intel.com>
11974
11975 PR target/39196
11976 * config/i386/i386.md: Restrict the new peephole2 to move
11977 between MMX/SSE registers.
11978
68c9ab45
RG
119792009-02-15 Richard Guenther <rguenther@suse.de>
11980
11981 Revert
11982 2009-02-13 Richard Guenther <rguenther@suse.de>
11983
11984 * configure.ac: Enable LFS.
11985 * configure: Re-generate.
11986 * config.in: Likewise.
11987
d7815554
UW
119882009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11989
11990 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
11991 spu_srqwbyte, spu_srqwbytebc): Define.
11992 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
11993 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
11994 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
11995 "shrqby_<mode>"): New insn-and-split patterns.
11996 * config/spu/spu.c (expand_builtin_args): Determine and return
11997 number of operands using spu_builtin_description data.
11998 (spu_expand_builtin_1): Use it.
11999
c208436c
SE
120002009-02-13 Steve Ellcey <sje@cup.hp.com>
12001
12002 PR target/38056
12003 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
12004 TARGET_CONST_GP.
12005
c2e7ba7e
L
120062009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12007
12008 PR target/39149
12009 * config/i386/i386.c (override_options): Correct warning
6c6094f1 12010 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 12011
72f4e3a7
L
120122009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12013
12014 PR target/39152
12015 * config/i386/i386.md: Restrict the new peephole2 to move
12016 between the general purpose registers.
12017
53f648e2
L
120182009-02-13 H.J. Lu <hongjiu.lu@intel.com>
12019
12020 PR target/39162
12021 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 12022 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
12023 (function_arg_advance): Updated.
12024 (function_arg): Likewise.
12025 (ix86_function_value): Likewise.
12026 (ix86_return_in_memory): Likewise.
12027 (ix86_sol10_return_in_memory): Likewise.
12028 (ix86_gimplify_va_arg): Likewise.
12029 (function_arg_32): Don't warn ABX ABI change here.
12030 (function_arg_64): Likewise.
12031
38432148 120322009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
12033
12034 * loop-iv.c (implies_p): In the final case, test that operands 0
12035 of the two comparisons match.
12036
dd2139e7
BS
12037 * config/bfin/bfin.c (find_prev_insn_start): New function.
12038 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
12039 (find_next_insn_start): Move.
12040
601b3e1a
RG
120412009-02-13 Richard Guenther <rguenther@suse.de>
12042
12043 * configure.ac: Enable LFS.
12044 * configure: Re-generate.
12045 * config.in: Likewise.
12046
f007042e
JM
120472009-02-13 Joseph Myers <joseph@codesourcery.com>
12048
12049 PR c/35444
12050 * c-parser.c (c_parser_parms_list_declarator): Discard pending
12051 sizes on syntax error after some arguments have been parsed.
12052
3f238e8b
JJ
120532009-02-12 Jakub Jelinek <jakub@redhat.com>
12054
12055 * doc/invoke.texi (-fira): Remove.
12056
328e13b7
L
120572009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12058
12059 * caller-save.c: Replace regclass.c with reginfo.c in comments.
12060 * recog.c: Likewise.
12061 * rtl.h: Likewise.
12062
c252db20
L
120632009-02-12 Uros Bizjak <ubizjak@gmail.com>
12064
12065 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
12066 (umul_ppmm): Likewise.
12067 (count_leading_zeros): Likewise.
12068 (count_trailing_zeros): Likewise.
12069 (UMUL_TIME): Likewise.
12070
120712009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12072
ba181049
UB
12073 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
12074 soft-fp/t-softfp to tmake_file.
c252db20
L
12075
12076 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
12077 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
12078 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
12079 IA64_BUILTIN_INFQ]: New.
c252db20
L
12080 (ia64_init_builtins): Initialize __builtin_infq,
12081 __builtin_fabsq and __builtin_copysignq if not HPUX.
12082 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
12083 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
12084
12085 * config/ia64/lib1funcs.asm (__divtf3): Define only if
12086 SHARED is defined.
12087 (__fixtfti): Likewise.
12088 (__fixunstfti): Likewise.
12089 (__floattitf): Likewise.
12090
12091 * config/ia64/libgcc-glibc.ver: New.
12092 * config/ia64/t-fprules-softfp: Likewise.
12093 * config/ia64/sfp-machine.h: Likewise.
12094
12095 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
12096 (LIBGCC2_TF_CEXT): Likewise.
12097 (TF_SIZE): Likewise.
12098 (TARGET_INIT_LIBFUNCS): Likewise.
12099
ba181049 12100 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 12101 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 12102
f13eae6a
L
121032009-02-12 H.J. Lu <hongjiu.lu@intel.com>
12104
12105 * config/i386/i386.c (construct_container): Rewrite processing
12106 BLKmode with X86_64_SSE_CLASS.
12107
12019aec
L
121082009-02-12 Paolo Bonzini <bonzini@gnu.org>
12109
12110 PR target/39152
12111 * config/i386/i386.md: Replace simplify_replace_rtx with
12112 replace_rtx in the new peephole2.
12113
28c11eb3
NS
121142009-02-12 Nathan Sidwell <nathan@codesourcery.com>
12115
12116 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
12117 loop unrolling do not happen at -O2.
12118
c7b94907
MM
121192009-02-12 Michael Matz <matz@suse.de>
12120
12121 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
12122
61e98967
JJ
121232009-02-12 Jakub Jelinek <jakub@redhat.com>
12124
12125 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
12126 for -g3.
12127
a2a237b5
BE
121282009-02-12 Ben Elliston <bje@au.ibm.com>
12129
12130 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
12131 patterns when updating the back chain. Missed in the 2009-02-10
12132 change.
12133
853eda8d
JJ
121342009-02-11 Janis Johnson <janis187@us.ibm.com>
12135
12136 * doc/extend.texi (Decimal Floating Types): Update identifier of
12137 draft TR and list of missing support.
12138
3ad6b266
JJ
121392009-02-11 Jakub Jelinek <jakub@redhat.com>
12140
12141 PR middle-end/39154
12142 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
12143 bit to variable length decl's flags, add it also to its
12144 pointer replacement variable.
12145
b058b753
UB
121462009-02-11 Uros Bizjak <ubizjak@gmail.com>
12147 Jakub Jelinek <jakub@redhat.com>
12148
12149 PR target/39118
12150 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
12151 (memory_blockage): New expander.
12152 (*memory_blockage): New insn pattern.
12153 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
12154 instead of general blockage at the end of function prologue when
12155 frame pointer is used to access red zone area. Do not emit blockage
12156 when profiling, it is emitted in generic code.
12157 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
12158 function epilogue when frame pointer is used to access red zone area.
12159
bab64f23
PB
121602009-02-11 Paolo Bonzini <bonzini@gnu.org>
12161
0ce6dcfa 12162 PR target/38824
bab64f23
PB
12163 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
12164 by arithmetic with memory operands.
12165 * config/i386/predicates.md (commutative_operator): New.
12166
8fd94bda
JJ
121672009-02-10 Janis Johnson <janis187@us.ibm.com>
12168
12169 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
12170 bulleted lists.
12171
794511d2
EB
121722009-02-10 Eric Botcazou <ebotcazou@adacore.com>
12173
12174 * alias.h (record_alias_subset): Declare.
12175 * alias.c (record_alias_subset): Make global.
12176
6da7fc87
NC
121772009-02-10 Nick Clifton <nickc@redhat.com>
12178
12179 * tree-parloops.c: Change license to GPLv3.
12180 * ipa-struct-reorg.c: Change license to GPLv3.
12181 * ipa-struct-reorg.h: Change license to GPLv3.
12182
a03813c8
SE
121832009-02-10 Steve Ellcey <sje@cup.hp.com>
12184
12185 PR c/39084
12186 * c-decl.c (start_struct): Return NULL on error.
12187
fc3103e7
JJ
121882009-02-10 Jakub Jelinek <jakub@redhat.com>
12189
9b43d37b
JJ
12190 PR middle-end/39124
12191 * cfgloopmanip.c (remove_path): Call remove_bbs after
12192 cancel_loop_tree, not before it.
12193
fc3103e7 12194 PR target/39139
b058b753 12195 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
12196 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
12197 VAR_DECLs were seen.
12198 * tree-ssa-live.c (remove_unused_locals): Recompute
12199 cfun->has_local_explicit_reg_vars.
12200 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
12201 copies or clearings if cfun->has_local_explicit_reg_vars.
12202
dbf9ee15
UB
122032009-02-10 Uros Bizjak <ubizjak@gmail.com>
12204
12205 PR target/39118
12206 * config/i386/i386.c (expand_prologue): Emit blockage at the end
12207 of function prologue when frame pointer is used to access
12208 red zone area.
12209
bdec4dc7
RG
122102009-02-10 Richard Guenther <rguenther@suse.de>
12211
12212 PR middle-end/39127
12213 * gimplify.c (gimple_regimplify_operands): Always look if
12214 we need to create a temporary.
12215
7cae94fc
RG
122162009-02-10 Richard Guenther <rguenther@suse.de>
12217
12218 PR tree-optimization/39132
12219 * tree-loop-distribution.c (todo): New global var.
12220 (generate_memset_zero): Trigger TODO_rebuild_alias.
12221 (tree_loop_distribution): Return todo.
12222
a8800687
L
122232009-02-10 H.J. Lu <hongjiu.lu@intel.com>
12224
12225 PR target/39119
12226 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
12227 (x86_64_reg_class_name): Removed.
12228 (classify_argument): Return 0 if bytes > 32. Return 0 if the
12229 first one isn't X86_64_SSE_CLASS or any other ones aren't
12230 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
12231 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
12232 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
12233 and 3 X86_64_SSEUP_CLASS.
12234 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
12235 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
12236
d4bacef0
BE
122372009-02-10 Ben Elliston <bje@au.ibm.com>
12238
12239 * config/rs6000/rs6000.md (allocate_stack): Always use an update
12240 form instruction to update the stack back chain word, even if the
12241 user has disabled the generation of update instructions.
12242 (movdi_<mode>_update_stack): New.
12243 (movsi_update_stack): Likewise.
12244 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
12245 always use an update form instruction to update the stack back
12246 chain word.
12247
01d7d2f3
SP
122482009-02-09 Sebastian Pop <sebastian.pop@amd.com>
12249
12250 PR middle-end/38953
b058b753
UB
12251 * graphite.c (if_region_set_false_region): After moving a region in
12252 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
12253 (gloog): Remove wrong fix for PR38953.
12254
e41e2ab4
UW
122552009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12256
12257 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
12258 generation due to implicit sign extension.
12259
4bb07c5d
EB
122602009-02-09 Eric Botcazou <ebotcazou@adacore.com>
12261
12262 PR middle-end/38981
12263 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
12264 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
12265
f060a261
RG
122662009-02-09 Richard Guenther <rguenther@suse.de>
12267
12268 PR middle-end/35202
12269 * convert.c (convert_to_real): Disable (float)fn((double)x)
12270 to fnf(x) conversion if errno differences may occur and
12271 -fmath-errno is set.
12272
5a7e237c
AS
122732009-02-07 Anatoly Sokolov <aesok@post.ru>
12274
12275 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
12276 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
12277 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
12278
feab5a67
JM
122792009-02-06 Joseph Myers <joseph@codesourcery.com>
12280
12281 PR c/35434
12282 * c-common.c (handle_alias_attribute): Disallow attribute for
12283 anything not a FUNCTION_DECL or VAR_DECL.
12284
90ef2296
JJ
122852009-02-06 Janis Johnson <janis187@us.ibm.com>
12286
12287 PR c/39035
12288 * real.c (do_compare): Special-case compare of zero against
12289 decimal float value.
12290
1de2c900
JM
122912009-02-06 Joseph Myers <joseph@codesourcery.com>
12292
12293 PR c/36432
12294 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
12295 as indicating flexible array members unless the field itself is
12296 being declarared as the incomplete array.
12297
e901811a
JH
122982009-02-06 Jan Hubicka <jh@suse.cz>
12299
12300 PR tree-optimization/38844
12301 * ipa-inline.c (try_inline): Stop inlining recursion when edge
12302 is already inlined.
12303
3cfa762b
RG
123042009-02-06 Richard Guenther <rguenther@suse.de>
12305
12306 PR middle-end/38977
12307 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
12308 fork because we may expand it as __gcov_fork.
12309
8506528c
NC
123102009-02-06 Nick Clifton <nickc@redhat.com>
12311
dbf9ee15 12312 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 12313
85169114
PB
123142009-02-06 Paolo Bonzini <bonzini@gnu.org>
12315
12316 PR tree-optimization/35659
12317 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
12318 vn_phi_eq): Shortcut if hashcode does not match.
12319 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
12320 NULL operands.
12321 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
12322 and avoid iterative_hash_expr.
12323 (FOR_EACH_VALUE_ID_IN_SET): New.
12324 (value_id_compare): Remove.
12325 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
12326 sort expressions by value id.
12327
6d39673d
KK
123282009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
12329
12330 PR target/38991
12331 * config/sh/predicates.md (general_movsrc_operand): Don't check
12332 the subreg of system registers here.
12333
e6e1c050
JJ
123342009-02-05 Jakub Jelinek <jakub@redhat.com>
12335
12336 PR c++/39106
12337 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
12338 on the copied decl.
12339
65a74b5d
PB
123402009-02-05 Paolo Bonzini <bonzini@gnu.org>
12341
12342 PR rtl-optimization/39110
12343 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
12344 addresses, not aligned ones.
12345
08e14b2a
DB
123462009-02-05 Daniel Berlin <dberlin@dberlin.org>
12347 Richard Guenther <rguenther@suse.de>
12348
12349 PR tree-optimization/39100
12350 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
12351 comment says and add edges.
12352
5006381c
JM
123532009-02-05 Joseph Myers <joseph@codesourcery.com>
12354
12355 PR c/35435
12356 * c-common.c (handle_tls_model_attribute): Ignore attribute for
12357 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
12358
2ba9daa7 123592009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
12360
12361 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
12362 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
12363 register_bb_in_sese, new_sese, free_sese): Moved.
12364 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
12365 outermost_loop_in_scop, build_scop_iteration_domain,
12366 expand_scalar_variables_ssa_name, get_vdef_before_scop,
12367 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
12368 Use loop_in_sese_p instead of loop_in_scop_p.
12369 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
12370 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
12371 (scopdet_basic_block_info): Fix bug in scop detection.
12372 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
12373 eq_loop_to_cloog_loop): Remove.
12374 (nb_loops_around_loop_in_scop, nb_loop
12375 ref_nb_loops): Moved here...
12376 * graphite.h (ref_nb_loops): ... from here.
12377 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
12378 (loop_domain_dim, loop_iteration_vector_dim): Remove.
12379 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
12380 * testsuite/gcc.dg/graphite/scop-19.c: New
12381
48e8382e
PB
123822009-02-04 Paolo Bonzini <bonzini@gnu.org>
12383 Hans-Peter Nilsson <hp@axis.com>
12384
12385 PR rtl-optimization/37889
12386 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
12387 Move offset handling from PLUS to before the switch. Use new
12388 arguments when considering SYMBOL_REFs too.
12389 (rtx_addr_can_trap_p): Pass dummy offset and size.
12390 (enum may_trap_p_flags): Remove.
12391 (may_trap_p_1): Pass size from MEM_SIZE.
12392
12393 PR rtl-optimization/38921
12394 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
12395 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
12396 * rtlanal.c (may_trap_after_code_motion_p): Delete.
12397 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
12398
69349ea5
L
123992009-02-04 H.J. Lu <hongjiu.lu@intel.com>
12400
12401 AVX Programming Reference (January, 2009)
12402 * config/i386/sse.md (*vpclmulqdq): New.
12403
b545e411
JJ
124042009-02-04 Jakub Jelinek <jakub@redhat.com>
12405
12406 PR tree-optimization/38977
12407 PR gcov-profile/38292
bf9b2cc9 12408 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 12409
5b43bf05
HS
124102009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
12411
12412 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
12413 non-indexable addresses even before reload.
12414
062c4bb3
JM
124152009-02-03 Joseph Myers <joseph@codesourcery.com>
12416
12417 PR c/29129
12418 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
12419 as having variable size. Do not give an error for unnamed
12420 parameters with [*] declarators. Give a warning for type names
12421 with [*] declarators and mark them as variable size.
12422 * c-parser.c (c_parser_sizeof_expression): Do not give an error
12423 for sizeof applied to [*] type names.
12424
6175f578
AP
124252009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
12426
12427 PR C++/36607
12428 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
12429
d4f4bc84
JJ
124302009-02-03 Jakub Jelinek <jakub@redhat.com>
12431
12432 * gcc.c (process_command): Update copyright notice dates.
12433 * gcov.c (print_version): Likewise.
12434 * gcov-dump.c (print_version): Likewise.
12435 * mips-tfile.c (main): Likewise.
12436 * mips-tdump.c (main): Likewise.
12437
f6294de7
JM
124382009-02-03 Joseph Myers <joseph@codesourcery.com>
12439
12440 PR c/35433
12441 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
12442 for composite type involving a zero-length array type.
12443
754ccf7c
JJ
124442009-02-03 Jakub Jelinek <jakub@redhat.com>
12445
70f16287
JJ
12446 PR target/35318
12447 * function.c (match_asm_constraints_1): Skip over
12448 initial optional % in the constraint.
12449
754ccf7c
JJ
12450 PR inline-asm/39059
12451 * c-parser.c (c_parser_postfix_expression): If fixed point is not
12452 supported, don't accept FIXED_CSTs.
12453 * c-decl.c (finish_declspecs): Error if fixed point is not supported
12454 and _Sat is used without _Fract/_Accum. Set specs->type to
12455 integer_type_node for cts_fract/cts_accum if fixed point is not
12456 supported.
12457
965fdadf
CM
124582009-02-02 Catherine Moore <clm@codesourcery.com>
12459
dbf9ee15 12460 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 12461
2e8a796f
RS
124622009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
12463
12464 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
12465 (ABI_HAS_64BIT_SYMBOLS): Use it.
12466 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
12467
e0079468
PB
124682009-02-02 Paul Brook <paul@codesourcery.com>
12469
12470 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
12471
eca72963
JJ
124722009-02-02 Jakub Jelinek <jakub@redhat.com>
12473
12474 PR inline-asm/39058
12475 * recog.h (asm_operand_ok): Add constraints argument.
12476 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
12477 recurse on matching constraint.
12478 (check_asm_operands): Pass constraints as 3rd argument to
12479 asm_operand_ok. Don't look up matching constraint here.
12480 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
12481 to asm_operand_ok.
12482
b5bde9ff
BE
124832009-02-02 Ben Elliston <bje@au.ibm.com>
12484
12485 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
12486 TARGET_NARROW_VOLATILE_BITFIELD macro names.
12487
30f3e427
JDA
124882009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12489
be7659ba
JDA
12490 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
12491 information. Remove some obsolete information. Reorganize.
12492
30f3e427
JDA
12493 * config/pa/fptr.c: Revert license to GPL 2.
12494 * config/pa/milli64.S: Likewise.
12495
3cbfaf98
DK
124962009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
12497
12498 PR target/38904
12499 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
12500 LIBRARY name in, instead of hard-coding it.
12501 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
12502 extra target make frag to tmake_files according to EH model.
12503 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
12504 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
12505 frags that define makefile variable EH_MODEL appropriately.
12506 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
12507 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
12508 to "-sjlj" according to type of EH configured.
12509 (LIBGCC_SONAME): Concatenate it to shared library base name.
12510 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
12511 to "_sjlj" according to type of EH configured.
12512 (LIBGCC_SONAME): Concatenate it to shared library base name.
12513 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
12514 (SHLIB_LINK): Add missing semicolon to if-else construct.
12515 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12516 string value of "pe_dll" command-line option.
12517 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
12518 (SHLIB_SONAME): Use it when overriding t-cygming default.
12519 (SHLIB_IMPLIB): Override t-cygming default.
12520 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
12521 string value of "pe_dll" command-line option.
12522
8d0b6068
DK
125232009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
12524
12525 PR target/38952
12526 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 12527 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 12528
14c28276
RG
125292009-01-31 Richard Guenther <rguenther@suse.de>
12530
12531 PR tree-optimization/38937
12532 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
12533 computing the transitive closure.
12534
5f4d82c2
RG
125352009-01-30 Richard Guenther <rguenther@suse.de>
12536
12537 PR tree-optimization/39041
12538 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
12539 Propagate variable indices only if the types match for this stmt.
12540
d0728ae0
JJ
125412009-01-30 Jakub Jelinek <jakub@redhat.com>
12542
12543 PR target/39013
12544 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
12545 inline but never defined.
12546
6b67572e 125472009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
12548
12549 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
12550 (*insv_h_di_reg_extimm): New insn.
12551 (*insv_l<mode>_reg_extimm): New insn.
12552
125532009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
12554
12555 * config/picochip/picochip.c (flag_conserve_stack): set
12556 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
12557 fconserve-stack. Reduce call-overhead used by inliner.
12558
9fec758d 125592009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
12560
12561 PR/38157
12562 * common.opt (flag_conserve_stack): Initialised to zero.
12563
7f1c539c
KT
125642009-01-30 Kai Tietz <kai.tietz@onevision.com>
12565
12566 PR/39002
12567 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
12568 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
12569 method.
12570
3631be48
L
125712009-01-29 H.J. Lu <hongjiu.lu@intel.com>
12572
12573 * ira-color.c (allocno_reload_assign): Update comments.
12574 * regmove.c (regmove_optimize): Likewise.
12575
12576 * ra.h: Removed.
12577
416ac4d4
RM
125782009-01-29 Robert Millan <rmh@aybabtu.com>
12579
60839f5d
EB
12580 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
12581 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 12582 `MD_UNWIND_SUPPORT'.
60839f5d 12583 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 12584
d5e54bc1
KH
125852009-01-29 Kazu Hirata <kazu@codesourcery.com>
12586
12587 PR tree-optimization/39007
12588 * tree-loop-distribution.c (generate_builtin): Use
12589 recompute_dominator to compute the immediate dominator of the
12590 basic block just after the loop.
12591
38432148 125922009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
12593
12594 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
12595 (ASM_OUTPUT_DWARF_PCREL): Define.
12596
38432148 125972009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
12598
12599 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
12600 * doc/passes.texi: Remove entries about regclass, local-alloc, and
12601 global. Modify entries about regmove and IRA.
12602
12603 * ra-conflict.c: Remove the file.
12604
12605 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
12606
12607 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
12608 (pass_regclass_init): Rename to pass_reginfo_init.
12609
12610 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
12611
12612 * toplev.h (flag_ira): Remove.
12613
12614 * caller-save.c (setup_save_areas): Remove flag_ira.
12615
bf9b2cc9 12616 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
12617
12618 * global.c: Remove the file.
12619
ba20e309 12620 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
12621
12622 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
12623
12624 * regmove.c: Modify file description.
12625 (find_use_as_address, try_auto_increment): Define them only if
12626 AUTO_INC_DEC is defined.
12627 (replacement_quality, replace_in_call_usage, fixup_match_1,
12628 stable_and_no_regs_but_for_p): Remove.
12629 (reg_set_in_bb): Make it static.
12630 (regmove_optimize): Remove flag_ira and code which worked for
12631 !flag_ira.
12632
12633 * local-alloc.c: Remove the file.
12634
12635 * common.opt (fira): Remove.
12636
12637 * ira.c: Include except.h.
12638 (eliminable_regset): Move from global.c.
12639 (mark_elimination): Ditto. Remove flag_ira.
12640 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
12641 equiv_mem_modified, validate_equiv_mem_from_store,
12642 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
12643 contains_replace_regs, memref_referenced_p, memref_used_between_p,
12644 no_equiv, recorded_label_ref): Move from local-alloc.c.
12645 (update_equiv_regs): Ditto. Make it static.
12646 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 12647 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
12648 (build_insn_chain): Ditto. Make it static.
12649 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
12650 Rename to init_live_subregs.
12651 (gate_ira): Remove flag_ira.
12652
12653 * regclass.c: Rename reginfo.c. Change file description.
12654 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 12655 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
12656 (init_reg_sets_1): Remove code for evaluation of
12657 reg_class_superclasses and losing_caller_save_reg_set.
12658 (init_regs): Remove init_reg_autoinc.
12659 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
12660 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 12661 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
12662 (pass_regclass_init): Rename to pass_reginfo_init. Modify
12663 corresponding entries.
12664 (dump_regclass, record_operand_costs, scan_one_insn,
12665 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
12666 record_address_regs, auto_inc_dec_reg_p): Remove.
12667 (gt-regclass.h): Rename to gt-reginfo.h.
12668
12669 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 12670 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
12671
12672 * Makefile.in (RA_H): Remove.
12673 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
12674 Rename regclass.o to reginfo.o.
12675 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
12676 gt-reginfo.h.
12677 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
12678 (GTFILES): Rename regclass.c to reginfo.c.
12679
12680 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 12681 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
12682
12683 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
12684 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
12685 Remove flag_ira.
6b67572e 12686 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 12687
c95b2534 126882009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
12689
12690 PR middle-end/35854
12691 * doc/invoke.texi (rtl debug options): Complete rewrite.
12692 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
12693 to auto_inc_dec".
12694 * mode-switching.c (pass_mode_switching): Rename pass from
12695 "mode-sw" to "mode_sw".
12696 * except.c (pass_convert_to_eh_ranges): Rename pass from
12697 "eh-ranges" to "eh_ranges".
12698 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
12699 to "subreg1".
2ba9daa7
AS
12700
12701
72a54528
AM
127022009-01-29 Andrey Belevantsev <abel@ispras.ru>
12703 Alexander Monakov <amonakov@ispras.ru>
12704
12705 PR middle-end/38857
12706 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
12707 register.
12708 (move_exprs_to_boundary): Change return type and pass through
12709 should_move from move_op. Relax assert. Update usage ...
12710 (schedule_expr_on_boundary): ... here. Use should_move instead of
12711 cant_move.
12712 (move_op_orig_expr_found): Indicate that insn was disconnected from
12713 stream.
12714 (code_motion_process_successors): Do not call after_merge_succs
12715 callback if original expression was not found when traversing any of
12716 the branches.
12717 (code_motion_path_driver): Change return type. Update prototype.
12718 (move_op): Update comment. Add a new parameter (should_move). Update
12719 prototype. Set *should_move based on indication provided by
12720 move_op_orig_expr_found.
12721
001b9eb6
PH
127222009-01-28 Pat Haugen <pthaugen@us.ibm.com>
12723
12724 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
12725 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
12726 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
12727 * config/rs6000/rs6000.c (rs6000_override_options): Default
12728 avoid-indexed-addresses on for Power6, off for everything else.
12729 (avoiding_indexed_address_p): New function.
12730 (rs6000_legitimize_address): Use it.
12731 (rs6000_legitimate_address): Likewise.
12732 * config/rs6000/rs6000.md (movXX_updateX): Likewise
12733
59dc4898
KH
127342009-01-28 Kazu Hirata <kazu@codesourcery.com>
12735
12736 PR tree-optimization/38997
12737 * tree-loop-distribution.c (generate_memset_zero): Use
12738 POINTER_PLUS_EXPR for a pointer addition.
12739
07da44ab
AK
127402009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
12741
12742 * config/s390/s390.md (bswap<mode>2): New pattern added.
12743
cdc15d23
WG
127442009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12745
12746 * config/s390/s390.md (*tls_load_31): Added type attribute.
12747
d46f24b6
WG
127482009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12749
12750 * config/s390/s390.md: Fix a few comments.
12751
729e750f
WG
127522009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
12753
12754 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
12755 (*tm<mode>_full): Fixed z10prop attribute.
12756 (*tst<mode>_extimm): Fixed z10prop attribute.
12757 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
12758 (*tstqiCCT_cconly): Fixed z10prop attribute.
12759 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
12760 (*movsi_larl): Fixed z10prop attribute.
12761 (*movsi_zarch): Fixed z10prop attribute.
12762 (*movsi_eas): Fixed z10prop attribute.
12763 (*movhi): Fixed z10prop attribute.
12764 (*movqi): Fixed z10prop attribute.
12765 (*movstrictqi): Fixed z10prop attribute.
12766 (*mov<mode>): Fixed z10prop attribute.
12767 (*movcc): Fixed z10prop attribute.
12768 (*sethighpartdi_64): Fixed z10prop attribute.
12769 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
12770 (*negdi2_sign_cc): Fixed z10prop attribute.
12771 (*negdi2_sign): Fixed z10prop attribute.
12772 (*absdi2_sign_cc): Fixed z10prop attribute.
12773 (*absdi2_sign): Fixed z10prop attribute.
12774 (*negabsdi2_sign_cc): Fixed z10prop attribute.
12775 (*negabsdi2_sign): Fixed z10prop attribute.
12776 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
12777 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
12778 (doloop_si64): Fixed z10prop attribute.
12779 (doloop_si31): Fixed z10prop attribute.
12780 (doloop_long): Fixed z10prop attribute.
12781 (indirect_jump): Fixed z10prop attribute.
12782 (nop): Fixed z10prop attribute.
12783 (main_base_64): Fixed z10prop attribute.
12784 (reload_base_64): Fixed z10prop attribute.
12785
c7789bfb
JJ
127862009-01-28 Jakub Jelinek <jakub@redhat.com>
12787
12788 PR rtl-optimization/38740
6b67572e
UB
12789 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
12790 if !optimize.
c7789bfb
JJ
12791 * config/mips/mips.c (mips_reorg): Likewise.
12792
de081cfd
RG
127932009-01-28 Richard Guenther <rguenther@suse.de>
12794
12795 PR tree-optimization/38926
12796 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
12797 with the correct value id to a value.
12798 (do_regular_insertion): Use the value number of edoubleprime
12799 for the value number of the expr.
12800
12801 Revert
12802 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 12803
d748c406
UB
12804 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
12805 a PHI ask VN if it is already available.
12806 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
12807 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 12808
a9d386a1
JJ
128092009-01-28 Jakub Jelinek <jakub@redhat.com>
12810
12811 PR middle-end/38934
12812 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
12813 set to varying whenever max has TREE_OVERFLOW set, similarly
12814 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
12815
97a170cd
RG
128162009-01-28 Richard Guenther <rguenther@suse.de>
12817
12818 PR middle-end/38908
12819 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
12820 uninitialized aggregate uses in call arguments.
12821
89ebafc6
PB
128222009-01-28 Paolo Bonzini <bonzini@gnu.org>
12823
12824 PR tree-optimization/38984
12825 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
12826 the nothing_id variable if -fno-delete-null-pointer-checks.
12827
bef3c57b
UB
128282009-01-28 Uros Bizjak <ubizjak@gmail.com>
12829
12830 PR target/38988
12831 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
12832 (set_got_offset_rex64): Ditto.
12833
0c6390fa
L
128342009-01-27 H.J. Lu <hongjiu.lu@intel.com>
12835
12836 PR target/38941
12837 * doc/extend.texi: Improve local variable with asm reg.
12838
bee6fa6d
AN
128392009-01-27 Adam Nemet <anemet@caviumnetworks.com>
12840
12841 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
12842 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
12843 was not supplied then set warn_packed_bitfield_compat to the
12844 default value of 1.
12845 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
12846 against 1.
12847
b5c3dfbb
RG
128482009-01-27 Richard Guenther <rguenther@suse.de>
12849
12850 PR tree-optimization/38503
12851 * cfgexpand.c (expand_gimple_basic_block): Ignore
12852 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
12853 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
12854 variables that cannot have TBAA applied.
12855 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
12856 statements.
12857
d748c406 128582009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
12859
12860 PR middle-end/38969
12861 * calls.c (initialize_argument_information): Do not wrap complex
12862 arguments in SAVE_EXPR.
12863
9112bb38
AT
128642009-01-26 Andreas Tobler <a.tobler@schweiz.org>
12865
12866 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 12867 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 12868
4757704f
RG
128692009-01-26 Richard Guenther <rguenther@suse.de>
12870
12871 PR tree-optimization/38745
12872 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
12873 from special handling.
12874
e3e6cff4
RG
128752009-01-26 Richard Guenther <rguenther@suse.de>
12876
12877 PR tree-optimization/38745
12878 * tree-ssa.c (execute_update_addresses_taken): Do not include
12879 variables that cannot possibly be a register in not_reg_needs.
12880 Do not clear TREE_ADDRESSABLE on vars that may not become
12881 registers.
12882 * tree-ssa.c (update_alias_info_1): Include those in the set
12883 of addressable vars.
12884
dc874b53
RG
128852009-01-26 Richard Guenther <rguenther@suse.de>
12886
12887 PR middle-end/38851
12888 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
12889 * tree-ssa-dse.c: Include langhooks.h
12890 (execute_simple_dse): Remove stores with zero size.
12891
849421a3
JJ
128922009-01-24 Jakub Jelinek <jakub@redhat.com>
12893
12894 PR c/38957
12895 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
12896 as PLUS_EXPR.
12897
82f70421
JB
128982009-01-24 Julian Brown <julian@codesourcery.com>
12899
12900 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
12901 config/arm/linux-atomic.c.
12902 * config/arm/linux-atomic.c: New.
12903
863412d6
EB
129042009-01-24 Eric Botcazou <ebotcazou@adacore.com>
12905
12906 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
12907 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
12908 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
12909
8c684300
L
129102009-01-24 H.J. Lu <hongjiu.lu@intel.com>
12911
12912 PR c/38938
93f1527a 12913 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
12914 properly.
12915
b840fb02
SP
129162009-01-24 Sebastian Pop <sebastian.pop@amd.com>
12917
12918 PR tree-optimization/38953
12919 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
12920 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
12921 (gloog): Split the exit of the scop when the scop exit is a loop exit.
12922 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
12923 changed the CFG.
12924
ecee559f
PB
129252009-01-24 Paul Brook <paul@codesourcery.com>
12926
12927 * config/arm/neon.md (neon_type): Move to arm.md.
12928 (neon_mov<VSTRUCT>): Add neon_type attribute.
12929 * config/arm/arm.md (neon_type): Move to here.
12930 (conds): Add "unconditioal" and use as default for NEON insns.
12931
61ad0914
BE
129322009-01-24 Ben Elliston <bje@au.ibm.com>
12933
12934 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
12935 void *' warning from -Wc++-compat.
12936 * Makefile.in (dominance.o-warn): Remove.
12937
38432148 129382009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
12939
12940 PR tree-optimization/38932
12941 * fold-const.c (fold_unary_ignore_overflow): New.
12942 * tree.h (fold_unary_ignore_overflow): Declare.
12943 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
12944 * tree-ssa-sccvn.c (visit_reference_op_load,
12945 simplify_unary_expression): Likewise.
12946
2cd36c22
AN
129472009-01-22 Adam Nemet <anemet@caviumnetworks.com>
12948
12949 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
12950 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
12951 regardless of their type.
12952 * c-common.c (handle_packed_attribute): Don't ignore packed on
12953 bitfields.
12954 * c.opt (Wpacked-bitfield-compat): New warning option.
12955 * stor-layout.c (place_field): Warn if offset of a field changed.
12956 * doc/extend.texi (packed): Mention the ABI change.
12957 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
12958 (Warning Options): Add it to the list.
12959
e4e624ab
L
129602009-01-22 H.J. Lu <hongjiu.lu@intel.com>
12961
12962 * c-opts.c (c_common_post_options): Fix a typo in comments.
12963
d0ea0759
SE
129642009-01-22 Steve Ellcey <sje@cup.hp.com>
12965
12966 PR middle-end/38615
12967 * gimplify.c (gimplify_init_constructor): Fix promotion of const
12968 variables to static.
12969 * doc/invoke.texi (-fmerge-all-constants): Update description.
12970
87673f84
UB
129712009-01-22 Uros Bizjak <ubizjak@gmail.com>
12972
12973 PR target/38931
12974 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
12975 (*movdi_1_rex64): Use type "mmx" for alternative 5.
12976
96339268
RE
129772009-01-22 Richard Earnshaw <rearnsha@arm.com>
12978
12979 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
12980 a word boundary.
12981 (LOCAL_ALIGNMENT): Similarly.
12982
442dc742 129832009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 12984 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
12985
12986 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
12987 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
12988 * config/arm/arm-tune.md: Regenerate.
12989 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
12990 -march=iwmmxt2.
12991
9b34732e
MS
129922009-01-22 Mark Shinwell <shinwell@codesourcery.com>
12993
12994 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
12995 version number to five.
12996
03c2a308
DS
129972009-01-22 Dodji Seketeli <dodji@redhat.com>
12998
12999 PR c++/38930
ba20e309 13000 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
13001 * c-common.c (set_underlying_type): Likewise.
13002 (is_typedef_decl ): Likewise
13003 * tree.h: Likewise
13004 (set_underlying_type): Likewise.
13005 (is_typedef_type): Likewise.
13006
1240d76e
VM
130072009-01-21 Vladimir Makarov <vmakarov@redhat.com>
13008
13009 PR middle-end/38587
13010 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
13011 crossing setjmps.
13012
b8a1087d
DK
130132009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
13014
13015 PR bootstrap/37660
13016 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
13017 (LIBGCC_SPEC): Don't define.
13018 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
13019
435da628
UB
130202009-01-21 Uros Bizjak <ubizjak@gmail.com>
13021
13022 PR rtl-optimization/38879
13023 * alias.c (base_alias_check): Unaligned access via AND address can
13024 alias all surrounding object types except those with sizes equal
13025 or wider than the size of unaligned access.
13026
d597b3ce
DS
130272009-01-21 Dodji Seketeli <dodji@redhat.com>
13028
13029 PR c++/26693
ba20e309 13030 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 13031 * c-common.c (set_underlying_type): ... here.
435da628 13032 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
13033 the newly created typedef variant type.
13034 (is_typedef_decl ): New entry point.
13035 * tree.h: Added a new member member_types_needing_access_check to
13036 struct tree_decl_non_common.
13037 (set_underlying_type): New entry point.
13038 (is_typedef_type): Likewise.
13039
71a6fe66
BM
130402009-01-21 Bingfeng Mei <bmei@broadcom.com>
13041
13042 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
13043 Check whether two instructions have memory references that
13044 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
13045 are helper functions for traversing.
13046 * alias.h (insn_alias_sets_confilict_p): New prototypes.
13047 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
13048 not to draw dependency edge for instructions with non-conflicting
13049 alias sets.
13050
5a248274
JM
130512009-01-20 Joseph Myers <joseph@codesourcery.com>
13052
13053 PR other/38758
6b67572e
UB
13054 * longlong.h: Update copyright years. Use soft-fp license notice.
13055 Sync __clz_tab declaration with glibc.
5a248274 13056
4b84f3de
SE
130572009-01-20 Steve Ellcey <sje@cup.hp.com>
13058
13059 PR target/30687
13060 * doc/extend.texi (syscall_linkage): New.
13061 (version_id): Modify.
13062
37348bf1 130632009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 13064 Richard Guenther <rguenther@suse.de>
37348bf1
AP
13065
13066 PR tree-optimization/38747
13067 PR tree-optimization/38748
13068 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
13069 conversion if the base address is an indirect reference and the
13070 aliasing sets could cause issues.
13071
d0a58904
SP
130722009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13073
2ba9daa7 13074 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
13075 explaining why these options are not documented.
13076
71e7afb2
SP
130772009-01-20 Sebastian Pop <sebastian.pop@amd.com>
13078
13079 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
13080 gimple_call_lhs is NULL.
13081
38432148 130822009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
13083
13084 PR target/38868
13085 * emit-rtl.c (adjust_address_1): Make sure memref is never
13086 overwritten.
13087
cbb8dee3
BE
130882009-01-20 Ben Elliston <bje@au.ibm.com>
13089
13090 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 13091 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
13092 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
13093 const qualifier from arg 2.
13094
72c66596
IS
130952009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
13096
435da628 13097 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 13098
f68211cd
VM
130992009-01-19 Vladimir Makarov <vmakarov@redhat.com>
13100
13101 PR c/38869
13102 * rtl.h (reinit_regs): New prototype.
13103 * regclass.c: Include ira.h.
13104 (reinit_regs): New.
13105 * Makefile.in (regclass.o): Add ira.h.
13106 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
13107
6e4f1168
L
131082009-01-18 H.J. Lu <hongjiu.lu@intel.com>
13109
13110 PR target/38736
13111 * c-common.c (handle_aligned_attribute): Use
13112 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
13113 default alignment value.
13114
13115 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
13116
13117 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
13118 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
13119
13120 * doc/extend.texi: Update __attribute__ ((aligned)). Document
13121 __BIGGEST_ALIGNMENT__.
13122
13123 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
13124
890065bf
RG
131252009-01-18 Richard Guenther <rguenther@suse.de>
13126
13127 PR tree-optimization/38819
13128 * tree-flow.h (operation_could_trap_helper_p): Declare.
13129 * tree-eh.c (operation_could_trap_helper_p): Export.
13130 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
13131 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
13132 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
13133 are about to insert a possibly trapping instruction and fail
13134 in this case.
13135
a729d731
AS
131362009-01-18 Andreas Schwab <schwab@suse.de>
13137
13138 * doc/install.texi (Configuration): Remove obsolete paragraph
13139 about use of --with-gnu-ld with --with-gnu-as.
13140
a640c13b
KH
131412009-01-18 Kazu Hirata <kazu@codesourcery.com>
13142
13143 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
13144 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
13145 Follow spelling conventions.
13146
dba2cc0c
BE
131472009-01-18 Ben Elliston <bje@au.ibm.com>
13148
13149 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
13150 C++ warning about implicit conversion from void * to struct
13151 bitmap_head_def *.
13152 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 13153 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 13154
2207a498
DK
131552009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
13156
13157 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
13158
8137e465
SP
131592009-01-17 Sebastian Pop <sebastian.pop@amd.com>
13160 Tobias Grosser <tobi.grosser@amd.com>
13161
13162 * graphite.c (graphite_trans_scop_block): Do not block single
13163 nested loops.
13164
5be1c58c
AO
131652009-01-16 Alexandre Oliva <aoliva@redhat.com>
13166
13167 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
13168 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
13169 test with assertion.
13170
786ce82d
RG
131712009-01-16 Richard Guenther <rguenther@suse.de>
13172
13173 PR tree-optimization/38835
13174 PR middle-end/36227
13175 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
13176 and INT + PTR -> (INT)(PTR p+ INT) folding.
13177 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
13178
c1cb09ad
AN
131792009-01-16 Adam Nemet <anemet@caviumnetworks.com>
13180
13181 PR target/38554
13182 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
13183 the subreg from a lowpart subreg if it is also casting the value.
13184
bcab4e19
SP
131852009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13186 Tobias Grosser <tobi.grosser@amd.com>
13187
13188 * graphite.c (compare_prefix_loops): New.
13189 (build_scop_canonical_schedules): Rewritten.
13190 (graphite_transform_loops): Move build_scop_canonical_schedules
13191 after build_scop_iteration_domain.
13192
0b040072
SP
131932009-01-16 Sebastian Pop <sebastian.pop@amd.com>
13194 Tobias Grosser <tobi.grosser@amd.com>
13195
2ba9daa7 13196 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
13197 the dimension of the iteration domain. Do copy the domain
13198 only when it exists.
13199 (build_scop_conditions_1): Do not call add_conditions_to_domain.
13200 (add_conditions_to_constraints): New.
13201 (can_generate_code_stmt, can_generate_code): Removed.
13202 (gloog): Do not call can_generate_code.
13203 (graphite_transform_loops): Call add_conditions_to_constraints
13204 after building the iteration domain.
13205
56c6a499
JJ
132062009-01-16 Jakub Jelinek <jakub@redhat.com>
13207
13208 PR tree-optimization/38789
13209 * tree-ssa-threadedge.c
13210 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
13211 __builtin_constant_p.
13212
c95b2534 132132009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
13214
13215 * dce.c (delete_unmarked_insns): Reversed the order that insns are
13216 examined before deleting them.
2ba9daa7 13217
c433cb14
RE
132182009-01-16 Richard Earnshaw <rearnsha@arm.com>
13219
13220 * function.c (aggregate_value_p): Correctly extract the function
13221 type from CALL_EXPR_FN lookup.
13222
c95b2534 132232009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
13224
13225 * config/picochip/picochip.c (picochip_override_options): Revert
13226 CFI asm flag disable commited previously.
13227
c77bb78f
SP
132282009-01-15 Sebastian Pop <sebastian.pop@amd.com>
13229 Tobias Grosser <tobi.grosser@amd.com>
13230 Jan Sjodin <jan.sjodin@amd.com>
13231
13232 * graphite.c (scan_tree_for_params): On substractions negate
13233 all the coefficients of the term.
13234 (clast_to_gcc_expression_red): New. Handle reduction expressions
13235 of more than two operands.
13236 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
13237 (get_vdef_before_scop): Handle also the case of default definitions.
13238
574af2d6
RS
132392009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
13240
13241 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
13242 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
13243 Also use them when walking CALL_INSN_FUNCTION_USAGE.
13244
e939805b
L
132452009-01-15 H.J. Lu <hongjiu.lu@intel.com>
13246 Joey Ye <joey.ye@intel.com>
13247
13248 PR middle-end/37843
13249 * cfgexpand.c (expand_stack_alignment): Don't update stack
13250 boundary nor check incoming stack boundary here.
13251 (gimple_expand_cfg): Update stack boundary and check incoming
13252 stack boundary here.
13253
c95b2534 132542009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 13255
435da628 13256 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 13257
0196c95e
JJ
132582009-01-14 Jakub Jelinek <jakub@redhat.com>
13259
13260 PR rtl-optimization/38245
13261 * calls.c (expand_call): Add stack arguments to
13262 CALL_INSN_FUNCTION_USAGE even for pure calls (when
13263 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
13264 in regs and partially in memory or BLKmode arguments.
13265 (emit_library_call_value_1): Add stack arguments to
13266 CALL_INSN_FUNCTION_USAGE even for pure calls (when
13267 ACCUMULATE_OUTGOING_ARGS).
13268 * dce.c: Include tm_p.h.
13269 (find_call_stack_args): New function.
13270 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
13271 argument.
13272 (mark_insn): Call find_call_stack_args for CALL_Ps.
13273 (prescan_insns_for_dce): Walk insns backwards in bb rather than
13274 forwards. Allocate and free arg_stores bitmap if needed, pass it
13275 down to deletable_insn_p, don't mark stores set in arg_stores
13276 bitmap, clear the bitmap at the beginning of each bb.
13277 * Makefile.in (dce.o): Depend on $(TM_P_H).
13278
6df6bcfa
MM
132792009-01-14 Michael Meissner <gnu@the-meissners.org>
13280
13281 PR target/22599
435da628
UB
13282 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
13283 to make sure the insn is a conditional test (bug 22599). Reformat a
13284 few long lines.
6df6bcfa 13285
765ec70c
SP
132862009-01-14 Sebastian Pop <sebastian.pop@amd.com>
13287
13288 PR middle-end/38431
13289 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
13290 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
13291 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 13292 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
13293 scops have been code generated.
13294
7de2b688
BS
132952009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
13296 * doc/gty.texi (Invoking the garbage collector): Added new node
13297 and section documenting ggc_collect.
13298
10bd6c5c
RG
132992009-01-14 Richard Guenther <rguenther@suse.de>
13300
13301 PR tree-optimization/38826
13302 PR middle-end/38477
13303 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
13304 initialization notes only if we actually emitted a warning.
13305 (intra_create_variable_infos): Add constraints for a result decl
13306 that is passed by hidden reference.
13307 (build_pred_graph): Mark all related variables non-direct on
13308 address-taking.
13309
9c7c70ee
NC
133102009-01-14 Nick Clifton <nickc@redhat.com>
13311
13312 * ira-conflicts.c: Include addresses.h for the definition of
13313 base_reg_class.
435da628
UB
13314 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
13315 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 13316
cf0c2a60
VM
133172009-01-13 Vladimir Makarov <vmakarov@redhat.com>
13318
13319 PR target/38811
13320 * Makefile.in (ira-lives.o): Add except.h.
13321
13322 * ira-lives.c: Include except.h.
13323 (process_bb_node_lives): Process can_throw_internal.
13324
d3302fd3
JJ
133252009-01-13 Jakub Jelinek <jakub@redhat.com>
13326
13327 PR rtl-optimization/38774
13328 * combine.c (simplify_set): When undoing cc_use change, don't do
13329 PUT_CODE on the newly created comparison, but instead put back the
13330 old comparison.
13331
7ab23fd0
JM
133322009-01-13 Joseph Myers <joseph@codesourcery.com>
13333
13334 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
13335 values. Remove duplicate arm8 entry.
13336
f9344488
SP
133372009-01-13 Sebastian Pop <sebastian.pop@amd.com>
13338
13339 PR tree-optimization/38786
13340 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
13341 the SSA_NAME case of expand_scalar_variables_expr.
13342 Set the type of an expression to the type of its assign statement.
13343 (expand_scalar_variables_expr): Also gather the scalar computation
13344 used to index the memory access. Do not pass loop_p.
13345 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
13346 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
13347 the gimple_stmt_iterator where it inserts new code.
13348 Do not pass loop_p.
f9344488
SP
13349 (copy_bb_and_scalar_dependences): Do not pass loop_p.
13350 (translate_clast): Update call to copy_bb_and_scalar_dependences.
13351
2d8bb84d
SP
133522009-01-13 Sebastian Pop <sebastian.pop@amd.com>
13353
13354 * graphite.h (debug_value): Removed.
13355 * graphite.c (debug_value): Removed.
13356
ff128632
RE
133572009-01-13 Richard Earnshaw <rearnsha@arm.com>
13358
435da628
UB
13359 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
13360 ldrd/strd with two 32-bit instructions.
ff128632 13361
d5a0a47b
RE
133622009-01-13 Richard Earnshaw <rearnsha@arm.com>
13363
435da628
UB
13364 * config/arm/arm.c (struct processors): Pass for speed down into
13365 cost helper functions.
d5a0a47b
RE
13366 (const_ok_for_op): Handle COMPARE and inequality nodes.
13367 (arm_rtx_costs_1): Rewrite.
13368 (arm_size_rtx_costs): Update prototype.
13369 (arm_rtx_costs): Pass speed down to helper functions.
13370 (arm_slowmul_rtx_costs): Rework cost calculations.
13371 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
13372 (arm_9e_rtx_costs): Likewise.
13373
26d5bf5b
UB
133742009-01-13 Uros Bizjak <ubizjak@gmail.com>
13375
13376 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 13377 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
13378 (alpha_legitimize_address): Do not split local symbols wider than
13379 UNITS_PER_WORD into HIGH/LO_SUM parts.
13380
5d14e3d5
DS
133812009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
13382
13383 PR bootstrap/38580
13384 * gcc.c (process_command): Replace call to execvp with calls
13385 to pex_one and exit.
13386
33faafca
AS
133872009-01-03 Anatoly Sokolov <aesok@post.ru>
13388
13389 PR target/29141
13390 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
13391 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
13392 variant for devices with 3-byte PC.
ba20e309 13393 (__tablejump_elpm__): New.
33faafca 13394
634b5df5
JJ
133952009-01-12 Jakub Jelinek <jakub@redhat.com>
13396
13397 PR c/32041
13398 * c-parser.c (c_parser_postfix_expression): Allow `->' in
13399 offsetof member-designator, handle it as `[0].'.
13400
2842bb86
JDA
134012009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13402
13403 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
13404 function when not using named sections on targets with named sections
13405 if branch distance is less than 262132.
13406
76ee70f6
RE
134072009-01-12 Richard Earnshaw <rearnsha@arm.com>
13408
13409 * combine.c (combine_instructions): Recompute
13410 optimize_this_for_speed_p for each BB in the main combine loop.
13411
f56e675d
TB
134122009-01-12 Tomas Bily <tbily@suse.cz>
13413
13414 PR middlend/38385
26d5bf5b
UB
13415 * tree-loop-distribution.c (prop_phis): New function.
13416 (generate_builtin): Call prop_phis.
13417 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 13418
c2152239
JJ
134192009-01-12 Jakub Jelinek <jakub@redhat.com>
13420
13421 PR tree-optimization/38807
13422 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
13423 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
13424
0e510b3e
AN
134252009-01-11 Adam Nemet <anemet@caviumnetworks.com>
13426
13427 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
13428 subreg of op0 to the original op0.
13429
c95b2534 134302009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
13431
13432 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 13433
53a7ff9a
MS
134342009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
13435
13436 PR debug/7055
60839f5d 13437 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
13438 starting with digits.
13439
b3a796bc
JJ
134402009-01-10 Jakub Jelinek <jakub@redhat.com>
13441
13442 PR target/38695
13443 * config/arm/arm.c (arm_is_long_call_p): Don't call
13444 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
13445
b21b850e
SB
134462009-01-09 Steven Bosscher <steven@gcc.gnu.org>
13447
13448 * regrename.c (regrename_optimize): Fix dumping.
13449 (find_oldest_value_reg): Preserve REG_POINTER.
13450 (copy_hardreg_forward_1): Likewise.
13451
e0e10d3a
DN
134522009-01-09 Diego Novillo <dnovillo@google.com>
13453
bf9b2cc9 13454 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
13455 the restrictions on its use.
13456 (gimple_uid): Tidy.
13457 (gimple_set_uid): Tidy.
13458
c9da2ae8
JJ
134592009-01-09 Jakub Jelinek <jakub@redhat.com>
13460
13461 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
13462 zero guard even if align_bytes != 0 and count is smaller than
13463 size_needed.
13464
38432148 134652009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
13466
13467 PR rtl-optimization/38495
26d5bf5b 13468 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
13469 (add_range_and_copies_from_move_list): Print all added ranges.
13470 Add ranges to memory optimized destination.
13471
260fda3d
JJ
134722009-01-09 Jakub Jelinek <jakub@redhat.com>
13473
6f6278ad
JJ
13474 PR target/38686
13475 PR target/38708
13476 * config/i386/i386.c (override_options): Reject
13477 -mstringop-strategy=rep_8byte with -m32.
13478 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
13479 to 1. Do count comparison against epilogue_size_needed at compile
13480 time even when count_exp was constant forced into register. For
13481 size_needed don't jump to epilogue, instead just avoid aligning
13482 and invoke the body algorithm. If need_zero_guard, add zero guard
13483 even if count is non-zero, but smaller than size_needed + number of
13484 bytes that could be stored for alignment.
13485 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
13486 to 1. If need_zero_guard, add zero guard even if count is non-zero,
13487 but smaller than size_needed + number of bytes that could be stored
13488 for alignment. Compare size_needed with epilogue_size_needed instead
13489 of desired_align - align, don't adjust size_needed, pass
13490 epilogue_size_needed to the epilogue expanders.
13491
260fda3d 13492 PR c/35742
26d5bf5b 13493 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 13494
67b846fa
JDA
134952009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13496
13497 * pa.c (last_address): Change to unsigned.
13498 (update_total_code_bytes): Change argument to unsigned. Don't
13499 check if insn addresses are set.
13500 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
13501 addresses are not set.
13502 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
13503
91c82473
NC
135042009-01-09 Nick Clifton <nickc@redhat.com>
13505
13506 * config/sh/symbian.c: Replace uses of DECL_INLINE with
13507 DECL_DECLARED_INLINE_P.
13508
4017e262
JJ
135092009-01-09 Jakub Jelinek <jakub@redhat.com>
13510
0a49e5c2
JJ
13511 PR middle-end/38347
13512 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
13513 GET_MODE (op0) in operand_subword_force calls.
13514
4017e262
JJ
13515 PR middle-end/38771
13516 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
13517 fold_convert arg0 operands to TREE_TYPE (op0) first.
13518
7cd06356
VM
135192009-01-08 Vladimir Makarov <vmakarov@redhat.com>
13520
13521 * params.def (ira-max-conflict-table-size): Decrease default value
13522 to 1000.
13523
96867bbd
JJ
135242009-01-08 Jakub Jelinek <jakub@redhat.com>
13525
13526 PR tree-optimization/37031
13527 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
13528 on parameter_set.
13529 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
13530 allocate it using gc instead of heap, use VEC_quick_push instead of
13531 VEC_safe_push.
13532 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
13533 instead of heap, use VEC_quick_push instead of VEC_safe_push.
13534 * tree-data-ref.h (struct access_matrix): Change matrix to gc
13535 allocated vector from heap allocated.
13536 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
13537 * tree-loop-linear.c (linear_transform_loops): Allocate nest
13538 vector only after perfect_loop_nest_depth call.
13539
68f61c3d
SP
135402009-01-08 Sebastian Pop <sebastian.pop@amd.com>
13541 Jan Sjodin <jan.sjodin@amd.com>
13542
13543 PR tree-optimization/38559
13544 * graphite.c (debug_value, copy_constraint,
13545 swap_constraint_variables, scale_constraint_variable, ): New.
13546 (get_lower_bound, get_upper_bound): Removed.
13547 (graphite_trans_bb_strip_mine): Clean up this code that works
13548 only for constant number of iterations. Fully copy upper and
13549 lower bound constraints, not only the constant part of them.
13550 * graphite.h (debug_value): Declared.
13551
82567e33
IR
135522009-01-08 Ira Rosen <irar@il.ibm.com>
13553
13554 PR tree-optimization/37194
13555 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 13556 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
13557 outside cost in case of known number of iterations.
13558
7da13f1d
NF
135592009-01-07 Nathan Froyd <froydnj@codesourcery.com>
13560 Alan Modra <amodra@bigpond.net.au>
13561
13562 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
13563 non-word-aligned REG+CONST addressing.
13564
c0f64575
UB
135652009-01-07 Uros Bizjak <ubizjak@gmail.com>
13566
13567 PR target/38706
13568 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
13569 free_after_compilation when outputting a thunk.
13570 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
13571 Do not call free_after_compilation here.
13572
301b6a4e
UB
135732009-01-07 Uros Bizjak <ubizjak@gmail.com>
13574
13575 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
13576 (ix86_valid_target_attribute_inner_p): Ditto.
13577
6a114766
JS
135782009-01-07 Jan Sjodin <jan.sjodin@amd.com>
13579
13580 PR tree-optimization/38492
13581 PR tree-optimization/38498
13582 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
13583 * tree-chrec.h (scev_is_linear_expression): Declared.
13584 * graphite.c (graphite_cannot_represent_loop_niter): New.
13585 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
13586 (graphite_loop_normal_form): Use gcc_assert.
13587 (scan_tree_for_params): Use CASE_CONVERT.
13588 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
13589 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
13590 Use gcc_assert. Discard scops that contain unhandled cases.
13591 (build_scop_conditions): Return a boolean status for unhandled cases.
13592 (strip_mine_profitable_p): Print the loop number, not its depth.
13593 (is_interchange_valid): Pass the depth of the loop nest, don't
13594 recompute it wrongly.
13595 (graphite_trans_bb_block): Same.
13596 (graphite_trans_bb_block): Print tentative of loop blocking.
13597 (graphite_trans_scop_block): Do not print that the loop has been
13598 blocked.
13599 (graphite_transform_loops): Do not handle scops that contain condition
13600 scalar phi nodes.
13601
65b82caa
L
136022009-01-07 H.J. Lu <hongjiu.lu@intel.com>
13603
13604 AVX Programming Reference (December, 2008)
13605 * config/i386/avxintrin.h (_mm256_stream_si256): New.
13606 (_mm256_stream_pd): Likewise.
13607 (_mm256_stream_ps): Likewise.
13608
13609 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
13610 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
13611 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
13612 (bdesc_special_args): Add __builtin_ia32_movntdq256,
13613 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
13614 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
13615 (ix86_expand_special_args_builtin): Likewise.
13616
13617 * config/i386/sse.md (AVXMODEDI): New.
13618 (avx_movnt<mode>): Likewise.
13619 (avx_movnt<mode>): Likewise.
13620 (<sse>_movnt<mode>): Remove AVX support.
13621 (sse2_movntv2di): Likewise.
13622
cef158f9
RG
136232009-01-07 Richard Guenther <rguenther@suse.de>
13624
13625 PR middle-end/38751
13626 * fold-const.c (extract_muldiv): Remove obsolete comment.
13627 (fold_plusminus_mult_expr): Undo MINUS_EXPR
13628 to PLUS_EXPR canonicalization for the canonicalization.
13629
246cb5be
GP
136302009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
13631
13632 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
13633 hosted cross-compilers generating less efficient code.
13634
84b9b872
RS
136352009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13636
13637 * function.h (rtl_data): Add a dbr_scheduled_p field.
13638 * reorg.c (dbr_schedule): Set it.
13639 (gate_handle_delay_slots): Check it.
13640 * config/mips/mips.c (mips_base_delayed_branch): Delete.
13641 (mips_reorg): Check flag_delayed_branch instead of
13642 mips_base_delayed_branch.
13643 (mips_override_options): Don't set mips_base_delayed_branch
13644 or flag_delayed_branch.
13645
ace984c8
RS
136462009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
13647
13648 PR rtl-optimization/38426.
13649 * ira.c (ira): Set current_function_is_leaf earlier.
13650
7ad7809b
JJ
136512009-01-06 Jakub Jelinek <jakub@redhat.com>
13652
13653 PR rtl-optimization/38722
13654 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
13655 too early, only set a flag and modify after last possible
13656 undo_all point.
13657
c52ec948
JJ
136582009-01-06 Janis Johnson <janis187@us.ibm.com>
13659
13660 PR c/34252
13661 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
13662 * real.c (decimal_single_format): Correct values of emin and emax.
13663 (decimal_double_format): Ditto.
13664 (decimal_quad_format): Ditto.
13665 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
13666 computation of DECnn_MIN and DECnn_MAX for corrected values of
13667 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
13668 __DECnn_MIN__, and adjust its computation for the corrected value
13669 of emin.
13670
300240e1
JH
136712009-01-06 Jan Hubicka <jh@suse.cz>
13672
13673 PR target/38744
435da628 13674 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 13675
271c069e
GP
136762009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
13677
13678 * doc/contrib.texi (Contributors): Slightly adjust the end note.
13679 Add Robert Clark to the list of testers.
13680
64e4c301 136812009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 13682 Kai Tietz <kai.tietz@onevision.com>
64e4c301 13683
435da628
UB
13684 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
13685 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 13686
7650b83e 136872009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 13688 Kai Tietz <kai.tietz@onevision.com>
7650b83e 13689
435da628
UB
13690 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
13691 for w64 ABI.
13692 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
13693 (ix86_nsaved_regs): Count only general purpose regs.
13694 (ix86_nsaved_sseregs): New.
13695 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
13696 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
13697 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
13698 general purpose regs.
7650b83e
JH
13699 (ix86_emit_save_sse_regs_using_mov): New.
13700 (ix86_expand_prologue): Save SSE regs if needed.
13701 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
13702 (ix86_emit_restore_sse_regs_using_mov): New.
13703 (ix86_expand_epilogue): Save SSE regs if needed.
13704
9aa5c1b2 137052009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 13706 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 13707
435da628
UB
13708 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
13709 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
13710 functions when accumulate outgoing args is off.
9aa5c1b2 13711
f7556aae
L
137122009-01-06 H.J. Lu <hongjiu.lu@intel.com>
13713
13714 PR bootstrap/38742
13715 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
13716 before using pseudos_have_intersected_live_ranges_p.
13717
13718 * ira-int.h (ira_assert): Always define.
13719
e47b7d04
L
137202009-01-06 H.J. Lu <hongjiu.lu@intel.com>
13721
13722 AVX Programming Reference (December, 2008)
13723 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
13724 (_mm256_permute2_pd): Likewise.
13725 (_mm_permute2_ps): Likewise.
13726 (_mm256_permute2_ps): Likewise.
13727 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
13728 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
13729
13730 * config/i386/i386.c (ix86_builtins): Remove
13731 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
13732 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
13733 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
13734 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
13735 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
13736 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
13737 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
13738 __builtin_ia32_vpermil2ps256.
13739 (ix86_init_mmx_sse_builtins): Updated.
13740 (ix86_expand_args_builtin): Likewise.
13741
44b86471
JDA
137422009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13743
e47b7d04
L
13744 * pa.c (output_call): Relocate non-jump insns in the delay slot of
13745 long absolute calls when generating PA 2.0 code.
44b86471 13746
311aab06
VM
137472009-01-05 Vladimir Makarov <vmakarov@redhat.com>
13748
13749 PR rtl-optimization/38583
13750 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
13751
13752 * params.def (ira-max-conflict-table-size): New.
13753
13754 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 13755
311aab06 13756 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 13757
311aab06
VM
13758 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
13759 table. Report this. Return result of building.
13760 (ira_build_conflicts): Use ira_conflicts_p. Check result of
13761 building conflict table.
13762
301b6a4e 13763 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 13764 (ira_color): Use ira_conflicts_p.
2ba9daa7 13765
311aab06
VM
13766 * global.c: Include ira.h.
13767 (pseudo_for_reload_consideration_p, build_insn_chain): Use
13768 ira_conflicts_p.
13769
13770 * Makefile.in (global.o): Add ira.h.
2ba9daa7 13771
311aab06
VM
13772 * ira-build.c (mark_all_loops_for_removal,
13773 propagate_some_info_from_allocno): New.
13774 (remove_unnecessary_allocnos): Call
13775 propagate_some_info_from_allocno.
13776 (remove_low_level_allocnos): New.
13777 (remove_unnecessary_regions): Add parameter. Call
13778 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
13779 parameter to remove_unnecessary_regions.
13780 (ira_build): Remove all regions but root if the conflict table was
13781 not built. Update conflict hard regs for allocnos crossing calls.
13782
13783 * ira.c (ira_conflicts_p): New global.
13784 (ira): Define and use ira_conflicts_p.
13785
13786 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
13787 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 13788 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 13789
5641785f
BE
137902009-01-06 Ben Elliston <bje@au.ibm.com>
13791
13792 * gengtype-lex.l (YY_NO_INPUT): Define.
13793
e4e5261f
AP
137942009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
13795
13796 PR c/34911
5641785f
BE
13797 * c-common.c (handle_vector_size_attribute): Also reject
13798 BOOLEAN_TYPE types.
e4e5261f 13799
7b10257f
SP
138002009-01-05 Sebastian Pop <sebastian.pop@amd.com>
13801
13802 PR tree-optimization/38492
13803 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
13804 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
13805 rename_map_elt_info, eq_rename_map_elts,
13806 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
13807 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
13808 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
13809 (sese_build_livein_liveouts): New.
13810 (new_sese, free_sese): New.
13811 (new_scop): Call new_sese.
13812 (free_scop): Call free_sese.
13813 (rename_variables_from_edge, rename_phis_end_scop): Removed.
13814 (register_old_new_names): Renamed register_old_and_new_names.
13815 (register_scop_liveout_renames, add_loop_exit_phis,
13816 insert_loop_close_phis, struct igp,
13817 default_liveout_before_guard, add_guard_exit_phis,
13818 insert_guard_phis, copy_renames): New.
13819 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
13820 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
13821 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
13822 (scop_adjust_phis_for_liveouts): New.
13823 (gloog): Call scop_adjust_phis_for_liveouts.
13824
13825 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 13826 num_ver and livein.
7b10257f
SP
13827 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
13828 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
13829 (struct scop): Added field liveout_renames.
13830 (SCOP_LIVEOUT_RENAMES): New.
13831
9761fcc7
HJ
138322009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
13833
13834 PR tree-optimization/38510
13835 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
13836 (translate_clast): Call recompute_all_dominators before
13837 graphite_verify.
13838 (gloog): Call recompute_all_dominators before graphite_verify.
13839
138402009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 13841 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
13842
13843 PR tree-optimization/38500
13844 * graphite.c (create_sese_edges): Call fix_loop_structure after
13845 splitting blocks.
13846
c95b2534 138472009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
13848
13849 * config.gcc: Add m32r*-*-rtems*.
13850 * config/m32r/rtems.h: New file.
13851
fc0cd180
BE
138522009-01-05 Ben Elliston <bje@au.ibm.com>
13853
13854 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
13855 (.po.pox): Likewise.
13856 (po/gcc.pot): Likewise.
13857
3106d8e5
DM
138582009-01-04 David S. Miller <davem@davemloft.net>
13859
13860 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
13861 (STARTING_FRAME_OFFSET): Always set to zero.
13862
0009b473
RS
138632009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
13864
13865 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
13866 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
13867 fixed-point types, and vectors of the same.
13868
4f24c6d6
RS
138692009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
13870
13871 * config/mips/sync.md (*mb_barrier): Rename to...
13872 (*memory_barrier): ...this.
13873
1df48f5c
JW
138742009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
13875
13876 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 13877 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
13878 and put in alphabetical order. Fix 'target' name and put in order.
13879 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
13880 typos.
13881
1a8c13b3
UB
138822009-01-04 Uros Bizjak <ubizjak@gmail.com>
13883
13884 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
13885 (memory_barrier): Expand as unspec instead of unspec_volatile.
13886 Remove mem:BLK from insn operands. Use Pmode scratch register.
13887 (*memory_barrier): Define as unspec instead of unspec_volatile.
13888 Use (match_dup 0) as input operand.
13889
13890 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
13891 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
13892 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
13893 scratch register. Remove operand 1.
13894 (*stbar): Define as unspec instead of unspec_volatile.
13895 Use (match_dup 0) as input operand, remove (const_int 8).
13896 (*membar): Define as unspec instead of unspec_volatile.
13897 Use (match_dup 0) as input operand, remove input operand 2.
13898
13899 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
13900 (memory_barrier): Expand as unspec instead of unspec_volatile.
13901 Remove mem:BLK from insn operands. Use Pmode scratch register.
13902 (*memory_barrier): Define as unspec instead of unspec_volatile.
13903 Use (match_dup 0) as input operand.
13904
13905 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
13906 Remove mem:BLK from insn operands. Use Pmode scratch register.
13907 Set volatile flag on operand 0.
13908 (*memory_barrier): New insn pattern.
13909
13910 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
13911 insn operands.
13912 (*memory_barrier): Use (match_dup 0) as input operand.
13913
13914 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
13915 Remove mem:BLK from insn operands. Use Pmode scratch register.
13916 Set volatile flag on operand 0.
301b6a4e 13917 (*mb_internal): New insn pattern.
1a8c13b3
UB
13918
13919 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
13920
fb0703f7
SB
139212009-01-04 Steven Bosscher <steven@gcc.gnu.org>
13922
13923 PR middle-end/38586
13924 * function.c (struct temp_slot): Move to the section of the file
13925 that deals with temp slots. Remove field 'address'.
13926 (temp_slot_address_table): New hash table of address -> temp slot.
13927 (struct temp_slot_address_entry): New struct, items for the table.
13928 (temp_slot_address_compute_hash, temp_slot_address_hash,
13929 temp_slot_address_eq, insert_temp_slot_address): Support functions
13930 for the new table.
13931 (find_temp_slot_from_address): Rewrite to use the new hash table.
13932 (remove_unused_temp_slot_addresses): Remove addresses of temp
13933 slots that have been made available.
13934 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
13935 worker function for remove_unused_temp_slot_addresses.
13936 (assign_stack_temp_for_type): Don't clear the temp slot address list.
13937 Add the temp slot address to the address -> temp slot map.
13938 (update_temp_slot_address): Update via insert_temp_slot_address.
13939 (free_temp_slots): Call remove_unused_temp_slot_addresses.
13940 (pop_temp_slots): Likewise.
13941 (init_temp_slots): Allocate the address -> temp slot map, or empty
13942 the map if it is already allocated.
13943 (prepare_function_start): Initialize temp slot processing.
13944
b5a430f3
SB
139452009-01-04 Steven Bosscher <steven@gcc.gnu.org>
13946
13947 PR middle-end/38584
13948 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
13949 Calculate the size of all stack vars assuming no packing of stack
13950 vars will happen, replacing a quadratic algorithm with a linear one.
13951
5d560619
JJ
139522009-01-03 Jakub Jelinek <jakub@redhat.com>
13953
13954 PR target/38707
13955 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
13956 can't be used.
13957
953a7caa
DN
139582009-01-03 Diego Novillo <dnovillo@google.com>
13959
13960 * doc/contrib.texi: Update contributions.
13961
5f26a230
JJ
139622009-01-03 Jakub Jelinek <jakub@redhat.com>
13963
493aa551
JJ
13964 PR c++/38705
13965 * builtins.c (fold_builtin_memory_op): Give up if either operand
13966 is volatile. Set srctype or desttype to non-qualified version
13967 of the other type.
13968
5f26a230
JJ
13969 PR c/38700
13970 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
13971 and FUNCTION_DECLs.
13972
c95b2534 139732009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
13974
13975 PR rtl-optimization/35805
13976 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
13977 problem if fast dce is able to remove any instructions.
13978 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 13979
0b355794
MM
139802009-01-02 Mark Mitchell <mark@codesourcery.com>
13981
13982 PR 33649
13983 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
13984
0cf0d02b
JJ
139852009-01-02 Jakub Jelinek <jakub@redhat.com>
13986
13987 PR middle-end/38690
13988 * tree-flow.h (op_code_prio, op_prio): New prototypes.
13989 * tree-pretty-print.c (op_code_prio): New function.
13990 (op_prio): No longer static. Use op_code_prio.
13991 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
13992 Use op_prio and op_code_prio to determine if () should be
13993 printed around operand(s) or not.
13994
13995 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
13996 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
13997 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
13998 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
13999 pp_character instead of pp_string for single letter printing.
14000
e3606f3b
RS
140012009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
14002
14003 * doc/extend.texi: Fix '#pragma GCC option' typo.
14004
c95b2534 140052009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 14006
a5f061dc
RG
14007 * doc/install.texi (--enable-checking): Mention different
14008 default for stage1.
14009 (--enable-stage1-checking): Document.
00f39bd5 14010
26de0bcb
AP
140112009-01-01 Andrew Pinski <pinskia@gmail.com>
14012
14013 PR middle-end/30142
14014 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
14015 case to be an error.
14016
7a7d8fab
BE
140172009-01-02 Ben Elliston <bje@au.ibm.com>
14018
14019 * config/fp-bit.h (pack_d): Constify argument.
14020 * config/fp-bit.c (makenan): Constify return type. Remove casts.
14021 (isnan): Constify argument.
14022 (isinf): Likewise.
14023 (iszero): Likewise.
14024 (pack_d): Likewise.
14025 (_fpadd_parts): Constify return type.
14026 (_fpmul_parts): Likewise.
14027 (_fpdiv_parts): Likewise.
14028
b295aee2
JJ
140292009-01-01 Jakub Jelinek <jakub@redhat.com>
14030
14031 PR c/36489
14032 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
14033 warn about overwriting initializer with side-effects or
14034 -Woverride-init if !IMPLICIT.
14035 (output_init_element): Likewise. Pass IMPLICIT down to
14036 add_pending_init.
14037 (process_init_element): Add IMPLICIT argument. Pass it down
14038 to output_init_element.
14039 (push_init_element, pop_init_level, set_designator): Adjust
14040 process_init_element callers.
14041 (set_nonincremental_init, set_nonincremental_init_from_string):
14042 Adjust add_pending_init callers.
14043 (output_pending_init_elements): Adjust output_init_element callers.
14044 * c-tree.h (process_init_element): Adjust prototype.
14045 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
14046 process_init_element callers.
ad41bd84
JM
14047
14048\f
14049Copyright (C) 2009 Free Software Foundation, Inc.
14050
14051Copying and distribution of this file, with or without modification,
14052are permitted in any medium without royalty provided the copyright
14053notice and this notice are preserved.