]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Fix PR bootstrap/40118
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
c24151ce
MM
12009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2
3 PR bootstrap/40118
4 * rs6000.c (rs6000_generate_compare): Use op1b instead of
5 shadowing exisiting variable op1.
6
fbdf817d
UB
72009-05-12 Uros Bizjak <ubizjak@gmail.com>
8
9 PR target/37197
10 * config/i386/driver-i386.c (processor_signatures): New enum.
11 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
12 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
13 processor signature to detect geode processor.
14
5e8d1826
PB
152009-05-12 Paolo Bonzini <bonzini@gnu.org>
16
17 Revert:
18
19 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
20
21 * optabs.c (prepare_cmp_insn): Temporarily disable test that
22 causes spurious differences between trunk and cond-optab branch.
23
f90b7a5a
PB
242009-05-12 Paolo Bonzini <bonzini@gnu.org>
25
fbdf817d
UB
26 * dojump.c (compare_from_rtx): Delete.
27 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
28 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
29 if the comparison does not satisfy the predicate; test predicates for
30 operands 2 and 3 of a cstore pattern. Don't try cstore optab
31 further if one existing pattern fails.
fbdf817d 32 * expr.h (compare_from_rtx): Delete.
f90b7a5a 33 (prepare_operand): Declare it.
fbdf817d 34 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 35 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
36 HAVE_conditional_trap, emit_cmp_insn): Delete.
37 (can_compare_p): Delete cmp_optab case.
f90b7a5a 38 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
39 Accept other parameters by value.
40 (prepare_operand): Make non-static.
41 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
42 other parameters by value. Try to widen operands here based on
43 an optab_methods argument and looking at cbranch_optab.
44 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
45 loop. Use cbranch_optab directly.
46 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
47 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
48 assertion.
49 (emit_conditional_move, emit_conditional_add): Inline what's needed
50 of compare_from_rtx, using new prepare_cmp_insn for the rest.
51 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
52 with COMPARE. Move cmov_optab and cstore_optab above
53 with cbranch_optab, move cmp_optab down with ucmp_optab,
54 remove tst_otpab. Do not initialize trap_rtx.
55 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
56 for trap code. Do not check HAVE_conditional_trap. Use
57 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
58 * optabs.h (OTI_cmp): Mark as used only for libcalls.
59 (OTI_ctrap, ctrap_optab): New.
60 (tst_optab): Delete.
61 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
62 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
63 with lookup of ctrap_optab.
64 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
65 setcc_gen_code): Delete.
66 (ctrap_optab): New.
67
68 * combine.c (combine_simplify_rtx, simplify_set): Do not
69 special case comparing against zero for cc0 machines.
f90b7a5a
PB
70 * simplify-rtx.c (simplify_binary_operation_1): Never remove
71 COMPARE on cc0 machines.
72 (simplify_relational_operation): Return a new expression when
73 a COMPARE could be removed.
fbdf817d
UB
74 * final.c (final_scan_insn): Compare cc_status values
75 against LHS of a (compare FOO (const_int 0)) cc0 source.
76 Also check if cc_status.value is the full compare.
f90b7a5a 77
fbdf817d
UB
78 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
79 (cstoreMM4): Document.
f90b7a5a 80 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 81 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
82 (Dependent Patterns): Eliminate obsolete information referring to
83 the old jump optimization phase.
fbdf817d 84 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
85 of compares with 0 on cc0 machines.
86 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
87 avoiding references to cc0. Remove text about storing operands
88 in cmpMM.
89 * doc/tm.texi (Condition Codes): Include blurb on different
90 condition code representations, separate into subsections for
91 CC0, MODE_CC and conditional execution.
92
fbdf817d
UB
93 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
94 alpha_emit_setcc): Accept operands and a machine mode.
95 * config/alpha/alpha.c (alpha_emit_conditional_branch):
96 Get code/op0/op1 from operands, use machine mode argument
97 instead of alpha_compare.fp_p. Emit the branch here.
98 (alpha_emit_setcc): Likewise, and return boolean.
99 (alpha_emit_conditional_move): Likewise. Assert that
100 cmp_op_mode == cmp_mode, and simplify accordingly.
101 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
102 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
103 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
104 Delete.
105 (stack probe test): Use cbranchdi4.
106 * config/alpha/predicates.md (alpha_cbranch_operator): New.
107
108 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
109 * config/arc/arc.h (movsicc, movsfcc): Use it.
110 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
111 (cbranchsi4, cstoresi4): New.
112 (cmpsi, bCC and sCC expanders): Remove.
113
114 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
115 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
116 * config/arm/predicates.md (arm_comparison_operator): Only include
117 floating-point operators if there is a hardware floating-point unit.
118 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
119 deferring to cbranch_cc and cstore_cc respectively.
120 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
121 cbranch_cc, cstore_cc): New.
122 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 123 arm_compare_op1.
fbdf817d
UB
124 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
125
126 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
127 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
128 as an argument.
129 (adjust_insn_length): Adjust calls.
130 (avr_reorg): Handle (compare (foo) (const_int 0)).
131 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
132 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
133 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
134 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
135 (bCC): Remove.
136 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
137 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
138
fbdf817d
UB
139 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
140 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 141 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
142 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
143 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
144 (bfin_optimize_loop): Use cbranch expander.
145 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
146 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
147 (bfin_bimode_comparison_operator): ... this.
148 (bfin_direct_comparison_operator): New.
f90b7a5a 149
fbdf817d
UB
150 * config/cris/cris.c (cris_normal_notice_update_cc): Look
151 inside (compare FOO (const_int 0)).
152 (cris_rtx_costs): Handle ZERO_EXTRACT.
153 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
154 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
155 (*tstdi_v32): Delete.
156 (*cmpdi_non_v32): Add M alternative for operand 1.
157 (cmpsi, cmp<mode>): Make private.
158 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
159 with COMPARE.
160 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
161
162 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
163 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
164 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
165 (cc_reg_operand): New.
166 (any_cond): Delete.
fbdf817d
UB
167 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
168 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
169 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
170 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
171 crx_expand_scond): Delete.
172
173 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
174 (cbranchsi4): New.
175 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
176 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
177
178 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
179 cstoresi4, cstoresf4, cstoredf4): New.
180 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
181 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
182 Receive the entire operands array.
183 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
184 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
185 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
186 Get test/op0/op1 from the operands array.
187 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
188
189 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
190 (h8300_expand_store): New.
191 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
192 (const_int 0)).
193 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
194 (h8300_expand_store): New.
195 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
196 or do not try to produce (set (cc0) REG).
197 (peepholes): Wrap arguments with COMPARE. Add a peephole to
198 change a compare into a move to a scratch register. Disable some
199 peepholes when comparing with zero.
200 (tstsi, tsthi, tstsi, cmpqi): Make private.
201 (cmphi): Delete.
202 (bCC, sCC): Delete.
203 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
204 cstoresi4): New.
f90b7a5a
PB
205
206 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
207 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
208 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
209 (ix86_emit_i387_log1p): Use cbranchxf2.
210 (ix86_expand_setcc): Return void.
211 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
212 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
213 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
214 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
215 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
216 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
217 (sCC and bCC expanders): Remove.
218 (stack_protect_test): Use cbranchcc4.
219
fbdf817d
UB
220 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
221 Delete.
222 (ia64_expand_compare): Accept three rtx by reference and return void.
223 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
224 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
225 from *expr. Update *expr with the BImode comparison to do.
226 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
227 cmptf, bCC, sCC, conditional_trap): Delete.
228 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
229 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
230 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
231 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
232 * config/ia64/predicates.md (ia64_cbranch_operator): New.
233
234 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
235 type of last argument.
236 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
237 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
238 use machine mode argument instead of branch_type. Remove dead
239 code for floating-point comparisons.
240 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
241 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
242 Remove.
243 (cbranchsi4, cstoresi4): New.
244 * config/iq2000/predicates.md (reg_or_const_operand): New.
245
246 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
247 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
248 (b<code>_op): Rewrite to...
249 (bcc_op): ... this, using match_operator.
250 (s<code>_op): Rewrite to...
251 (scc_op): ... this, using match_operator.
252 (s<code>_24_op): Rewrite to...
253 (scc_op_24): ... this, using match_operator.
254 (s<code>_<mode>): Rewrite to...
255 (cstore<mode>4): ... this, using match_operator.
256 (s<code>_<mode>_24): Rewrite to...
257 (cstore<mode>4_24): ... this, using match_operator.
258 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
259 m32c_unpend_compare, m32c_expand_scc): Delete.
260 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
261 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
262 (m32c_expand_movcc): Change NE to EQ if necessary.
263 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
264
265 * config/m32r/m32r-protos.h (gen_cond_store): New.
266 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
267 (gen_cond_store): New, from sCC patterns.
268 (m32r_expand_block_move): Use cbranchsi4.
269 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
270 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
271 (cbranchsi4, cstoresi4): New.
272
273 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
274 Delete.
275 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 276 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
277 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
278 Delete.
279 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
280 cmphi, cmpqi, bCC): Delete.
281 (cbranchsi4, cbranchhi4, cbranchqi4): New.
282 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
283 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
284 sets with COMPARE.
285
286 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
287 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
288 * config/m68k/constraints.md (H): New.
289 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
290 the define_insn below.
291 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
292 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
293 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
294 patterns): Wrap RHS with COMPARE.
295 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
296 (*cmpdi_internal): Name this pattern.
297 (cmpdi): Change to define_insn.
298 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
299 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
300 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
301 predicate.
302 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
303 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
304 (conditional_trap): Change to...
305 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
306 (*conditional_trap): Use the ordered_comparison_operator and
307 const1_operand predicates.
308 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
309 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
310 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
311 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
312
313 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
314 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
315 (mcore_gen_compare): New.
316 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
317 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
318 (mcore_gen_compare): ... this.
319 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
320 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
321 (stack probe pattern): Use cbranchsi4.
322
323 * config/mips/predicates.md (mips_cstore_operator): New.
324 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
325 * config/mips/mips.md (any_cond): Delete.
326 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
327 always succeed.
328 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
329 fixuns_truncsfdi2): Use cbranch patterns.
330 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
331 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
332 Adjust call to mips_expand_conditional_branch.
333 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
334 cstore<GPR:mode>4.
335 * config/mips/mips-protos.h (mips_expand_conditional_branch,
336 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
337 * config/mips/mips.c (cmp_operands): Delete.
338 (mips_emit_compare): Get comparison operands from *op0/*op1.
339 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
340 that it succeeds. Use op0/op1 instead of cmp_operands.
341 (mips_expand_conditional_branch, mips_expand_conditional_move,
342 mips_expand_conditional_trap): Likewise.
343 (mips_block_move_loop): Use cbranch patterns.
344 * config/mips/mips.h (cmp_operands): Delete.
345
346 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
347 (mmix_gen_compare_reg): Just return a register in the right CC mode.
348 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
349 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
350 (*cmpcc_folded): Rename to...
351 (*cmpdi_folded): this.
352 (*cmpcc): Rename to...
353 (*cmps): ... this.
354 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
355 (bCC): Remove.
356 (cbranchdi4): New.
357 (cbranchdf4): New. Handle invalid comparisons here.
358 * config/mmix/predicates.md (float_comparison_operator): New.
359
360 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
361 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
362 * config/mn10300/mn10300.md (tst): Delete.
363 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
364 Name these patterns and wrap RHS in a compare.
365 (*cmpsi): Make this pattern private. Include tst.
366 (*cmpsf): Make this pattern private.
367 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
368 (compare with zero peepholes): Likewise.
369 (bCC): Remove.
370 (cbranchsi4, cbranchsf4): New.
371 (casesi): Use cbranchsi4.
372
373 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
374 hppa_branch_type): Delete.
375 (return_addr_rtx): Use cbranchsi4.
376 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
377 Emit CCFPmode comparison here.
378 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
379 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
380 hppa_branch_type): Delete.
381 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
382 (movsicc, movdicc): Remove references to hppa_compare_op0,
383 hppa_compare_op1 and compare_from_rtx.
384 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
385 (casesi): Use cbranchsi4.
386
387 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
388 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
389 * config/pdp11/pdp11.md (register_or_const0_operand): New.
390 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
391 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
392 (bCC): Delete.
393 (cbranchdf4, cbranchhi4, cbranchqi4): New.
394 (*branch, *branch_inverted): New.
395
396 * config/picochip/picochip.md (cbranchhi4): Use
397 ordered_comparison_operator.
398 (cmphi, bCC): Remove.
399
400 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
401 (trap_comparison_operator): Delete.
402 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
403 rs6000_emit_cbranch): Accept mode and operands.
404 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
405 rs6000_compare_fp_p): Delete.
406 (rs6000_generate_compare): Accept mode and comparison. Extract code
407 and op0/op1 from there. Replace references to rs6000_compare_op0
408 and rs6000_compare_op1.
409 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
410 extract result from passed operands.
411 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
412 extract loc from passed operands.
413 (rs6000_emit_cmove): Likewise.
414 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
415 rs6000_compare_fp_p): Delete.
416 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
417 (cbranch<GPR>4, cbranch<FP>4): New.
418 (cstore<mode>4): New. Consolidate here all choices about when to use
419 portable or specialized sCC sequences.
420 (stack_protect_test): Use cbranchsi4.
421 (conditional_trap): Replace with ctrap<GPR>4.
422 (conditional trap insn): Replace trap_comparison_operator with
423 ordered_comparison_operator.
424
425 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
426 (s390_emit_prologue): Use ctrap.
427 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
428 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
429 New predicates replacing...
430 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
431 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
432 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
433 (add<mode>cc): Do not use s390_compare_op0/op1.
434 (s<code>): Change to...
435 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
436 (seq): Change to...
437 (cstorecc4): ... this. Handle EQ or NE equally.
438 (*sne): Un-privatize for use in cstorecc4.
439 (b<code>): Change to...
440 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
441 (conditional_trap): Replace with...
442 (ctrap<GPR>4, ctrap<FP>4): ... these.
443 (stack_protect): Use cbranchcc4.
444
445 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
446 * config/score/score-protos.h (score_gen_cmp): Delete.
447 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
448 (score_block_move-loop): Use cbranchsi4.
449 * config/score/score.md (cbranchsi4): New.
450 (cmpsi, bCC): Delete.
451 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
452 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
453 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
454 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
455 * config/score/score3.h (score3_gen_cmp): Delete.
456 * config/score/score7.h (score7_gen_cmp): Delete.
457
458 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
459 (sh_emit_scc_to_t): ... this. Return void.
460 (from_compare): Rename to...
461 (sh_emit_compare_and_branch): ... this.
462 (sh_emit_compare_and_set): New.
463 (sh_expand_t_scc): Accept operands.
464 * config/sh/predicates.md (sh_float_comparison_operator): New.
465 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
466 (prepare_scc_operands): Rename to...
467 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
468 arguments.
469 (sh_emit_cheap_store_flag): New.
f90b7a5a 470 (sh_emit_set_t_insn): New.
fbdf817d
UB
471 (from_compare): Rename to...
472 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
473 handling of TARGET_SH2E floating point to avoid recursive call.
474 Generate branch here.
475 (sh_emit_compare_and_set): New.
476 (sh_expand_t_scc): Get op0/op1 from arguments.
477 (sh_emit_cheap_store_flag): New.
478 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
479 cases.
f90b7a5a 480 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
481 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
482 (movsicc, movdicc): Do nothing when it recreated operands from
483 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
484 prepare_scc_operands (now sh_emit_scc_to_t).
485 (udivdi3): Use cstoresi4.
486 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
487 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
488 (cbranchint4_media, cbranchfp4_media): New.
489 (casesi): Use cbranchdi4.
490 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
491 Delete.
492 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
493 (movnegt): Remove second operand.
494 (cbranchsf4, cbranchdf4): New.
495 (stack_protect): Use cbranchdi4/cbranchsi4.
496
497 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
498 (gen_compare_reg): Accept comparison, extract part of it to...
499 (gen_compare_reg_1): ... this.
500 (gen_compare_operator): Delete.
501 (gen_v9_scc): Accept separate destination, comparison code and arms.
502 Do not use sparc_compare_op0/sparc_compare_op1.
503 (emit_scc_insn, emit_conditional_branch_insn): New.
504 (emit_v9_brxx): Make static. Remove useless assertion.
505 (sparc_emit_float_lib_cmp): Return RTL instead of calling
506 emit_cmp_insn.
507 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
508 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
509 sparc_emit_float_lib_cmp): Adjust prototype.
510 (emit_scc_insn, emit_conditional_branch_insn): New.
511 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
512 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
513 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
514 iterators to the top.
515 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
516 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 517 snedi_special_trunc): Delete.
fbdf817d 518 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 519 and snedi_special_trunc.
fbdf817d
UB
520 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
521 cbranchdi4, cbranch<F:mode>4): New.
522 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
523 here. Use gen_compare_reg instead of gen_compare_operator.
524 (conditional_trap): Replace with...
525 (ctrapsi4, ctrapdi4): ... this.
526 (stack_protect_test): Use cbranchcc4.
527
528 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
529 argument to rtx.
530 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
531 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
532 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
533 from operands[0] or operands[3] depending on is_set.
534 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
535 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
536 cmpdf, bCC), sCC: Remove.
537 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
538 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
539 cstoredf4): New.
540 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
541 spu_emit_branch_or_set.
542
543 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
544 Add two arguments.
545 * config/stormy16/stormy16.h (xstormy16_compare_op0,
546 xstormy16_compare_op1): Delete.
547 * config/stormy16/stormy16.c (xstormy16_compare_op0,
548 xstormy16_compare_op1): Delete.
549 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
550 Adjust calls.
551 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
552 (cmphi, cmpsi, bCC): Remove.
553
554 * config/v850/v850.md (tstsi, cmpsi): Fold into...
555 (*cmpsi): ... this one.
556 (cbranchsi4, cstoresi4): New.
557 (bCC expanders): Delete.
558 (sCC insns): Fold into...
559 (*setcc): ... this one.
560 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
561 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
562 (movsicc): Simplify.
563 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
564
fbdf817d
UB
565 * config/vax/vax-protos.h (cond_name): New.
566 (vax_output_conditional_branch): Remove.
567 * config/vax/vax.c (cond_name): New.
568 (vax_output_conditional_branch): Remove.
569 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
570 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
571 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
572 (bit<VAXint>): Wrap source with (compare).
573 (b<code> and following unnamed pattern): Rename to *branch and
574 *branch_reversed. Change macroization to match_operator.
575 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
576
577 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
578 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
579 Change last argument to machine_mode.
580 (xtensa_expand_scc): Add machine_mode argument.
581 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
582 (gen_conditional_move, xtensa_expand_conditional_branch,
583 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
584 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
585 Adjust operand numbers.
586 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
587 Delete.
588 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
589 (cmpsi, cmpsf, b<code>, s<code>): Delete.
590 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 591
16670495
PB
5922009-05-12 Paolo Bonzini <bonzini@gnu.org>
593
594 * optabs.c (prepare_cmp_insn): Temporarily disable test that
595 causes spurious differences between trunk and cond-optab branch.
596
4a4a4e99
AO
5972009-05-12 Alexandre Oliva <aoliva@redhat.com>
598
599 PR target/37137
600 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
601
72b9acff
AO
6022009-05-12 Alexandre Oliva <aoliva@redhat.com>
603
604 * tree.c (iterative_hash_pointer): Delete.
605 (iterative_hash_expr): Short-circuit handling of NULL pointer.
606 Hash UIDs and versions of SSA names. Don't special-case built-in
607 function declarations.
608
b7dd69ac
ILT
6092009-05-11 Ian Lance Taylor <iant@google.com>
610
611 PR bootstrap/40103
612 * graphite.c: Force -Wc++-compat to only be a warning before
613 #including "cloog/cloog.h".
614
ed102b70
MJ
6152009-05-11 Martin Jambor <mjambor@suse.cz>
616
617 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
618
08f1af2e
JH
6192009-05-11 Jan Hubicka <jh@suse.cz>
620
621 * tree-ssa-loop-ivcanon.c: Include target.h
622 (struct loop_size): new structure.
623 (constant_after_peeling): New predicate.
624 (tree_estimate_loop_size): New function.
625 (estimated_unrolled_size): Rewrite for new estimates.
626 (try_unroll_loop_completely): Use new estimates.
627 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
628
a7d39bd3
AP
6292009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
630
631 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
632 libcpp interface change.
633 (spu_macro_to_expand): Likewise.
634
f5a1f0d0
PB
6352009-05-11 Paolo Bonzini <bonzini@gnu.org>
636
637 PR tree-optimization/40026
638 * gimplify.c (gimplify_init_constructor): Change initial conditional
639 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
640 optimize_compound_literals_in_ctor.
641
c260f01f
NS
6422009-05-11 Nathan Sidwell <nathan@codesourcery.com>
643
644 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
645 New devices.
646 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
647
df398a37
L
6482009-05-11 H.J. Lu <hongjiu.lu@intel.com>
649
650 * tree-vect-data-refs.c (vect_analyze_group_access): Use
651 HOST_WIDE_INT for gap.
652
4da39468
IR
6532009-05-11 Ira Rosen <irar@il.ibm.com>
654
655 PR tree-optimization/40074
656 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
657 account in group size and step comparison.
658
4effdf02
RG
6592009-05-11 Richard Guenther <rguenther@suse.de>
660
661 * passes.c (init_optimization_passes): Strip now incorrect comment.
662 (execute_function_todo): Do not set PROP_alias.
663 * tree-pass.h (PROP_alias): Remove.
664 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
665 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
666 * tree-nrv.c (pass_return_slot): Likewise.
667 * tree-object-size.c (pass_object_sizes): Likewise.
668 * tree-ssa-dom.c (pass_dominator): Likewise.
669 (pass_phi_only_cprop): Likewise.
670 * tree-ssa-dse.c (pass_dse): Likewise.
671 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
672 (pass_cselim): Likewise.
673 * tree-ssa-pre.c (pass_pre): Likewise.
674 (pass_fre): Likewise.
675 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
676 * tree-ssa-sink.c (pass_sink_code): Likewise.
677 * tree-stdarg.c (pass_stdarg): Likewise.
678 * tree-tailcall.c (pass_tail_calls): Likewise.
679 * tree-vrp.c (pass_vrp): Likewise.
680
24b97832
ILT
6812009-05-10 Ian Lance Taylor <iant@google.com>
682
683 * basic-block.h (enum profile_status): Break out of struct
684 control_flow_graph.
685 * cgraph.h (struct inline_summary): Break out of struct
686 cgraph_local_info.
687 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
688 of struct cgraph_order_sort.
fbdf817d 689 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
690 * cse.c (struct branch_path): Break out of struct
691 cse_basic_block_data.
692 * except.h (enum eh_region_type): Break out of struct eh_region.
693 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 694 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
695 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
696 ggc_pch_data.
fbdf817d
UB
697 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
698 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
699 * sched-int.h (enum post_call_group): New enum, broken out of
700 struct deps.
701 (struct deps_reg): Break out of struct deps.
702 * target.h (struct asm_int_op): Break out of struct gcc_target.
703 * tree-eh.c (struct goto_queue_node): Break out of struct
704 leh_tf_state.
705 * tree-inline.h (enum copy_body_cge_which): Break out of
706 copy_body_data.
707 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
708
709 * c-decl.c (in_struct, struct_types): New static variables.
710 (pushtag): Add loc parameter. Change all callers.
711 (lookup_tag): Add ploc parameter. Change all callers.
712 (check_compound_literal_type): New function.
713 (parser_xref_tag): Add loc parameter. Change all callers. If
714 -Wc++-compat, warn about struct/union/enum types defined within a
715 struct or union.
716 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
717 and loc parameters. Change all callers. Change error calls to
718 error_at, using loc. For a redefinition, if the location of the
719 original definition is known, report it. Set in_struct and
fbdf817d 720 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
721 (finish_struct): Add new parameters enclosing_in_struct and
722 enclosing_struct_types. Change all callers. Set
723 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
724 in the struct. If in a struct, add this struct to struct_types.
725 (start_enum): Add loc parameter. Change all callers. Use
726 error_at for errors, using loc. For a redefinition, if the
727 location of the original definition is known, report it. If in a
728 struct, add this enum type to struct_types. If -Wc++-compat warn
729 if in sizeof, typeof, or alignof.
fbdf817d
UB
730 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
731 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
732 (c_parser_enum_specifier): Get enum location for start_enum.
733 (c_parser_struct_or_union_specifier): Get struct location for
734 start_struct. Save in_struct and struct_types status between
735 start_struct and finish_struct.
736 (c_parser_cast_expression): Get location of cast.
737 (c_parser_alignof_expression): Get location of type.
738 (c_parser_postfix_expression): Likewise.
739 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
740 parameter. Change all callers. Call check_compound_literal_type.
741 Use type_loc for error about variable size type.
742 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
743 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
744 (c_cast_expr): Add loc parameter. Change all callers. If
745 -Wc++-compat, warn about defining a type in a cast.
746 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
747 (start_enum, start_struct, finish_struct): Update declarations.
748 (parser_xref_tag, c_cast_expr): Update declarations.
749 (check_compound_literal_type): Declare.
750
7a2738fa
BE
7512009-05-11 Ben Elliston <bje@au.ibm.com>
752
753 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
754 for recent libcpp interface change.
755 (rs6000_macro_to_expand): Likewise.
756
af618949
MM
7572009-05-10 Michael Matz <matz@suse.de>
758
759 PR target/40031
760 * config/arm/arm.c (require_pic_register): Emit on entry edge,
761 not at entry of function.
762
b7d7a473
RG
7632009-05-10 Richard Guenther <rguenther@suse.de>
764
765 PR tree-optimization/40081
766 Revert
767 * tree-sra.c (instantiate_element): Instantiate scalar replacements
768 using the main variant of the element type. Do not fiddle with
769 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
770
771 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
772 structs with volatile fields.
773
078c3644
JH
7742009-05-10 Jan Hubicka <jh@suse.cz>
775
776 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
777 (estimate_move_cost): Assert that it does not get called for
778 VOID_TYPE_P.
078c3644
JH
779 (estimate_num_insns): Skip VOID types in argument handling.
780 (optimize_inline_calls): Delete unreachable blocks and verify that
781 callgraph is valid.
782
39ff5a96
JH
7832009-05-10 Jan Hubicka <jh@suse.cz>
784
785 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
786 * cgraph.c (cgraph_mark_address_taken_node): New function.
787 (dump_cgraph_node): Dump new flag.
788 * cgraph.h (struct cgraph_node): Add address_taken.
789 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
790 * ipa.c (cgraph_postorder): Prioritize functions with address taken
791 since new direct calls can be born.
792
9a0c6187
JM
7932009-05-10 Joseph Myers <joseph@codesourcery.com>
794
795 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
796 tok->val.node.node.
797
4b685e14
JH
7982009-05-10 Jan Hubicka <jh@suse.cz>
799
800 PR middle-end/40084
fb0be169
EB
801 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
802 argument; rewrite.
4b685e14
JH
803 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
804 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
805 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
806 (fold_marked_statements): Update call to
807 cgraph_update_edges_for_call_stmt.
4b685e14 808
29d08eba
JM
8092009-05-10 Joseph Myers <joseph@codesourcery.com>
810
811 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
812 identifiers in diagnostics.
813 * config/arm/arm.c (arm_handle_fndecl_attribute,
814 arm_handle_isr_attribute): Likewise.
815 * config/avr/avr.c (avr_handle_progmem_attribute,
816 avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
817 Likewise.
818 * config/bfin/bfin.c (handle_int_attribute,
819 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
820 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
821 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
822 Likewise.
823 * config/darwin.c (darwin_handle_kext_attribute,
824 darwin_handle_weak_import_attribute): Likewise.
825 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
826 h8300_handle_eightbit_data_attribute,
827 h8300_handle_tiny_data_attribute): Likewise.
828 * config/i386/i386.c (ix86_handle_cconv_attribute,
829 ix86_handle_abi_attribute, ix86_handle_struct_attribute):
830 Likewise.
831 * config/i386/winnt.c (ix86_handle_shared_attribute,
832 ix86_handle_selectany_attribute): Likewise.
833 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
834 * config/m32c/m32c.c (function_vector_handler): Likewise.
835 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
836 m68hc11_handle_fntype_attribute): Likewise.
837 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
838 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
839 * config/mips/mips.c (mips_insert_attributes,
840 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
841 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
842 rs6000_handle_struct_attribute): Likewise.
843 * config/sh/sh.c (sh_insert_attributes,
844 sh_handle_resbank_handler_attribute,
845 sh_handle_interrupt_handler_attribute,
846 sh2a_handle_function_vector_handler_attribute,
847 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
848 Likewise.
849 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
850 * config/spu/spu.c (spu_handle_fndecl_attribute,
851 spu_handle_vector_attribute): Likewise.
852 * config/stormy16/stormy16.c
853 (xstormy16_handle_interrupt_attribute): Likewise.
854 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
855 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
856
f41c4af3
JM
8572009-05-10 Joseph Myers <joseph@codesourcery.com>
858
859 * pretty-print.h (struct pretty_print_info): Add
860 translate_identifiers.
861 (pp_translate_identifiers): New.
862 (pp_identifier): Only conditionally translate identifier to locale
863 character set.
864 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
865 (pp_base_tree_identifier): Only conditionally translate identifier
866 to locale character set.
867 * c-pretty-print.c (M_): Define.
868 (pp_c_type_specifier, pp_c_primary_expression): Mark English
869 fragments for conditional translation with M_.
870 * tree-pretty-print.c (maybe_init_pretty_print): Disable
871 identifier translation.
872
896d7dbd
RG
8732009-05-10 Richard Guenther <rguenther@suse.de>
874
875 PR tree-optimization/40081
876 * tree-sra.c (instantiate_element): Instantiate scalar replacements
877 using the main variant of the element type. Do not fiddle with
878 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
879
9a23acef
JH
8802009-05-09 Jan Hubicka <jh@suse.cz>
881
882 PR middle-end/40080
883 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
884 indirect calls; verify cgraph afterwards.
885
d563610d
JH
8862009-05-09 Jan Hubicka <jh@suse.cz>
887
888 PR bootstrap/40082
889 * ipa.c (update_inlined_to_pointer): New function.
890 (cgraph_remove_unreachable_nodes): Use it.
891
f08a18d0
JH
8922009-05-09 Jan Hubicka <jh@suse.cz>
893
894 * tree-eh.c (struct leh_state): Remove prev_try.
895 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
896 not track prev_try.
897 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
898 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
899 remove_eh_handler_and_replace, foreach_reachable_handler,
900 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
901 * except.h (struct eh_region): Remove eh_region_u_cleanup.
902 (gen_eh_region_cleanup): Update prototype.
903
0afd7219
JH
9042009-05-09 Jan Hubicka <jh@suse.cz>
905
906 PR middle-end/40043
907 * except.c (copy_eh_region): Always set prev_try.
908 (redirect_eh_edge_to_label): Find outer try.
909 (foreach_reachable_handler): When looking for prev try
910 handle case where previous try is not going to be taken.
911
ad6c0864
MM
9122009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
913
914 PR tree-optimization/40049
915 * tree-vect-stmts.c (vectorizable_operation): If the machine has
916 only vector/vector shifts, convert the type of the constant to the
917 appropriate type to avoid building incorrect trees, which
918 eventually have problems with garbage collection.
919
c94f9067
JM
9202009-05-08 Joseph Myers <joseph@codesourcery.com>
921
922 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
923 -1 for complex floating-point types if honoring signed zeros.
924
9187e02d
JH
9252009-05-08 Jan Hubicka <jh@suse.cz>
926
20acb8a2
EB
927 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
928 argument; handle correctly when profile is absent.
9187e02d
JH
929 (build_cgraph_edges): Update.
930 (rebuild_cgraph_edges): Update.
20acb8a2
EB
931 * cgraph.c: Do not include varray.h.
932 (cgraph_set_call_stmt_including_clones): New function.
933 (cgraph_create_edge_including_clones): Likewise
934 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
935 (cgraph_update_edges_for_call_stmt): Handle clones.
936 (cgraph_remove_node): Handle clone tree.
937 (cgraph_remove_node_and_inline_clones): New function.
938 (dump_cgraph_node): Dump clone tree.
939 (cgraph_clone_node): Handle clone tree.
20acb8a2 940 (clone_function_name): Bring here from tree-inline.c.
9187e02d 941 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
942 * cgraph.h (ipa_replace_map): Move here from ipa.h.
943 (cgraph_clone_info): New function.
9187e02d 944 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
945 (cgraph_remove_node_and_inline_clones,
946 cgraph_set_call_stmt_including_clones,
947 cgraph_create_edge_including_clones,
948 cgraph_create_virtual_clone): Declare.
9187e02d
JH
949 (cgraph_function_versioning): Use VEC argument.
950 (compute_call_stmt_bb_frequency): Update prototype.
951 (cgraph_materialize_all_clones): New function.
952 * ipa-cp.c (ipcp_update_cloned_node): Remove.
953 (ipcp_create_replace_map): Update to VECtors.
954 (ipcp_update_callgraph): Use virtual clones.
955 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
956 (ipcp_update_profiling): Do not update local profiling.
957 (ipcp_insert_stage): Use VECtors and virtual clones.
958 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
959 (clone_of_p): New function.
960 (cgraph_preserve_function_body_p): Use clone tree.
961 (cgraph_optimize): Materialize clones.
962 (cgraph_function_versioning): Update for VECtors.
963 (save_inline_function_body): Use clone tree.
20acb8a2
EB
964 (cgraph_materialize_clone): New function.
965 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
966 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
967 * ipa.c: Include gimple.h.
968 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
969 * ipa-prop.c (ipa_note_param_call): Update call to
970 compute_call_stmt_bb_frequencycall.
9187e02d 971 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 972 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
973 (copy_bb): Handle updating of clone tree; add new edge when new call
974 appears.
975 (expand_call_inline): Be strict about every call having edge.
976 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
977 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
978 (tree_function_versioning): Use VECtors; always remove unreachable
979 blocks and fold conditionals.
980 * tree-inline.h: Do not include varray.h.
9187e02d
JH
981 (tree_function_versioning): Remove.
982 * Makefile.in (GTFILES): Remove tree-inline.c
983 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
984 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
985 tree.
9187e02d 986
9b86d6bb
L
9872009-05-08 H.J. Lu <hongjiu.lu@intel.com>
988 Andrew Morrow <acm@google.com>
989
990 PR c/36892
991 * c-common.c (c_common_attribute_table): Permit deprecated
992 attribute to take an optional argument.
993 (handle_deprecated_attribute): If the optional argument to
994 __attribute__((deprecated)) is not a string ignore the attribute
995 and emit a warning.
996
997 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
998 * c-typeck.c (build_component_ref): Likewise.
999 (build_external_ref): Likewise.
1000
1001 * toplev.c (warn_deprecated_use): Add an attribute argument.
1002 Emit the message associated with __attribute__((deprecated)).
1003
1004 * toplev.h (warn_deprecated_use): Updated.
1005
1006 * doc/extend.texi: Document new optional parameter to
1007 __attribute__((deprecated))
1008
82ad047f
ME
10092009-05-08 Michael Eager <eager@eagercon.com>
1010
1011 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1012 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1013
788d3075
RG
10142009-05-08 Richard Guenther <rguenther@suse.de>
1015
1016 PR tree-optimization/40062
1017 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1018 Avoid exponential behavior.
1019
00952e97
PB
10202009-05-08 Paolo Bonzini <bonzini@gnu.org>
1021
1022 PR rtl-optimization/33928
1023 PR 26854
1024 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1025 process_uses, build_single_def_use_links): New.
1026 (update_df): Update use_def_ref.
1027 (forward_propagate_into): Use get_def_for_use instead of use-def
1028 chains.
1029 (fwprop_init): Call build_single_def_use_links and let it initialize
1030 dataflow.
1031 (fwprop_done): Free use_def_ref.
1032 (fwprop_addr): Eliminate duplicate call to df_set_flags.
1033 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
1034 df_rd_simulate_one_insn): New.
1035 (df_rd_bb_local_compute_process_def): Update head comment.
1036 (df_chain_create_bb): Use the new RD simulation functions.
1037 * df.h (df_rd_simulate_artificial_defs_at_top,
1038 df_rd_simulate_one_insn): New.
1039 * opts.c (decode_options): Enable fwprop at -O1.
1040 * doc/invoke.texi (-fforward-propagate): Document this.
1041
2ca862e9
JM
10422009-05-08 Joseph Myers <joseph@codesourcery.com>
1043
1044 PR c/24581
1045 * c-typeck.c (build_binary_op): Handle arithmetic between one real
1046 and one complex operand specially.
1047 * tree-complex.c (some_nonzerop): Do not identify a real value as
1048 zero if flag_signed_zeros.
1049
3e807ffc
PB
10502009-05-08 Paolo Bonzini <bonzini@gnu.org>
1051
1052 PR rtl-optimization/33928
7925c06c 1053 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 1054
1bfdbb29
PB
10552009-05-08 Paolo Bonzini <bonzini@gnu.org>
1056
1057 PR rtl-optimization/33928
e913423f
EB
1058 * loop-invariant.c (struct use): Add addr_use_p.
1059 (struct def): Add n_addr_uses.
1060 (struct invariant): Add cheap_address.
1061 (create_new_invariant): Set cheap_address.
1062 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
1063 (record_uses): Pass df_ref to record_use.
1064 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1065 used only as such.
1bfdbb29 1066
702cb2a0
KK
10672009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
1068
1069 * config/sh/sh.c: Do not include c-pragma.h.
1070
5e8df753
AP
10712009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
1072
1073 * config/spu/spu.c: Remove include of c-common.h.
1074
6ec637a4
JJ
10752009-05-07 Janis Johnson <janis187@us.ibm.com>
1076
1077 PR c/39037
1078 * c-common.h (mark_valid_location_for_stdc_pragma,
1079 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1080 clear_float_const_decimal64, float_const_decimal64_p): New.
1081 * c.opt (Wunsuffixed-float-constants): New.
1082 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1083 unsuffixed float constant, handle new warning.
1084 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1085 * c-decl.c (c_scope): New flag float_const_decimal64.
1086 (set_float_const_decimal64, clear_float_const_decimal64,
1087 float_const_decimal64_p): New.
1088 (push_scope): Set new flag.
1089 * c-parser.c (c_parser_translation_unit): Mark when it's valid
1090 to use STDC pragmas.
1091 (c_parser_external_declaration): Ditto.
1092 (c_parser_compound_statement_nostart): Ditto.
1093 * c-pragma.c (valid_location_for_stdc_pragma,
1094 mark_valid_location_for_stdc_pragma,
1095 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1096 handle_pragma_float_const_decimal64): New.
1097 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1098 * cp/semantics.c (valid_location_for_stdc_pragma_p,
1099 set_float_const_decimal64, clear_float_const_decimal64,
1100 float_const_decimal64_p): New dummy functions.
1101 * doc/extend.texi (Decimal Float): Remove statement that the
1102 pragma, and suffix for double constants, are not supported.
1103 * doc/invoke.texi (Warning Options): List new option.
1104 (-Wunsuffixed-float-constants): New.
1105
45b9b2e9
SB
11062009-05-08 Steven Bosscher <steven@gcc.gnu.org>
1107
1108 * config/i386/i386.c: Do not include c-common.h.
1109
e71da632
MH
11102009-05-07 Mark Heffernan <meheff@google.com>
1111
1112 * doc/invoke.texi (Debugging Options): Document change of debugging
1113 dump location.
e913423f 1114 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
1115 aux_base_name directory.
1116
fe4c7bc6
HS
11172009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1118
1119 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1120 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1121
3b3e44eb
RAE
11222009-05-07 Rafael Avila de Espindola <espindola@google.com>
1123
1124 * Makefile.in (install-plugin): Simplify a bit.
1125
fac41238
PB
11262009-05-07 Paolo Bonzini <bonzini@gnu.org>
1127
1128 * Makefile.in (OBJS-common): Add regcprop.o.
1129 (regcprop.o): New.
1130 * timevar.def (TV_CPROP_REGISTERS): New.
1131 * regrename.c (regrename_optimize): Return 0.
1132 (rest_of_handle_regrename): Delete.
1133 (pass_rename_registers): Point to regrename_optimize.
1134 (struct value_data_entry, struct value_data,
1135 kill_value_one_regno, kill_value_regno, kill_value,
1136 set_value_regno, init_value_data, kill_clobbered_value,
1137 kill_set_value, kill_autoinc_value, copy_value,
1138 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1139 replace_oldest_value_reg, replace_oldest_value_addr,
1140 replace_oldest_value_mem, copyprop_hardreg_forward_1,
1141 debug_value_data, validate_value_data): Move...
1142 * regcprop.c: ... here.
1143 (rest_of_handle_cprop): Delete.
1144 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1145
472e0df9
JJ
11462009-05-07 Jakub Jelinek <jakub@redhat.com>
1147
1148 PR middle-end/40057
1149 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1150 GEN_INT for 1 << bitnum.
1151 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1152 build_int_cst_type.
1153
0d50d55a
UB
11542009-05-07 Uros Bizjak <ubizjak@gmail.com>
1155
1156 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 1157 Remove wrong description of "nand" operation.
0d50d55a 1158
22f597f1
RG
11592009-05-06 Richard Guenther <rguenther@suse.de>
1160 Adam Nemet <anemet@caviumnetworks.com>
1161
1162 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1163 comment. Add that if LHS is not a gimple register, then RHS1 has
1164 to be a single object (GIMPLE_SINGLE_RHS).
1165
641cac0b
AN
11662009-05-06 Adam Nemet <anemet@caviumnetworks.com>
1167
1168 * expr.c (get_def_for_expr): Move it up in the file.
1169 (store_field): When expanding a bit-field store, look at the
1170 defining gimple stmt for the masking conversion.
1171
5a5c6435
JJ
11722009-05-06 Janis Johnson <janis187@us.ibm.com>
1173
1174 PR middle-end/39986
1175 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1176 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1177 32-bit memcpy into long.
1178
96474f36
JJ
11792009-05-06 Jakub Jelinek <jakub@redhat.com>
1180
1181 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1182 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1183 new_reg_loc_descr.
1184 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1185 instead of appending DW_OP_deref*.
1186
529ff441
MM
11872009-05-06 Michael Matz <matz@suse.de>
1188
1189 PR middle-end/40021
1190 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1191 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1192
9419a9fd
RAE
11932009-05-06 Rafael Avila de Espindola <espindola@google.com>
1194
1195 * Makefile.in (install-plugin): Fix srcdir handling.
1196
fff1894c
AB
11972009-05-06 Andrey Belevantsev <abel@ispras.ru>
1198
1199 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1200 when processing for not_regs_needed bitmap.
1201 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1202 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
1203 handling it for rhs.
1204
700ae70c
L
12052009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1206
ab3426a7 1207 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 1208 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
1209 * config/i386/predicates.md (incdec_operand): Likewise.
1210 (aligned_operand): Likewise.
1211 * config/i386/sse.md (divv8sf3): Likewise.
1212 (sqrtv8sf2): Likewise.
1213
67341fb5
L
12142009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1215
1216 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1217
1218 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1219
87946f42
L
12202009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1221
1222 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1223 ssemodesuffixf2c with avxmodesuffixf2c.
1224
1202aec1
JM
12252009-05-06 Joseph Myers <joseph@codesourcery.com>
1226
1227 PR c/40032
aa016ff7 1228 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 1229
6e57a01d
JJ
12302009-05-05 Jakub Jelinek <jakub@redhat.com>
1231
1232 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1233 (struct tree_base): Adjust spacing for 8 bit boundaries.
1234 (struct tree_decl_common): Add decl_by_reference_flag bit.
1235 (DECL_BY_REFERENCE): Adjust.
1236 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1237 print DECL_BY_REFERENCE bit.
1238 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1239 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1240 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1241 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
1242 unconditionally.
1243
32f579f6
JJ
1244 PR middle-end/39666
1245 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1246 range of the type, but default label is missing, add it with one
1247 of the existing labels instead of adding a new label for it.
1248
617ab743
JM
12492009-05-05 Joseph Myers <joseph@codesourcery.com>
1250
1251 * dwarf.h: Remove.
1252
bf016de8
RAE
12532009-05-05 Rafael Avila de Espindola <espindola@google.com>
1254
1255 * Makefile.in (enable_plugin, plugin_includedir): New.
1256 (install): Depend on install-plugin.
1257 (PLUGIN_HEADERS): New.
1258 (install-plugin): New.
1259 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1260
7f8fdb9f
RG
12612009-05-05 Richard Guenther <rguenther@suse.de>
1262
1263 PR tree-optimization/40022
1264 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1265 the only vuse.
1266 (phivn_valid_p): Fix tuplification error, simplify.
1267 (phiprop_insert_phi): Add dumps.
1268 (propagate_with_phi): Simplify.
1269
8d972839
RG
12702009-05-05 Richard Guenther <rguenther@suse.de>
1271
1272 PR middle-end/40023
aa016ff7 1273 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 1274
66ba9b0b
SZ
12752009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
1276
1277 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
1278 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1279 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1280 block_ultimate_origin): Rearrange the declarations line to match the
1281 comment that indicates the .c file which the functions are defined.
1282 (dwarf2out_*, set_decl_rtl): Add comment.
1283 (get_base_address): Adjust comment.
1284 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1285 declarations line and add comment.
1286 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 1287
4f1e4960
JM
12882009-05-04 Joseph Myers <joseph@codesourcery.com>
1289
1290 * attribs.c (decl_attributes): Use %qE for identifiers in
1291 diagnostics.
1292 * cgraphunit.c (verify_cgraph_node): Translate function names to
1293 locale character set in diagnostics.
1294 * coverage.c (get_coverage_counts): Use %qE for identifiers in
1295 diagnostics.
1296 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1297 Document that functions are named in UTF-8.
1298 * expr.c (expand_expr_real_1): Translate function names to locale
1299 character set in diagnostics.
1300 * gimplify.c (omp_notice_variable, omp_is_private,
1301 gimplify_scan_omp_clauses): Use %qE for identifiers in
1302 diagnostics.
1303 * langhooks.c (lhd_print_error_function): Translate function names
1304 to locale character set.
1305 * langhooks.h (decl_printable_name): Document that return value is
1306 in internal character set.
1307 * stmt.c: Include pretty-print.h
1308 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1309 diagnostics.
1310 (resolve_operand_name_1): Translate named operand name to locale
1311 character set.
1312 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1313 diagnostics.
1314 * toplev.c (announce_function): Translate function names to locale
1315 character set.
1316 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1317 (default_tree_printer): Use pp_identifier or translate identifiers
1318 to locale character set. Mark "<anonymous>" for translation.
1319 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1320 for identifiers in diagnostics.
1321 * tree.c (handle_dll_attribute): Use %qE for identifiers in
1322 diagnostics.
1323 * varasm.c (output_constructor): Use %qE for identifiers in
1324 diagnostics.
1325
40540e68
RAE
13262009-05-04 Rafael Avila de Espindola <espindola@google.com>
1327
1328 * configure.ac: use ` ` instead of $()
1329 * configure: Regenerate.
1330
33fc884c
BE
13312009-05-05 Ben Elliston <bje@au.ibm.com>
1332
1333 * config/pa/linux-atomic.c: Eliminate conditional include of
1334 errno.h on non-LP64 systems to simplify build requirements.
1335
88388a52
JM
13362009-05-04 Joseph Myers <joseph@codesourcery.com>
1337
1338 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1339 diagnostics.
1340 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1341 and pass value to identifier_to_locale.
1342 (warn_variable_length_array): Make name a tree.
1343 (grokdeclarator): Separate diagnostic texts for named and unnamed
1344 declarators. Use %qE for named declarators.
1345 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
1346 diagnostics.
1347 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
1348 identifiers in diagnostics.
1349 * c-typeck.c (push_member_name, start_init): Pass identifiers to
1350 identifier_to_locale. Mark "anonymous" strings for translation.
1351
960c5c79
ME
13522009-05-04 Michael Eager <eager@eagercon.com>
1353
1354 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 1355 address for DImode/DFmode only if double-precision FP regs.
960c5c79 1356
d083fbba
ME
13572009-05-04 Michael Eager <eager@eagercon.com>
1358
1359 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
1360 TARGET_SINGLE_FLOAT check.
1361
c3ba8d32
ME
13622009-05-04 Michael Eager <eager@eagercon.com>
1363
1364 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
1365
edce9f18
ME
13662009-05-04 Michael Eager <eager@eagercon.com>
1367
1368 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
1369 * config/rs6000/t-xilinx: New
1370
506d7b68
PB
13712009-05-04 Paolo Bonzini <bonzini@gnu.org>
1372
e913423f 1373 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
1374 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
1375 * gcc/explow.c (memory_address): Use target hook.
1376 * gcc/targhooks.c (default_legitimize_address): New.
1377 * gcc/targhooks.h (default_legitimize_address): New.
1378 * gcc/target.h (legitimize_address): New.
1379 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
1380 (TARGET_INITIALIZER): Include it.
1381 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
1382
1383 * config/bfin/bfin-protos.h (legitimize_address): Remove.
1384 * config/bfin/bfin.c (legitimize_address): Remove.
1385 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
1386 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
1387 Remove.
506d7b68
PB
1388 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
1389 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
1390
1391 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
1392 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
1393 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
1394 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
1395 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
1396 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
1397 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
1398 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
1399 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
1400 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
1401 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
1402 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
1403 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
1404 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
1405 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
1406 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
1407 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
1408 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
1409 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
1410 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
1411 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
1412 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
1413 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
1414
1415 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
1416 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
1417 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
1418 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
1419 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
1420 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
1421 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
1422 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
1423 (thumb_legitimize_address): Delete.
1424 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
1425 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
1426 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
1427 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
1428 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
1429 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
1430 Delete.
1431 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
1432 Delete.
506d7b68
PB
1433
1434 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
1435 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
1436 * config/m32r/m32r.c (m32r_legitimize_address): New.
1437 * config/m68k/m68k.c (m68k_legitimize_address): New.
1438 * config/score/score.c (score_legitimize_address): Standardize.
1439 * config/score/score3.c (score3_legitimize_address): Standardize.
1440 * config/score/score3.h (score3_legitimize_address): Adjust.
1441 * config/score/score7.c (score7_legitimize_address): Standardize.
1442 * config/score/score7.h (score7_legitimize_address): Adjust.
1443 * config/sh/sh.c (sh_legitimize_address): New.
1444 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
1445
1446 * gcc/config/s390/s390.c (legitimize_address): Rename to...
1447 (s390_legitimize_address): ... this.
1448 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
1449 (sparc_legitimize_address): ... this.
1450 * gcc/config/i386/i386.c (legitimize_address): Rename to...
1451 (ix86_legitimize_address): ... this.
1452 * gcc/config/avr/avr.c (legitimize_address): Rename to...
1453 (avr_legitimize_address): ... this.
1454 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
1455 (mn10300_legitimize_address): ... this.
1456 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
1457 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
1458 (alpha_expand_mov): Adjust call.
1459
1460 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
1461 * config/spu/spu.c (spu_legitimize_address): Likewise.
1462 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
1463 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
1464
a3af5087
JM
14652009-05-04 Joseph Myers <joseph@codesourcery.com>
1466
1467 * intl.c (locale_encoding, locale_utf8): New.
1468 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
1469 * intl.h (locale_encoding, locale_utf8): Declare.
1470 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
1471 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
1472 New.
1473 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
1474 argument.
1475 (pp_tree_identifier): Define to call pp_base_tree_identifier.
1476 (pp_base_tree_identifier): Declare as function.
1477 (identifier_to_locale): Declare.
1478 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 1479 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 1480
ea5cd5f1
RG
14812009-05-04 Richard Guenther <rguenther@suse.de>
1482
1483 PR middle-end/40015
1484 * builtins.c (fold_builtin_memory_op): Do not decay to element
1485 type if the size matches the whole array.
1486
ddc2690a
KH
14872009-05-04 Kazu Hirata <kazu@codesourcery.com>
1488
1489 * expmed.c (synth_mult): When trying out a shift, pass the result
1490 of a signed shift.
1491
ef268d34
KH
14922009-05-04 Kazu Hirata <kazu@codesourcery.com>
1493
1494 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
1495 (shiftsub1_cost): New.
1496 (init_expmed): Compute shiftsub1_cost.
1497 (synth_mult): Optimize multiplications by constants of the form
1498 -(2^^m-1) for some constant positive integer m.
1499
255d3827
RG
15002009-05-03 Richard Guenther <rguenther@suse.de>
1501
1502 PR c/39983
1503 * c-typeck.c (array_to_pointer_conversion): Do not built
1504 ADDR_EXPRs of arrays of pointer-to-element type.
1505 * c-gimplify.c (c_gimplify_expr): Revert change fixing
1506 up wrong ADDR_EXPRs after-the-fact.
1507 * c-common.c (strict_aliasing_warning): Strip pointer
1508 conversions for obtaining the original type.
1509 * builtins.c (fold_builtin_memset): Handle array types.
1510 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
1511 and array types
1512
16c33770
RG
15132009-05-03 Richard Guenther <rguenther@suse.de>
1514
1515 PR middle-end/23329
1516 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
1517 Do not lose casts from array types with unknown extent to array
1518 types with known extent.
1519 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
1520 alias set compatibility.
1521
62a67c94
MLI
15222009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
1523
1524 * flags.h (extra_warnings): Delete.
1525 * toplev.c (process_options): Handle Wuninitialized here.
1526 * opts.c (extra_warnings): Delete.
1527 (set_Wextra): Delete.
1528 (common_handle_option): -Wextra can be handled automatically.
1529 * c-opts.c (c_common_handle_option): Delete obsolete code.
1530 (c_common_post_options): Simplify comment.
1531 * common.opt (W): Add Var.
1532 (Wextra): Add Var.
1533 (Wuninitialized): Initialize to -1.
1534
8c7926c4
AN
15352009-05-03 Adam Nemet <anemet@caviumnetworks.com>
1536 Richard Guenther <rguenther@suse.de>
1537
1538 * expr.c (get_def_for_expr): New function.
1539 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
1540 SSA rather than trees.
1541 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
1542 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
1543
fa5da7de
JM
15442009-05-03 Joseph Myers <joseph@codesourcery.com>
1545
1546 * c-common.c (reswords): Add _Imaginary.
1547 * c-common.c (enum rid): Add RID_IMAGINARY.
1548
2ddd5020
PB
15492009-05-03 Paolo Bonzini <bonzini@gnu.org>
1550
1551 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
1552 Patch by Richard Guenther.
1553
aea88c05
AS
15542009-05-03 Anatoly Sokolov <aesok@post.ru>
1555
1556 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
1557 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1558 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
1559 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
1560 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
1561 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
1562 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
1563 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
1564 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
1565 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
1566 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
1567 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
1568 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
1569 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
1570 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
1571 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
1572 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
1573 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
1574
85e59f3a
RG
15752009-05-02 Richard Guenther <rguenther@suse.de>
1576
1577 PR tree-optimization/39940
1578 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
1579 doing so.
1580
4636b850
RG
15812009-05-02 Richard Guenther <rguenther@suse.de>
1582
1583 PR middle-end/40001
1584 * tree-ssa.c (execute_update_addresses_taken): Properly check
1585 if we can mark a variable DECL_GIMPLE_REG_P.
1586 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
1587 back to the end of the function.
1588 (is_gimple_reg_type): Remove complex type special casing.
1589 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
1590 if not optimizing.
1591
5e10cb5a
BE
15922009-05-02 Ben Elliston <bje@au.ibm.com>
1593
1594 * doc/collect2.texi (Collect2): Document search path behaviour
1595 when configured with --with-ld.
1596
048bf48b
JH
15972009-05-02 Jan Hubicka <jh@suse.cz>
1598
1599 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
1600 parameter; update callers.
aa016ff7
UB
1601 (coalesce_cost_edge): EH edges are costier because they needs
1602 splitting even if not critical and even more costier when there are
1603 multiple EH predecestors.
048bf48b 1604
d5c5f9ab
JH
16052009-05-02 Jan Hubicka <jh@suse.cz>
1606
1607 * except.c (remove_eh_handler_and_replace): Handle updating after
1608 removing TRY blocks.
1609
2ed1959a
EB
16102009-05-02 Eric Botcazou <ebotcazou@adacore.com>
1611
1612 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
1613
d363a7e7
SB
16142009-05-02 Steven Bosscher <steven@gcc.gnu.org>
1615
1616 * varasm.c: Do not include c-pragma.h.
1617 * attribs.c: Do not incude c-common.h.
1618
9c3d55b4
MM
16192009-05-01 Michael Matz <matz@suse.de>
1620
1621 * calls.c (initialize_argument_information): Handle SSA names like
1622 decls with a non MEM_P DECL_RTL.
1623
ea264ca5
SB
16242009-05-01 Steven Bosscher <steven@gcc.gnu.org>
1625
1626 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
1627 * ipa-utils.c: Likewise.
1628 * ipa-type-escape.c: Likewise.
1629 * cgraphunit.c Do not include c-common.h.
1630 * ipa-pure-const.c: Likewise.
1631 * tree-if-conv.c: Likewise.
1632 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
1633 * ipa-struct-reorg.c: Likewise.
1634 * tree-nomudflap.c: Likewise.
1635 * tree-ssa-structalias.c: Likewise.
1636
6c5d4d1a
SB
16372009-05-01 Steven Bosscher <steven@gcc.gnu.org>
1638
1639 * store-motion.c: Many cleanups to make this pass a first-class
1640 citizen instead of an appendix to gcse load motion. Add TODO list
1641 to make this pass faster/cleaner/better.
1642
1643 (struct ls_expr): Post gcse.c-split cleanups.
1644 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
1645 "stores" field to "avail_stores".
1646 (pre_ldst_mems): Rename to store_motion_mems.
1647 (pre_ldst_table): Rename to store_motion_mems_table.
1648 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
1649 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
1650 (ldst_entry): Rename to st_expr_entry, update users.
1651 (free_ldst_entry): Rename to free_st_expr_entry, update users.
1652 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
1653 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
1654 update caller.
6c5d4d1a
SB
1655 (first_ls_expr): Rename to first_st_expr, update users.
1656 (next_ls_expr): Rename to next_st_expr, update users.
1657 (print_ldst_list): Rename to print_store_motion_mems. Print names of
1658 fields properly for store motion instead of names inherited from load
1659 motion in gcse.c.
1660 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
1661 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
1662 are done with it.
1663
1664 (ae_kill): Rename to st_kill, update users.
1665 (ae_gen): Rename to st_avloc, update users.
1666 (transp): Rename to st_transp, update users.
1667 (pre_insert_map): Rename to st_insert_map, update users.
1668 (pre_delete_map): Rename to st_delete_map, update users.
1669 (insert_store, build_store_vectors, free_store_memory,
1670 one_store_motion_pass): Update for abovementioned changes.
1671
1672 (gcse_subst_count, gcse_create_count): Remove.
1673 (one_store_motion_pass): New statistics counters "n_stores_deleted"
1674 and "n_stores_created", local variables.
1675
1676 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
1677 use for_each_rtx.
1678
1679 (regvec, compute_store_table_current_insn): Remove.
1680 (reg_set_info, reg_clear_last_set): Remove.
1681 (compute_store_table): Use DF caches instead of local dataflow
1682 solvers.
1683
b02cec6e
JM
16842009-05-01 Joseph Myers <joseph@codesourcery.com>
1685
1686 * c-objc-common.c (c_tree_printer): Print identifiers with
1687 pp_identifier, not pp_string. Mark "({anonymous})" for
1688 translation.
1689 * c-pretty-print.c (pp_c_ws_string): New.
1690 (pp_c_cv_qualifier, pp_c_type_specifier,
1691 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
1692 pp_c_storage_class_specifier, pp_c_function_specifier,
1693 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
1694 pp_c_primary_expression, pp_c_postfix_expression,
1695 pp_c_unary_expression, pp_c_shift_expression,
1696 pp_c_relational_expression, pp_c_equality_expression,
1697 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
1698 use pp_string and pp_c_ws_string in place of pp_identifier and
1699 pp_c_identifier for non-identifiers. Mark English strings for
1700 translation.
1701 * c-pretty-print.h (pp_c_ws_string): Declare.
1702
cd533689
PP
17032009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
1704 Roland McGrath <roland@redhat.com>
1705
aa016ff7 1706 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
1707 (ENABLE_LD_BUILDID): New configuration option.
1708 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
1709 (LINK_BUILDID_SPEC): New macro.
1710 (init_spec): If defined, prepend it between LINK_EH_SPEC and
1711 link_spec.
1712 * doc/install.texi: Document --enable-linker-build-id option.
1713 * configure: Rebuild.
1714 * config.in: Rebuild.
1715
ba6adec4
AN
17162009-04-30 Adam Nemet <anemet@caviumnetworks.com>
1717
1718 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
1719 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
1720 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
1721 MIPS_GP_SAVE_AREA_SIZE.
1722 * config/mips/mips.c (struct mips_frame_info): Update comment
1723 before arg_pointer_offset and hard_frame_pointer_offset.
1724 (mips_compute_frame_info): Update diagram before function: to
1725 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
1726 indicate the position of frame_pointer_rtx with -fstack-protector and
1727 to show args_size. Don't allocate cprestore area for leaf functions
1728 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
1729 cprestore_size.
1730 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
1731
48f5b722
MM
17322009-04-30 Michael Matz <matz@suse.de>
1733
ba6adec4
AN
1734 PR tree-optimization/39955
1735 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 1736
b65d6744
DK
17372009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
1738
1739 * ira.c (setup_cover_and_important_classes): Use safe macro
1740 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
1741 directly.
1742 * genpreds.c (write_tm_preds_h): Output suitable definition of
1743 REG_CLASS_FOR_CONSTRAINT.
1744
f136c8ae
RAE
17452009-04-30 Rafael Avila de Espindola <espindola@google.com>
1746
1747 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
1748 instead of an int.
1749 * bitmap.c (bitmap_descriptor): Likewise.
1750 * ggc-common.c (loc_descriptor): Likewise.
1751 * varray.c (varray_descriptor): Likewise.
1752 * vec.c (vec_descriptor): Likewise.
1753
43fcece8 17542009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
1755
1756 * Makefile.in (dce.o): Add $(EXCEPT_H).
1757 * dce.c: Include except.h and delete redundant vector definitions.
1758 (deletable_insn_p): Return false for non-call insns that can throw
1759 if DF is running.
1760
df35c271
SB
17612009-04-30 Steven Bosscher <steven@gcc.gnu.org>
1762
1763 * gcse.c (ae_gen): Remove.
1764 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
1765 and make non-static function to make it available in store-motion.c.
1766 Update call sites with search-and-replace.
1767 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
1768 extract_mentioned_regs, extract_mentioned_regs_helper,
1769 find_moveable_store, compute_store_table, load_kills_store, find_loads,
1770 store_killed_in_insn, store_killed_after, store_killed_before,
1771 build_store_vectors, insert_insn_start_basic_block, insert-store,
1772 remove_reachable_equiv_notes, replace_store_insn, delete_store,
1773 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
1774 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
1775 * store-motion.c: ...new file. Also copy data structures from gcse.c
1776 and clean up to remove parts not used by store motion.
1777 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
1778 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
1779
f711a87a
RR
17802009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1781
1782 PR target/38571
1783 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
1784 when optimizing for size.
1785
fa5ed76e
HPN
17862009-04-30 Hans-Peter Nilsson <hp@axis.com>
1787
1788 * gcse.c (gcse_constant_p): Fix typo in last change.
1789
0acbbdb0
RAE
17902009-04-30 Rafael Avila de Espindola <espindola@google.com>
1791
1792 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
1793
82f5c05d
AK
17942009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
1795
1796 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
1797
6d8f135b
JW
17982009-04-29 James E. Wilson <wilson@codesourcery.com>
1799
1800 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
1801 CONST_HIGH_PART result.
1802
c21ca196
AS
18032009-04-29 Anatoly Sokolov <aesok@post.ru>
1804
1805 * config/avr/avr.c (initial_elimination_offset): Rename to
1806 avr_initial_elimination_offset.
1807 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
1808 change return type to bool.
1809 (avr_can_eliminate): New function.
1810 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
1811 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
1812 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 1813 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
1814 avr_initial_elimination_offset.
1815 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
1816 (avr_initial_elimination_offset): Define.
1817
2a34bece 18182009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 1819 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
1820
1821 PR rtl-optimization/39938
1822 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
1823 * cfgrtl.c: Include insn-attr.h.
1824 (rest_of_pass_free_cfg): New function.
1825 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
1826 * resource.c (init_resource_info): Remove call to df_analyze.
1827
5dc7911e
RG
18282009-04-29 Richard Guenther <rguenther@suse.de>
1829
1830 PR target/39943
1831 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
1832 allow conversion to signed integers.
1833
1fe479fd
RG
18342009-04-29 Richard Guenther <rguenther@suse.de>
1835
1836 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
1837 shifts of floating point vectors if the shift amount is
1838 a constant multiple of the element size.
1839
8e001680
AK
18402009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
1841 Michael Matz <matz@suse.de>
1842
1843 PR middle-end/39927
1844 PR bootstrap/39929
1845 * tree-outof-ssa.c (emit_partition_copy): New function.
1846 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
1847 insert_part_to_rtx_on_edge): Perform the partition base var
1848 copy using emit_partition_copy.
1849 (insert_value_copy_on_edge): Convert constants to the right mode.
1850 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
1851 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
1852
e50e3081
BS
18532009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1854
1855 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
1856 scan backwards to try to find a constant to initialize it.
1857
4e5d521b
BS
1858 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
1859 insn before the loop_end instruction, don't look past labels.
1860
7c90021d
RG
18612009-04-29 Richard Guenther <rguenther@suse.de>
1862
1863 PR middle-end/39937
1864 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
1865 loose type conversions.
1866 (forward_propagate_addr_expr): Fix tuplification bug. Remove
1867 stmts only if there are no uses of its definition.
1868
97a988bc
BS
18692009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1870
1871 * config/bfin/bfin.h (splitting_loops): Declare.
1872 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
1873 Reorder bit definitions to be ascending.
1874 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
1875 * config/bfin/bfin.c (splitting_loops): New variable.
1876 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
1877 (struct loop_info): Remove members INIT and LOOP_INIT.
1878 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
1879 the LSETUP sequence. Allow LC to be loaded from any register, but
1880 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
1881 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
1882 set to 1.
1883 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
1884 of reload_completed.
aa016ff7 1885
97a988bc
BS
1886 From Jie Zhang:
1887 * config/bfin/bfin.md (movsi_insn): Refine constraints.
1888
0c463e16
RAE
18892009-04-29 Rafael Avila de Espindola <espindola@google.com>
1890
1891 * Makefile.in (PLUGIN_VERSION_H): New.
1892 (OBJS-common): Remove plugin-version.o.
1893 (plugin.o): Depend on (PLUGIN_VERSION_H).
1894 (plugin-version.o): Remove.
1895 * configure: Regenerate
1896 * configure.ac: Create plugin-version.h.
1897 * gcc-plugin.h (plugin_gcc_version): Remove.
1898 (plugin_default_version_check): Change signature.
1899 * plugin-version.c: Remove.
1900 * plugin.c: Include plugin-version.h.
1901 (str_plugin_gcc_version_name): Remove.
1902 (try_init_one_plugin): Pass gcc version to plugin_init.
1903 (plugin_default_version_check): Both gcc and plugin versions are now
1904 arguments.
1905
307e7eab
BS
19062009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1907
1908 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
1909 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
1910 Remove special case testing for last insn of inner loops. Don't fail
1911 if the loop ends with a jump, emit an extra nop instead.
307e7eab 1912
c5d96723
BS
1913 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
1914 DREGS rather than comparing directly. Remove code that tries to
1915 account for latencies.
1916
de0b4ad5
RG
19172009-04-29 Richard Guenther <rguenther@suse.de>
1918
1919 PR tree-optimization/39941
1920 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
1921 eliminating an indirect call.
1922
3a19701a
RG
19232009-04-29 Richard Guenther <rguenther@suse.de>
1924
1925 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
1926 parameter. Allow invariants as base if !require_lvalue.
1927 (verify_gimple_assign_single): Adjust.
1928
a0a31d1e
BS
19292009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1930
1931 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
1932 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
1933 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
1934 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
1935 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
1936 a VEC_SELECT.
aa016ff7
UB
1937 * config/bfin/bfin.c (bfin_expand_builtin,
1938 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 1939
795bd26a
RG
19402009-04-28 Richard Guenther <rguenther@suse.de>
1941
1942 * tree-vect-loop.c (get_initial_def_for_induction): Use
1943 correct types for pointer increment.
1944
04be270f
KG
19452009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1946
1947 * toplev.c (print_version): Update GMP version string calculation.
1948
e1a3b85c
EB
19492009-04-28 Eric Botcazou <ebotcazou@adacore.com>
1950
1951 PR rtl-optimization/39938
1952 * resource.c (init_resource_info): Add call to df_analyze.
1953
8224166e
UB
19542009-04-28 Uros Bizjak <ubizjak@gmail.com>
1955
1956 * config/alpha/alpha.md (usegp): Cast the result of
1957 alpha_find_lo_sum_using_gp to enum attr_usegp.
1958 * config/alpha/alpha.c (override_options): Remove end-of-structure
1959 marker element from cpu_table. Use array size of cpu_table to handle
1960 -mcpu and -mtune options.
1961 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
1962
c5f0fe67
JM
19632009-04-28 Joseph Myers <joseph@codesourcery.com>
1964
1965 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
1966 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
1967 tune_32 and tune_64.
1968 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
1969 support on PowerPC.
1970 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
1971 * config/rs6000/option-defaults.h: ... here. New file.
1972 (OPT_64, OPT_32): Define.
1973 (MASK_64BIT): Define to 0 if not already defined.
1974 (OPT_ARCH64, OPT_ARCH32): Define.
1975 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
1976 and tune_64.
1977
0c48a567
RR
19782009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1979
1980 * config/arm/arm.c (arm_override_options): Emit error on using
1981 fpa with AAPCS.
1982
f1028b9d
UB
19832009-04-28 Uros Bizjak <ubizjak@gmail.com>
1984
1985 PR rtl-optimization/39914
1986 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
1987 registers for allocnos created from user-defined variables only
1988 when not optimizing.
1989
e0dd989a
RG
19902009-04-28 Richard Guenther <rguenther@suse.de>
1991
1992 PR middle-end/39937
1993 * fold-const.c (fold_binary): Use distribute_real_division only
1994 on float types.
1995
9a17c91d
SE
19962009-04-28 Steve Ellcey <sje@cup.hp.com>
1997
1998 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
1999 add hpux-stdint.h to tm_file.
2000 (hppa[12]*-*-hpux11*): Ditto.
2001 (ia64*-*-hpux*): Ditto.
2002 * config/hpux-stdint.h: New.
60839f5d 2003 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 2004 __STDC_EXT__ for all compiles.
60839f5d
EB
2005 * config/pa/pa-hpux.h: Ditto.
2006 * config/pa/pa-hpux10.h: Ditto.
2007 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 2008
af04e659
CM
20092009-04-28 Catherine Moore <clm@codesourcery.com>
2010
2011 * debug.h (set_name): Add comment.
2012
04ef80ce
AP
20132009-04-28 Andrew Pinski <pinskia@gmail.com>
2014
2015 PR target/39929
2016 * config/darwin.c (machopic_gen_offset): Check
2017 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2018 * config/arm/arm.c (require_pic_register): Likewise.
2019
65ad77af
PB
20202009-04-28 Paolo Bonzini <bonzini@gnu.org>
2021
8224166e
UB
2022 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2023 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2024 m32c_promote_prototypes): Delete.
65ad77af 2025
1b15a008
MM
20262009-04-28 Michael Matz <matz@suse.de>
2027
2028 PR middle-end/39922
2029 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2030 constants.
2031
7569a6cc
RG
20322009-04-28 Richard Guenther <rguenther@suse.de>
2033
f1028b9d 2034 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 2035
ead204d9
RR
20362009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2037
2038 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2039 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2040 * config/arm/arm-tune.md: Regenerate.
2041
f2c45f08 20422009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 2043
f2c45f08
AM
2044 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2045 block if there are complex incoming edges.
2046 (sel_merge_blocks): Remove useless assert.
2047 (sel_redirect_edge_and_branch): Check that edge was redirected.
2048 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2049 (sel_find_rgns): Delete declaration.
2050 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2051 the region when it is not a preheader.
2052
7a00d767
UB
20532009-04-28 Uros Bizjak <ubizjak@gmail.com>
2054
2055 PR c/39323
2056 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2057
448ee662
RG
20582009-04-28 Richard Guenther <rguenther@suse.de>
2059
2060 * tree.h (SSA_NAME_VALUE): Remove.
2061 (struct tree_ssa_name): Remove value_handle member.
2062 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2063 array for jump threading.
2064 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2065 SSA_NAME_VALUEs.
2066 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2067 * tree-flow.h (threadedge_initialize_values): Declare.
2068 (threadedge_finalize_values): Likewise.
2069 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2070 (SSA_NAME_VALUE): Define.
2071 (threadedge_initialize_values): New function.
2072 (threadedge_finalize_values): Likewise.
2073 * tree-ssa-dom.c (ssa_name_values): New global variable.
2074 (SSA_NAME_VALUE): Define.
f1028b9d 2075 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 2076
8644a673
IR
20772009-04-28 Ira Rosen <irar@il.ibm.com>
2078
2079 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2080 Use REPORT_VECTORIZED_LOCATIONS instead
2081 REPORT_VECTORIZED_LOOPS.
2082 * tree-vectorizer.c (vect_verbosity_level): Make static.
2083 (vect_loop_location): Rename to vect_location.
2084 (vect_set_verbosity_level): Update comment.
2085 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2086 and vect_location.
2087 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2088 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2089 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
2090 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2091 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 2092 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 2093 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
2094 REPORT_UNVECTORIZED_LOCATIONS.
2095 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2096 and vect_used_in_loop and to vect_unused_in_scope and
2097 vect_used_in_scope.
2098 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2099 (vect_verbosity_level): Remove declaration.
2100 (vect_analyze_operations): Likewise.
2101 (vect_analyze_stmt): Declare.
2102 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2103 REPORT_UNVECTORIZED_LOCATIONS.
2104 (vect_get_loop_niters): Fix indentation.
2105 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2106 (vect_analyze_loop_operations): New function.
2107 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2108 vect_analyze_operations.
2109 (vect_is_simple_reduction): Use new names.
2110 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
2111 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2112 to specify whether the data references can be a part of interleaving
2113 chain.
8644a673
IR
2114 (vect_analyze_data_ref_dependence): Use new names.
2115 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2116 (vect_create_addr_base_for_vector_ref): Remove redundant code.
2117 * tree-vect-patterns.c (widened_name_p): Use new names.
2118 (vect_recog_dot_prod_pattern): Likewise.
2119 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2120 (process_use, vect_mark_stmts_to_be_vectorized,
2121 vect_model_simple_cost, vect_model_store_cost,
2122 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2123 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2124 vectorizable_operation, vectorizable_type_demotion,
2125 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2126 vectorizable_condition): Likewise.
2127 (vect_analyze_operations): Split into vect_analyze_loop_operations
2128 and ...
2129 (vect_analyze_stmt): ... new function.
2130 (new_stmt_vec_info): Use new names.
2131 (vect_is_simple_use): Use new names and fix comment.
2132 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2133 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2134
b91322f2
UB
21352009-04-28 Uros Bizjak <ubizjak@gmail.com>
2136
2137 PR target/39911
2138 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2139 and integer modes for x87 operands. Do not ICE for unsupported size,
2140 generate error instead. Generate error for unsupported operand types.
2141 ['z']: Do not handle HImode memory operands specially. Warning
2142 for floating-point operands. Fallthru to 'Z' for unsupported operand
2143 types. Do not ICE for unsupported size, generate error instead.
2144 (output_387_binary_op): Use %Z to output operands.
2145 (output_fp_compare): Ditto.
2146 (output_387_reg_move): Ditto.
2147
b2ed71b6
BE
21482009-04-28 Ben Elliston <bje@au.ibm.com>
2149
2150 PR c++/35652
2151 Revert:
2152
2153 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2154
2155 * builtins.c (c_strlen): Do not warn here.
2156 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2157 * c-common.c (pointer_int_sum): Take an explicit location.
2158 Warn about offsets out of bounds.
2159 * c-common.h (pointer_int_sum): Adjust declaration.
2160
81f40b79
ILT
21612009-04-27 Ian Lance Taylor <iant@google.com>
2162
2163 * collect2.c (is_ctor_dtor): Change type of ret field in struct
2164 names to symkind.
2165 * dce.c (run_fast_df_dce): Change type of old_flags to int.
2166 * df-core.c (df_set_flags): Change return type to int. Change
2167 type of old_flags to int.
2168 (df_clear_flags): Likewise.
2169 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2170 (df_get_conditional_uses): Likewise.
2171 * df.h (df_set_flags, df_clear_flags): Update declarations.
2172 * dwarf2out.c (struct indirect_string_node): Change type of form
2173 field to enum dwarf_form.
2174 (AT_string_form): Change return type to enum dwarf_form.
2175 * fixed-value.c (fixed_compare): Add cast to enum type.
2176 * fwprop.c (update_df): Change 0 to VOIDmode.
2177 * gensupport.c: Change 0 to UNKNOWN.
2178 * gimple.h (gimple_cond_code): Add cast to enum type.
2179 * haifa-sched.c (reemit_notes): Add cast to enum type.
2180 * hooks.c (hook_int_void_no_regs): Remove function.
2181 * hooks.h (hook_int_void_no_regs): Remove declaration.
2182 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 2183 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
2184 * real.c (real_arithmetic): Add cast to enum type.
2185 (real_compare): Likewise.
2186 * target.h (struct gcc_target): Change return type of
2187 branch_target_register_class to enum reg_class.
2188 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2189 default_branch_target_register_class.
7a00d767 2190 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 2191 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 2192 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
2193 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2194 cast to int.
2195 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2196 ERROR_MARK.
2197 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2198 vect_uninitialized_def. Change 0 to ERROR_MARK.
2199 * tree-vect-stmts.c (supportable_widening_operation): Don't
2200 initialize icode1 and icode2.
7a00d767 2201 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
2202 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2203 and to STD_C89.
2204 (cmn_err_flag_specs): Change 0 to STD_C89.
2205 (cmn_err_char_table): Likewise.
2206 * config/arm/arm.c (get_arm_condition_code): Change type of code
2207 to enum arm_cond_code.
2208 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2209 (IWMMXT_BUILTIN2): Likewise.
2210 (neon_builtin_type_bits): Don't define typedef.
2211 (neon_builtin_datum): Change type of bits field to int.
2212 (arm_expand_neon_args): Add cast to enum type.
2213 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2214 TLS_MODEL_NONE.
2215 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
2216 casts to enum type.
2217 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2218 MIPS_FP_COND_f.
2219 * config/mips/mips.md (jal_macro): Return enum constant.
2220 (single_insn): Likewise.
2221 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2222 CODE_FOR_nothing.
2223 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2224 casts to enum type.
2225 * config/s390/s390.c (s390_tune_flags): Change type to int.
2226 (s390_arch_flags): Likewise.
7a00d767 2227 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
2228 * config/s390/s390.h (s390_tune_flags): Update declaration.
2229 (s390_arch_flags): Likewise.
2230 * config/sh/sh.c (prepare_move_operands): Compare
2231 tls_symbolic_operand result with enum constant.
2232 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2233 (sh_expand_prologue): Add cast to enum type.
2234 (sh_expand_epilogue): Likewise.
2235 (tls_symbolic_operand): Change return type to enum tls_model.
2236 (fpscr_set_from_mem): Add cast to enum type.
2237 (legitimize_pic_address): Compare tls_symbolic_operand result with
2238 enum constant.
2239 (sh_target_reg_class): Change return type to enum reg_class.
2240 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2241 PROCESSOR_xxx.
7a00d767
UB
2242 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2243 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
2244 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2245 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2246 (delayed_branch, tls_call_delay): Likewise.
2247 (eligible_for_sibcall_delay): Likewise.
2248 (eligible_for_return_delay): Likewise.
2249 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2250 (spu_expand_builtin_1): Likewise.
2251
2252 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2253 for all types of conversions.
2254 (output_init_element): Issue -Wc++-compat warning if needed when
2255 initializing a bitfield with enum type.
2256 * c-parser.c (c_parser_expression): Set original_type to
2257 original_type of right hand operand of comman operator.
2258
e4ae5e77
RW
22592009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2260
2261 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2262 grammar nits.
7a00d767 2263 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
2264 * doc/cpp.texi (Standard Predefined Macros)
2265 (Implementation-defined behavior): Likewise.
7a00d767 2266 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
2267 * doc/gimple.texi (GIMPLE Exception Handling)
2268 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 2269 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
2270 * doc/invoke.texi (Warning Options, Optimize Options)
2271 (AVR Options, Darwin Options): Likewise.
2272 (Optimize Options): Reformulate -fwhole-program description.
2273 * doc/loop.texi (Lambda): Likewise.
2274 * doc/md.texi (Output Template, Define Constraints)
2275 (Standard Names, Insn Splitting): Likewise.
2276 * doc/options.texi (Option properties): Likewise.
2277 * doc/passes.texi (Tree-SSA passes): Likewise.
2278 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2279 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2280 (File Names and DBX): Likewise.
2281 * doc/trouble.texi (Incompatibilities): Likewise.
2282
1883802f 22832009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
2284
2285 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2286 instruction is correct.
2287
1883802f 22882009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
2289
2290 Allow non-constant arguments to conversion intrinsics.
2291 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2292 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2293 * spu.c (print_operand): Handle 'v' and 'w'.
2294 (exp2_immediate_p, spu_gen_exp2): Define.
2295 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2296 spu_convtf_1): Update parameter descriptions.
7a00d767 2297 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
2298 * constraints.md ('v', 'w'): New.
2299 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2300 Remove.
2301 (i2f, I2F): New define_mode_attr.
2302 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2303 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2304 fixuns_truncv4sfv4si2): Update to use mode attribute.
2305 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2306 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2307 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2308 patterns for combine.
2309
5f39ad47
SB
23102009-04-27 Steven Bosscher <steven@gcc.gnu.org>
2311
2312 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2313 (cprop, hoist, pre, store_motion): New debug counters.
2314 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2315 is not an RTL pass anymore.
2316 (pass_profiling): Remove extern decl for pass removed in 2005.
2317 (pass_gcse, pass_jump_bypass): Remove.
2318 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2319 to 0 for clean state.
2320 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2321 * cse.c (gate_handle_cse_after_global_opts,
2322 rest_of_handle_cse_after_global_opts): New functions.
2323 (pass_cse_after_global_opts): New pass, does local CSE.
2324 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2325 (TV_CPROP): New timevar.
2326 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2327 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2328 (gcse_main, recompute_all_luids): Remove.
2329 (compute_hash_table_work): Call max_reg_num instead of reading
2330 max_gcse_regno.
2331 (cprop_jump): Don't set run_jump_opt_after_gcse.
2332 (constprop_register): Always allow to alter jumps.
2333 (cprop_insn): Likewise.
2334 (do_local_cprop): Likewise.
2335 (local_cprop_pass): Likewise. Return non-zero if something changed.
2336 (cprop): Remove function, fold interesting bits into one_cprop_pass.
2337 (find_implicit_sets): Add note about missed optimization opportunity.
2338 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2339 pass_rtl_cprop execute function.
2340 Don't bother tracking the pass number, each pass gets its own dumpfile
2341 now anyway.
2342 Always allow to alter jumpsand bypass jumps.
2343 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
2344 will just find no suitable set.
2345 (pre_edge_insert): Fix dumping, this function is for PRE only.
2346 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
2347 pass_rtl_pre execute function.
2348 (hoist_code): Return non-zero if something changed. Keep track of
2349 substitutions and insertions for statistics gathering similar to PRE.
2350 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
2351 called from the pass_rtl_hoist execute function. Show pass statistics.
2352 (compute_store_table): Use max_reg_num directly instead of using the
2353 formerly global max_gcse_regno.
2354 (build_store_vectors): Likewise.
2355 (replace_store_insn): Fix dumping.
2356 (store_motion): Rename to ...
2357 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
2358 pass, called from the pass_rtl_store_motion execute function. Keep
2359 track of substitutions and insertions for statistics gathering similar
2360 to PRE.
2361 (bypass_jumps): Remove, fold interesting bits into ...
2362 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
2363 from the pass_rtl_cprop execute function.
2364 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
2365 pass_jump_bypass): Remove.
2366 (gate_handle_gcse, rest_of_handle_gcse): Remove.
2367 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
2368 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
2369 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
2370 (gate_rtl_store_motion, execute_rtl_store_motion,
2371 pass_rtl_store_motion): New.
2372 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
2373 make it clear that -fcse-skip-blocks is a no-op for backward compat.
2374 * passes.c (init_optimization_passes): Remove pass_gcse and
2375 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
2376 and cse_after_global_opts in place of pass_gcse. Schedule cprop
2377 instead of pass_jump_bypass.
2378
c685de4a
RG
23792009-04-27 Richard Guenther <rguenther@suse.de>
2380
2381 PR middle-end/39928
2382 * gimplify.c (gimplify_expr): If we are required to create
2383 a temporary make sure it ends up as register.
2384
72d41f29
L
23852009-04-27 H.J. Lu <hongjiu.lu@intel.com>
2386
2387 PR target/39903
2388 * config/i386/i386.c (construct_container): Don't call
2389 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
2390 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
2391
e97809c6
MM
23922009-04-27 Michael Matz <matz@suse.de>
2393
2394 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
2395 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
2396 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
2397 (dump_replaceable_exprs): Take a bitmap.
2398 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
2399 array.
2400 (expand_gimple_basic_block): Likewise.
2401 * tree-ssa-ter.c (struct temp_expr_table_d): Make
2402 replaceable_expressions member a bitmap.
2403 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
2404 (mark_replaceable): Likewise.
2405 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
2406 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
2407
211ca15c
RG
24082009-04-27 Richard Guenther <rguenther@suse.de>
2409
2410 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
2411 (verify_stmts): Dispatch to gimple/type verification code.
2412 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
2413 issue with call argument types.
2414
fca5f3d1
MM
24152009-04-27 Michael Matz <matz@suse.de>
2416
2417 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
2418 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
2419 to above.
2420
a1fa3e79 24212009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 2422 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
2423
2424 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
2425 a label's basic block.
2426 (mark_target_live_regs): Tidy and rework obsolete comments.
2427 Change back DF problem to LIVE. If a label starts a basic block,
2428 assume that all registers that used to be live then still are.
2429 (init_resource_info): If a label starts a basic block, set its
2430 BLOCK_FOR_INSN accordingly.
2431 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
2432
33b223c0
RG
24332009-04-27 Richard Guenther <rguenther@suse.de>
2434
2435 * tree-flow-inline.h (function_ann): Remove.
2436 (get_function_ann): Likewise.
2437 * tree-dfa.c (create_function_ann): Remove.
2438 * tree-flow.h (struct static_var_ann_d): Remove.
2439 (struct function_ann_d): Likewise.
2440 (union tree_ann_d): Remove fdecl member.
2441 (function_ann_t): Remove.
2442 (function_ann, get_function_ann, create_function_ann): Remove
2443 declarations.
2444
e3136fa2
UB
24452009-04-27 Uros Bizjak <ubizjak@gmail.com>
2446
2447 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
2448
f87c9042
JH
24492009-04-27 Jan Hubicka <jh@suse.cz>
2450
2451 * ipa-pure-const.c (struct funct_state_d): New fields
2452 state_previously_known, looping_previously_known; remove
2453 state_set_in_source.
2454 (analyze_function): Use new fields.
2455 (propagate): Avoid assumption that state_set_in_source imply
2456 nonlooping.
2457
2458 * tree-ssa-loop-niter.c (finite_loop_p): New function.
2459 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
2460 * cfgloop.h (finite_loop_p): Declare.
2461
33abd718
MM
24622009-04-26 Michael Matz <matz@suse.de>
2463
e3136fa2 2464 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 2465
ddc34084
MM
24662009-04-26 Michael Matz <matz@suse.de>
2467
2468 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
2469 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
2470 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
2471 pass_mark_used_blocks): Remove.
2472 * tree-optimize.c (pass_free_datastructures,
2473 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
2474 * passes.c (init_optimization_passes): Don't call
2475 pass_mark_used_blocks, remove dead code.
2476
1fec7ed4
L
24772009-04-26 H.J. Lu <hongjiu.lu@intel.com>
2478
2479 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
2480 * tree-ssa-live.h (register_ssa_partition): Likewise.
2481
4e3825db
MM
24822009-04-26 Michael Matz <matz@suse.de>
2483
2484 Expand from SSA.
2485 * builtins.c (fold_builtin_next_arg): Handle SSA names.
2486 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
2487 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
2488 SSA names.
2489 (compare_pairs): Swap cost comparison.
2490 (coalesce_ssa_name): Don't use change_partition_var.
2491 * tree-nrv.c (struct nrv_data): Add modified member.
2492 (finalize_nrv_r): Set it.
2493 (tree_nrv): Use it to update statements.
2494 (pass_nrv): Require PROP_ssa.
2495 * tree-mudflap.c (mf_decl_cache_locals,
2496 mf_build_check_statement_for): Use make_rename_temp.
2497 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
2498 * alias.c (find_base_decl): Handle SSA names.
2499 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
2500 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
2501 * rtl.h (set_reg_attrs_for_parm): Declare.
2502 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
2503 to "optimized", remove unused locals at finish.
2504 (execute_free_datastructures): Make global, call
2505 delete_tree_cfg_annotations.
2506 (execute_free_cfg_annotations): Don't call
2507 delete_tree_cfg_annotations.
2508
2509 * ssaexpand.h: New file.
2510 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 2511 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
2512 (expand_expr_real_1): Expand SSA names.
2513 * cfgexpand.c (toplevel): Include ssaexpand.h.
2514 (SA): New global variable.
2515 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
2516 (SSAVAR): New macro.
2517 (set_rtl): New helper function.
2518 (add_stack_var): Deal with SSA names, use set_rtl.
2519 (expand_one_stack_var_at): Likewise.
2520 (expand_one_stack_var): Deal with SSA names.
2521 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
2522 before unique numbers.
2523 (expand_stack_vars): Use set_rtl.
2524 (expand_one_var): Accept SSA names, add asserts for them, feed them
2525 to above subroutines.
2526 (expand_used_vars): Expand all partitions (without default defs),
2527 then only the local decls (ignoring those expanded already).
2528 (expand_gimple_cond): Remove edges when jumpif() expands an
2529 unconditional jump.
2530 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
2531 or remove abnormal edges. Ignore insns setting the LHS of a TERed
2532 SSA name.
2533 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
2534 members of SA; deal with PARM_DECL partitions here; expand
2535 all PHI nodes, free tree datastructures and SA. Commit instructions
2536 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
2537 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
2538 info and statements at start, collect garbage at finish.
2539 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
2540 (VAR_ANN_PARTITION) Remove.
2541 (change_partition_var): Don't declare.
2542 (partition_to_var): Always return SSA names.
2543 (var_to_partition): Only accept SSA names.
2544 (register_ssa_partition): Only check argument.
2545 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
2546 member.
2547 (delete_var_map): Don't free it.
2548 (var_union): Only accept SSA names, simplify.
2549 (partition_view_init): Mark only useful SSA names as used.
2550 (partition_view_fini): Only deal with SSA names.
2551 (change_partition_var): Remove.
2552 (dump_var_map): Use ssa_name instead of partition_to_var member.
2553 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
2554 basic blocks.
2555 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
2556 (struct _elim_graph): New member const_dests; nodes member vector of
2557 ints.
2558 (set_location_for_edge): New static helper.
2559 (create_temp): Remove.
2560 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 2561 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
2562 (new_elim_graph): Allocate const_dests member.
2563 (clean_elim_graph): Truncate const_dests member.
2564 (delete_elim_graph): Free const_dests member.
2565 (elim_graph_size): Adapt to new type of nodes member.
2566 (elim_graph_add_node): Likewise.
2567 (eliminate_name): Likewise.
2568 (eliminate_build): Don't take basic block argument, deal only with
2569 partition numbers, not variables.
2570 (get_temp_reg): New static helper.
2571 (elim_create): Use it, deal with RTL temporaries instead of trees.
2572 (eliminate_phi): Adjust all calls to new signature.
2573 (assign_vars, replace_use_variable, replace_def_variable): Remove.
2574 (rewrite_trees): Only do checking.
2575 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
2576 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
2577 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
2578 contains_tree_r, MAX_STMTS_IN_LATCH,
2579 process_single_block_loop_latch, analyze_edges_for_bb,
2580 perform_edge_inserts): Remove.
2581 (expand_phi_nodes): New global function.
2582 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
2583 functions, initialize new parameter, remember partitions having a
2584 default def.
2585 (finish_out_of_ssa): New global function.
2586 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
2587 don't reset in_ssa_p here, don't disable TER when mudflap.
2588 (pass_del_ssa): Remove.
2589 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
2590 partition members.
2591 (execute_free_datastructures): Declare.
2592 * Makefile.in (SSAEXPAND_H): New variable.
2593 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
2594 * basic-block.h (commit_one_edge_insertion): Declare.
2595 * passes.c (init_optimization_passes): Move pass_nrv and
2596 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
2597 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
2598 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
2599 (redirect_branch_edge): Deal with super block when expanding, split
2600 out jump patching itself into ...
2601 (patch_jump_insn): ... here, new static helper.
2602
17c665a9
MM
26032009-04-26 Michael Matz <matz@suse.de>
2604
2605 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
2606 beyond num_ssa_names.
2607 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
2608 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
2609
92061771
JJ
26102009-04-26 Jakub Jelinek <jakub@redhat.com>
2611
ce372372
JJ
2612 PR inline-asm/39543
2613 * fwprop.c (forward_propagate_asm): New function.
2614 (forward_propagate_and_simplify): Propagate also into __asm, if it
2615 doesn't increase the number of referenced registers.
2616
92061771
JJ
2617 PR c/39889
2618 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
2619
26202009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
2621
2622 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
2623 note_nonlocal_vla_type for nonlocal VLAs.
2624 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
2625 contains_remapped_vars, remap_vla_decls): New functions.
2626 (convert_nonlocal_reference_stmt): If not optimizing, call
2627 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
2628 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
2629 if it wasn't found in var_map.
2630 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
2631 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
2632 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
2633 declare_vars.
2634 * gimplify.c (nonlocal_vlas): New variable.
2635 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
2636 referenced VLAs.
2637 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 2638
4561e242
JJ
2639 * dwarf2out.c (loc_descr_plus_const): New function.
2640 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
2641 mem_loc_descriptor, loc_descriptor_from_tree_1,
2642 descr_info_loc, gen_variable_die): Use it.
2643
a9548ddf
JJ
2644 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
2645 !TREE_STATIC VAR_DECLs.
2646 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
2647 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
2648 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
2649 DECL_BY_REFERENCE is valid.
2650 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
2651 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
2652 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
2653 Copy DECL_BY_REFERENCE.
2654 (struct nesting_copy_body_data): New type.
2655 (nesting_copy_decl): New function.
2656 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
2657 if they have variable length.
2658
10555d08
MM
26592009-04-26 Michael Matz <matz@suse.de>
2660
2661 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
2662 mark new temporaries for renaming.
2663
e11187cc
JM
26642009-04-26 Joseph Myers <joseph@codesourcery.com>
2665
2666 PR c/39581
2667 * c-decl.c (global_bindings_p): Return negative value.
2668 (c_variable_size): New. Based on variable_size from
2669 stor-layout.c.
2670 (grokdeclarator): Call c_variable_size not variable_size.
2671
f6a51d31
UB
26722009-04-26 Uros Bizjak <ubizjak@gmail.com>
2673
2674 * config/i386/i386.c (print_operand) ['z']: Fix typo.
2675
4b97723d
KT
26762009-04-26 Kai Tietz <kai.tietz@onevision.com>
2677
2678 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
2679 Redefine it to just use mingw/include.
2680 (ASM_SPEC): Rules for -m32 and -m64.
2681 (LINK_SPEC): Use Likewise.
2682 (SPEC_32): New define.
2683 (SPEC_64): Likewise.
2684 (SUB_LINK_SPEC): Likewise.
2685 (MULTILIB_DEFAULTS): New define.
2686 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
2687 Add multilib options.
2688 (MULTILIB_DIRNAMES): Likewise.
2689 (MULTILIB_OSDIRNAMES): Likewise.
2690 (LIBGCC): Likewise.
2691 (INSTALL_LIBGCC): Likewise.
2692
991d6621
JM
26932009-04-26 Joseph Myers <joseph@codesourcery.com>
2694
2695 PR c/39556
2696 * c-tree.h (enum c_inline_static_type): New.
2697 (record_inline_static): Declare.
2698 * c-decl.c (struct c_inline_static, c_inline_statics,
2699 record_inline_static, check_inline_statics): New.
2700 (pop_file_scope): Call check_inline_statics.
2701 (start_decl): Call record_inline_static instead of pedwarning
2702 directly for static in inline function.
2703 * c-typeck.c (build_external_ref): Call record_inline_static
2704 instead of pedwarning directly for static referenced in inline
2705 function.
2706
4a81774c
SB
27072009-04-26 Steven Bosscher <steven@gcc.gnu.org>
2708
2709 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
2710 not new but only being rescanned.
2711 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
2712 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
2713 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
2714 record_set_info, compute_set, grealloc): Remove.
2715 (recompute_all_luids): New function.
2716 (gcse_main): Don't compute sets, and don't do related memory
2717 allocations/free-ing. If something changed before the end of the
2718 pass, update LUIDs using recompute_all_luids.
2719 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
2720 (free_gcse_mem): Don't free it either.
2721 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
2722 Use the df insn LUIDs.
2723 (load_killed_in_block): Likewise.
2724 (compute_hash_table_work): Don't compute reg_set_in_block.
2725 (compute_transp): Use DF_REG_DEF_CHAINs.
2726 (local_cprop_pass): Don't use compute_sets and related functions.
2727 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
2728 Use get_max_uid() instead of max_cuid.
2729 (insert_insn_end_basic_block, pre_insert_copy_insn,
2730 update_ld_motion_stores): Don't try to
2731 keep reg_set tables up to date.
2732 (pre_insert_copies): Use df insn LUIDs.
2733 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
2734 (reg_set_info): Don't use extra bitmap argument.
2735 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
2736 information to compute regs_set_in_block.
2737 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
2738 (bypass_jumps): Don't use compute_sets and friends.
2739
e8f99a9d
RW
27402009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2741
2742 PR testsuite/39710
2743 * opts.c (undocumented_msg): Do not leave blank even with
2744 ENABLE_CHECKING.
2745
6895bac8
JM
27462009-04-25 Joseph Myers <joseph@codesourcery.com>
2747
2748 * c-decl.c (build_enumerator): Allow values folding to integer
2749 constants but not integer constant expressions with a pedwarn if
2750 pedantic.
2751
24070fcb
JM
27522009-04-25 Joseph Myers <joseph@codesourcery.com>
2753
2754 PR c/39582
2755 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
2756 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
2757 type is an integer constant.
2758
d6d89aa1
UB
27592009-04-25 Uros Bizjak <ubizjak@gmail.com>
2760
2761 PR target/39897
2762 * config/i386/i386.c (print_operand) ['z']: Revert handling of
2763 HImode operands.
2764
92f6fd0b
JM
27652009-04-25 Joseph Myers <joseph@codesourcery.com>
2766
2767 PR c/39564
2768 * c-decl.c (grokdeclarator): Diagnose declarations of functions
2769 with variably modified return type and no storage class
2770 specifiers, except for the case of nested functions. Distinguish
2771 extern declarations of functions with variably modified return
2772 types from those of objects with variably modified types.
2773
a3710436
JH
27742009-04-25 Jan Hubicka <jh@suse.cz>
2775
2776 * tree.c (list_equal_p): New function.
2777 * tree.h (list_equal_p): Declare.
2778 * coretypes.h (edge_def, edge, const_edge, basic_block_def
2779 basic_block_def, basic_block, const_basic_block): New.
2780 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
2781 (redirect_eh_edge): New function.
2782 (make_eh_edge_update_phi): EH edges are not abnormal.
2783 * except.c: Include tree-flow.h.
2784 (list_match): New function.
2785 (eh_region_replaceable_by_p): New function.
2786 (replace_region): New function.
2787 (hash_type_list): New function.
2788 (hash_eh_region): New function.
2789 (eh_regions_equal_p): New function.
2790 (merge_peers): New function.
2791 (remove_unreachable_regions): Verify EH tree when checking;
2792 merge peers.
2793 (copy_eh_region_1): New function.
2794 (copy_eh_region): New function.
2795 (push_reachable_handler): New function.
2796 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
2797 regions without label but with live RESX.
2798 * except.h (redirect_eh_edge_to_label): New.
2799 * tree-flow.h (redirect_eh_edge): New.
2800 * coretypes.h (edge_def, edge, const_edge, basic_block_def
2801 basic_block_def, basic_block, const_basic_block): Remove.
2802 * Makefile.in (except.o): Add dependency on tree-flow.h
2803 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
2804 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
2805 Remove.
2806
3764d512
EB
28072009-04-25 Eric Botcazou <ebotcazou@adacore.com>
2808
2809 PR bootstrap/39645
2810 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
2811 on the destination of memcpy.
2812
1c62e8f2
PB
28132009-04-25 Paolo Bonzini <bonzini@gnu.org>
2814
2815 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
2816 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
2817 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
2818
496a4ef5
JH
28192009-04-25 Jan Hubicka <jh@suse.cz>
2820
2821 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
2822 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
2823 to be reached by different label than left.
2824 (update_eh_edges): Update comment; remove edge_to_remove if possible
2825 and return true if suceeded.
2826 (cleanup_empty_eh): Accept sharing map; handle shared regions.
2827 (cleanup_eh): Compute sharing map.
2828 * except.c (remove_eh_handler_and_replace): Add argument if we should
2829 update regions.
2830 (remove_unreachable_regions): Update for label sharing.
2831 (label_to_region_map): Likewise.
2832 (get_next_region_sharing_label): New function.
2833 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
2834 prev_try pointers.
2835 (remove_eh_handler): Update.
2836 (remove_eh_region_and_replace_by_outer_of): New function.
2837 * except.h (struct eh_region): Add next_region_sharing_label.
2838 (remove_eh_region_and_replace_by_outer_of,
2839 get_next_region_sharing_label): Declare.
2840 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
2841
28422009-04-25 Jan Hubicka <jh@suse.cz>
2843
2844 * tree-cfg.c (split_critical_edges): Split also edges where we can't
2845 insert code even if they are not critical.
2846
28472009-04-25 Jan Hubicka <jh@suse.cz>
2848
2849 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2850 (gimple_can_remove_branch_p): EH edges won't remove branch by
2851 redirection.
2852 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
2853 updating of non-abnormal EH edges.
2854 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2855 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
2856 (split_critical_edges): Split also edges where emitting code on them
2857 will lead to splitting later.
2858
a3a5e3d1
UB
28592009-04-25 Uros Bizjak <ubizjak@gmail.com>
2860 H.J. Lu <hongjiu.lu@intel.com>
2861
2862 PR target/39590
2863 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
2864 the configured assembler supports fildq and fistpq mnemonics.
2865 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
2866 * configure: Regenerated.
2867 * config.in: Ditto.
2868
2869 * config/i386/i386.c (print_operand): Handle 'Z'.
2870 ['z']: Remove handling of special fild/fist suffixes.
2871 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
2872 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
2873 suffix of fild insn.
2874 (*floatsi<mode>2_vector_mixed): Ditto.
2875 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
2876 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
2877 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2878 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
2879 * config/i386/gas.h (GAS_MNEMONICS): Remove.
2880
23750d7f
BE
28812009-04-25 Ben Elliston <bje@au.ibm.com>
2882
2883 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
2884 the source of a set operation.
2885
e6ff3083
AS
28862009-04-25 Anatoly Sokolov <aesok@post.ru>
2887
2888 * target.h (struct gcc_target): Add case_values_threshold field.
2889 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
2890 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
2891 * targhooks.c (default_case_values_threshold): New function.
2892 * targhooks.h (default_case_values_threshold): Declare function.
2893 * stmt.c (expand_case): Use case_values_threshold target hook.
2894 * expr.h (case_values_threshold): Remove declartation.
2895 * expr.c (case_values_threshold): Remove function.
2896 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
2897
2898 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
2899 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2900 (avr_case_values_threshold): Declare as static.
2901 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
2902
2903 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
2904 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2905 (mn10300_case_values_threshold): New function.
2906
569c72fc
L
29072009-04-24 H.J. Lu <hongjiu.lu@intel.com>
2908
2909 * ira.c (setup_cover_and_important_classes): Add enum cast.
2910
ff3cb468
VM
29112009-04-24 Vladimir Makarov <vmakarov@redhat.com>
2912
2913 * genpreds.c (write_enum_constraint_num): Output definition of
2914 CONSTRAINT_NUM_DEFINED_P macro.
2915 * ira.c (setup_cover_and_important_classes): Use
2916 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
2917
4f7be849
DD
29182009-04-24 DJ Delorie <dj@redhat.com>
2919
2920 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
2921 __SH2A_SINGLE_ONLY__ also.
2922
735b94a7
SE
29232009-04-24 Steve Ellcey <sje@cup.hp.com>
2924
2925 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
2926 (movdf_internal): Ditto.
2927 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
2928 SFmode and DFmode constants.
2929 (ia64_print_operand): Add 'G' format for printing
2930 floating point constants.
2931
77a30264
RG
29322009-04-24 Richard Guenther <rguenther@suse.de>
2933
2934 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
2935 from unsigned additions.
2936
2b6da65c
JM
29372009-04-24 Joseph Myers <joseph@codesourcery.com>
2938
2939 * c-typeck.c (set_init_index): Allow array designators that are
2940 not integer constant expressions with a pedwarn if pedantic.
2941
f5a17c43
BS
29422009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
2943
2944 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
2945 zero if no overlap in nonzero bits between the operands.
2946
32e8bb8e
ILT
29472009-04-24 Ian Lance Taylor <iant@google.com>
2948
2949 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
2950 (record_dead_and_set_regs): Likewise.
2951 * df.h (struct df_mw_hardreg): Change flags field to int.
2952 (struct df_base_ref): Likewise.
2953 (struct df): Change changeable_flags field to int.
2954 * df-scan.c (df_defs_record): Change clobber_flags to int.
2955 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
2956 constants rather than #define macros.
2957 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
2958 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
2959 (enum dwarf_calling_convention): Likewise.
2960 (enum dwarf_line_number_x_ops): Likewise.
2961 (enum dwarf_call_frame_info): Likewise.
2962 (enum dwarf_source_language): Likewise.
2963 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
2964 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
2965 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
2966 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
2967 * genrecog.c (maybe_both_true_2): Change c to int.
2968 (write_switch): Likewise. Add cast to enum type.
2969 * gimplify.c (gimplify_omp_for): Handle return values from
2970 gimplify_expr using MIN rather than bitwise or.
2971 (gimplify_expr): Add cast to enum type.
2972 * ipa-prop.c (update_jump_functions_after_inlining): Change
2973 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
2974 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
2975 Add casts to enum type.
32e8bb8e
ILT
2976 (setup_cover_and_important_classes): Change cl to int. Add casts
2977 to enum type.
2978 (setup_class_translate): Change cl and mode to int.
2979 (ira_init_once): Change mode to int.
2980 (free_register_move_costs): Likewise.
2981 (setup_prohibited_mode_move_regs): Add casts to enum type.
2982 * langhooks.c (add_builtin_function_common): Rework assertion that
2983 value fits bitfield.
2984 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
2985 * omega.c (omega_do_elimination): Avoid math on enum types.
2986 * optabs.c (expand_vec_shift_expr): Remove casts to int.
2987 * opts.c (set_debug_level): Change 2 to enum constant. Use new
2988 int local to handle integral_argment value.
2989 * regmove.c (try_auto_increment): Change PUT_MODE to
2990 PUT_REG_NOTE_KIND.
2991 * reload.c (push_secondary_reload): Add casts to enum type.
2992 (secondary_reload_class, find_valid_class): Likewise.
2993 * reload1.c (emit_input_reload_insns): Likewise.
2994 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
2995 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
2996 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
2997 constant.
2998 * tree.c (build_common_builtin_nodes): Add casts to enum type.
2999 * tree-complex.c (complex_lattice_t): Typedef to int rather than
3000 enum type.
3001 (expand_complex_libcall): Add casts to enum type.
3002 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3003 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3004 with ERROR_MARK, not NUM_TREE_CODES.
3005 (vect_create_epilog_for_reduction): Likewise.
3006 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 3007 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
3008 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3009 enum machine_mode.
3010 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3011 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 3012 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
3013 * var-tracking.c (get_init_value): Change return type to enum
3014 var_init_status.
3015 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3016 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3017 arm_fp_model.
3018 (arm_override_options): Add casts to enum type.
3019 (arm_emit_tls_decoration): Likewise.
3020 * config/i386/i386.c (ix86_function_specific_restore): Add casts
3021 to enum type.
3022 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3023 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3024 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3025 enum type.
3026 * config/s390/s390.c (code_for_builtin_64): Change to array of
3027 enum insn_code.
3028 (code_for_builtin_31): Likewise.
3029 (s390_expand_builtin): Change code_for_builtin to enum insn_code
3030 const *.
3031 * config/sparc/sparc.c (sparc_override_options): Change value
3032 field in struct code_model to enum cmodel. In initializer change
3033 0 to NULL and add cast to enum type.
3034
3035 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3036 Change all callers. Issue a -Wc++-compat warning using
3037 lhs_origtype if necessary.
3038 (convert_for_assignment): Issue -Wc++-compat warnings about
3039 invalid conversions to enum type on assignment.
3040 * c-common.h (build_modify_expr): Update declaration.
3041
ac4fc08a
NC
30422009-04-24 Nick Clifton <nickc@redhat.com>
3043
3044 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3045 (function_arg_advance): Likewise.
3046 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3047 5th alternative.
3048
f22e891a
AK
30492009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
3050
3051 * config/s390/constraints.md ('I', 'J'): Fix condition.
3052
ad58aabe
DN
30532009-04-24 Diego Novillo <dnovillo@google.com>
3054
3055 * gengtype-parse.c (parse_error): Add newline after message.
3056
879a4a01
L
30572009-04-24 H.J. Lu <hongjiu.lu@intel.com>
3058
3059 * config/i386/sse.md (avxmodesuffixs): Removed.
3060 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3061 (*avx_pinsr<ssevecsize>): This.
3062
f63426af
BS
30632009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3064
3065 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3066 follow chains of regs with a single definition, and allow expressions
3067 that are function_invariant_p.
ce72fe6c 3068 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 3069
30349c74
PB
30702009-04-24 Paolo Bonzini <bonzini@gnu.org>
3071
3072 PR middle-end/39867
3073 * fold-const.c (fold_cond_expr_with_comparison): When folding
3074 > and >= to MAX, make sure the MAX uses the same type as the
3075 comparison's operands.
3076
8d8256c1
NC
30772009-04-24 Nick Clifton <nickc@redhat.com>
3078
3079 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3080 addressing for DImode accesses.
3081 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 3082 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 3083
6216f94e
JJ
30842009-04-24 Jakub Jelinek <jakub@redhat.com>
3085
3086 PR rtl-optimization/39794
3087 * alias.c (canon_true_dependence): Add x_addr argument.
3088 * rtl.h (canon_true_dependence): Adjust prototype.
3089 * cse.c (check_dependence): Adjust canon_true_dependence callers.
3090 * cselib.c (cselib_invalidate_mem): Likewise.
3091 * gcse.c (compute_transp): Likewise.
3092 * dse.c (scan_reads_nospill): Likewise.
3093 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
3094 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3095 canon_base_addr of the group, plus optional offset.
3096 (struct group_info): Rename canon_base_mem to
3097 canon_base_addr.
3098 (get_group_info): Set canon_base_addr to canon_rtx of base, not
3099 canon_rtx of base_mem.
3100
6de7a512
PB
31012009-04-23 Paolo Bonzini <bonzini@gnu.org>
3102
3103 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3104 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3105
4a3a2376
UW
31062009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3107
3108 * config/spu/spu-builtins.h: Delete file.
3109
3110 * config/spu/spu.h (enum spu_builtin_type): Move here from
3111 spu-builtins.h.
3112 (struct spu_builtin_description): Likewise. Add GTY marker.
3113 Do not use enum spu_function_code or enum insn_code.
3114 (spu_builtins): Add extern declaration.
3115
3116 * config/spu/spu.c: Do not include "spu-builtins.h".
3117 (enum spu_function_code, enum spu_builtin_type_index,
3118 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3119 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3120 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3121 unsigned_V2DI_type_node): Move here from spu-builtins.h.
3122 (spu_builtin_types): Make static. Add GTY marker.
3123 (spu_builtins): Add extern declaration with GTY marker.
3124 Include "gt-spu.h".
3125
3126 * config/spu/spu-c.c: Do not include "spu-builtins.h".
3127 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3128 Check programmatically whether all parameters are scalar.
3129
3130 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3131
bbaba73f
EB
31322009-04-23 Eric Botcazou <ebotcazou@adacore.com>
3133
3134 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3135 assignment from the constructor either if the target is volatile.
3136
ee93c1c6
DJ
31372009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
3138
3139 * config/arm/arm.md (insv): Do not share operands[0].
3140
b2f21330
NS
31412009-04-23 Nathan Sidwell <nathan@codesourcery.com>
3142
3143 * config/vxlib-tls.c (active_tls_threads): Delete.
3144 (delete_hook_installed): New.
3145 (tls_delete_hook): Don't delete the delete hook.
3146 (tls_destructor): Delete it here.
3147 (__gthread_set_specific): Adjust installing the delete hook.
3148 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3149 __gthread_leave_tsd_dtor_context.
3150
4782dfa7
RAE
31512009-04-23 Rafael Avila de Espindola <espindola@google.com>
3152
3153 * c-format.c (gcc_tdiag_char_table): Add support for %E.
3154
bf758008
UB
31552009-04-23 Uros Bizjak <ubizjak@gmail.com>
3156
3157 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3158 enum type.
3159 (alpha_rtx_costs): Ditto.
3160 (emit_unlikely_jump): Use add_reg_note.
3161 (emit_frame_store_1): Ditto.
3162 (alpha_expand_prologue): Ditto.
3163 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3164 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3165
7323a100
NC
31662009-04-23 Nick Clifton <nickc@redhat.com>
3167
3168 * config/v850/v850.md (epilogue): Remove suppressed code.
3169 (return): Rename to return_simple and remove test of frame size.
3170 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3171 to gen_return_simple.
3172
360032ba
JY
31732009-04-22 Jing Yu <jingyu@google.com>
3174
3175 PR testsuite/39781
3176 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3177
53650abe
AP
31782009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
3179
3180 PR C/31499
3181 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3182 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
3183 value is a VECTOR_CST, the element type is the element type of the
3184 vector.
3185
89043e8a
DD
31862009-04-22 DJ Delorie <dj@redhat.com>
3187
3188 * config/m32c/m32c.h: Update GTY annotations to new syntax.
3189
023f059b
JJ
31902009-04-22 Jakub Jelinek <jakub@redhat.com>
3191
3192 * alias.c (find_base_term): Move around LO_SUM case, so that
3193 CONST falls through into PLUS/MINUS handling.
3194
2c0eba5a
JJ
3195 PR c/39855
3196 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3197 into 0, use omit_one_operand.
3198
9a461028
BE
31992009-04-23 Ben Elliston <bje@au.ibm.com>
3200
3201 * config/rs6000/linux-unwind.h (get_regs): Remove type
3202 puns. Change the type of `pc' to an array of unsigned ints and
3203 update all users. Constify frame24.
3204
653e2568
DD
32052009-04-22 DJ Delorie <dj@redhat.com>
3206
3207 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3208 declarations before code.
3209 (current_function_special_page_vector): Likewise.
3210 (m32c_expand_insv): Silence a warning.
3211
60839f5d 32122009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
3213
3214 * alias.c: Update GTY annotations to new syntax.
3215 * basic-block.h: Likewise.
3216 * bitmap.h: Likewise.
3217 * c-common.h: Likewise.
3218 * c-decl.c: Likewise.
3219 * c-parser.c: Likewise.
3220 * c-pragma.c: Likewise.
3221 * c-tree.h: Likewise.
3222 * cfgloop.h: Likewise.
3223 * cgraph.h: Likewise.
3224 * config/alpha/alpha.c: Likewise.
3225 * config/arm/arm.h: Likewise.
3226 * config/avr/avr.h: Likewise.
3227 * config/bfin/bfin.c: Likewise.
3228 * config/cris/cris.c: Likewise.
3229 * config/darwin.c: Likewise.
3230 * config/frv/frv.c: Likewise.
3231 * config/i386/i386.c: Likewise.
3232 * config/i386/i386.h: Likewise.
3233 * config/i386/winnt.c: Likewise.
3234 * config/ia64/ia64.h: Likewise.
3235 * config/iq2000/iq2000.c: Likewise.
3236 * config/mips/mips.c: Likewise.
3237 * config/mmix/mmix.h: Likewise.
3238 * config/pa/pa.c: Likewise.
3239 * config/pa/pa.h: Likewise.
3240 * config/rs6000/rs6000.c: Likewise.
3241 * config/s390/s390.c: Likewise.
3242 * config/sparc/sparc.c: Likewise.
3243 * config/xtensa/xtensa.c: Likewise.
3244 * cselib.h: Likewise.
3245 * dbxout.c: Likewise.
3246 * dwarf2out.c: Likewise.
3247 * except.c: Likewise.
3248 * except.h: Likewise.
3249 * fixed-value.h: Likewise.
3250 * function.c: Likewise.
3251 * function.h: Likewise.
3252 * gimple.h: Likewise.
3253 * integrate.c: Likewise.
3254 * optabs.c: Likewise.
3255 * output.h: Likewise.
3256 * real.h: Likewise.
3257 * rtl.h: Likewise.
3258 * stringpool.c: Likewise.
3259 * tree-data-ref.c: Likewise.
3260 * tree-flow.h: Likewise.
3261 * tree-scalar-evolution.c: Likewise.
3262 * tree-ssa-address.c: Likewise.
3263 * tree-ssa-alias.h: Likewise.
3264 * tree-ssa-operands.h: Likewise.
3265 * tree.c: Likewise.
3266 * tree.h: Likewise.
3267 * varasm.c: Likewise.
3268 * varray.h: Likewise.
3269 * vec.h: Likewise.
bf758008 3270 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
3271 * doc/gty.texi: Update GTY documentation to new syntax.
3272 * gengtype-lex.l: Enforce attribute-like syntax for GTY
3273 annotations on structs.
3274 * gengtype-parse.c: Likewise.
3275
a123d175
MH
32762009-04-22 Mark Heffernan <meheff@google.com>
3277
bf758008 3278 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 3279
4c7c486a
KH
32802009-04-22 Kazu Hirata <kazu@codesourcery.com>
3281
3282 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3283 where appropriate.
3284
6e782a29
KH
32852009-04-22 Kazu Hirata <kazu@codesourcery.com>
3286
3287 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3288 the same as a PLUS without a shift. Increase the cost of a
3289 CONST_INT in MULT.
3290
38d2336a
MLI
32912009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3292
3293 * Makefile.in: Update dependencies.
bf758008 3294 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
3295 * errors.h: Remove bogus comment about compatibility.
3296 (warning): Update declaration.
3297 * genautomata.c: Update all calls to warning.
3298 * gimple.c: Do not include errors.h. Include toplev.h.
3299 * tree-ssa-structalias.c: Do not include errors.h.
3300 * omega.c: Likewise.
3301 * tree-ssa-reassoc.c: Likewise.
3302 * config/spu/spu-c.c: Likewise.
3303 * config/spu/t-spu-elf: Update dependencies.
3304
aea4deba
RG
33052009-04-22 Richard Guenther <rguenther@suse.de>
3306
3307 PR tree-optimization/39824
3308 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3309 make sure the types are compatible.
3310
cfc93532
MLI
33112009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3312
3313 PR c++/14875
3314 * c-common.c (c_parse_error): Take a token_flags parameter.
3315 Use token_type for the token type instead.
3316 Pass token_flags to cpp_type2name.
3317 * c-common.h (c_parse_error): Update declaration.
3318 * c-parser.c (c_parser_error): Pass 0 as token flags.
3319
8632d02a
AB
33202009-04-22 Andrey Belevantsev <abel@ispras.ru>
3321
3322 PR rtl-optimization/39580
3323 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
3324
4c33221c
UW
33252009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3326
3327 * function.c (expand_function_end): Do not emit a jump to the "naked"
3328 return label for fall-through returns.
3329 * except.c (sjlj_emit_function_exit): Always place the call to the
3330 unregister function at the location installed by expand_function_end.
3331
9925bce0
RG
33322009-04-22 Richard Guenther <rguenther@suse.de>
3333
3334 PR tree-optimization/39845
3335 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3336 (gen_inbound_check): Likewise.
3337
24a40b35
NS
33382009-04-22 Nathan Sidwell <nathan@codesourcery.com>
3339
3340 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3341 padding for PPC.
3342 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
3343 * config/vxlib.c (__gthread_once): Add race guard for PPC.
3344
6c34a092
PB
33452009-04-22 Paolo Bonzini <bonzini@gnu.org>
3346
3347 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
3348 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
3349 shift counts to avoid out-of-bounds array accesses.
3350
baa48dfa
PB
33512009-04-22 Paolo Bonzini <bonzini@gnu.org>
3352
3353 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
3354 (Pmode): Move above.
3355
7d83f4f5
UB
33562009-04-22 Uros Bizjak <ubizjak@gmail.com>
3357
3358 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
3359 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
3360 GET_CODE macro. Use IN_RANGE macro where appropriate.
3361 * config/alpha/alpha.h: Ditto.
3362 * config/alpha/alpha.md: Ditto.
3363 * config/alpha/constraints.md: Ditto.
3364 * config/alpha/predicates.md: Ditto.
3365
3ad606bc
PB
33662009-04-22 Paolo Bonzini <bonzini@gnu.org>
3367
3368 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
3369 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3370 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3371 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3372 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3373 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3374 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3375 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3376 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3377 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3378 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3379 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3380 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3381 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3382 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3383 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3384 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3385 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3386 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3387 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3388 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3389 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3390 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3391 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3392 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3393 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3394 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3395
3cabd6d1
LB
33962009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3397
3398 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
3399 references from comments.
3400 * cfgbuild.c: (count_basic_blocks): Delete.
3401 (find_basic_blocks_1): Delete.
3402 (find_basic_blocks): Delete.
3403 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 3404 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
3405 * except.h (finish_eh_generation): Delete.
3406 * basic-block.h (find_basic_blocks): Delete.
3407 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
3408
270d1bcd
DK
34092009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
3410
3411 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
3412 (sdbout_parms): Likewise.
3413
b757d36f
KK
34142009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
3415
3416 * config/sh/sh.c (prepare_cbranch_operands): Use
3417 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
3418 (expand_cbranchdi4): Likewise.
3419 (from_compare): Add cast to enum type.
3420 (expand_cbranchsi4): Use add_reg_note.
3421 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
3422 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
3423 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
3424 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3425 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
3426 instead of CODE_FOR_nothing.
3427 (cbranchdi4): Likewise. Fix the order of arguments for
3428 gen_rtx_fmt_ee.
3429 (push_fpscr): Use add_reg_note.
3430 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
3431 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
3432
ad41bd84
JM
34332009-04-21 Joseph Myers <joseph@codesourcery.com>
3434
3435 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
3436 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3437 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3438 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
3439 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
3440 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
3441 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
3442 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
3443 config/alpha/x-vms, config/arc/t-arc,
3444 config/arm/README-interworking, config/arm/arm-c.c,
3445 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
3446 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
3447 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
3448 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
3449 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
3450 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
3451 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
3452 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
3453 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
3454 config/cris/t-elfmulti, config/crx/t-crx,
3455 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
3456 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
3457 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
3458 config/h8300/t-h8300, config/i386/athlon.md,
3459 config/i386/darwin-libgcc.10.4.ver,
3460 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
3461 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
3462 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
3463 config/i386/t-linux64, config/i386/t-nwld,
3464 config/i386/t-rtems-i386, config/i386/t-sol2-10,
3465 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
3466 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
3467 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
3468 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
3469 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
3470 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
3471 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
3472 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
3473 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
3474 config/m68k/t-uclinux, config/mcore/t-mcore,
3475 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
3476 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
3477 config/mips/crtn.asm, config/mips/irix-crti.asm,
3478 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
3479 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
3480 config/mips/mips-fixed.md, config/mips/sb1.md,
3481 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
3482 config/mips/t-iris6, config/mips/t-isa3264,
3483 config/mips/t-libgcc-mips16, config/mips/t-linux64,
3484 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
3485 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
3486 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
3487 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
3488 config/mn10300/t-linux, config/mn10300/t-mn10300,
3489 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
3490 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
3491 config/picochip/libgccExtras/clzsi2.asm,
3492 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
3493 config/rs6000/darwin-libgcc.10.4.ver,
3494 config/rs6000/darwin-libgcc.10.5.ver,
3495 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
3496 config/rs6000/t-aix43, config/rs6000/t-aix52,
3497 config/rs6000/t-darwin, config/rs6000/t-fprules,
3498 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
3499 config/rs6000/t-lynx, config/rs6000/t-netbsd,
3500 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
3501 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
3502 config/rs6000/t-rtems, config/rs6000/t-spe,
3503 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
3504 config/score/t-score-elf, config/sh/divcost-analysis,
3505 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
3506 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
3507 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
3508 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
3509 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
3510 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
3511 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
3512 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
3513 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
3514 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
3515 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
3516 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
3517 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
3518 limitx.h, version.c, xcoff.h: Add copyright and license notices.
3519 * config/h8300/genmova.sh: Include copyright and license notices
3520 in generated output.
3521 * config/h8300/mova.md: Regenerate.
3522 * doc/install.texi2html: Include word "Copyright" in copyright
3523 notice and use name "Free Software Foundation, Inc.".
3524 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3525 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3526 ChangeLog-2007, ChangeLog-2008: Correct dates.
3527
ca80e52b
EB
35282009-04-21 Eric Botcazou <ebotcazou@adacore.com>
3529
3530 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
3531 NE_EXPR operations as well.
3532 * c-parser.c (c_parser_condition): Do not set location information on
3533 the condition.
3534 (c_parser_conditional_expression): Likewise.
3535 (c_parser_binary_expression): Set location information on operators.
3536 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
3537 TRUTH_NOT_EXPR has been folded.
3538 * fold-const.c (fold_truth_not_expr): Copy location information from
3539 the incoming expression to the outgoing one.
3540 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
3541 recursive calls on the LHS of the operator but pass that of the
3542 operator to recursive calls on the RHS of the operator. Set it
3543 on the COND_EXPR.
3544 (shortcut_cond_expr): Set the locus of the operator on the second
3545 COND_EXPR and that of the expression on the first in degenerate cases.
3546 Pass the locus of the expression to calls to shortcut_cond_r.
3547 Set the locus of the 'then' block on the associated jump, if any.
3548 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
3549 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
3550 expression to call to gimplify_boolean_expr.
3551
35091630
KT
35522009-04-21 Kai Tietz <kai.tietz@onevision.com>
3553
3554 * config.gcc: Add additional configuration for
3555 i686-w64-mingw* and x86_64-w64-mingw* triplet.
3556 * config/i386/mingw-w64.h: New mingw-w64 specific header.
3557 (CPP_SPEC): Redefine for allowing -municode option.
3558 (STARTFILE_SPEC): Likewise.
3559 * config/i386/t-mingw-w64: New.
3560 * config/i386/mingw-w64.opt: New.
3561 (municode): Add new target option.
3562 * doc/invoke.texi (municode): Add documentation for new option.
3563
0267afc4
ILT
35642009-04-21 Ian Lance Taylor <iant@google.com>
3565
3566 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3567 Correct test for number of arguments.
3568 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
3569
2ba9daa7
AS
35702009-04-21 Andreas Schwab <schwab@linux-m68k.org>
3571
3572 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
3573 argument of emit_library_call.
3574
ad8a1ac0
RG
35752009-04-21 Richard Guenther <rguenther@suse.de>
3576
3577 PR middle-end/39829
3578 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
3579 inside VIEW_CONVERT_EXPRs.
3580
7156c8ab
MJ
35812009-04-21 Martin Jambor <mjambor@suse.cz>
3582
3583 * tree-switch-conversion.c (build_constructors): Split a long line.
3584 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
3585 (build_one_array): Create assigns of constants if possible, do not
3586 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
3587 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
3588 make_rename_temp. Do not call mark_symbols_for_renaming, call
3589 update_stmt.
3590 (gen_def_assigns): Do not call mark_symbols_for_renaming or
3591 find_new_referenced_vars, call update_stmt.
3592 (gen_inbound_check): Use create_tmp_var and create ssa names manually
3593 instead of calling make_rename_temp. Do not call
3594 find_new_referenced_vars or mark_symbols_for_renaming, call
3595 update_stmt.
3596
2970ccb3
RG
35972009-04-21 Richard Guenther <rguenther@suse.de>
3598
3599 PR tree-optimization/39827
7d83f4f5 3600 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
3601 (tree_ssa_phiprop): Pass the correct array size.
3602
47f402d1
UB
36032009-04-21 Uros Bizjak <ubizjak@gmail.com>
3604
3605 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
3606
1e4ae551
MLI
36072009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
3608
3609 PR 16202
3610 * c-typeck.c (lvalue_p): Move declaration ...
3611 * c-common.h (lvalue_p): ... to here.
3612 * c-common.c (candidate_equal_p): New.
3613 (add_tlist): Use it.
3614 (merge_tlist): Use it.
3615 (warn_for_collisions_1): Likewise.
3616 (warning_candidate_p): Accept more candidates.
3617 (verify_tree): A warning candidate can be an expression. Use
3618 candidate_equal_p.
3619
244609a6
BE
36202009-04-21 Ben Elliston <bje@au.ibm.com>
3621
3622 PR target/5267
3623 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3624 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
3625 options. Remove -mcall-solaris documentation.
3626
9c650d90
MLI
36272009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3628
3629 PR c++/13358
3630 * doc/invoke.texi (-Wlong-long): Update description.
3631 * c-lex (interpret_integer): Only warn if there was no previous
3632 overflow and -Wlong-long is enabled.
3633 * c-decl.c (declspecs_add_type): Drop redundant flags.
3634 * c.opt (Wlong-long): Init to -1.
3635 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
3636 and front-end warn_long_long. Wlong-long only depends on other
3637 flags if it is uninitialized.
3638 * c-parser.c (disable_extension_diagnostics): warn_long_long is
3639 the same for CPP and FE.
3640 (restore_extension_diagnostics): Likewise.
3641
bbbbb16a
ILT
36422009-04-20 Ian Lance Taylor <iant@google.com>
3643
3644 Fix enum conversions which are invalid in C++:
47f402d1
UB
3645 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
3646 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3647 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
3648 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 3649 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 3650 (dbxout_parms): Likewise.
47f402d1 3651 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
3652 (df_clear_flags): Likewise.
3653 * df-problems.c (df_rd_bb_local_compute_process_def): Change
3654 top_flag parameter to int.
3655 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
3656 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
3657 Remove cast.
bbbbb16a
ILT
3658 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
3659 (df_ref_create_structure, df_def_record_1): Likewise.
3660 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
3661 (df_notes_rescan): Change 0 to VOIDmode in function call.
3662 (df_get_call_refs, df_insn_refs_collect): Likewise.
3663 (df_bb_regs_collect): Likewise.
3664 (df_entry_block_defs_collect): Likewise.
3665 (df_exit_block_uses_collect): Likewise.
3666 * df.h: Update declarations.
3667 * double-int.c (double_int_divmod): Add cast to enum type.
3668 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
3669 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
3670 (based_loc_descr): Likewise.
3671 (loc_descriptor_from_tree_1): Change first_op and second_op to
3672 enum dwarf_location_atom. Add cast to enum type.
3673 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 3674 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
3675 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
3676 (do_store_flag): Likewise.
3677 * fixed-value.h (struct fixed_value): Change mode to enum
3678 machine_mode.
47f402d1 3679 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
3680 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
3681 function call.
3682 (insert_insn_decl, insert_decl, insert_state): Likewise.
3683 (automata_list_finish): Likewise.
3684 * genrecog.c (process_define_predicate): Add cast to enum type.
3685 * gensupport.c (init_predicate_table): Add cast to enum type.
3686 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
3687 function call.
3688 (gimple_build_call_1, gimple_build_label): Likewise.
3689 (gimple_build_goto, gimple_build_asm_1): Likewise.
3690 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 3691 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
3692 (enum fallback): Rename from enum fallback_t.
3693 (fallback_t): Typedef as int.
3694 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
3695 GSI_SAME_STMT in function call.
3696 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
3697 enum type.
3698 (setup_reg_class_relations): Likewise.
47f402d1 3699 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
3700 (setup_prohibited_class_mode_regs): Add cast to enum type.
3701 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 3702 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
3703 (record_address_regs): Change i to enum reg_class.
3704 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
3705 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
3706 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
3707 (GET_MODE_2XWIDER_MODE): Likewise.
3708 (GET_CLASS_NARROWEST_MODE): Likewise.
3709 * omp-low.c (expand_omp_for): Add cast to enum type.
3710 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
3711 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
3712 * postreload.c (reload_cse_simplify_operands): Change rclass local
3713 to enum reg_class.
3714 * predict.c (combine_predictions_for_insn): Change best_predictor
3715 and predictor to enum br_predictor.
3716 (combine_predictions_for_bb): Likewise.
3717 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
3718 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 3719 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
3720 * reginfo.c (init_move_cost): Add casts to enum type.
3721 (init_reg_sets_1, init_fake_stack_mems): Likewise.
3722 * regmove.c (regclass_compatible_p): Change class0 and class1 to
3723 enum reg_class.
3724 * reload.c (find_valid_class): Add casts to enum type.
3725 (push_reload): Change 0 to NO_REGS in function call.
3726 (find_reloads): Change this_alternative to array of enum
3727 reg_class. Remove some now-unnecessary casts.
3728 (make_memloc): Change 0 to VOIDmode in function call.
3729 * reload1.c (reload): Change 0 to VOIDmode in function call.
3730 (eliminate_regs_1, elimination_effects): Likewise.
3731 (eliminate_regs_in_insn): Likewise.
3732 (emit_input_reload_insns): Add cast to enum type.
3733 (delete_output_reload): Change 0 to VOIDmode in function call.
3734 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
3735 to enum type in function call.
3736 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
3737 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 3738 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
3739 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
3740 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
3741 (dump_function): Likewise.
3742 * tree-dump.h: Update declarations.
3743 * tree-pass.h: Update declarations.
3744 * varasm.c (assemble_integer): Change mclass to enum mode_class.
3745 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
3746 enum type.
3747 (arm_rtx_costs_1): Correct parenthesization.
3748 (arm_rtx_costs): Add casts to enum type.
3749 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
3750 (vfp_emit_fstmd): Use add_rg_note.
3751 (emit_multi_reg_push, emit_sfm): Likewise.
3752 (thumb_set_frame_pointer): Likewise.
3753 (arm_expand_prologue): Likewise.
3754 (arm_regno_class): Change return type to enum reg_class.
3755 (thumb1_expand_prologue): Use add_reg_note.
3756 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
3757 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
3758 in function call.
3759 * config/arm/gentune.sh: Add cast to enum type.
3760 * config/arm/arm-tune.md: Rebuild.
3761 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
3762 (ix86_split_fp_branch, predict_jump): Likewise.
3763 (ix86_expand_multi_arg_builtin): Change sub_code from enum
3764 insn_code to enum rtx_code.
3765 (ix86_builtin_vectorized_function): Add cast to enum type.
3766 * config/i386/i386.md (truncdfsf2): Change slot to enum
3767 ix86_stack_slot.
3768 (truncxf<mode>2, isinf<mode>2): Likewise.
3769 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
3770 enum type.
3771 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
3772 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
3773 (insert_bundle_state): Change 1 to INSERT in function call.
3774 (ia64_add_bundle_selector_before): Likewise.
3775 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
3776 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
3777 (restore_stack_nonlocal): Likewise.
3778 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
3779 function call.
3780 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
3781 function call.
3782 (mips_rtx_costs): Likewise.
3783 (mips_override_options): Add casts to enum type.
3784 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
3785 in function call.
3786 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
3787 (store_reg, set_reg_plus_d): Likewise.
3788 (hppa_expand_prologue, hppa_profile_hook): Likewise.
3789 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
3790 cast to enum type.
3791 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
3792 function call.
3793 (emit_unlikely_jump): Use add_reg_note.
3794 (rs6000_emit_allocate_stack): Likewise.
3795 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
3796 (output_toc): Change 1 to INSERT in function call.
3797 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
3798 (rs6000_initialize_trampoline): Likewise.
3799 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
3800 function call.
3801 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
3802 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
3803 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
3804 (save_gprs): Use add_reg_note.
3805 (s390_emit_prologue): Likewise.
47f402d1 3806 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3807 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
3808 (sparc_fold_builtin): Add cast to enum type.
3809 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
3810 enum insn_code.
3811 (spu_expand_prologue): Use add_reg_note.
47f402d1 3812 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3813
38142009-04-20 Ian Lance Taylor <iant@google.com>
3815
3816 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
3817 (c_parser_postfix_expression_after_primary): Get VEC for list of
3818 arguments. Get original types of arguments. Call
3819 build_function_call_vec.
3820 (cached_expr_list_1, cached_expr_list_2): New static variables.
3821 (c_parser_expr_list): Change return type to VEC *. Add
3822 p_orig_types parameter. Change all callers.
3823 (c_parser_release_expr): New static function.
3824 (c_parser_vec_to_tree_list): New static function.
3825 * c-typeck.c (build_function_call): Rewrite to build a VEC and
3826 call build_function_call_vec.
3827 (build_function_call_vec): New function, based on old
3828 build_function_call.
3829 (convert_arguments): Remove nargs and argarray parameters. Change
3830 values to a VEC. Add origtypes parameter.
47f402d1 3831 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
3832 (convert_for_assignment): Add origtype parameter. Change all
3833 callers. If warn_cxx_compat, check for conversion to an enum
3834 type when calling a function.
3835 (store_init_value): Add origtype parameter. Change all callers.
3836 (digest_init): Likewise.
3837 (struct init_node): Add origtype field.
3838 (add_pending_init): Add origtype parameter. Change all callers.
3839 (output_init_element): Likewise.
3840 (output_pending_init_elements): Pass origtype from init_node to
3841 output_init_element.
f28a61ab 3842 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
3843 output_init_element.
3844 (c_finish_return): Add origtype parameter. Change all callers.
3845 * c-common.c (sync_resolve_size): Change params to VEC *. Change
3846 caller.
3847 (sync_resolve_params): Likewise.
47f402d1 3848 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 3849 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 3850 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
3851 * c-decl.c (finish_decl): Add origtype parameter. Change all
3852 callers. Call build_function_call_vec rather than
3853 build_function_call for cleanup.
3854 * c-tree.h: Update declarations.
3855 * c-common.h: Update declarations.
3856 * stub-objc.c (objc_rewrite_function_call): Change parameter from
3857 params to first_param.
3858 * target.h (struct gcc_target): Change resolve_overloaded_builtin
3859 params parameter from tree to void *.
3860 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3861 Change arglist parameter to have type void *, and to be a pointer
3862 to a VEC.
3863 * config/rs6000/rs6000-protos.h
3864 (altivec_resolve_overloaded_builtin): Update declaration.
3865 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
3866 fnargs parameter to have type void *, and to be a pointer to a
3867 VEC. Call build_function_call_vec instead of
3868 build_function_call.
47f402d1 3869 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 3870
6ff078d4 38712009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 3872 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
3873 H.J. Lu <hongjiu.lu@intel.com>
3874
3875 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
3876
3877 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
3878 (IX86_LEA_PRIORITY): Likewise.
3879 (distance_non_agu_define): New function.
3880 (distance_agu_use): Likewise.
3881 (ix86_lea_for_add_ok): Likewise.
3882 (ix86_dep_by_shift_count): Likewise.
3883
3884 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
3885 should split for LEA.
3886
3887 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
3888 function.
3889 (ix86_dep_by_shift_count): Likewise.
3890
87a5b4cc
RG
38912009-04-20 Richard Guenther <rguenther@suse.de>
3892
3893 * expr.c (handled_component_p): Move ...
3894 * tree.h (handled_component_p): ... here.
3895 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
3896 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
3897 and REALPART_EXPR to be in one group.
3898
438c239d
RG
38992009-04-20 Richard Guenther <rguenther@suse.de>
3900
3901 * basic-block.h (get_all_dominated_blocks): Declare.
3902 * dominance.c (get_all_dominated_blocks): New function.
3903 * tree-cfg.c (get_all_dominated_blocks): Remove.
3904 (remove_edge_and_dominated_blocks): Adjust.
3905 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
3906 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
3907 instead of recursing.
3908
fed5ae11
DK
39092009-04-20 Doug Kwan <dougkwan@google.com>
3910
3911 * cgraph.h (cgraph_node_ptr): New type for vector functions.
3912 (struct cgraph_node_set_def): New type.
3913 (cgraph_node_set) New type. Also declare vector functions.
3914 (struct cgraph_node_set_element_def): New type.
3915 (cgraph_node_set_element): Ditto.
3916 (cgraph_node_set_iterator): New iterator type.
3917 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
3918 cgraph_node_set_remove, dump_cgraph_node_set,
3919 debug_cgraph_node_set): New prototypes.
3920 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
3921 cgraph_node_set_size): New inlines.
3922 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
3923 including cgraph.h.
3924 (struct ipa_opt_pass): Add struct cgraph_node_set_def
3925 argument to function 'write_summary'.
3926 * ipa.c: Include ggc.h.
3927 (hash_cgraph_node_set_element,
3928 eq_cgraph_node_set_element, cgraph_node_set_new,
3929 cgraph_node_set_add, cgraph_node_set_remove,
3930 cgraph_node_set_find, dump_cgraph_node_set,
3931 debug_cgraph_node_set): New functions.
3932 * Makefile.in (ipa.o): Add dependency on GGC_H.
3933
c4551b28
IR
39342009-04-20 Ira Rosen <irar@il.ibm.com>
3935
3936 PR tree-optimization/39675
2ba9daa7 3937 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
3938 check of the return code of vect_schedule_slp. Check that
3939 stmt_vec_info still exists for the statement, before checking its
3940 vectorization type.
c4551b28 3941
21a495fb
MM
39422009-04-20 Michael Matz <matz@suse.de>
3943
3944 * Makefile.in (generated_files): Take out $(simple_generated_c).
3945
8e208874
DK
39462009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
3947
3948 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
3949 (UINTPTR_TYPE): Likewise.
3950
a45e580b
JM
39512009-04-19 Joseph Myers <joseph@codesourcery.com>
3952
3953 PR c/37481
3954 * c-typeck.c (digest_init): Check for initializing an array with a
3955 string literal.
3956
20845d35
JM
39572009-04-19 Joseph Myers <joseph@codesourcery.com>
3958
3959 PR c/19771
3960 * c-semantics.c (pop_stmt_list): Propagate
3961 STATEMENT_LIST_HAS_LABEL to parent statement list.
3962
28143fdd
AN
39632009-04-19 Adam Nemet <anemet@caviumnetworks.com>
3964
3965 * config/mips/mips.h (mips_tune_attr): New macro.
3966 * config/mips/mips.md (cpu): Use it.
3967
da377db9
JM
39682009-04-19 Joseph Myers <joseph@codesourcery.com>
3969
3970 PR c/38243
3971 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
3972 declaring a tag.
3973
3baf459d
DN
39742009-04-19 Diego Novillo <dnovillo@google.com>
3975
3976 * toplev.c (compile_file): Move call to coverage_finish ...
3977 * cgraphunit.c (ipa_passes): ... here.
3978 Call cgraph_process_new_functions.
3979 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
3980 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
3981
b6fa5b01
JH
39822009-04-19 Jan Hubicka <jh@suse.cz>
3983
47f402d1
UB
3984 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
3985 cfun.
b6fa5b01
JH
3986 (dump_cgraph_node): Dump can throw external flag.
3987 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
3988
ca409efd
MLI
39892009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
3990
3991 PR c/32061
3992 PR c++/36954
3993 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
3994 * common.opt (Wlogical-op): Move from here...
3995 * c.opt (Wlogical-op): ... to here.
3996 * c-typeck.c (parser_build_binary_op): Update call to
3997 warn_logical_operator.
3998 * c-opts.c (c_common_post_options): Enable warn_logical_op with
3999 extra_warnings.
4000 * c-common.c (warn_logical_op): Update.
4001 * c-common.h (warn_logical_op): Update declaration.
4002
9db4cdd3
EB
40032009-04-19 Eric Botcazou <ebotcazou@adacore.com>
4004
4005 * tree.c (protected_set_expr_location): Fix formatting.
4006
f37acdf9
JM
40072009-04-18 Joseph Myers <joseph@codesourcery.com>
4008
4009 PR c/27676
4010 * c-typeck.c (readonly_warning): new.
4011 (build_unary_op, build_modify_expr): Use readonly_warning for
4012 storing into something readonly but not const-qualified.
4013
2b4b7036
JM
40142009-04-18 Joseph Myers <joseph@codesourcery.com>
4015
4016 PR c/22367
4017 * c-typeck.c (build_unary_op): Check for taking address of
4018 expression of type void.
4019
3ce62965
JM
40202009-04-18 Joseph Myers <joseph@codesourcery.com>
4021
4022 PR c/35210
4023 * c-typeck.c (build_function_call): Check for calling a function
4024 with qualified void return types. Call require_complete_type when
4025 generating a trap.
4026
2505c5ed
JH
40272009-04-18 Jan Hubicka <jh@suse.cz>
4028
4029 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4030 Set nothrow flag.
4031 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4032 can_throw_external flag.
4033 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4034 * ipa-pure-const.c (ignore_edge): New function.
4035 (propagate): Compute order for NOTHROW computation; set NOTHROWs
4036 only over can_throw_external edges.
4037 (local_pure_const): Add nothrow flag.
4038 * ipa-utils.c (searchc): Add ignore_edge callback.
4039 (ipa_utils_reduced_inorder): Add ignore_edge callback.
4040 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4041 (set_nothrow_function_flags): Update cgraph.
4042 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4043
2586ba4b
RG
40442009-04-18 Richard Guenther <rguenther@suse.de>
4045
4046 PR middle-end/39804
4047 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4048 (fold_stmt): ... this and ...
4049 (fold_stmt_inplace): ... this.
4050 (fold_stmt_1): Fold references in calls and asms.
4051 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4052
1eefab17
KH
40532009-04-18 Kazu Hirata <kazu@codesourcery.com>
4054
4055 * tree-vrp.c (ssa_name_nonzero_p): Remove.
4056 * tree.h: Remove the prototype for ssa_name_nonzero_p.
4057
aa424b01
KH
40582009-04-18 Kazu Hirata <kazu@codesourcery.com>
4059
4060 * tree.c (function_args_count): Remove.
4061 * tree.h: Remove the prototype for function_args_count.
4062
613a896b
KH
40632009-04-18 Kazu Hirata <kazu@codesourcery.com>
4064
4065 * tree-iterator.c (expr_only): Remove.
4066 * tree.h: Remove the prototype for expr_only.
4067
579e694c
KH
40682009-04-18 Kazu Hirata <kazu@codesourcery.com>
4069
4070 * reginfo.c (cannot_change_mode_set_regs): Remove.
4071 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4072
ee7e3ad3
AS
40732009-04-08 Anatoly Sokolov <aesok@post.ru>
4074
4075 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4076 whether operands 0 and 1 overlaps.
4077
92ef7fb1
MLI
40782009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
4079
4080 PR middle-end/36902
4081 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4082 pointer. Use warning_at instead of warning.
4083 (search_for_addr_array): Likewise.
4084 (check_array_bounds): Likewise.
4085 (check_all_array_refs): Check that the incoming edge is not in the
4086 list of edges to be removed.
4087 (check_all_array_refs): Avoid the temporal pointer.
4088 (vrp_visit_cond_stmt): Fix typo.
4089 (simplify_switch_using_ranges): Handle the case where the switch
4090 index is an integer constant.
4091
0e097268
AN
40922009-04-18 Adam Nemet <anemet@caviumnetworks.com>
4093
4094 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4095
c782f1dd
KH
40962009-04-18 Kazu Hirata <kazu@codesourcery.com>
4097
4098 * doc/extend.texi, doc/invoke.texi: Fix typos.
4099
668fb0e8
CC
41002009-04-17 Cary Coutant <ccoutant@google.com>
4101
4102 * tree-flow-inline.h (get_lineno): Fix inverted test.
4103
4d4014c1
DN
41042009-04-17 Diego Novillo <dnovillo@google.com>
4105
4106 * tree-ssa-pre.c (create_expression_by_pieces): Remove
4107 assertion for AVAIL_OUT.
4108
2984e1b6
MF
41092009-04-17 Mike Frysinger <vapier@gentoo.org>
4110
4111 PR target/38627
4112 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4113 * config/sh/linux-atomic.asm: Likewise.
4114
9994a182
DN
41152009-04-17 Diego Novillo <dnovillo@google.com>
4116
4117 * except.c (debug_eh_tree): New.
4118 (struct eh_region, struct eh_status): Move ...
4119 * except.h: ... here.
4120 (add_type_for_runtime): Declare extern.
4121 (lookup_type_for_runtime): Likewise.
4122 (debug_eh_tree): Declare.
4123 * Makefile.in (GTFILES): List except.h before except.c
4124
07485407
DN
41252009-04-17 Diego Novillo <dnovillo@google.com>
4126
47f402d1 4127 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
4128 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4129 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4130 (find_vars_r): ... here.
4131 * tree-flow.h (find_referenced_vars_in): Declare.
4132 * tree-ssa-pre.c (create_expression_by_pieces): Assert
4133 that AVAIL_OUT exists for BLOCK.
4134 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4135 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4136 (tree-parloops.o): Likewise.
4137
4e53d196
SB
41382009-04-17 Simon Baldwin <simonb@google.com>
4139
4140 * toplev.c (default_tree_printer): Add handling for %E format.
4141
413d3aa8
DN
41422009-04-17 Diego Novillo <dnovillo@google.com>
4143
47f402d1
UB
4144 * tree-pretty-print.c (dump_generic_node): Add break after
4145 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
4146 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
4147 FUNCTION_TYPE together. Call print_struct_decl when printing
4148 structures and TDF_SLIM is not given.
413d3aa8
DN
4149 (print_struct_decl): Fix logic for detecting recursion.
4150
5a691e98
RAE
41512009-04-17 Rafael Avila de Espindola <espindola@google.com>
4152
4153 PR 31567
4154 * gcc.c (create_at_file): New.
4155 (compile_input_file_p): New.
4156 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4157 * main.c (main): Update call to toplev_main.
4158 * toplev.c (toplev_main): Change signature. Call expandargv.
4159 * toplev.h (toplev_main): Change signature.
4160
9eacf7a6
EB
41612009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4162
4163 * dwarf2out.c (field_byte_offset): Use the type size as the field size
4164 if the latter is not constant.
4165
58298177
DE
41662009-04-17 David Edelsohn <edelsohn@gnu.org>
4167
4168 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4169
5b4c43d7
EB
41702009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4171
4172 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4173 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4174
b51605c4
RG
41752009-04-17 Richard Guenther <rguenther@suse.de>
4176
4177 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4178 Handle component references view-converting an invariant address.
4179
9e3be889
AN
41802009-04-17 Adam Nemet <anemet@caviumnetworks.com>
4181
4182 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4183 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4184 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4185 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4186 Use @deftypevr rather than @deftypevar.
4187
7c3e9dc3
RG
41882009-04-17 Richard Guenther <rguenther@suse.de>
4189
47f402d1 4190 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
4191 (get_prop_source_stmt): Likewise.
4192 (can_propagate_from): Likewise.
4193
aca600aa
AS
41942009-04-17 Andrew Stubbs <ams@codesourcery.com>
4195
4196 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4197 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4198 (--with-multilib-list): Add default value.
4199 * configure: Regenerate.
4200 * Makefile.in (TM_ENDIAN_CONFIG): Define.
4201 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4202 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4203 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4204 Don't add default cpu to multilib list unnecessarily, but do enable
4205 the relevant compiler option..
4206 Add support for --with-multilib-list=<blank> and
4207 --with-multilib-list=!<somelib> to supress unwanted multilibs.
4208 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4209 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4210 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4211 TM_MULTILIB_CONFIG.
4212 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4213 (MULTILIB_OSDIRNAMES): New variable.
4214 * config/sh/t-1e: Delete file.
4215 * config/sh/t-mlib-sh1: Delete file.
4216 * config/sh/t-mlib-sh2: Delete file.
4217 * config/sh/t-mlib-sh2a: Delete file.
4218 * config/sh/t-mlib-sh2a-nofpu: Delete file.
4219 * config/sh/t-mlib-sh2a-single: Delete file.
4220 * config/sh/t-mlib-sh2a-single-only: Delete file.
4221 * config/sh/t-mlib-sh2e: Delete file.
4222 * config/sh/t-mlib-sh3e: Delete file.
4223 * config/sh/t-mlib-sh4: Delete file.
4224 * config/sh/t-mlib-sh4-nofpu: Delete file.
4225 * config/sh/t-mlib-sh4-single: Delete file.
4226 * config/sh/t-mlib-sh4-single-only: Delete file.
4227 * config/sh/t-mlib-sh4a: Delete file.
4228 * config/sh/t-mlib-sh4a-nofpu: Delete file.
4229 * config/sh/t-mlib-sh4a-single: Delete file.
4230 * config/sh/t-mlib-sh4a-single-only: Delete file.
4231 * config/sh/t-mlib-sh4al: Delete file.
4232 * config/sh/t-mlib-sh5-32media: Delete file.
4233 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4234 * config/sh/t-mlib-sh5-64media: Delete file.
4235 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4236 * config/sh/t-mlib-sh5-compact: Delete file.
4237 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4238 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4239 * doc/install.texi (Options specification): Add
4240 --with-multilib-list and --with-endian.
4241
cf8aba7f
RAE
42422009-04-17 Rafael Avila de Espindola <espindola@google.com>
4243
4244 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4245 REVISION_c.
4246 (OBJS-common): Add plugin-version.o.
4247 (plugin-version.o): New.
4248 * gcc-plugin.h (plugin_gcc_version): New.
4249 (plugin_default_version_check): New.
4250 (plugin_init_func, plugin_init): Add version argument.
4251 * plugin-version.c: New.
4252 * plugin.c (str_plugin_gcc_version_name): New.
4253 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4254 pass it to the init function.
4255 (plugin_default_version_check): New.
4256
61e20b90
RG
42572009-04-17 Richard Guenther <rguenther@suse.de>
4258
4259 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4260 for decl-vs-decl disambiguation.
4261
90c6fd8a
AK
42622009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
4263
4264 * config/s390/s390.h (s390_tune_attr): New macro definition.
4265 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4266
9fe9fe04
RG
42672009-04-17 Richard Guenther <rguenther@suse.de>
4268
4269 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4270 (fold_stmt_r): Likewise.
4271 (maybe_fold_reference): New function.
4272 (fold_gimple_assign): Handle cases fold_stmt_r did.
4273 (fold_stmt): Do not use fold_stmt_r.
4274 (fold_stmt_inplace): Likewise.
4275
7e673273
RG
42762009-04-17 Richard Guenther <rguenther@suse.de>
4277
4278 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4279 (record_equivalences_from_stmt): Remove useless checks and
4280 simplifications.
4281 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4282 the type is already suitable.
4283
fabf2749
PB
42842009-04-17 Paolo Bonzini <bonzini@gnu.org>
4285
4286 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4287
68f7b061
UB
42882009-04-17 Uros Bizjak <ubizjak@gmail.com>
4289
4290 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4291 (CMPtype): Define as __gcc_CMPtype.
4292
532bfb0a
AJ
42932009-04-17 Aurelien Jarno <aurelien@aurel32.net>
4294
4295 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4296 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4297
e3ac77ff
RG
42982009-04-17 Richard Guenther <rguenther@suse.de>
4299
4300 PR tree-optimization/39746
4301 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4302 special-casing for builtins and static variable use/def.
4303 (call_may_clobber_ref_p_1): Likewise.
4304
7072a650
ILT
43052009-04-16 Ian Lance Taylor <iant@google.com>
4306
4307 * df.h: Include "timevar.h".
4308 (struct df_problem): Change tv_id field to timevar_id_t.
4309 * tree-pass.h: Include "timevar.h".
4310 (struct opt_pass): Change tv_id field to timevar_id_t.
4311 * timevar.h (timevar_id_t): Define TV_NONE.
4312 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4313 TV_NONE rather than tv_id != 0.
4314 (execute_one_pass): Likewise.
4315 * Makefile.in (DF_H): Add $(TIMEVAR_H).
4316 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
4317 dependencies to $(TREE_PASS_H).
4318 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4319 to TV_NONE.
4320 (pass_branch_target_load_optimize2): Likewise.
4321 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4322 (pass_outof_cfg_layout_mode): Likewise.
4323 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4324 (pass_rebuild_cgraph_edges): Likewise.
4325 (pass_remove_cgraph_callee_edges): Likewise.
4326 * df-core.c (pass_df_initialize_opt): Likewise.
4327 (pass_df_initialize_no_opt): Likewise.
4328 (pass_df_finish): Likewise.
4329 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4330 * except.c (pass_set_nothrow_function_flags): Likewise.
4331 (pass_convert_to_eh_region_ranges): Likewise.
4332 * final.c (pass_compute_alignments): Likewise.
4333 * function.c (pass_instantiate_virtual_regs): Likewise.
4334 (pass_init_function): Likewise.
4335 (pass_leaf_regs): Likewise.
4336 (pass_match_asm_constraints): Likewise.
4337 * gimple-low.c (pass_lower_cf): Likewise.
4338 (pass_mark_used_blocks): Likewise.
4339 * init-regs.c (pass_initialize_regs): Likewise.
4340 * integrate.c (pass_initial_value_sets): Likewise.
4341 * ira.c (pass_ira): Likewise.
4342 * jump.c (pass_cleanup_barriers): Likewise.
4343 * omp-low.c (pass_expand_omp): Likewise.
4344 (pass_lower_omp): Likewise.
4345 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
4346 * recog.c (pass_split_all_insns): Likewise.
4347 (pass_split_after_reload): Likewise.
4348 (pass_split_before_regstack): Likewise.
4349 (pass_split_before_sched2): Likewise.
4350 (pass_split_for_shorten_branches): Likewise.
4351 * reginfo.c (pass_reginfo_init): Likewise.
4352 (pass_subregs_of_mode_init): Likewise.
4353 (pass_subregs_of_mode_finish): Likewise.
4354 * passes.c (pass_postreload): Likewise.
4355 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
4356 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
4357 (pass_warn_function_return): Likewise.
4358 (pass_warn_function_noreturn): Likewise.
4359 * tree-complex.c (pass_lower_complex): Likewise.
4360 (pass_lower_complex_O0): Likewise.
4361 * tree-if-conv.c (pass_if_conversion): Likewise.
4362 * tree-into-ssa.c (pass_build_ssa): Likewise.
4363 * tree-mudflap.c (pass_mudflap_1): Likewise.
4364 (pass_mudflap_2): Likewise.
4365 * tree-nomudflap.c (pass_mudflap_1): Likewise.
4366 (pass_mudflap_2): Likewise.
4367 * tree-nrv.c (pass_return_slot): Likewise.
4368 * tree-object-size.c (pass_object_sizes): Likewise.
4369 * tree-optimize.c (pass_all_optimizations): Likewise.
4370 (pass_early_local_passes): Likewise.
4371 (pass_all_early_optimizations): Likewise.
4372 (pass_cleanup_cfg): Likewise.
4373 (pass_cleanup_cfg_post_optimizing): Likewise.
4374 (pass_free_datastructures): Likewise.
4375 (pass_free_cfg_annotations): Likewise.
4376 (pass_fixup_cfg): Likewise.
4377 (pass_init_datastructures): Likewise.
4378 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
4379 (pass_late_warn_uninitialized): Likewise.
4380 (pass_update_address_taken): Likewise.
4381 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
4382 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
4383 (pass_cse_sincos): Likewise.
4384 (pass_convert_to_rsqrt): Likewise.
4385 * tree-ssa-structalias.c (pass_build_alias): Likewise.
4386 * tree-stdarg.c (pass_stdarg): Likewise.
4387 * tree-tailcall.c (pass_tail_recursion): Likewise.
4388 (pass_tail_calls): Likewise.
4389 * tree-vect-generic.c (pass_lower_vector): Likewise.
4390 (pass_lower_vector_ssa): Likewise.
4391 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
4392
0051ef59
JM
43932009-04-16 Joseph Myers <joseph@codesourcery.com>
4394
4395 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4396 XLR entry.
4397 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
4398 Handle -march=xlr.
4399 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
4400 logical and signext.
4401
b3f8558a
KK
44022009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
4403
4404 PR target/39767
4405 * config/sh/predicates.md (arith_operand): Check if the operand
4406 of TRUNCATE is a REG.
4407
f57597d9
KH
44082009-04-16 Kazu Hirata <kazu@codesourcery.com>
4409
4410 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4411 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4412
b172d063
KH
44132009-04-16 Kazu Hirata <kazu@codesourcery.com>
4414
4415 * tree-iterator.c (tsi_split_statement_list_after,
4416 tsi_split_statement_list_before): Remove.
4417 * tree-iterator.h: Remove the prototypes for
532bfb0a 4418 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 4419
78fe4f1f
KH
44202009-04-16 Kazu Hirata <kazu@codesourcery.com>
4421
4422 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
4423 * tree-ssa-propagate.h: Remove the prototype for
4424 stmt_makes_single_load.
4425
43dd3201
KH
44262009-04-16 Kazu Hirata <kazu@codesourcery.com>
4427
4428 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
4429 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
4430
4252a4aa
KH
44312009-04-16 Kazu Hirata <kazu@codesourcery.com>
4432
4433 * tree-iterator.c (EXPR_LAST_BODY): Remove.
4434
bfb69968
KH
44352009-04-16 Kazu Hirata <kazu@codesourcery.com>
4436
4437 * except.c (eh_region_outer_p): Remove.
4438 * except.h: Remove the prototype for eh_region_outer_p.
4439
c7db7fa5
KH
44402009-04-16 Kazu Hirata <kazu@codesourcery.com>
4441
4442 * function.c (current_function_assembler_name): Remove.
4443 * function.h: Remove the prototype for
4444 current_function_assembler_name.
4445
efc0b2bd
ILT
44462009-04-16 Ian Lance Taylor <iant@google.com>
4447
532bfb0a 4448 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
4449 (add_reg_note): Call alloc_reg_note.
4450 * rtl.h (alloc_reg_note): Declare.
4451 * combine.c (try_combine): Use alloc_reg_note.
4452 (recog_for_combine, move_deaths): Likewise.
4453 (distribute_notes): Use alloc_reg_note and add_reg_note.
4454 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
4455 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
4456 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
4457
6080348f
VM
44582009-04-16 Vladimir Makarov <vmakarov@redhat.com>
4459
4460 PR rtl-optimization/39762
4461 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
4462 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 4463 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 4464
6080348f
VM
4465 * ira-conflicts.c (process_regs_for_copy): Use function
4466 ira_get_register_move_cost instead of global
4467 ira_register_move_cost.
4468
4469 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
4470 color_pass, move_spill_restore, update_curr_costs): Ditto.
4471
4472 * ira-lives.c (process_single_reg_class_operands): Ditto.
4473
4474 * ira-emit.c (emit_move_list): Ditto.
4475
4476 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
4477 (record_reg_classes): Ditto. Use functions
4478 ira_get_register_move_cost and ira_get_may_move_cost instead of
4479 global vars ira_register_move_cost, ira_may_move_out_cost and
4480 ira_may_move_in_cost.
4481 (record_address_regs): Don't call ira_init_register_move_cost.
4482 Use function ira_get_may_move_cost instead of global
4483 ira_may_move_in_cost.
4484 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 4485 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 4486 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 4487
646bea10
RG
44882009-04-16 Richard Guenther <rguenther@suse.de>
4489
4490 * tree-cfg.c (verify_gimple_assign_binary):
4491 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
4492 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
4493 (create_general_new_stmt): Note that this function is broken.
4494
02e819ff
RAE
44952009-04-16 Rafael Avila de Espindola <espindola@google.com>
4496
4497 * common.opt (fhelp): Add Var(help_flag).
4498 * gcc-plugin.h (plugin_info): Add help.
4499 * plugin.c (plugin_name_args): Add help.
4500 (register_plugin_info): Set plugin->help.
4501 (print_help_one_plugin): New.
4502 (print_plugins_help): New.
4503 * plugin.h (print_plugins_help): New.
4504 * toplev.c (toplev_main): Call print_plugins_help if needed.
4505
ccacdf06
RG
45062009-04-16 Richard Guenther <rguenther@suse.de>
4507
4508 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
4509 (gimple_ior_addresses_taken_1): New function.
4510 (gimple_ior_addresses_taken): Likewise.
4511 * gimple.h (struct gimple_statement_with_ops_base): Remove
4512 addresses_taken member.
4513 (gimple_ior_addresses_taken): Declare.
4514 (gimple_addresses_taken, gimple_addresses_taken_ptr,
4515 gimple_set_addresses_taken): Remove.
4516 * ipa-reference.c (mark_address): New function.
4517 (scan_stmt_for_static_refs): Use it for marking addresses taken.
4518 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
4519 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
4520 (gimple_add_to_addresses_taken): Remove.
4521 (get_tmr_operands): Call mark_address_taken.
4522 (get_asm_expr_operands): Likewise.
4523 (get_expr_operands): Likewise.
4524 (build_ssa_operands): Do not clear the addresses_taken bitmap.
4525 (free_stmt_operands): Do not free it.
4526 * tree-ssa.c (delete_tree_ssa): Likewise.
4527 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
4528
346ef3fa
RG
45292009-04-16 Richard Guenther <rguenther@suse.de>
4530
4531 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
4532 (walk_stmt_load_store_ops): Likewise.
4533 * gimple.c (get_base_loadstore): New function.
4534 (walk_stmt_load_store_addr_ops): Likewise.
4535 (walk_stmt_load_store_ops): Likewise.
4536 * ipa-pure-const.c (check_op): Simplify.
4537 (check_load, check_store): New functions.
4538 (check_stmt): Use walk_stmt_load_store_ops.
4539 * ipa-reference.c (mark_load): Adjust signature.
4540 (mark_store): Likewise.
4541 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
4542
44e9f006
RAE
45432009-04-16 Rafael Avila de Espindola <espindola@google.com>
4544
4545 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
4546 (plugin_info): New.
4547 * opts.c (common_handle_option): Don't call print_version.
4548 * plugin.c (plugin_name_args): Add version.
4549 (register_plugin_info): New.
4550 (register_callback): Handle PLUGIN_INFO.
4551 (try_init_one_plugin): New.
4552 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
4553 if failed to init.
4554 (finalize_one_plugin): New.
4555 (finalize_plugins): New.
4556 (print_one_plugin): New.
4557 (print_plugins_versions): New.
4558 * plugin.h (print_plugins_versions): New.
4559 (finalize_plugins): New.
4560 * toplev.c (compile_file): Don't call initialize_plugins.
4561 (print_version): Call print_plugins_versions.
4562 (toplev_main): Call initialize_plugins. Print version if needed.
4563 Call finalize_plugins.
4564
41fd0f9b
RAE
45652009-04-16 Rafael Avila de Espindola <espindola@google.com>
4566
4567 * common.opt (fversion): New.
4568 * gcc.c (print_version): New.
4569 (process_command): Don't print the version. Just set print_version.
4570 (main): Print version. Call subprocesses if print_version and
4571 verbose_flag are set.
4572 * opts.c (common_handle_option): Handle OPT_fversion.
4573
550918ca 45742009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 4575 Ira Rosen <irar@il.ibm.com>
550918ca
RG
4576
4577 PR tree-optimization/39698
4578 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
4579 type of the reduction variable. Only generate the def if
4580 it is needed.
4581
4582 * omp-low.c (expand_omp_for_generic): When converting to a pointer
4583 make sure to first convert to an integer of the same precision.
4584 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
4585 the type of the evolution correctly in computing the new
4586 induction variable base.
4587
54634841
RG
45882009-04-16 Richard Guenther <rguenther@suse.de>
4589
4590 PR middle-end/39625
4591 * tree-cfg.c (make_blocks): Split statements with to-be
4592 abnormal SSA names on the lhs.
4593
b6fc2cdb
PB
45942009-04-16 Paolo Bonzini <bonzini@gnu.org>
4595
4596 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
4597 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
4598 * c-typeck.c (really_start_incremental_init): Likewise.
4599 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
4600 (TARGET_INITIALIZER): Remove it.
4601 * target.h (struct target): Remove vector_opaque_p.
4602 * tree.c (build_opaque_vector_type): New.
4603 * tree.h (TYPE_VECTOR_OPAQUE): New.
4604 (build_opaque_vector_type): Declare.
4605 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
4606 * config/rs6000/rs6000.c (build_opaque_vector_type,
4607 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
4608 (rs6000_init_builtins): Use build_opaque_vector_type for
4609 opaque_V4SI_type_node.
4610
a417cdd9
CM
46112009-04-15 Catherine Moore <clm@codesourcery.com>
4612
532bfb0a
AJ
4613 * debug.h (set_name): Declare.
4614 * dwarf2out.c (dwarf2out_set_name): Declare.
4615 (dwarf2_debug_hooks): Add set_name.
4616 (find_AT_string): New.
4617 (add_AT_string): Call find_AT_string.
4618 (dwarf2out_set_name): New.
4619 * cp/decl.c (grokdeclarator): Call set_name.
4620 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
4621 * debug.c (do_nothing_debug_hooks): Likewise.
4622 * dbxout.c (dbx_debug_hooks): Likewise.
4623 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 4624
60839f5d 46252009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 4626
532bfb0a
AJ
4627 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
4628 reg for single-precision FPU.
4629 * config/rs6000/rs6000.md (movsi_internal1): Only for
4630 !TARGET_SINGLE_FPU.
4631 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
4632 single-precision FP regs.
4633
ada39f0b
RG
46342009-04-15 Richard Guenther <rguenther@suse.de>
4635
4636 * omp-low.c (lower_rec_input_clauses): Build correct address
4637 expressions.
4638 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 4639 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
4640 (generate_memset_zero): Fix types.
4641 * tree-profile.c (prepare_instrumented_value): Correctly
4642 widen a pointer.
4643
6866c6e8
ILT
46442009-04-15 Ian Lance Taylor <iant@google.com>
4645
4646 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
4647 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
4648 for -Wall and for -Wc++-compat.
4649 (c_common_post_options): For C++, set warn_enum_compare if not
4650 already set.
4651 * c-tree.h (struct c_expr): Add field original_type.
4652 (build_external_ref): Update declaration.
4653 * c-parser.c (c_parser_braced_init): Set original_type.
4654 (c_parser_initelt): Likewise.
4655 (c_parser_expr_no_commas): Likewise.
4656 (c_parser_conditional_expression): Likewise.
4657 (c_parser_cast_expression): Likewise.
4658 (c_parser_unary_expression): Likewise. Pull setting of
4659 original_code to top of function.
4660 (c_parser_sizeof_expression): Set original_type.
4661 (c_parser_alignof_expression): Likewise.
4662 (c_parser_postfix_expression): Likewise. Pull setting of
4663 original_code to top of function.
532bfb0a 4664 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
4665 (c_parser_postfix_expression_after_primary): Likewise.
4666 (c_parser_expression): Likewise.
4667 * c-typeck.c (build_external_ref): Add type parameter. Change all
4668 callers.
4669 (c_expr_sizeof_expr): Set original_type field.
4670 (parser_build_unary_op): Likewise.
4671 (parser_build_binary_op): Likewise. Optionally warn about
4672 comparisons of enums of different types.
4673 (digest_init): Set original_type field.
4674 (really_start_incremental_init): Likewise.
4675 (push_init_level, pop_init_level): Likewise.
4676 * doc/invoke.texi (Warning Options): -Wenum-compare now
4677 supported in C.
4678
f116fecf
RG
46792009-04-15 Richard Guenther <rguenther@suse.de>
4680
4681 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
4682 out a necessary conversion.
4683 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
4684 names we didn't value number.
4685 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
4686
25e20805
RG
46872009-04-15 Richard Guenther <rguenther@suse.de>
4688
4689 PR tree-optimization/39764
4690 * tree-ssa-ccp.c (get_value): Canonicalize value with
4691 canonicalize_float_value.
4692
90cc3676
JH
46932009-04-15 Jan Hubicka <jh@suse.cz>
4694
4695 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
4696 Wrong version of patch.
4697
6d14c006
JH
46982009-04-15 Jan Hubicka <jh@suse.cz>
4699
4700 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
4701
5afaa917
NS
47022009-04-15 Nathan Sidwell <nathan@codesourcery.com>
4703
4704 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
4705 our distinct integral and vector types.
4706
3b482fca
RAE
47072009-04-15 Rafael Avila de Espindola <espindola@google.com>
4708
4709 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
4710 * init.c (build_vtbl_address): Remove call to assemble_external.
4711
6cd1d2e2
DJ
47122009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
4713
4714 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
4715 output for other floating point modes.
4716
dab71827
DN
47172009-04-14 Diego Novillo <dnovillo@google.com>
4718
4719 * diagnostic.c (diagnostic_report_diagnostic): Do not
4720 warn about loaded plugins for DK_ERROR and DK_WARNING.
4721 * c-decl.c (declspecs_add_type): Move call to
4722 invoke_plugin_callbacks ...
4723 * c-parser.c (c_parser_declspecs): ... here.
4724 * plugin.c (dump_active_plugins): Tidy output.
4725
68a607d8
DN
47262009-04-14 Diego Novillo <dnovillo@google.com>
4727 Le-Chun Wu <lcwu@google.com>
4728
4729 * configure.ac: Add --enable-plugin support.
4730 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
4731 * Makefile.in (PLUGIN_H): Define.
4732 Export ENABLE_PLUGIN and GMPINC to site.exp.
4733 Add PLUGINLIBS to link command.
4734 Add/modify dependencies for plugin.o and files including plugin.h.
4735 (plugin.o): New.
4736 * config.in: Regenerate.
2ba9daa7 4737
68a607d8
DN
4738 * opts.c (common_handle_option): Handle OPT_fplugin_ and
4739 OPT_fplugin_arg_.
4740
47412009-04-14 Le-Chun Wu <lcwu@google.com>
4742
4743 * tree-pass.h (register_one_dump_file): Add a prototype for
4744 register_one_dump_file.
4745 * toplev.c (compile_file): Call initialize_plugins.
4746 (do_compile): Call invoke_plugin_callbacks.
4747 (toplev_main): Call invoke_plugin_callbacks.
4748 * common.opt: Add -fplugin= and -fplugin-arg-.
4749 * gcc-plugin.h: New public header file for plugins to include.
4750 * plugin.c: New source file.
4751 * plugin.h: New internal header file.
4752 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 4753
68a607d8
DN
4754 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
4755
47562009-04-14 Diego Novillo <dnovillo@google.com>
4757
4758 * doc/plugins.texi: New.
4759 * doc/gccint.texi: Add reference to Plugins chapter.
4760 * doc/invoke.texi: Document -fplugin and -fplugin-arg
4761 * diagnostic.c (diagnostic_report_diagnostic): Warn about
4762 loaded plugins, if any.
4763 * timevar.def (TV_PLUGIN_INIT): Define.
4764 (TV_PLUGIN_RUN): Define.
4765 * plugin.c: Include timevar.h
4766 (plugins_active_p): New.
4767 (dump_active_plugins): New.
4768 (debug_active_plugins): New.
4769
50617257
JM
47702009-04-14 Joseph Myers <joseph@codesourcery.com>
4771
4772 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
4773 library paths.
4774 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
4775
b32f6fff
KH
47762009-04-14 Kazu Hirata <kazu@codesourcery.com>
4777
4778 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
4779 the same as a minus without a shift.
4780
85d04fa2
NC
47812009-04-14 Nick Clifton <nickc@redhat.com>
4782
4783 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
4784 comparisons with small integers will always produce a short
4785 branch.
4786
e495a0c8
RAE
47872009-04-14 Rafael Avila de Espindola <espindola@google.com>
4788
4789 Merge:
e495a0c8
RAE
4790 2008-12-19 Diego Novillo <dnovillo@google.com>
4791
532bfb0a 4792 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 4793
ad41bd84 47942009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
4795
4796 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
4797 verification.
4798 (verify_gimple_assign_binary): Likewise. Handle shifts and
4799 rotates correctly.
4800 (verify_gimple_phi): Print the mismatched argument position.
4801 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
4802 Fix types.
4803 (vect_update_init_of_dr): Likewise.
4804 * matrix-reorg.c (transform_access_sites): Do what the
4805 comment suggests.
4806 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
4807
60839f5d 48082009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
4809
4810 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
4811 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
4812 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 4813 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
4814 remove duplicate config
4815
b0e2d008
DR
48162009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
4817
4818 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
4819 file_name:line_number type locator of the call site.
2ba9daa7 4820
1244a8b7
VM
48212009-04-13 Vladimir Makarov <vmakarov@redhat.com>
4822
4823 * genautomata.c: Put blank after comma.
4824 (automaton_decls): New.
4825 (struct unit_usage): Add comments to member next.
4826 (store_alt_unit_usage): Keep the list ordered.
4827 (unit_present_on_list_p, equal_alternatives_p): New.
4828 (check_regexp_units_distribution): Check units distribution
4829 correctness correctly.
4830 (main): Don't write automata if error is found. Return correct
4831 exit code.
2ba9daa7 4832
1244a8b7
VM
4833 * config/m68k/cf.md (cfv4_ds): Remove.
4834 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
4835 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
4836
4837 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
4838 power4-load-ext, power4-store, power4-store-update,
4839 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
4840 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
4841 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
4842 power4-sqrt, power4-isync): Modify reservation to make correct
4843 unit distribution to automata.
4844
4845 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
4846 power5-store-update, power5-two, power5-three, power5-lmul,
4847 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 4848
f7dd1864
AN
48492009-04-13 Adam Nemet <anemet@caviumnetworks.com>
4850
4851 * except.c (pass_set_nothrow_function_flags): Set name and add
4852 TODO_dump_func.
4853 (set_nothrow_function_flags): Mention in the dump file when
4854 changing a function to nothrow.
4855
59a1171f
OS
48562009-04-13 Ozkan Sezer <sezeroz@gmail.com>
4857
4858 PR/39066
4859 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
4860 instead of unsigned long.
4861
934c2060
RR
48622009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4863
f7dd1864
AN
4864 * config/arm/arm.c (return_used_this_function): Remove.
4865 (arm_output_function_prologue): Remove use of
934c2060 4866 return_used_this_function.
f7dd1864 4867 (output_return_instruction): Replace use of
934c2060
RR
4868 return_used_this_function
4869 by cfun->machine->return_used_this_function.
f7dd1864
AN
4870 (arm_output_epilogue): Likewise.
4871 (arm_output_function_epilogue): Likewise.
4872 (thumb_unexpanded_epilogue): Likewise.
4873 * config/arm/arm.h (struct machine_function):
934c2060 4874 New member return_used_this_function.
f7dd1864 4875
ae5cc016
MM
48762009-04-12 Mark Mitchell <mark@codesourcery.com>
4877
4878 * doc/install.texi: Correct description of default directory for
4879 --with-gxx-include-dir.
4880
a0ce68df 48812009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
4882
4883 * fold-const.c (build_range_check): Properly deal with enumeral and
4884 boolean base types.
4885
3906a4a1
SB
48862009-04-12 Steven Bosscher <steven@gcc.gnu.org>
4887
4888 * doc/invoke.texi (max_gcse_passes): Remove documentation.
4889 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
4890 * params.h (MAX_GCSE_PASSES): Remove.
4891 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
4892 in sequence. Remove ability to run multiple passes.
4893 (bypass_jumps): Report run as third CPROP pass.
4894
efaadb93
AN
48952009-04-12 Adam Nemet <anemet@caviumnetworks.com>
4896
4897 PR middle-end/39651
4898 * except.c (can_throw_external): Look at each insn in a SEQUENCE
4899 when deciding whether the whole SEQUENCE can throw.
4900
4c48007b
UB
49012009-04-12 Uros Bizjak <ubizjak@gmail.com>
4902
4903 PR target/39740
4904 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
4905 offseted label references.
4906
b4104018
JH
49072009-04-11 Jan Hubicka <jh@suse.cz>
4908
4909 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
4910
32848948
RG
49112009-04-11 Richard Guenther <rguenther@suse.de>
4912
4913 PR middle-end/39732
4914 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
4915 return variables as TREE_ADDRESSABLE.
4916
8810712e
RG
49172009-04-11 Richard Guenther <rguenther@suse.de>
4918
4919 PR tree-optimization/39713
4920 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
4921 reference trees have SSA_NAME operands.
4922
fa78c0c1
RG
49232009-04-11 Richard Guenther <rguenther@suse.de>
4924
4925 PR c/39712
4926 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
4927 address expressions.
4928
4d722130
DK
49292009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
4930
4931 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
4932 match changes in Cygwin 1.7
4933 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
4934 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
4935
567a90f5
PB
49362009-04-10 Paolo Bonzini <bonzini@gnu.org>
4937
4938 PR tree-optimization/39701
4939 * doc/invoke.texi (Optimization Options): Document change in
4940 meaning and initialization of -fdelete-null-pointer-checks.
4941
1ad2f450
L
49422009-04-10 H.J. Lu <hongjiu.lu@intel.com>
4943
4944 PR middle-end/39701
4945 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
4946
4947 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
4948 here.
4949
4950 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
4951
1afc5373
CF
49522009-04-10 Chao-ying Fu <fu@mips.com>
4953
4954 * doc/tm.texi (Instruction Output): Document
4955 TARGET_ASM_FINAL_POSTSCAN_INSN.
4956 * target.h (final_postscan_insn): New field in asm_out.
4957 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
4958 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
4959 * final.c (final_scan_insn): Call
4960 targetm.asm_out.final_postscan_insn after outputting
4961 an asm macro and a normal instruction.
4962
4963 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
4964 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
4965 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
4966 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
4967 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
4968
4d35e75c
PB
49692009-04-10 Paolo Bonzini <bonzini@gnu.org>
4970
4971 PR middle-end/39701
1ad2f450
L
4972 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
4973 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 4974
62c49b83
L
49752009-04-10 H.J. Lu <hongjiu.lu@intel.com>
4976
4977 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
4978
80558628
L
49792009-04-09 H.J. Lu <hongjiu.lu@intel.com>
4980
4981 PR target/39678
4982 * config/i386/i386.c (classify_argument): Handle SCmode with
4983 (bit_offset % 64) != 0.
4984
8c70d28b
SL
49852009-04-09 Sandra Loosemore <sandra@codesourcery.com>
4986
4987 * doc/invoke.texi (Optimize Options): Add cross-reference to
4988 -Q --help=optimizers examples.
4989
e1ff19bf
BE
49902009-04-10 Ben Elliston <bje@au.ibm.com>
4991
4992 PR target/36800
4993 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
4994 regalign for the reg == fpr and TDmode case.
4995
52daca75
DA
49962009-04-09 David Ayers <ayers@fsfe.org>
4997
4998 PR objc/29200
4999 * objc/objc-act.c (warn_with_method): Remove helper function.
5000 (check_duplicates): Call warning and inform directly.
5001 (really_start_method): Likewise.
5002
b45f0e58
PB
50032009-04-09 Paolo Bonzini <bonzini@gnu.org>
5004
5005 * expmed.c (expand_divmod): Always use a comparison for a division
5006 by a large unsigned integer.
5007
1ad2f450
L
5008 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5009 for things others than variables or functions as nonzero.
b45f0e58 5010
748086b7
JJ
50112009-04-09 Nick Clifton <nickc@redhat.com>
5012
5013 * unwind-compat.c: Change copyright header to refer to version
5014 3 of the GNU General Public License with version 3.1 of the
5015 GCC Runtime Library Exception and to point readers at the
7a715bba 5016 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
5017 * config/alpha/crtfastmath.c: Likewise.
5018 * config/alpha/linux-unwind.h: Likewise.
5019 * config/alpha/qrnnd.asm: Likewise.
5020 * config/alpha/vms-crt0-64.c: Likewise.
5021 * config/alpha/vms-crt0.c: Likewise.
5022 * config/alpha/vms-dwarf2.asm: Likewise.
5023 * config/alpha/vms-dwarf2eh.asm: Likewise.
5024 * config/alpha/vms-psxcrt0-64.c: Likewise.
5025 * config/alpha/vms-psxcrt0.c: Likewise.
5026 * config/alpha/vms_tramp.asm: Likewise.
5027 * config/arc/initfini.c: Likewise.
5028 * config/arc/lib1funcs.asm: Likewise.
5029 * config/arm/bpabi-v6m.S: Likewise.
5030 * config/arm/bpabi.S: Likewise.
5031 * config/arm/bpabi.c: Likewise.
5032 * config/arm/crti.asm: Likewise.
5033 * config/arm/crtn.asm: Likewise.
5034 * config/arm/ieee754-df.S: Likewise.
5035 * config/arm/ieee754-sf.S: Likewise.
5036 * config/arm/lib1funcs.asm: Likewise.
5037 * config/arm/libunwind.S: Likewise.
5038 * config/arm/linux-atomic.c: Likewise.
5039 * config/arm/mmintrin.h: Likewise.
5040 * config/arm/pr-support.c: Likewise.
5041 * config/arm/unaligned-funcs.c: Likewise.
5042 * config/arm/unwind-arm.c: Likewise.
5043 * config/arm/unwind-arm.h: Likewise.
5044 * config/avr/libgcc.S: Likewise.
5045 * config/bfin/crti.s: Likewise.
5046 * config/bfin/crtlibid.s: Likewise.
5047 * config/bfin/crtn.s: Likewise.
5048 * config/bfin/lib1funcs.asm: Likewise.
5049 * config/bfin/linux-unwind.h: Likewise.
5050 * config/cris/arit.c: Likewise.
5051 * config/cris/cris_abi_symbol.c: Likewise.
5052 * config/darwin-64.c: Likewise.
5053 * config/darwin-crt2.c: Likewise.
5054 * config/darwin-crt3.c: Likewise.
5055 * config/darwin.h: Likewise.
5056 * config/dbxelf.h: Likewise.
5057 * config/dfp-bit.c: Likewise.
5058 * config/dfp-bit.h: Likewise.
5059 * config/elfos.h: Likewise.
5060 * config/fixed-bit.c: Likewise.
5061 * config/fixed-bit.h: Likewise.
5062 * config/fp-bit.c: Likewise.
5063 * config/fp-bit.h: Likewise.
5064 * config/fr30/crti.asm: Likewise.
5065 * config/fr30/crtn.asm: Likewise.
5066 * config/fr30/lib1funcs.asm: Likewise.
5067 * config/freebsd-spec.h: Likewise.
5068 * config/frv/cmovd.c: Likewise.
5069 * config/frv/cmovh.c: Likewise.
5070 * config/frv/cmovw.c: Likewise.
5071 * config/frv/frvbegin.c: Likewise.
5072 * config/frv/frvend.c: Likewise.
5073 * config/frv/lib1funcs.asm: Likewise.
5074 * config/glibc-stdint.h: Likewise.
5075 * config/h8300/clzhi2.c: Likewise.
5076 * config/h8300/crti.asm: Likewise.
5077 * config/h8300/crtn.asm: Likewise.
5078 * config/h8300/ctzhi2.c: Likewise.
5079 * config/h8300/fixunssfsi.c: Likewise.
5080 * config/h8300/lib1funcs.asm: Likewise.
5081 * config/h8300/parityhi2.c: Likewise.
5082 * config/h8300/popcounthi2.c: Likewise.
5083 * config/i386/ammintrin.h: Likewise.
5084 * config/i386/att.h: Likewise.
5085 * config/i386/avxintrin.h: Likewise.
5086 * config/i386/biarch64.h: Likewise.
5087 * config/i386/bmmintrin.h: Likewise.
5088 * config/i386/cpuid.h: Likewise.
5089 * config/i386/cross-stdarg.h: Likewise.
5090 * config/i386/crtfastmath.c: Likewise.
5091 * config/i386/crtprec.c: Likewise.
5092 * config/i386/cygming-crtbegin.c: Likewise.
5093 * config/i386/cygming-crtend.c: Likewise.
5094 * config/i386/cygwin.asm: Likewise.
5095 * config/i386/emmintrin.h: Likewise.
5096 * config/i386/gmm_malloc.h: Likewise.
5097 * config/i386/gthr-win32.c: Likewise.
5098 * config/i386/i386.h: Likewise.
5099 * config/i386/immintrin.h: Likewise.
5100 * config/i386/linux-unwind.h: Likewise.
5101 * config/i386/linux64.h: Likewise.
5102 * config/i386/mm3dnow.h: Likewise.
5103 * config/i386/mmintrin-common.h: Likewise.
5104 * config/i386/mmintrin.h: Likewise.
5105 * config/i386/nmmintrin.h: Likewise.
5106 * config/i386/pmm_malloc.h: Likewise.
5107 * config/i386/pmmintrin.h: Likewise.
5108 * config/i386/smmintrin.h: Likewise.
5109 * config/i386/sol2-c1.asm: Likewise.
5110 * config/i386/sol2-ci.asm: Likewise.
5111 * config/i386/sol2-cn.asm: Likewise.
5112 * config/i386/sol2-gc1.asm: Likewise.
5113 * config/i386/tmmintrin.h: Likewise.
5114 * config/i386/unix.h: Likewise.
5115 * config/i386/w32-unwind.h: Likewise.
5116 * config/i386/wmmintrin.h: Likewise.
5117 * config/i386/x86-64.h: Likewise.
5118 * config/i386/x86intrin.h: Likewise.
5119 * config/i386/xmmintrin.h: Likewise.
5120 * config/ia64/crtbegin.asm: Likewise.
5121 * config/ia64/crtend.asm: Likewise.
5122 * config/ia64/crtfastmath.c: Likewise.
5123 * config/ia64/crti.asm: Likewise.
5124 * config/ia64/crtn.asm: Likewise.
5125 * config/ia64/fde-glibc.c: Likewise.
5126 * config/ia64/lib1funcs.asm: Likewise.
5127 * config/ia64/linux-unwind.h: Likewise.
5128 * config/ia64/quadlib.c: Likewise.
5129 * config/ia64/unwind-ia64.c: Likewise.
5130 * config/linux.h: Likewise.
5131 * config/m32c/m32c-lib1.S: Likewise.
5132 * config/m32c/m32c-lib2-trapv.c: Likewise.
5133 * config/m32c/m32c-lib2.c: Likewise.
5134 * config/m32r/initfini.c: Likewise.
5135 * config/m68hc11/larith.asm: Likewise.
5136 * config/m68hc11/m68hc11-crt0.S: Likewise.
5137 * config/m68k/cf.md: Likewise.
5138 * config/m68k/crti.s: Likewise.
5139 * config/m68k/crtn.s: Likewise.
5140 * config/m68k/lb1sf68.asm: Likewise.
5141 * config/m68k/linux-unwind.h: Likewise.
5142 * config/mcore/crti.asm: Likewise.
5143 * config/mcore/crtn.asm: Likewise.
5144 * config/mcore/lib1.asm: Likewise.
5145 * config/mips/linux-unwind.h: Likewise.
5146 * config/mips/loongson.h: Likewise.
5147 * config/mips/mips16.S: Likewise.
5148 * config/mmix/crti.asm: Likewise.
5149 * config/mmix/crtn.asm: Likewise.
5150 * config/pa/fptr.c: Likewise.
5151 * config/pa/hpux-unwind.h: Likewise.
5152 * config/pa/lib2funcs.asm: Likewise.
5153 * config/pa/linux-atomic.c: Likewise.
5154 * config/pa/linux-unwind.h: Likewise.
5155 * config/pa/milli64.S: Likewise.
5156 * config/pa/quadlib.c: Likewise.
5157 * config/pa/stublib.c: Likewise.
5158 * config/picochip/libgccExtras/adddi3.asm: Likewise.
5159 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5160 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5161 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5162 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5163 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5164 * config/picochip/libgccExtras/divmod15.asm: Likewise.
5165 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5166 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5167 * config/picochip/libgccExtras/longjmp.asm: Likewise.
5168 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5169 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5170 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5171 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5172 * config/picochip/libgccExtras/setjmp.asm: Likewise.
5173 * config/picochip/libgccExtras/subdi3.asm: Likewise.
5174 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5175 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5176 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5177 * config/rs6000/750cl.h: Likewise.
5178 * config/rs6000/altivec.h: Likewise.
5179 * config/rs6000/biarch64.h: Likewise.
5180 * config/rs6000/crtresfpr.asm: Likewise.
5181 * config/rs6000/crtresgpr.asm: Likewise.
5182 * config/rs6000/crtresxfpr.asm: Likewise.
5183 * config/rs6000/crtresxgpr.asm: Likewise.
5184 * config/rs6000/crtsavfpr.asm: Likewise.
5185 * config/rs6000/crtsavgpr.asm: Likewise.
5186 * config/rs6000/darwin-asm.h: Likewise.
5187 * config/rs6000/darwin-fallback.c: Likewise.
5188 * config/rs6000/darwin-fpsave.asm: Likewise.
5189 * config/rs6000/darwin-ldouble.c: Likewise.
5190 * config/rs6000/darwin-tramp.asm: Likewise.
5191 * config/rs6000/darwin-unwind.h: Likewise.
5192 * config/rs6000/darwin-vecsave.asm: Likewise.
5193 * config/rs6000/darwin-world.asm: Likewise.
5194 * config/rs6000/e500crtres32gpr.asm: Likewise.
5195 * config/rs6000/e500crtres64gpr.asm: Likewise.
5196 * config/rs6000/e500crtres64gprctr.asm: Likewise.
5197 * config/rs6000/e500crtrest32gpr.asm: Likewise.
5198 * config/rs6000/e500crtrest64gpr.asm: Likewise.
5199 * config/rs6000/e500crtresx32gpr.asm: Likewise.
5200 * config/rs6000/e500crtresx64gpr.asm: Likewise.
5201 * config/rs6000/e500crtsav32gpr.asm: Likewise.
5202 * config/rs6000/e500crtsav64gpr.asm: Likewise.
5203 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5204 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5205 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5206 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5207 * config/rs6000/eabi-ci.asm: Likewise.
5208 * config/rs6000/eabi-cn.asm: Likewise.
5209 * config/rs6000/eabi.asm: Likewise.
5210 * config/rs6000/linux-unwind.h: Likewise.
5211 * config/rs6000/linux64.h: Likewise.
5212 * config/rs6000/paired.h: Likewise.
5213 * config/rs6000/paired.md: Likewise.
5214 * config/rs6000/ppc64-fp.c: Likewise.
5215 * config/rs6000/ppu_intrinsics.h: Likewise.
5216 * config/rs6000/rs6000.h: Likewise.
5217 * config/rs6000/si2vmx.h: Likewise.
5218 * config/rs6000/sol-ci.asm: Likewise.
5219 * config/rs6000/sol-cn.asm: Likewise.
5220 * config/rs6000/spe.h: Likewise.
5221 * config/rs6000/spu2vmx.h: Likewise.
5222 * config/rs6000/sysv4.h: Likewise.
5223 * config/rs6000/tramp.asm: Likewise.
5224 * config/rs6000/vec_types.h: Likewise.
5225 * config/s390/linux-unwind.h: Likewise.
5226 * config/s390/tpf-unwind.h: Likewise.
5227 * config/score/crti.asm: Likewise.
5228 * config/score/crtn.asm: Likewise.
5229 * config/sh/crt1.asm: Likewise.
5230 * config/sh/crti.asm: Likewise.
5231 * config/sh/crtn.asm: Likewise.
5232 * config/sh/divtab-sh4-300.c: Likewise.
5233 * config/sh/divtab-sh4.c: Likewise.
5234 * config/sh/divtab.c: Likewise.
5235 * config/sh/lib1funcs-4-300.asm: Likewise.
5236 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5237 * config/sh/lib1funcs.asm: Likewise.
5238 * config/sh/lib1funcs.h: Likewise.
5239 * config/sh/linux-atomic.asm: Likewise.
5240 * config/sh/linux-unwind.h: Likewise.
5241 * config/sh/shmedia.h: Likewise.
5242 * config/sh/sshmedia.h: Likewise.
5243 * config/sh/ushmedia.h: Likewise.
5244 * config/sparc/crtfastmath.c: Likewise.
5245 * config/sparc/linux-unwind.h: Likewise.
5246 * config/sparc/sol2-c1.asm: Likewise.
5247 * config/sparc/sol2-ci.asm: Likewise.
5248 * config/sparc/sol2-cn.asm: Likewise.
5249 * config/spu/divmodti4.c: Likewise.
5250 * config/spu/divv2df3.c: Likewise.
5251 * config/spu/float_disf.c: Likewise.
5252 * config/spu/float_unsdidf.c: Likewise.
5253 * config/spu/float_unsdisf.c: Likewise.
5254 * config/spu/float_unssidf.c: Likewise.
5255 * config/spu/mfc_multi_tag_release.c: Likewise.
5256 * config/spu/mfc_multi_tag_reserve.c: Likewise.
5257 * config/spu/mfc_tag_release.c: Likewise.
5258 * config/spu/mfc_tag_reserve.c: Likewise.
5259 * config/spu/mfc_tag_table.c: Likewise.
5260 * config/spu/multi3.c: Likewise.
5261 * config/spu/spu_internals.h: Likewise.
5262 * config/spu/spu_intrinsics.h: Likewise.
5263 * config/spu/spu_mfcio.h: Likewise.
5264 * config/spu/vec_types.h: Likewise.
5265 * config/spu/vmx2spu.h: Likewise.
5266 * config/stormy16/stormy16-lib2.c: Likewise.
5267 * config/svr4.h: Likewise.
5268 * config/sync.c: Likewise.
5269 * config/v850/lib1funcs.asm: Likewise.
5270 * config/vxlib-tls.c: Likewise.
5271 * config/vxlib.c: Likewise.
5272 * config/vxworks-dummy.h: Likewise.
5273 * config/xtensa/crti.asm: Likewise.
5274 * config/xtensa/crtn.asm: Likewise.
5275 * config/xtensa/ieee754-df.S: Likewise.
5276 * config/xtensa/ieee754-sf.S: Likewise.
5277 * config/xtensa/lib1funcs.asm: Likewise.
5278 * config/xtensa/lib2funcs.S: Likewise.
5279 * config/xtensa/linux-unwind.h: Likewise.
5280 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5281 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5282 * coretypes.h: Likewise.
5283 * crtstuff.c: Likewise.
5284 * defaults.h: Likewise.
5285 * dwarf2.h: Likewise.
5286 * emutls.c: Likewise.
5287 * gbl-ctors.h: Likewise.
5288 * gcov-io.h: Likewise.
5289 * ginclude/float.h: Likewise.
5290 * ginclude/iso646.h: Likewise.
5291 * ginclude/stdarg.h: Likewise.
5292 * ginclude/stdbool.h: Likewise.
5293 * ginclude/stddef.h: Likewise.
5294 * ginclude/stdfix.h: Likewise.
5295 * ginclude/stdint-gcc.h: Likewise.
5296 * ginclude/tgmath.h: Likewise.
5297 * gthr-aix.h: Likewise.
5298 * gthr-dce.h: Likewise.
5299 * gthr-gnat.c: Likewise.
5300 * gthr-gnat.h: Likewise.
5301 * gthr-lynx.h: Likewise.
5302 * gthr-mipssde.h: Likewise.
5303 * gthr-nks.h: Likewise.
5304 * gthr-posix.c: Likewise.
5305 * gthr-posix.h: Likewise.
5306 * gthr-posix95.h: Likewise.
5307 * gthr-rtems.h: Likewise.
5308 * gthr-single.h: Likewise.
5309 * gthr-solaris.h: Likewise.
5310 * gthr-tpf.h: Likewise.
5311 * gthr-vxworks.h: Likewise.
5312 * gthr-win32.h: Likewise.
5313 * gthr.h: Likewise.
5314 * libgcc2.c: Likewise.
5315 * libgcc2.h: Likewise.
5316 * libgcov.c: Likewise.
5317 * tsystem.h: Likewise.
5318 * typeclass.h: Likewise.
5319 * unwind-c.c: Likewise.
5320 * unwind-compat.h: Likewise.
5321 * unwind-dw2-fde-compat.c: Likewise.
5322 * unwind-dw2-fde-darwin.c: Likewise.
5323 * unwind-dw2-fde-glibc.c: Likewise.
5324 * unwind-dw2-fde.c: Likewise.
5325 * unwind-dw2-fde.h: Likewise.
5326 * unwind-dw2.c: Likewise.
5327 * unwind-dw2.h: Likewise.
5328 * unwind-generic.h: Likewise.
5329 * unwind-pe.h: Likewise.
5330 * unwind-sjlj.c: Likewise.
5331 * unwind.inc: Likewise.
5332 * config/arm/neon-gen.ml: Change generated copyright header to
5333 refer to version 3 of the GNU General Public License with
5334 version 3.1 of the GCC Runtime Library Exception and to point
5335 readers at the COPYING3 and COPYING3.RUNTIME files and the
5336 FSF's license web page.
5337 * config/arm/arm_neon.h: Regenerate.
5338
53392009-04-09 Jakub Jelinek <jakub@redhat.com>
5340
5341 * config/cris/cris.md: Change copyright header to refer to version
5342 3 of the GNU General Public License.
5343 * doc/install.texi2html: Change copyright header to refer to version
5344 3 of the GNU General Public License and to point readers at the
5345 COPYING3 file and the FSF's license web page.
5346 * config/vax/linux.h: Likewise.
5347
4a77c72b
PB
53482009-04-09 Paolo Bonzini <bonzini@gnu.org>
5349
1ad2f450
L
5350 * config/i386/i386.md (cmpcc): New.
5351 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
5352 (sync_compare_and_swap_cc*): Delete.
5353
5354 * config/s390/s390.c (s390_compare_emitted): Remove.
5355 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
5356 s390_compare_emitted used to be handled. Assert that modes match.
5357 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
5358 refer to sync_compare_and_swap_ccsi.
5359 * config/s390/s390.h (s390_compare_emitted): Remove.
5360 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
5361 instead of s390_compare_emitted.
5362 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
5363 instead of s390_compare_emitted.
5364 * config/s390/s390.md (cmpcc): New.
5365 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
5366 CC_REGNUM, do not pretend it's set.
5367 (sync_compare_and_swap_cc*): Delete.
5368 * config/s390/predicates.md (cc_reg_operand): New.
5369
5370 * expr.c (sync_compare_and_swap_cc): Delete.
5371 * optabs.h (sync_compare_and_swap_cc): Delete.
5372 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
5373 is being used with can_compare_p.
5374 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
5375 (find_cc_set): New.
5376 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
5377 look for a MODE_CC set instead. Use emit_store_flag.
5378 (expand_compare_and_swap_loop): Likewise, with some additional
5379 complication to avoid a force_reg when useless. Use
5380 emit_cmp_and_jump_insns.
5381 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
5382 * doc/md.texi (sync_compare_and_swap_cc): Merge with
5383 sync_compare_and_swap documentation.
4a77c72b 5384
0c0efb33
JH
53852009-04-09 Jan Hubicka <jh@suse.cz>
5386
5387 * except.c (find_prev_try): Break out from ....
5388 (duplicate_eh_regions): ... here; properly update prev_try pointers
5389 when duplication part of tree.
5390 (dump_eh_tree): Improve dumping.
5391 (verify_eh_region): New.
5392 (verify_eh_tree): Use it.
5393
22a65a54
RG
53942009-04-06 Richard Guenther <rguenther@suse.de>
5395
5396 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
5397 &ARRAY addresses by adjusting their types and prepending
5398 a conversion.
5399 * tree-cfg.c (verify_gimple_assign_single): Verify that
5400 addresses are correct.
5401
f76968e6
RG
54022009-04-09 Richard Guenther <rguenther@suse.de>
5403
5404 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
5405 indices into an array reference if possible.
5406 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5407 Fold POINTER_PLUS_EXPR statements with invariant address.
5408
c90c5fb5
AM
54092009-04-09 Alan Modra <amodra@bigpond.net.au>
5410
5411 PR target/39634
5412 * config.gcc (powerpc64-*-linux*): Always build biarch.
5413
17cede2e
JM
54142009-04-09 Joseph Myers <joseph@codesourcery.com>
5415
5416 PR c/39613
5417 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5418 it and pedwarn if this results in an INTEGER_CST.
5419
a3337ea2
KG
54202009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5421
5422 * doc/install.texi: Update minimum GMP version. Remove obsolete
5423 text in MPFR section.
5424
ce9ba79b
JJ
54252009-04-08 Jakub Jelinek <jakub@redhat.com>
5426
5427 * dwarf2out.c (class_scope_p): New static inline.
5428 (class_or_namespace_scope_p): Use it.
5429 (gen_variable_die): Use DW_TAG_member tag for static data member
5430 declarations instead of DW_TAG_variable.
5431
4f0ae266
JJ
5432 PR middle-end/39573
5433 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
5434 variables.
5435
d27f0ddc
RG
54362009-04-08 Richard Guenther <rguenther@suse.de>
5437
5438 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
5439 valueize random data.
5440
557cc596
DE
54412009-04-08 David Edelsohn <edelsohn@gnu.org>
5442
5443 * config.gcc (aix tm_file): Add aix-stdint.h.
5444 (aix tm clause use_gcc_stdint): Set to wrap.
5445 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 5446
75ccc1e7
RG
54472009-04-08 Richard Guenther <rguenther@suse.de>
5448
5449 PR middle-end/36291
5450 * tree-dfa.c (add_referenced_var): Do not recurse into
5451 global initializers.
5452 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
5453 exposed variables.
5454 (fold_const_aggregate_ref): Likewise.
5455
c6963675
PB
54562009-04-08 Paolo Bonzini <bonzini@gnu.org>
5457
6c44cf79
L
5458 * recog.c (ordered_comparison_operator): New.
5459 * gensupport.c (std_preds): Add it.
c6963675
PB
5460 * doc/md.texi (Machine-Independent Predicates): Document it.
5461
6d07ad98
JH
54622009-04-08 Jan Hubicka <jh@suse.cz>
5463
5464 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
5465 * function.h (rtl_eh): Remove exception_handler_label_map.
5466 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
5467 remove_exception_handler_label, for_each_eh_label_1): Remove.
5468 (rtl_remove_unreachable_regions): Remove.
5469 (convert_from_eh_region_ranges): Do not remove unreachable regions.
5470 (find_exception_handler_labels): Don't build the hashtable.
5471 (maybe_remove_eh_handler): Remove.
5472 (for_each_eh_label): Rewrite to walk the tree.
5473 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
5474 * except.h (maybe_remove_eh_handler): Remove.
5475 * passes.c (init_optimization_passes): Schedule second EH cleanup
5476 before out-of-ssa.
5477 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
5478 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
5479
7ddf71e3
PB
54802009-04-08 Paolo Bonzini <bonzini@gnu.org>
5481
5482 * genoutput.c (validate_optab_operands): New.
5483 (gen_insn, gen_expand): Call it.
5484
5485 * genflags.c (gen_insn): Detect misused iterators.
5486 (main): Pass line_no to gen_insn, exit with status 1 on error.
5487
5488 * genextract.c (line_no): Make global.
5489 (VEC_safe_set_locstr): Change assertion to error message.
5490 (main): Exit with status 1 on error.
5491
4d84fe7c
JM
54922009-04-08 Joseph Myers <joseph@codesourcery.com>
5493
5494 PR c/39614
5495 PR c/39673
5496 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
5497 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
5498 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
5499 * c-convert.c (convert): Do not call fold on results of conversion
5500 functions when the result is a C_MAYBE_CONST_EXPR.
5501 * c-parser.c (c_parser_postfix_expression): Do not fold condition
5502 of __builtin_choose_expr.
5503 * c-typeck.c (remove_c_maybe_const_expr): New.
5504 (build_unary_op, build_conditional_expr, build_compound_expr,
5505 build_binary_op, c_objc_common_truthvalue_conversion): Call
5506 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
5507 integer operands.
5508
60839f5d 55092009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 5510
2ba9daa7 5511 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 5512 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 5513
8e481a2c
DS
55142009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
5515
5516 PR bootstrap/39660
5517 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
5518 mix declarations and code.
5519
ee618c17
BE
55202009-04-08 Ben Elliston <bje@au.ibm.com>
5521
5522 * gcc.c: Replace `CC' with `GCC' throughout.
5523
f2a758a2
L
55242009-04-07 H.J. Lu <hongjiu.lu@intel.com>
5525
5526 * doc/invoke.texi: Document Atom support.
5527
6ea2bd47
JM
55282009-04-07 Jason Merrill <jason@redhat.com>
5529
5530 PR c++/25185
5531 * c-common.h, c-common.c: Add flag_pretty_templates.
5532 * c-opts.c (c_common_handle_option): Set it.
5533 * c.opt: Add -fno-pretty-templates.
5534 * doc/invoke.texi (C++ Dialect Options): Likewise.
5535
fcb82ab0
UB
55362009-04-07 Uros Bizjak <ubizjak@gmail.com>
5537
5538 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
5539 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
5540 (ia64_expand_builtin): Likewise.
5541
dc5e7298
MJ
55422009-04-07 Martin Jambor <mjambor@suse.cz>
5543
5544 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
5545 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
5546 ADDR_EXPRS are include too.
5547
0609b355
RG
55482009-04-07 Richard Guenther <rguenther@suse.de>
5549
5550 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
5551 decls are only used if passes as parameters or if they are
5552 local statics and the call is not to a builtin.
5553 (call_may_clobber_ref_p_1): Likewise.
5554
d8e535fa
PB
55552009-04-07 Paolo Bonzini <bonzini@gnu.org>
5556
5557 * expr.c (do_store_flag): Remove last argument. Simplify code
5558 to avoid duplication of tests already done by can_compare_p.
5559 (expand_expr_real_1): Adjust caller.
5560
c3c64f50
PB
55612009-04-07 Paolo Bonzini <bonzini@gnu.org>
5562
fcb82ab0
UB
5563 * optabs.c (can_compare_p): Test the predicate of a
5564 cbranch and cstore pattern.
c3c64f50 5565
9a53bc17
PB
55662009-04-07 Paolo Bonzini <bonzini@gnu.org>
5567
fcb82ab0
UB
5568 * expr.c (convert_move): Use emit_store_flag instead of
5569 "emulating" it.
9a53bc17 5570
67b8f1c1
PB
55712009-04-07 Paolo Bonzini <bonzini@gnu.org>
5572
fcb82ab0
UB
5573 * config/i386/i386.c (ix86_compare_emitted): Remove.
5574 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
5575 ix86_compare_op0 like ix86_compare_emitted used to be handled.
5576 * config/i386/i386.h (ix86_compare_emitted): Remove.
5577 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
5578 instead of ix86_compare_emitted.
5579 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 5580
44509946
AS
55812009-04-07 Andrew Stubbs <ams@codesourcery.com>
5582
5583 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
5584 Add t-sysroot-suffix to tmake_file.
5585 * config/print-sysroot-suffix.sh: New file.
5586 * config/t-sysroot-suffix: New file.
5587
ca22d882
BE
55882009-04-07 Ben Elliston <bje@au.ibm.com>
5589
5590 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
5591 as the latter produces a warning when the target does not support
5592 infinity.
5593
95aac11b
BE
55942009-04-07 Ben Elliston <bje@au.ibm.com>
5595
5596 * dfp.c: Replace type punning assignments with memcpy throughout.
5597 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 5598
633dd061
AM
55992009-04-07 Alan Modra <amodra@bigpond.net.au>
5600
5601 PR target/39634
5602 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
5603 Include soft-fp/t-softfp after rs6000/t-linux64.
5604
fe0a25ec
EB
56052009-04-06 Eric Botcazou <ebotcazou@adacore.com>
5606
5607 * stor-layout.c (set_sizetype): Use the full precision of their
5608 machine mode for bitsize types.
5609
0c011bc3
L
56102009-04-06 H.J. Lu <hongjiu.lu@intel.com>
5611
5612 * config/i386/i386.md: Revert 2 accidental checkins.
5613
b6837b94 56142009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 5615 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
5616 H.J. Lu <hongjiu.lu@intel.com>
5617
5618 Atom pipeline model, tuning and insn selection.
5619 * config.gcc (atom): Add atom config options and target.
5620
5621 * config/i386/atom.md: New.
5622
5623 * config/i386/i386.c (atom_cost): New cost.
5624 (m_ATOM): New macro flag.
5625 (initial_ix86_tune_features): Set m_ATOM.
5626 (x86_accumulate_outgoing_args): Likewise.
5627 (x86_arch_always_fancy_math_387): Likewise.
5628 (processor_target): Add Atom cost.
5629 (cpu_names): Add Atom cpu name.
5630 (override_options): Set Atom ISA.
5631 (ix86_issue_rate): New case PROCESSOR_ATOM.
5632 (ix86_adjust_cost): Likewise.
5633
5634 * config/i386/i386.h (TARGET_ATOM): New target macro.
5635 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
5636 (TARGET_OPT_AGU): New target option.
5637 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
5638 (processor_type): Add PROCESSOR_ATOM.
5639
5640 * config/i386/i386.md (cpu): Add new value "atom".
5641 (use_carry, movu): New attr.
5642 (atom.md): Include atom.md.
5643 (adddi3_carry_rex64): Set attr "use_carry".
5644 (addqi3_carry): Likewise.
5645 (addhi3_carry): Likewise.
5646 (addsi3_carry): Likewise.
5647 (*addsi3_carry_zext): Likewise.
5648 (subdi3_carry_rex64): Likewise.
5649 (subqi3_carry): Likewise.
5650 (subhi3_carry): Likewise.
5651 (subsi3_carry): Likewise.
5652 (x86_movdicc_0_m1_rex64): Likewise.
5653 (*x86_movdicc_0_m1_se): Likewise.
5654 (x86_movsicc_0_m1): Likewise.
5655 (*x86_movsicc_0_m1_se): Likewise.
5656 (*adddi_1_rex64): Emit add insn as much as possible.
5657 (*addsi_1): Likewise.
5658 (return_internal): Set atom_unit.
5659 (return_internal_long): Likewise.
5660 (return_pop_internal): Likewise.
5661 (*rcpsf2_sse): Set atom_sse_attr attr.
5662 (*qrt<mode>2_sse): Likewise.
5663 (*prefetch_sse): Likewise.
5664
5665 * config/i386/i386-c.c (ix86_target_macros_internal): New case
5666 PROCESSOR_ATOM.
5667 (ix86_target_macros_internal): Likewise.
5668
5669 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
5670 (*prefetch_sse_rex): Likewise.
5671 (sse_rcpv4sf2): Likewise.
5672 (sse_vmrcpv4sf2): Likewise.
5673 (sse_sqrtv4sf2): Likewise.
5674 (<sse>_vmsqrt<mode>2): Likewise.
5675 (sse_ldmxcsr): Likewise.
5676 (sse_stmxcsr): Likewise.
5677 (*sse_sfence): Likewise.
5678 (sse2_clflush): Likewise.
5679 (*sse2_mfence): Likewise.
5680 (*sse2_lfence): Likewise.
5681 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
5682 (<sse>_movup<ssemodesuffixf2c>): Likewise.
5683 (avx_movdqu<avxmodesuffix>): Likewise.
5684 (avx_lddqu<avxmodesuffix>): Likewise.
5685 (sse2_movntv2di): Change attr "type" to "ssemov".
5686 (sse2_movntsi): Likewise.
5687 (rsqrtv8sf2): Change attr "type" to "sseadd".
5688 (sse3_addsubv2df3): Set attr "atom_unit".
5689 (sse3_h<plusminus_insn>v4sf3): Likewise.
5690 (*sse2_pmaddwd): Likewise.
5691 (*vec_extractv2di_1_rex64): Likewise.
5692 (*vec_extractv2di_1_avx): Likewise.
5693 (sse2_psadbw): Likewise.
5694 (ssse3_phaddwv8hi3): Likewise.
5695 (ssse3_phaddwv4hi3): Likewise.
5696 (ssse3_phadddv4si3): Likewise.
5697 (ssse3_phadddv2si3): Likewise.
5698 (ssse3_phaddswv8hi3): Likewise.
5699 (ssse3_phaddswv4hi3): Likewise.
5700 (ssse3_phsubwv8hi3): Likewise.
5701 (ssse3_phsubwv4hi3): Likewise.
5702 (ssse3_phsubdv4si3): Likewise.
5703 (ssse3_phsubdv2si3): Likewise.
5704 (ssse3_phsubswv8hi3): Likewise.
5705 (ssse3_phsubswv4hi3): Likewise.
5706 (ssse3_pmaddubsw128): Likewise.
5707 (sse3_pmaddubsw: Likewise.
5708 (ssse3_palignrti): Likewise.
5709 (ssse3_palignrdi): Likewise.
5710
53e350d3
GP
57112009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
5712
5713 * doc/install.texi (Specific): Fix two cross-references to MinGW.
5714
439ef907
RG
57152009-04-06 Richard Guenther <rguenther@suse.de>
5716
5717 PR tree-optimization/28868
5718 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
5719 of which PHI results we inserted.
5720 (insert_into_preds_of_block): Record inserted PHIs.
5721 (eliminate): Eliminate redundant PHI nodes.
5722 (init_pre): Init inserted_phi_names.
5723
4bad83f5
RG
57242009-04-06 Richard Guenther <rguenther@suse.de>
5725
5726 PR tree-optimization/39643
5727 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
5728 IMAGPART_EXPRs of complex constants.
5729 (execute_fold_all_builtins): If we folded a call queue
5730 TODO_update_address_taken.
5731
570c4247
JH
57322009-04-06 Jan Hubicka <jh@suse.cz>
5733
5734 PR middle-end/39659
5735 * except.c (remove_unreachable_regions): Propagate may_contain_throw
5736 flag.
5737
a460d7a1
AS
57382009-04-06 Andrew Stubbs <ams@codesourcery.com>
5739
5740 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
5741 delay slot.
5742 (ic_invalidate_array): Likewise.
5743
60839f5d 57442009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
5745
5746 * calls.c (emit_library_call_value_1): Fix a problem with parameter
5747 alignment for library calls.
5748
7d253f6e
DS
57492009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
5750
5751 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
5752 (mingw32 tm clause use_gcc_stdint): Set to wrap.
5753 * config/i386/mingw-stdint.h: New file.
5754
941c3614
RB
57552009-04-05 Richard Guenther <rguenther@suse.de>
5756
5757 PR tree-optimization/39648
5758 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
5759 our &A vs. &A[0] IL deficiencies.
5760
12633413
JH
57612009-04-04 Jan Hubicka <jh@suse.cz>
5762
941c3614
RB
5763 * except.c (sjlj_find_directly_reachable_regions): Be ready for
5764 removed toplevel regions.
12633413
JH
5765 (sjlj_mark_call_sites): Likewise.
5766
bb2aaded
DK
57672009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
5768
5769 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
5770 (cygwin tm clause use_gcc_stdint): Set to wrap.
5771 * config/i386/cygwin-stdint.h: New file.
5772
86290011
RG
57732009-04-04 Richard Guenther <rguenther@suse.de>
5774
5775 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
5776 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
5777 single-argument PHIs if we are in loop-closed SSA form.
5778 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
5779 for the pre-condition.
5780 (slpeel_tree_peel_loop_to_edge): Likewise.
5781 (vect_build_loop_niters): Take an optional sequence to append stmts.
5782 (vect_generate_tmps_on_preheader): Likewise.
5783 (vect_do_peeling_for_loop_bound): Take extra guards for the
5784 pre-condition.
5785 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
5786 the cost model check.
5787 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 5788 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
5789 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
5790 (vect_do_peeling_for_loop_bound): Likewise.
5791 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
5792 loop bound only record extra pre-conditions, do not apply loop
5793 versioning.
5794
5eeeac64
RG
57952009-04-04 Richard Guenther <rguenther@suse.de>
5796
5797 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
5798 renaming code.
5799
1ff7d06b
JH
58002009-04-04 Jan Hubicka <jh@suse.cz>
5801
5802 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
5803 last_basic_block for size of bb->index indexed array.
5804 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
5805 compute_out, link_btr_uses, build_btr_def_use_webs,
5806 build_btr_def_use_webs, migrate_btr_defs): Likewise.
5807
14925fcd
JH
58082009-04-04 Jan Hubicka <jh@suse.cz>
5809
5810 * except.c (remove_eh_handler_and_replace): Break out from ...
5811 (remove_eh_handler): ... here.
5812 (bring_to_root): New function.
5813 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
5814 handled ones, bring others to root of tree.
5815
4e6d1743
JH
58162009-04-04 Jan Hubicka <jh@suse.cz>
5817
4cb735f7
JH
5818 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
5819 (all_phis_safe_to_merge): New function.
5820 (update_info): New structure.
5821 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
5822 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 5823
c6803d43
RG
58242009-04-04 Richard Guenther <rguenther@suse.de>
5825
5826 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
5827 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
5828 (append_vuse): Likewise.
5829
54f5943c
JJ
58302009-04-04 Jakub Jelinek <jakub@redhat.com>
5831
5832 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
5833 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
5834 instead of REG_UNSAVED for DW_CFA_undefined.
5835 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
5836 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
5837 outermost frame.
5838
aad2bccb
RE
58392009-04-04 Richard Earnshaw <rearnsha@arm.com>
5840
5841 PR target/39501
5842 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
5843 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
5844 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
5845
aa7069aa
RG
58462009-04-04 Richard Guenther <rguenther@suse.de>
5847
5848 PR tree-optimization/8781
5849 PR tree-optimization/37892
5850 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
5851 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
5852 (valueize_refs): Call it for *& valueizations.
5853 (shared_reference_ops_from_ref): Rename to ...
5854 (valueize_shared_reference_ops_from_ref): ... this and valueize.
5855 (shared_reference_ops_from_call): Rename to ...
5856 (valueize_shared_reference_ops_from_call): ... this and valueize.
5857 (vn_reference_lookup): Update.
5858 (visit_reference_op_call): Likewise.
5859 * tree-ssa-pre.c (phi_translate_1): Fold *&.
5860 (eliminate): Value-replace the call address in call statements.
5861
cd15ad3e
RG
58622009-04-04 Richard Guenther <rguenther@suse.de>
5863
5864 PR tree-optimization/39636
5865 * tree-ssa-forwprop.c
5866 (forward_propagate_addr_into_variable_array_index): Check for
5867 GIMPLE_ASSIGN before accessing the rhs code.
5868
462f3262
JM
58692009-04-03 Jason Merrill <jason@redhat.com>
5870
5871 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
5872
6adb807e
SE
58732009-04-03 Steve Ellcey <sje@cup.hp.com>
5874
5875 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
5876 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
5877 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
5878 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
5879 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
5880 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
5881 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
5882 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
5883 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
5884 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
5885 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
5886 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
5887 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
5888 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
5889 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
5890 Use fr_reg_or_fp01_operand instead of fr_register_operand
5891
5892 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
5893 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
5894 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
5895
174b3107
VM
58962009-04-03 Vladimir Makarov <vmakarov@redhat.com>
5897
b844e5d8
L
5898 PR rtl-optimization/39607
5899 PR rtl-optimization/39631
7a715bba
UB
5900
5901 Revert:
2ba9daa7 5902
174b3107
VM
5903 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
5904 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
5905 instead of DF_LR_OUT.
5906 * ira-lives.c (process_bb_node_lives): Ditto.
5907 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
5908 instead of DF_LR_{OUT,IN}.
5909 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
5910 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
5911
535b544a
SB
59122009-04-03 Steven Bosscher <steven@gcc.gnu.org>
5913
5914 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
5915 (execute_lower_omp): Always run but take the short way out if -fopenmp
5916 is not given.
5917 (gate_lower_omp): Remove, forcing the pass manager to always run the
5918 pass and always set PROP_gimple_lomp.
5919 (pass_lower_omp): Remove gate function.
5920 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
5921 PROP_trees. Instead, require it.
5922 * ipa-cp.c (pass_ipa_cp): Likewise.
5923 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
5924 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
5925 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
5926 and PROP_gimple_leh.
5927
5006671f
RG
59282009-04-03 Richard Guenther <rguenther@suse.de>
5929
5930 PR middle-end/13146
5931 PR tree-optimization/23940
5932 PR tree-optimization/33237
5933 PR middle-end/33974
5934 PR middle-end/34093
5935 PR tree-optimization/36201
5936 PR tree-optimization/36230
5937 PR tree-optimization/38049
5938 PR tree-optimization/38207
5939 PR tree-optimization/38230
5940 PR tree-optimization/38301
5941 PR tree-optimization/38585
5942 PR middle-end/38895
5943 PR tree-optimization/38985
5944 PR tree-optimization/39299
5945 * tree-ssa-structalias.h: Remove.
5946 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
5947 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
5948 (struct vuse_element_d): Remove.
5949 (struct vuse_vec_d): Likewise.
5950 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
5951 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
5952 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
5953 VUSE_ELEMENT_VAR): Likewise.
5954 (struct voptype_d): Likewise.
5955 (NUM_VOP_FREE_BUCKETS): Likewise.
5956 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
5957 (struct stmt_operands_d): Remove.
5958 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
5959 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
5960 VDEF_NUM, VDEF_VECT): Likewise.
5961 (copy_virtual_operands): Remove.
5962 (operand_build_cmp): Likewise.
5963 (create_ssa_artificial_load_stmt): Likewise.
5964 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
5965 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
5966 vuse_index and mayuse_index members. Pack and move done and iter_type
5967 members to the front.
5968 (SSA_OP_VMAYUSE): Remove.
5969 (SSA_OP_VIRTUAL_USES): Adjust.
5970 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
5971 (unlink_stmt_vdef): Declare.
5972 (add_to_addressable_set): Remove.
5973 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
5974 (vrp_visit_stmt): Likewise.
5975 * doc/tree-ssa.texi (Alias analysis): Update.
5976 * doc/invoke.texi (max-aliased-vops): Remove docs.
5977 (avg-aliased-vops): Likewise.
5978 * tree-into-ssa.c (syms_to_rename): Remove.
5979 (need_to_update_vops_p): Likewise.
5980 (need_to_initialize_update_ssa_p): Rename to ...
5981 (update_ssa_initialized_fn): ... this. Track function we are
5982 initialized for.
5983 (symbol_marked_for_renaming): Simplify.
5984 (add_new_name_mapping): Do not set need_to_update_vops_p.
5985 (dump_currdefs): Use SYMS_TO_RENAME.
5986 (rewrite_update_stmt): Always walk all uses/defs.
5987 (dump_update_ssa): Adjust.
5988 (init_update_ssa): Take function argument. Track what we are
5989 initialized for.
5990 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
5991 (create_new_def_for): Initialize for cfun, assert we are initialized
5992 for cfun.
5993 (mark_sym_for_renaming): Simplify.
5994 (mark_set_for_renaming): Do not initialize update-ssa.
5995 (need_ssa_update_p): Simplify. Take function argument.
5996 (name_mappings_registered_p): Assert we ask for the correct function.
5997 (name_registered_for_update_p): Likewise.
5998 (ssa_names_to_replace): Likewise.
5999 (release_ssa_name_after_update_ssa): Likewise.
6000 (update_ssa): Likewise. Use SYMS_TO_RENAME.
6001 (dump_decl_set): Do not print a newline.
6002 (debug_decl_set): Do it here.
6003 (dump_update_ssa): And here.
6004 * tree-ssa-loop-im.c (move_computations): Adjust.
6005 (movement_possibility): Likewise.
6006 (determine_max_movement): Likewise.
6007 (gather_mem_refs_stmt): Likewise.
6008 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6009 or NAME_MEMORY_TAG.
6010 * tree-complex.c (update_all_vops): Remove.
6011 (expand_complex_move): Adjust.
6012 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6013 Simplify test for memory referencing statement. Exclude
6014 non-invariant ADDR_EXPRs.
6015 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6016 * tree-loop-distribution.c (generate_memset_zero): Adjust.
6017 (rdg_flag_uses): Likewise.
6018 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6019 related code.
6020 (tree_optimize_tail_calls_1): Also split the
6021 edge from the entry block if we have degenerate PHI nodes in
6022 the first basic block.
6023 * tree.c (init_ttree): Remove memory-tag related code.
6024 (tree_code_size): Likewise.
6025 (tree_node_structure): Likewise.
6026 (build7_stat): Re-write to be build6_stat.
6027 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6028 (SSA_VAR_P): Adjust.
6029 (struct tree_memory_tag): Remove.
6030 (struct tree_memory_partition_tag): Likewise.
6031 (union tree_node): Adjust.
6032 (build7): Re-write to be build6.
6033 * tree-pass.h (pass_reset_cc_flags): Remove.
6034 (TODO_update_address_taken): New flag.
6035 (pass_simple_dse): Remove.
6036 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6037 * params.h (MAX_ALIASED_VOPS): Remove.
6038 (AVG_ALIASED_VOPS): Likewise.
6039 * omp-low.c (expand_omp_taskreg): Update SSA form.
6040 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6041 aliases the lhs in a copy stmt.
6042 * tree-ssa-dse.c (struct address_walk_data): Remove.
6043 (memory_ssa_name_same): Likewise.
6044 (memory_address_same): Likewise.
6045 (get_kill_of_stmt_lhs): Likewise.
6046 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
6047 unused stores. Look through PHI nodes into post-dominated regions.
6048 (dse_optimize_stmt): Simplify. Properly remove stores.
6049 (tree_ssa_dse): Compute dominators.
6050 (execute_simple_dse): Remove.
6051 (pass_simple_dse): Likewise.
6052 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6053 gimple_loaded_syms and gimple_stored_syms computation.
6054 * toplev.c (dump_memory_report): Dump alias and pta stats.
6055 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6056 (vn_reference_eq): Likewise.
6057 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6058 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6059 valueize_vuses): Remove.
6060 (get_def_ref_stmt_vuses): Simplify. Rename to ...
6061 (get_def_ref_stmt_vuse): ... this.
6062 (vn_reference_lookup_2): New function.
6063 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6064 walking equivalent vuses. Simplify.
6065 (vn_reference_lookup): Likewise.
6066 (vn_reference_insert): Likewise.
6067 (vn_reference_insert_pieces): Likewise.
6068 (visit_reference_op_call): Simplify.
6069 (visit_reference_op_load): Likewise.
6070 (visit_reference_op_store): Likewise.
6071 (init_scc_vn): Remove shared_lookup_vuses initialization.
6072 (free_scc_vn): Remove shared_lookup_vuses freeing.
6073 (sort_vuses, sort_vuses_heap): Remove.
6074 (get_ref_from_reference_ops): Export.
6075 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6076 vector with single vuse pointer.
6077 (vn_reference_lookup_pieces, vn_reference_lookup,
6078 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6079 (shared_vuses_from_stmt): Remove.
6080 (get_ref_from_reference_ops): Declare.
6081 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6082 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6083 memory-tag related code.
6084 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6085 (likely_value): Add comment, skip static-chain of call statements.
6086 (surely_varying_stmt_p): Adjust.
6087 (gimplify_and_update_call_from_tree): Likewise.
6088 (execute_fold_all_builtins): Do not rebuild alias info.
6089 (gimplify_and_update_call_from_tree): Properly update VOPs.
6090 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6091 (copy_ref_info): Remove memory-tag related code.
6092 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6093 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6094 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6095 computation.
6096 * tree-ssa-dom.c (gimple_p): Remove typedef.
6097 (eliminate_redundant_computations): Adjust.
6098 (record_equivalences_from_stmt): Likewise.
6099 (avail_expr_hash): Likewise.
6100 (avail_expr_eq): Likewise.
7a715bba 6101 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
6102 (stmt_makes_single_load): Likewise.
6103 (stmt_makes_single_store): Likewise.
6104 * tree-ssa-alias.c: Rewrite completely.
6105 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6106 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6107 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6108 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6109 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6110 Remove public functions.
6111 (pass_reset_cc_flags): Remove.
6112 (pass_build_alias): Move ...
6113 * tree-ssa-structalias.c (pass_build_alias): ... here.
6114 * tree-ssa-alias.c (may_be_aliased): Move ...
6115 * tree-flow-inline.h (may_be_aliased): ... here.
6116 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6117 count_uses_and_derefs): Move ...
6118 * gimple.c: ... here.
6119 * gimple.h (count_uses_and_derefs): Declare.
6120 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6121 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6122 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6123 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6124 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6125 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6126 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6127 New functions.
6128 * tree-dfa.c (refs_may_alias_p): Move ...
6129 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
6130 * tree-ssa-alias.h: New file.
6131 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6132 (statement_sink_location): Likewise.
6133 * opts.c (decode_options): Do not adjust max-aliased-vops or
6134 avg-aliased-vops values.
6135 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6136 (TV_CALL_CLOBBER): Likewise.
6137 (TV_FLOW_SENSITIVE): Likewise.
6138 (TV_FLOW_INSENSITIVE): Likewise.
6139 (TV_MEMORY_PARTITIONING): Likewise.
6140 (TV_ALIAS_STMT_WALK): New timevar.
6141 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6142 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6143 (get_address_description): Remove memory-tag related code.
6144 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6145 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6146 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6147 and immediate uses in statements. Document.
6148 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6149 (dump_symbols): Remove.
6150 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6151 * alias.c (get_deref_alias_set): New function split out from ...
6152 (get_alias_set): ... here.
6153 * alias.h (get_deref_alias_set): Declare.
6154 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6155 type parameter. Remove restrict pointer handling. Create a
6156 ref-all pointer in case type-based alias sets do not conflict.
6157 (vect_analyze_data_refs): Remove SMT related code.
6158 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6159 (vectorizable_load): Likewise.
6160 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6161 (DR_SYMBOL_TAG, DR_VOPS): Remove.
6162 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6163 Ignore vops and SMTs.
6164 (dr_analyze_alias): Likewise..
6165 (free_data_ref): Likewise.
6166 (create_data_ref): Likewise.
6167 (analyze_all_data_dependences): Likewise.
6168 (get_references_in_stmt): Adjust.
6169 * tree-flow-inline.h (gimple_aliases_computed_p,
6170 gimple_addressable_vars, gimple_call_clobbered_vars,
6171 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6172 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6173 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6174 gimple_mem_ref_stats): Remove.
6175 (gimple_vop): New function.
6176 (op_iter_next_use): Remove vuses and mayuses cases.
6177 (op_iter_next_def): Remove vdefs case.
6178 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6179 (clear_and_done_ssa_iter): Do not set removed fields.
6180 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
6181 Assert we are not iterating over vuses or vdefs if not also
6182 iterating over uses or defs.
6183 (op_iter_init_use): Likewise.
6184 (op_iter_init_def): Likewise.
6185 (op_iter_next_vdef): Remove.
6186 (op_iter_next_mustdef): Likewise.
6187 (op_iter_init_vdef): Likewise.
6188 (compare_ssa_operands_equal): Likewise.
6189 (link_use_stmts_after): Handle vuse operand.
6190 (is_call_used): Use is_call_clobbered.
6191 (is_call_clobbered): Global variables are always call clobbered,
6192 query the call-clobbers bitmap.
6193 (mark_call_clobbered): Ignore global variables.
6194 (clear_call_clobbered): Likewise.
6195 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6196 virtual operands sanity check.
6197 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6198 Remove.
6199 (TARGET_MEM_REF): Remove TMR_TAG operand.
6200 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6201 Remove call-clobber related code.
6202 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
6203 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6204 partitions or escape reason.
6205 (get_single_def_stmt, get_single_def_stmt_from_phi,
6206 get_single_def_stmt_with_phi): Remove.
6207 (dump_referenced_vars): Tidy.
6208 (get_ref_base_and_extent): Allow bare decls.
6209 (collect_dfa_stats): Adjust.
6210 * graphite.c (rename_variables_in_stmt): Adjust.
6211 (graphite_copy_stmts_from_block): Likewise.
6212 (translate_clast): Likewise.
6213 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6214 (EXPR_DIES): New.
6215 (translate_vuse_through_block): Use the oracle.
6216 (phi_translate_1): Adjust.
6217 (value_dies_in_block_x): Use the oracle. Cache the outcome
6218 in EXPR_DIES.
6219 (valid_in_sets): Check if the VUSE for
6220 a REFERENCE is available.
6221 (eliminate): Do not remove stmts during elimination,
6222 instead queue and remove them afterwards.
6223 (do_pre): Do not rebuild alias info.
6224 (pass_pre): Run TODO_rebuild_alias before PRE.
6225 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6226 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6227 (mark_all_v_defs_stmt): Remove.
6228 (mark_all_v_defs_seq): Adjust.
6229 (sra_replace): Likewise.
6230 (scalarize_use): Likewise.
6231 (scalarize_copy): Likewise.
6232 (scalarize_init): Likewise.
6233 (scalarize_ldst): Likewise.
6234 (todoflags): Remove.
6235 (tree_sra): Do not rebuild alias info.
6236 (tree_sra_early): Adjust.
6237 (pass_sra): Run TODO_update_address_taken before SRA.
6238 * tree-predcom.c (set_alias_info): Remove.
6239 (prepare_initializers_chain): Do not call it.
6240 (mark_virtual_ops_for_renaming): Adjust.
6241 (mark_virtual_ops_for_renaming_list): Remove.
6242 (initialize_root_vars): Adjust.
6243 (initialize_root_vars_lm): Likewise.
6244 (prepare_initializers_chain): Likewise.
6245 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6246 (may_propagate_copy_into_stmt): Likewise.
6247 (merge_alias_info): Do nothing for now.
6248 (propagate_tree_value_into_stmt): Adjust.
6249 (stmt_may_generate_copy): Likewise.
6250 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6251 not mark symbols for renaming.
6252 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6253 with the same statement, make sure to update the new pointed-to one.
6254 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6255 call statements, do not mark symbols for renaming.
6256 (mark_operand_necessary): Dump something.
6257 (ref_may_be_aliased): New function.
6258 (mark_aliased_reaching_defs_necessary_1): New helper function.
6259 (mark_aliased_reaching_defs_necessary): Likewise.
6260 (mark_all_reaching_defs_necessary_1): Likewise.
6261 (mark_all_reaching_defs_necessary): Likewise.
6262 (propagate_necessity): Do not process virtual PHIs. For
6263 non-aliased loads mark all reaching definitions as necessary.
6264 For aliased loads and stores mark the immediate dominating
6265 aliased clobbers as necessary.
6266 (visited): New global static.
6267 (perform_tree_ssa_dce): Free visited bitmap after propagating
6268 necessity.
6269 (remove_dead_phis): Perform simple dead virtual PHI removal.
6270 (remove_dead_stmt): Properly unlink virtual operands when
6271 removing stores.
6272 (eliminate_unnecessary_stmts): Schedule PHI removal after
6273 stmt removal.
6274 * tree-ssa-ter.c (is_replaceable_p): Adjust.
6275 (process_replaceable): Likewise.
6276 (find_replaceable_in_bb): Likewise.
6277 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6278 based on the single gimple vop.
6279 (verify_flow_insensitive_alias_info): Remove.
6280 (verify_flow_sensitive_alias_info): Likewise.
6281 (verify_call_clobbering): Likewise.
6282 (verify_memory_partitions): Likewise.
6283 (verify_alias_info): Likewise.
6284 (verify_ssa): Adjust..
6285 (execute_update_addresses_taken): Export. Update SSA
6286 manually. Optimize only when optimizing. Use a local bitmap.
6287 (pass_update_address_taken): Remove TODO_update_ssa, add
6288 TODO_dump_func.
6289 (pass_update_address_taken): Just use TODO_update_address_taken.
6290 (init_tree_ssa): Do not initialize addressable_vars.
6291 (verify_ssa): Verify new VUSE / VDEF properties.
6292 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6293 Do not call verify_alias_info.
6294 (delete_tree_ssa): Clear the VUSE, VDEF operands.
6295 Do not free the loaded and stored syms bitmaps. Reset the escaped
6296 and callused solutions. Do not free addressable_vars.
6297 Remove memory-tag related code.
6298 (warn_uninitialized_var): Aliases are always available.
6299 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6300 * lambda-code.c (can_put_in_inner_loop): Adjust.
6301 (can_put_after_inner_loop): Likewise.
6302 (perfect_nestify): Likewise.
6303 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6304 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6305 (vectorizable_conversion): Do not mark symbols for renaming.
6306 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6307 (expand_call_inline): Unlink the calls virtual operands before
6308 replacing it.
6309 (tree_function_versioning): Do not call update_ssa if we are not
6310 updating clones. Simplify.
6311 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6312 (propagate_with_phi): Likewise..
6313 * tree-outof-ssa.c (create_temp): Remove memory tag and call
6314 clobber code. Assert we are not aliased or global.
6315 * tree-flow.h: Include tree-ssa-alias.h
6316 (enum escape_type): Remove.
6317 (struct mem_sym_stats_d): Likewise.
6318 (struct mem_ref_stats_d): Likewise.
6319 (struct gimple_df): Add vop member. Remove global_var,
6320 call_clobbered_vars, call_used_vars, addressable_vars,
6321 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
6322 escaped and callused members.
6323 (struct ptr_info_def): Remove all members, add points-to solution
6324 member pt.
6325 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6326 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6327 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6328 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6329 (tree-ssa-alias.o): Likewise.
6330 (toplev.o): Add tree-ssa-alias.h
6331 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6332 * gimple.c (gimple_set_bb): Fix off-by-one error.
6333 (is_gimple_reg): Do not handle memory tags.
6334 (gimple_copy): Also copy virtual operands.
6335 Delay updating the statement. Do not reset loaded and stored syms.
6336 (gimple_set_stored_syms): Remove.
6337 (gimple_set_loaded_syms): Likewise.
6338 (gimple_call_copy_skip_args): Copy the virtual operands
6339 and mark the new statement modified.
6340 * tree-ssa-structalias.c (may_alias_p): Remove.
6341 (set_uids_in_ptset): Take the alias set to prune with as
6342 parameter. Fold in the alias test of may_alias_p.
6343 (compute_points_to_sets): Compute whether a ptr is dereferenced
6344 in a local sbitmap.
6345 (process_constraint): Deal with &ANYTHING on the lhs, reject all
6346 other ADDRESSOF constraints on the lhs.
6347 (get_constraint_for_component_ref): Assert that we don't get
6348 ADDRESSOF constraints from the base of the reference.
6349 Properly generate UNKNOWN_OFFSET for DEREF if needed.
6350 (struct variable_info): Remove collapsed_to member.
6351 (get_varinfo_fc): Remove.
6352 (new_var_info): Do not set collapsed_to.
6353 (dump_constraint): Do not follow cycles.
6354 (dump_constraint_graph): Likewise.
6355 (build_pred_graph): Likewise.
6356 (build_succ_graph): Likewise.
6357 (rewrite_constraints): Likewise.
6358 (do_simple_structure_copy): Remove.
6359 (do_rhs_deref_structure_copy): Remove.
6360 (do_lhs_deref_structure_copy): Remove.
6361 (collapse_rest_of_var): Remove.
6362 (do_structure_copy): Re-implement.
6363 (pta_stats): New global variable.
6364 (dump_pta_stats): New function.
6365 (struct constraint_expr): Make offset signed.
6366 (UNKNOWN_OFFSET): Define special value.
6367 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
6368 (solution_set_expand): New helper function split out from ...
6369 (do_sd_constraint): ... here.
6370 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
6371 (do_ds_constraint): Likewise.
6372 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
6373 and CALLUSED = *CALLUSED.
6374 (set_union_with_increment): Make inc argument signed.
6375 (type_safe): Remove.
6376 (get_constraint_for_ptr_offset): Handle unknown and negative
6377 constant offsets.
6378 (first_vi_for_offset): Handle offsets before start. Bail
6379 out early for offsets beyond the variable extent.
6380 (first_or_preceding_vi_for_offset): New function.
6381 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
6382 Together with ESCAPED = *ESCAPED this properly computes reachability.
6383 (find_what_var_points_to): New function.
6384 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
6385 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
6386 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
6387 pt_solutions_intersect): New functions.
6388 (compute_call_used_vars): Remove.
6389 (compute_may_aliases): New main entry into PTA computation.
6390 * gimple.h (gimple_p): New typedef.
6391 (struct gimple_statement_base): Remove references_memory_p.
6392 (struct gimple_statement_with_memory_ops_base): Remove
6393 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
6394 members.
6395 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
6396 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
6397 gimple_set_references_memory): Remove.
6398 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
6399 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
6400 New functions.
6401 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
6402 (verify_expr): Allow RESULT_DECL.
6403 (gimple_duplicate_bb): Do not copy virtual operands.
6404 (gimple_duplicate_sese_region): Adjust.
6405 (gimple_duplicate_sese_tail): Likewise.
6406 (mark_virtual_ops_in_region): Remove.
6407 (move_sese_region_to_fn): Do not call it.
6408 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
6409 and pass_simple_dse.
6410 (execute_function_todo): Handle TODO_update_address_taken,
6411 call execute_update_addresses_taken for TODO_rebuild_alias.
6412 (execute_todo): Adjust.
6413 (execute_one_pass): Init dump files early.
6414 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
6415 call-clobbered.
6416 (create_general_new_stmt): Clear vops.
6417 * tree-ssa-reassoc.c (get_rank): Adjust.
6418 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
6419 symbols for renaming.
6420 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
6421 (PARAM_AVG_ALIASED_VOPS): Likewise.
6422 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
6423 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 6424 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
6425 (operand_build_cmp, copy_virtual_operands,
6426 create_ssa_artificial_load_stmt, add_to_addressable_set,
6427 gimple_add_to_addresses_taken): Remove public functions.
6428 (unlink_stmt_vdef): New function.
6429
457d1d00
AM
64302009-04-03 Alan Modra <amodra@bigpond.net.au>
6431
6432 * config.gcc (powerpc-*-linux*): Merge variants.
6433
e19da24c 64342009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 6435 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
6436
6437 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
6438 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
6439 cop0_sp_offset.
6440 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
6441 keep_interrupts_masked_p, use_debug_exception_return_p.
6442 (mips_attribute_table): Add interrupt, use_shadow_register_set,
6443 keep_interrupts_masked, use_debug_exception_return.
6444 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
6445 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
6446 New functions.
6447 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
6448 (mips_print_operand): Process COP0 registers to print $0 .. $31
6449 correctly for GAS to process.
6450 (mips_interrupt_extra_call_saved_reg_p): New function.
6451 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
6452 extra registers.
6453 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
6454 (mips_compute_frame_info): Add supports for interrupt context that
6455 includes doubleword accumulators and COP0 registers.
6456 (mips_for_each_saved_acc): New function.
6457 (mips_for_each_saved_gpr_and_fpr): Change the function name from
6458 mips_for_each_saved_reg.
6459 (mips_save_reg): Save accumulators.
6460 (mips_kernel_reg_p): A new for_each_rtx callback.
6461 (mips_expand_prologue): Support interrupt handlers.
6462 (mips_restore_reg): Restore accumulators.
6463 (mips_expand_epilogue): Support interrupt handlers.
6464 (mips_can_use_return_insn): Return false for interrupt handlers.
6465 (mips_epilogue_uses): New function.
6466 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
6467 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
6468 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
6469 cop0_move): New instructions.
6470 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
6471 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
6472 defines.
6473 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
6474 New defines.
6475 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
6476 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
6477 interrupt handlers, we use K0 as the temporary register.
6478 (EPILOGUE_USES): Change to a function call.
6479 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
6480 handlers, we use K0 as the temporary register.
2ba9daa7 6481
e19da24c
CF
6482 * doc/extend.texi (Function Attributes): Document interrupt,
6483 use_shadow_register_set, keep_interrupts_masked,
6484 use_debug_exception_return for MIPS attributes.
6485
aa1ca044
AM
64862009-04-03 Alan Modra <amodra@bigpond.net.au>
6487
6488 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
6489 Remove a number of t-files from tmake_file.
6490 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
6491 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
6492 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6493 target_prototype, not TARGET_PROTOTYPE.
6494 (LINK_OS_GNU_SPEC): Define.
6495 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
6496 and darwin-ldoubdle.c.
6497
14fdc613
MM
64982009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
6499
6500 PR driver/39293
6501 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
6502 (cpp_options): Ditto.
6503 (default_compilers): Ditto.
6504 (display_help): Ditto.
6505 (process_command): Ditto.
6506 (do_spec_1): Ditto.
6507 (set_input): Use lbasename instead of duplicate code.
6508 (save_temps_prefix): New static for -save-temps=obj.
6509 (save_temps_length): Ditto.
2ba9daa7 6510
14fdc613
MM
6511 * doc/invoke.texi (-save-temps=obj): Document new variant to
6512 -save-temps switch.
6513
d3aa398e
JL
65142009-04-02 Jeff Law <law@redhat.com>
6515
6516 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
6517 variable.
6518
83f0ccb8
L
65192009-04-02 H.J. Lu <hongjiu.lu@intel.com>
6520
6521 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
6522 * configure: Regenerated.
6523
dcb6e951
RAE
65242009-04-02 Rafael Avila de Espindola <espindola@google.com>
6525
6526 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
6527 share the argument list.
6528
d85478c2
RAE
65292009-04-02 Rafael Avila de Espindola <espindola@google.com>
6530
6531 Merge
6532
6533 2009-02-12 Diego Novillo <dnovillo@google.com>
6534
83f0ccb8
L
6535 * varpool.c (debug_varpool): New.
6536 * cgraph.h (debug_varpool): Declare.
d85478c2 6537
34f42a49
JH
65382009-04-02 Jan Hubicka <jh@suse.cz>
6539
6540 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
6541 pass.
6542
a4747b4a
L
65432009-04-02 H.J. Lu <hongjiu.lu@intel.com>
6544
6545 * config/i386/i386.c (ix86_abi): Move initialization to ...
6546 (override_options): Here.
6547
63a9de54
CB
65482009-04-02 Christian Bruel <christian.bruel@st.com>
6549
6550 * config/sh/sh.c (sh_dwarf_register_span): New function.
6551 (TARGET_DWARF_REGISTER_SPAN): Define.
6552 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 6553
2f0fa28e
IR
65542009-04-02 Ira Rosen <irar@il.ibm.com>
6555
6556 PR tree-optimization/39595
2ba9daa7 6557 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
6558 interleaved loads group is not greater than the SLP group size.
6559
bbf7ce11
RAE
65602009-04-02 Rafael Avila de Espindola <espindola@google.com>
6561
6562 * builtins.c (is_builtin_name): New.
6563 (called_as_built_in): Use is_builtin_name.
6564 * tree.h (is_builtin_name): New.
6565 * varasm.c (incorporeal_function_p): Use is_builtin_name
6566
47e4dfcf
AS
65672009-04-02 Andrew Stubbs <ams@codesourcery.com>
6568
6569 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
6570
d0940d56
DS
65712009-04-02 Dodji Seketeli <dodji@redhat.com>
6572
6573 PR c++/26693
532bfb0a 6574 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
6575 * c-common.c (set_underlying_type): ... here.
6576 Also, make sure the function properly sets TYPE_STUB_DECL() on
6577 the newly created typedef variant type.
6578 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
6579 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
6580 points.
d0940d56 6581
bf1cbdc6
RG
65822009-04-02 Richard Guenther <rguenther@suse.de>
6583
6584 PR tree-optimization/37221
6585 * tree-flow.h (degenerate_phi_result): Declare.
6586 * tree-ssa-dom.c (degenerate_phi_result): Export.
6587 * tree-scalar-evolution.c (analyze_initial_condition): If
6588 the initial condition is defined by a degenerate PHI node
6589 use the degenerate value.
6590
87cfb32c
EB
65912009-04-01 Eric Botcazou <ebotcazou@adacore.com>
6592
6593 PR rtl-optimization/39588
6594 * combine.c (merge_outer_ops): Do not set the constant when this
6595 is not necessary.
6596 (simplify_shift_const_1): Do not modify it either in this case.
6597
bbb6eae8
SB
65982009-04-01 Steven Bosscher <steven@gcc.gnu.org>
6599
6600 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
6601 tuning is deprecated if -mtune value is set to an Itanium1 variant.
6602
839a3b8a
JJ
66032009-04-01 Janis Johnson <janis187@us.ibm.com>
6604
6605 PR c/29027
6606 * c-lex.c (interpret_float): Default (no suffix) is double.
6607
667e8acb
XDL
66082009-04-1 Xinliang David Li <davidxl@google.com>
6609
6610 * config/i386/i386.c (legitimate_constant_p): Recognize
6611 all one vector constant.
6612
60839f5d 66132009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6614
60839f5d 6615 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
6616 Change #include order to silence two warnings.
6617
60839f5d 66182009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6619
60839f5d 6620 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
6621 (ASM_SPEC): Pass -k to the assembler for PIC code.
6622
60839f5d 66232009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6624
60839f5d
EB
6625 * config.gcc: Add vax-*-linux* to the switch.
6626 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
6627 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
6628
60839f5d 66292009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6630
60839f5d 6631 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 6632 Use predicate macros instead of GET_CODE() == foo.
60839f5d 6633 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
6634 ashlsi3, rotrsi3, <unnamed>): Likewise.
6635
60839f5d 66362009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6637
60839f5d 6638 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 6639 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
6640 * config/vax/constraints.md: Likewise.
6641 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6642 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
6643 * config/vax/predicates.md: Likewise.
6644 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 6645 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
6646 * config/vax/vax.h: Likewise.
6647 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 6648
60839f5d 66492009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6650
60839f5d 6651 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
6652 (indirectable_address_p, adjacent_operands_p): Add spaces around
6653 braces.
60839f5d 6654 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 6655
60839f5d 66562009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6657
60839f5d 6658 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
6659 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
6660 index_term_p, reg_plus_index_p, legitimate_address_p,
6661 vax_mode_dependent_address_p): Update comments to match functions
6662 modified by the recent int->bool conversion.
6663
60839f5d 66642009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6665
60839f5d
EB
6666 * config/vax/builtins.md: Update copyright message.
6667 * config/vax/constraints.md: Likewise.
6668 * config/vax/netbsd-elf.h: Likewise.
6669 * config/vax/predicates.md: Likewise.
6670 * config/vax/vax-protos.h: Likewise.
6671 * config/vax/vax.c: Likewise.
6672 * config/vax/vax.h: Likewise.
6673 * config/vax/vax.md: Likewise.
6674 * config/vax/vax.opt: Likewise.
c4e75102 6675
60839f5d 66762009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6677
60839f5d 6678 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 6679 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
6680 * config/vax/constraints.md (B, R): Likewise.
6681 * config/vax/predicates.md (external_memory_operand,
c4e75102 6682 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
6683 * config/vax/vax.c (vax_output_int_add): Likewise.
6684 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
6685 untyped_call): Likewise.
6686
60839f5d 66872009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 6688
7a715bba
UB
6689 * config/vax/predicates.md: New file.
6690 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
6691 external_const_operand, nonsymbolic_operand, external_memory_operand,
6692 indirect_memory_operand, indexed_memory_operand,
6693 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
6694 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
6695 predicate.
7a715bba
UB
6696 * config/vax/constraints.md: New file.
6697 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
6698 New constraint.
6699 * config/vax/builtins.md: New file.
6700 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
6701 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
6702 jbbccisi): Define.
c4e75102
MT
6703 * config/vax/vax.opt (mqmath): Add option.
6704 * config/vax/vax.md (isfx): Extend with DI.
6705 (VAXintQH, VAXintQHSD): Define.
6706 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
6707 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
6708 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
6709 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
6710 (movdi): Update constraints and use vax_output_int_move().
6711 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
6712 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
6713 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
6714 nonlocal_goto): New.
6715 (mov<mode>): Extend accepted operand types.
6716 (subdi3_old): Rename from subdi3, change update constraints and use
6717 a new implementation.
60839f5d 6718 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
6719 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
6720 MOVE_RATIO, CLEAR_RATIO): Define.
6721 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
6722 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
6723 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 6724 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
6725 (split_quadword_operands): Make static and really allow variable
6726 splitting.
6727 (print_operand_address): Update for PIC generation.
6728 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
6729 indexable_address_p, fixup_mathdi_operand,
6730 vax_expand_addsub_di_operands, adjacent_operands_p): New.
6731 (vax_float_literal, legitimate_constant_p,
6732 indirectable_constant_address_p, index_term_p,
6733 reg_plus_index_p): Return bool instead of int.
6734 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
6735 where needed.
6736 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
6737 generation.
6738 (vax_output_conditional_branch): Indent.
6739 (legitimate_constant_address_p, indirectable_constant_address_p,
6740 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
6741 vax_mode_dependent_address_p): Return bool instead of int, update for
6742 PIC generation.
6743 * config/vax/vax-protos.h (legitimate_constant_address_p,
6744 legitimate_constant_p, legitimate_address_p,
6745 vax_mode_dependent_address_p): Change declaration to bool.
6746 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
6747 vax_expand_addsub_di_operands, vax_output_int_subtract,
6748 vax_output_movmemsi): Declare.
6749 (split_quadword_operands, vax_float_literal): Delete declaration.
6750 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
6751 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
6752 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
6753 ASM_OUTPUT_DWARF_PCREL): Define.
6754 (ASM_SPEC): Change definition to allow PIC generation.
6755
9332c6eb
L
67562009-04-01 Steve Ellcey <sje@cup.hp.com>
6757
6758 * doc/sourcebuild.texi: Update front-end requirements.
6759
d93e052c
JJ
67602009-04-01 Jakub Jelinek <jakub@redhat.com>
6761
6762 PR target/39226
6763 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
6764 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
6765 (booldi3_internal3): Use boolean_or_operator instead of
6766 boolean_operator.
6767
6ccb2a4a
JM
67682009-04-01 Joseph Myers <joseph@codesourcery.com>
6769
6770 PR c/39605
6771 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
6772 declarator whose size is not an integer constant expression but
6773 folds to an integer constant, then treat it as a constant
6774 subsequently.
6775
299b87f8
RG
67762009-04-01 Richard Guenther <rguenther@suse.de>
6777
6778 * fold-const.c (fold_plusminus_mult_expr): Do not fold
6779 i * 4 + 2 to (i * 2 + 1) * 2.
6780
b85eb797
JJ
67812009-04-01 Jakub Jelinek <jakub@redhat.com>
6782
6783 PR c/37772
6784 * c-parser.c (c_parser_asm_statement): Skip until close paren and
6785 return if c_parser_asm_string_literal returned NULL.
6786
235e1fe8
NC
67872009-04-01 Nick Clifton <nickc@redhat.com>
6788
6789 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
6790 already defined.
6791 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
6792 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
6793 other typedefs to avoid conflicts with libgcc2.c. Define labels
6794 to gain 16-bit bit-manipulation functions from libgcc2.c and then
6795 include it.
6796 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
6797 to gain 16-bit trapping arithmetic functions from libgcc2.c and
6798 then include it.
6799
d6868399
RAE
68002009-04-01 Rafael Avila de Espindola <espindola@google.com>
6801
7a715bba
UB
6802 * varasm.c (default_function_rodata_section): Declare DOT as
6803 const char*.
d6868399 6804
73d21f56 68052009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 6806 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
6807
6808 PR/39492
6809 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
6810 Make object_name unique for each process.
6811
03742a9b
JJ
68122009-04-01 Jakub Jelinek <jakub@redhat.com>
6813
6814 PR other/39591
6815 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
6816 addressable variables in the parallel that could go out of scope while
6817 running queued tasks.
6818
4223ff5f
AS
68192009-04-01 Anatoly Sokolov <aesok@post.ru>
6820
6821 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
6822 (CASE_VALUES_THRESHOLD): Redefine.
6823 * config/avr/avr.c (avr_override_options): Remove initialization of
6824 avr_case_values_threshold variable.
6825 (avr_case_values_threshold): Remove variable. Add new function.
6826 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
6827 * config/avr/avr.opt (mno-tablejump): Remove option.
6828 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
6829
e893f6f3
DD
68302009-04-01 DJ Delorie <dj@redhat.com>
6831
6832 * varasm.c (default_function_rodata_section): Don't assume
6833 anything about where the first '.' in the section name is.
6834
b246d100
AM
68352009-04-01 Alan Modra <amodra@bigpond.net.au>
6836
6837 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
6838 rs6000_emit_stack_tie.
6839
d3e37a9e
ILT
68402009-03-31 Ian Lance Taylor <iant@google.com>
6841
6842 * tree-eh.c (tree_remove_unreachable_handlers): Compare
6843 gimple_code with GIMPLE_RESX, not RESX.
6844
c1b61fca
JM
68452009-03-31 Joseph Myers <joseph@codesourcery.com>
6846
6847 * c-common.c (c_get_ident): New.
7a715bba 6848 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 6849
c2d2ad48
BE
68502009-04-01 Ben Elliston <bje@au.ibm.com>
6851
6852 * config/rs6000/sysv4.opt (msdata): Improve option description.
6853
13d1a6e7
SE
68542009-03-31 Steve Ellcey <sje@cup.hp.com>
6855
6856 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
6857 (divdf3_internal_lat): Remove.
6858 (divxf3_internal_lat): Remove.
6859 (divxf3_internal_thr): Remove.
6860 (divxf): Use divxf3_internal.
6861 * config/ia64/div.md (divsf3_internal_lat): New.
6862 (divdf3_internal_lat): New.
6863 (divxf3_internal): New.
6864
207bf79d
JM
68652009-03-31 Joseph Myers <joseph@codesourcery.com>
6866
6867 PR c/448
6868 * Makefile.in (USE_GCC_STDINT): Define.
6869 (stmp-int-hdrs): Install stdint.h if applicable.
6870 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
6871 if known.
6872 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
6873 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
6874 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6875 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6876 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6877 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6878 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6879 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6880 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6881 (c_common_nodes_and_builtins): Initialize
6882 underlying_wchar_type_node. Do not initialize
6883 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
6884 nodes for new types.
6885 (c_stddef_cpp_builtins): Define macros for new types.
6886 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
6887 Remove.
6888 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
6889 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
6890 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
6891 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
6892 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
6893 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
6894 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
6895 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
6896 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
6897 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
6898 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
6899 int16_type_node, int32_type_node, int64_type_node,
6900 uint8_type_node, uint16_type_node, c_uint32_type_node,
6901 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
6902 int_least32_type_node, int_least64_type_node,
6903 uint_least8_type_node, uint_least16_type_node,
6904 uint_least32_type_node, uint_least64_type_node,
6905 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
6906 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
6907 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
6908 uintptr_type_node): Define.
6909 * c-cppbuiltin.c (builtin_define_constants,
6910 builtin_define_type_minmax): New.
6911 (builtin_define_stdint_macros): Define more macros.
6912 (c_cpp_builtins): Define more limit macros.
6913 (type_suffix): New.
6914 (builtin_define_type_max): Define in terms of
6915 builtin_define_type_minmax. Remove is_long parameter. All
6916 callers changed.
6917 * config.gcc (use_gcc_stdint): Define.
6918 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
6919 Add newlib-stdint.h for generic targets.
6920 * config/glibc-stdint.h, config/newlib-stdint.h,
6921 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
6922 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
6923 * config/score/score.h (UINTPTR_TYPE): Define.
6924 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
6925 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
6926 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6927 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6928 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6929 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6930 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6931 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6932 * config/spu/spu.h (STDINT_LONG32): Define.
6933 * configure.ac (use_gcc_stdint): Substitute.
6934 * configure: Regenerate.
6935 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
6936 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
6937 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
6938 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
6939 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
6940 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
6941 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
6942 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
6943 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
6944 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
6945 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
6946 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
6947 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
6948 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
6949 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
6950 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
6951 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
6952 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
6953 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
6954 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
6955 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
6956 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
6957 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6958 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6959 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6960 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6961 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6962 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6963 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
6964
ed853664
BS
69652009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
6966
6967 * loop-iv.c (suitable_set_for_replacement): Renamed from
6968 simplify_using_assignment; changed to return bool and to accept new
6969 args DEST and SRC. Return true iff we find a source/destination pair
6970 that can be used to make a replacement, and fill SRC and DEST if so.
6971 Remove arg ALTERED. Don't deal with altered regs here. All callers
6972 changed.
6973 (simplify_using_initial_values): Deal with altered regs here and track
6974 more precisely the effect they have on the validity of our expression.
6975
1569e190
BS
6976 * loop-iv.c (simplify_using_condition): A condition of the form
6977 (EQ REG CONST) can be used to simply make a substitution.
6978 (simplify_using_initial_values): Keep track of conditions we have seen
6979 and keep using them to simplify new expressions, while applying the
6980 same substitutions to them as to the expression.
6981
1d1eb80c
BS
6982 * simplify-rtx.c (simplify_relational_operation_1): Simplify
6983 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
6984 GEU/LTU reversed.
6985
28af33b0
BS
6986 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
6987 changed. Use this when trying to improve the upper bound.
6988 Generate the comparison by using simplify_gen_relational.
6989
b30321cd
BS
6990 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
6991
60081874
BS
6992 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
6993 functions.
2ba9daa7 6994 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
6995 replace_in_expr to make replacements. Call replace_single_def_regs
6996 once on the initial version of the expression.
6997
bebc6e07
RR
69982009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6999
fcb82ab0 7000 PR target/27237
bebc6e07 7001 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 7002
6b12efe9
RG
70032009-03-31 Richard Guenther <rguenther@suse.de>
7004
7005 PR middle-end/31029
7006 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7007 equality comparisons. Fold C - X CMP X if C % 2 == 1.
7008
108f6c2f
RG
70092009-03-31 Richard Guenther <rguenther@suse.de>
7010
7011 * tree.h (div_if_zero_remainder): Declare.
7012 * fold-const.c (div_if_zero_remainder): Export.
7013 * tree-ssa-forwprop.c
7014 (forward_propagate_addr_into_variable_array_index): Handle
7015 constant array index addition outside of the variable index.
7016
8f612190
JM
70172009-03-31 Joseph Myers <joseph@codesourcery.com>
7018
7019 PR target/39592
7020 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7021 define_splits, floatunssi<mode>2): Require x87 conversions from
7022 DImode to be permitted.
7023
47580d22
JM
70242009-03-31 Joseph Myers <joseph@codesourcery.com>
7025
7026 PR preprocessor/15638
7027 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7028
ba4d8f9d
RG
70292009-03-31 Richard Guenther <rguenther@suse.de>
7030
7031 PR middle-end/23401
7032 PR middle-end/27810
7033 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7034 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7035 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7036 a separate statement.
7037 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7038 (lookup_tmp_var): Likewise.
7039 (is_gimple_formal_tmp_or_call_rhs): Remove.
7040 (is_gimple_reg_or_call_rhs): Rename to ...
7041 (is_gimple_reg_rhs_or_call): ... this.
7042 (is_gimple_mem_or_call_rhs): Rename to ...
7043 (is_gimple_mem_rhs_or_call): ... this.
7044 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
7045 DECL_GIMPLE_REG_P only if is_formal is true.
7046 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
7047 for non-proper post-modify expression gimplification.
7048 (gimplify_self_mod_expr): For post-modify expressions gimplify
7049 the lvalue to a minimal lvalue.
7050 (rhs_predicate_for): Remove formal temp case.
7051 (gimplify_modify_expr_rhs): Likewise.
7052 (gimplify_addr_expr): Use is_gimple_reg.
7053 (gimplify_expr): Remove formal temp cases.
7054 (gimple_regimplify_operands): Likewise.
7055 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7056 and FILTER_EXPR like constants.
7057 * gimple.c (walk_gimple_op): Fix val_only initialization, use
7058 is_gimple_reg.
7059 (is_gimple_formal_tmp_rhs): Remove.
7060 (is_gimple_reg_rhs): Remove special casing.
7061 (is_gimple_mem_rhs): Fix.
7062 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7063 (is_gimple_formal_tmp_var): Remove.
7064 (is_gimple_formal_tmp_reg): Likewise.
7065 (is_gimple_min_lval): Allow invariant component ref parts.
7066 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7067 is_gimple_formal_tmp_reg): Remove declarations.
7068 * tree-cfg.c (verify_expr): Verify that variables with address
7069 taken do not have DECL_GIMPLE_REG_P set.
7070 * tree-mudflap.c (mf_build_check_statement_for): Use
7071 force_gimple_operand instead of gimplify_expr.
7072
8de9b877
AZ
70732009-03-31 Ayal Zaks <zaks@il.ibm.com>
7074
7075 * modulo-sched.c (sms_schedule_by_order): Pass the actual
7076 schedulable rows to compute_split_row.
7077
b5e3caf2
BE
70782009-03-31 Ben Elliston <bje@au.ibm.com>
7079
7080 PR target/31635
7081 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7082 OPT_mvrsave.
7083
9752c4ad
AM
70842009-03-31 Alan Modra <amodra@bigpond.net.au>
7085
7086 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7087 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7088 * configure: Regenerate.
7089 * config.in: Regenerate.
7090 * config/rs6000/rs6000.opt (mtls-markers): Add.
7091 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7092 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7093 (tls_ld_aix, tls_ld_sysv): Likewise.
7094 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7095 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7096
b597d1b6
AM
70972009-03-31 Alan Modra <amodra@bigpond.net.au>
7098
7099 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7100
a203a221
JH
71012009-03-30 Jan Hubicka <jh@suse.cz>
7102
b597d1b6
AM
7103 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7104 out of RESX.
7105 (tree_remove_unreachable_handlers): Cleanup EH predecestor
7106 detection and label handling.
a203a221 7107
5b0c0b2c
VM
71082009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7109
7110 * ira-int.h (ira_allocno): Rename left_conflicts_num to
7111 left_conflicts_size.
7112 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7113 ALLOCNO_LEFT_CONFLICTS_SIZE.
7114
7115 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7116 remove_allocno_from_bucket_and_push,
7117 allocno_spill_priority_compare, push_allocnos_to_stack,
7118 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7119 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7120 (setup_allocno_left_conflicts_num): Ditto. Rename to
7121 setup_allocno_left_conflicts_size.
7122 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7123 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7124 setup_allocno_left_conflicts_size instead of
7125 setup_allocno_left_conflicts_num.
7126
7127 * ira-build.c (ira_create_allocno): Use
7128 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7129 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 7130
9a48a93f
VM
71312009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7132
7133 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7134 instead of DF_LR_OUT.
7135
7136 * ira-lives.c (process_bb_node_lives): Ditto.
7137
7138 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7139 instead of DF_LR_{OUT,IN}.
7140
7141 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7142
7143 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7144
4c936d4f
JH
71452009-03-30 Jan Hubicka <jh@suse.cz>
7146
7147 * except.c (label_to_region_map): Fix thinko.
7148
f4d9f129
SE
71492009-03-30 Steve Ellcey <sje@cup.hp.com>
7150
7151 PR middle-end/38237
7152 * tree.h (tree_find_value): New declaration.
7153 * tree.c (tree_find_value): New function.
7154 * varasm.c (assemble_external): Avoid duplicate entries on lists.
7155
b3f27c15
JJ
71562009-03-30 Jakub Jelinek <jakub@redhat.com>
7157
7158 PR debug/39563
7159 * c-decl.c (struct c_binding): Add locus field.
7160 (bind): Add locus argument, set locus field from it.
7161 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7162 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7163 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7164 implicitly_declare, undeclared_variable, lookup_label,
7165 declare_label, c_make_fname_decl, c_builtin_function,
7166 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7167 bind callers.
7168
ad41bd84 71692009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
7170
7171 PR target/38781
7172 * config/i386/i386.c (classify_argument): Check total size of
7173 structure.
7174
133f9369
MJ
71752009-03-30 Martin Jambor <mjambor@suse.cz>
7176
7177 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7178 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7179 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7180 respectively.
7181
7182 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7183 seen_variable_array_ref while also traversing a union.
7184
7185 * tree-inline.c (optimize_inline_calls): Do not call
7186 cgraph_node_remove_callees.
7187 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7188 (pass_remove_cgraph_callee_edges): New variable.
7189 * passes.c (init_optimization_passes): Add
7190 pass_remove_cgraph_callee_edges after early inlining and before all
7191 late intraprocedural passes.
7192
7193 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7194
1190f2eb
PB
71952009-03-30 Paolo Bonzini <bonzini@gnu.org>
7196
7197 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7198 Fix typos in names.
7199
fedc1775
PB
72002009-03-30 Paolo Bonzini <bonzini@gnu.org>
7201
fcb82ab0
UB
7202 * combine.c (simplify_comparison): Use have_insn_for.
7203 * dojump.c (do_jump): Likewise.
fedc1775 7204
65c5ae8b
PB
72052009-03-30 Paolo Bonzini <bonzini@gnu.org>
7206
7207 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7208 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7209 sparc_compare_op0 like sparc_compare_emitted used to be handled.
7210 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7211 instead of sparc_compare_emitted.
7212 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7213 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7214 instead of sparc_compare_emitted.
7215
d25aa7ab
PB
72162009-03-30 Paolo Bonzini <bonzini@gnu.org>
7217
7218 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7219 enter/exit cfglayout mode.
7220 (pass_partition_block): Require it.
7221 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7222 (combine_instructions): Track basic blocks instead of labels.
7223 (update_cfg_for_uncondjump): New.
7224 (try_combine): Use it. Update jumps after rescanning.
7225 (pass_combine): Require PROP_cfglayout.
7226 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7227
9c9e26f5
PB
72282009-03-30 Paolo Bonzini <bonzini@gnu.org>
7229
fcb82ab0
UB
7230 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7231 Provide/destroy PROP_cfglayout respectively.
7232 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7233 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 7234
28ddeea1
PB
72352009-03-30 Paolo Bonzini <bonzini@gnu.org>
7236
7237 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7238 fold_convert_const_fixed_from_fixed,
7239 fold_convert_const_fixed_from_int,
7240 fold_convert_const_fixed_from_real, fold_negate_const): Do not
7241 set TREE_CONSTANT_OVERFLOW.
7242 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7243 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7244
ebfd146a
IR
72452009-03-30 Ira Rosen <irar@il.ibm.com>
7246
7247 * tree-vect-loop-manip.c: New file.
7248 * tree-vectorizer.c: Update documentation and included files.
7249 (vect_loop_location): Make extern.
7250 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
7251 (rename_variables_in_bb, rename_variables_in_loop,
7252 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
7253 slpeel_update_phi_nodes_for_guard1,
7254 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7255 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7256 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 7257 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
7258 find_loop_location): Likewise.
7259 (new_stmt_vec_info): Move to tree-vect-stmts.c.
7260 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7261 get_vectype_for_scalar_type, vect_is_simple_use,
7262 supportable_widening_operation, supportable_narrowing_operation):
7263 Likewise.
7264 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
7265 (new_loop_vec_info, destroy_loop_vec_info,
7266 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
7267 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7268 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7269 (vect_supportable_dr_alignment): Likewise.
7270 * tree-vectorizer.h (tree-data-ref.h): Include.
7271 (vect_loop_location): Declare.
7272 Reorganize function declarations according to the new file structure.
7273 * tree-vect-loop.c: New file.
2ba9daa7 7274 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
7275 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7276 * tree-vect-data-refs.c: New file.
7277 * tree-vect-patterns.c (timevar.h): Don't include.
7278 * tree-vect-stmts.c: New file.
2ba9daa7 7279 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 7280 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
7281 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7282 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
7283 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7284 (tree-vect-analyze.o): Remove.
7285 (tree-vect-transform.o): Likewise.
7286 (tree-vect-data-refs.o): Add rule.
2ba9daa7 7287 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
7288 tree-vect-slp.o): Likewise.
7289 (tree-vect-patterns.o): Remove redundant dependencies.
7290 (tree-vectorizer.o): Likewise.
7291 * tree-vect-slp.c: New file.
7292
40a1cfba
RW
72932009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7294
7295 * optc-gen.awk: Warn if an option flag has multiple different
7296 help strings.
7297
a9a7a9a2
SP
72982009-03-30 Sebastian Pop <sebastian.pop@amd.com>
7299
7300 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7301 -floop-block): Document dependences on PPL, CLooG and Graphite.
7302
8ce94e44
JM
73032009-03-30 Joseph Myers <joseph@codesourcery.com>
7304
7305 PR rtl-optimization/323
7306 * c-common.c (c_fully_fold, convert_and_check,
7307 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7308 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7309 * c-common.def (EXCESS_PRECISION_EXPR): New.
7310 * c-cppbuiltin.c (builtin_define_float_constants): Define
7311 constants with enough digits for long double.
7312 * c-lex.c (interpret_float): Interpret constant with excess
7313 precision where appropriate.
7314 * c-opts.c (c_common_post_options): Set
7315 flag_excess_precision_cmdline. Give an error for
7316 -fexcess-precision=standard for C++ for processors where the
7317 option is significant.
7318 * c-parser.c (c_parser_conditional_expression): Handle excess
7319 precision in condition.
7320 * c-typeck.c (convert_arguments): Handle arguments with excess
7321 precision.
7322 (build_unary_op): Move excess precision outside operation.
7323 (build_conditional_expr): Likewise.
7324 (build_compound_expr): Likewise.
7325 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7326 (build_modify_expr): Handle excess precision in RHS.
7327 (convert_for_assignment): Handle excess precision in converted
7328 value.
7329 (digest_init, output_init_element, process_init_element): Handle
7330 excess precision in initializer.
7331 (c_finish_return): Handle excess precision in return value.
7332 (build_binary_op): Handle excess precision in operands and add
7333 excess precision as needed for operation.
7334 * common.opt (-fexcess-precision=): New option.
7335 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7336 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7337 For standard excess precision, output explicit conversion to and
7338 truncation from XFmode.
7339 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7340 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7341 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7342 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
7343 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
7344 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
7345 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
7346 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
7347 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
7348 define_splits, sqrt<mode>2): Disable where appropriate for
7349 standard excess precision.
7350 * convert.c (convert_to_real): Do not shorten arithmetic to type
7351 for which excess precision would be used.
7352 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
7353 * doc/invoke.texi (-fexcess-precision=): Document option.
7354 (-mfpmath=): Correct index entry.
7355 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
7356 flag_excess_precision): New.
7357 * langhooks.c (lhd_post_options): Set
7358 flag_excess_precision_cmdline.
7359 * opts.c (common_handle_option): Handle -fexcess-precision=.
7360 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
7361 init_excess_precision): New.
7362 (lang_dependent_init_target): Call init_excess_precision.
7363 * tree.c (excess_precision_type): New.
7364 * tree.h (excess_precision_type): Declare.
7365
1e57bf47
JM
73662009-03-30 Joseph Myers <joseph@codesourcery.com>
7367
7368 PR c/35235
7369 * c-typeck.c (build_component_ref): Do not copy qualifiers from
7370 non-lvalue to component.
7371
148e4216
JM
73722009-03-29 Joseph Myers <joseph@codesourcery.com>
7373
7374 PR preprocessor/34695
7375 * Makefile.in (c-opts.o): Depend on c-tree.h.
7376 * c-common.c: Move down include of diagnostic.h.
7377 (done_lexing, c_cpp_error): New.
7378 * c-common.h (done_lexing): Declare.
7379 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
7380 (parse_in).
7381 * c-opts.c: Include c-tree.h.
7382 (c_common_init_options): Set preprocessor error callback.
7383 (c_common_handle_option): Do not set preprocessor
7384 inhibit_warnings, warnings_are_errors, warn_system_headers,
7385 pedantic_errors or inhibit_warnings flags.
7386 (c_common_post_options): Do not check cpp_errors (parse_in).
7387 (c_common_finish): Do not output dependencies if there were
7388 errors. Do not check return value of cpp_finish.
7389 * c-ppoutput.c (pp_file_change): Set input_location.
7390 * c-tree.h (c_cpp_error): Declare.
7391 * diagnostic.c (diagnostic_set_info_translated): Also initialize
7392 override_column.
7393 (diagnostic_build_prefix): Check override_column.
7394 * diagnostic.h (diagnostic_info): Add override_column field.
7395 (diagnostic_override_column): Define.
7396
2ec5deb5
PB
73972009-03-28 Paolo Bonzini <bonzini@gnu.org>
7398
ba20e309
UB
7399 * c-common.c (c_expand_expr, c_staticp): Remove.
7400 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
7401 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
7402 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
7403 * c-gimplify.c (gimplify_compound_literal_expr,
7404 optimize_compound_literals_in_ctor): Remove.
7405 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
7406 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
7407 * c-semantics.c (emit_local_var): Remove.
7408
7409 * langhooks-def.h (lhd_expand_expr): Remove.
7410 * langhooks.c (lhd_expand_expr): Remove.
7411 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
7412
7413 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
7414 handling from c-semantics.c; don't call into langhook.
7415 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
7416 * gimplify.c (gimplify_compound_literal_expr,
7417 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
7418 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
7419 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
7420 as was done in c-gimplify.c.
7421 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
7422 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
7423 Move from c-common.h.
7424 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
7425
7426 * tree.c (staticp): Do not call langhook.
7427 * langhooks.c (lhd_staticp): Delete.
7428 * langhooks-def.h (lhd_staticp): Delete prototype.
7429 (LANG_HOOKS_STATICP): Delete.
7430 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
7431
ba20e309
UB
7432 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
7433 instead of DECL_STMTs.
2ec5deb5 7434
928c19bb
JM
74352009-03-29 Joseph Myers <joseph@codesourcery.com>
7436
7437 PR c/456
7438 PR c/5675
7439 PR c/19976
7440 PR c/29116
7441 PR c/31871
7442 PR c/35198
7443 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
7444 void_type_node.
7445 (fold_call_expr): Return a NOP_EXPR from folding rather than the
7446 contained expression.
ba20e309 7447 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
7448 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
7449 conditional expressions for C.
7450 (decl_constant_value_for_optimization): Move from
ba20e309 7451 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
7452 whether optimizing and that the expression is a VAR_DECL not of
7453 array type instead of doing such checks in the caller. Do not
7454 check pedantic. Call gcc_unreachable for C++.
7455 * c-common.def (C_MAYBE_CONST_EXPR): New.
7456 * c-common.h (c_fully_fold, c_save_expr,
7457 decl_constant_value_for_optimization): New prototypes.
7458 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7459 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7460 EXPR_INT_CONST_OPERANDS): Define.
7461 * c-convert.c (convert): Strip nops from expression.
7462 * c-decl.c (groktypename): Take extra parameters expr and
7463 expr_const_operands. Update call to grokdeclarator.
7464 (start_decl): Update call to grokdeclarator. Add statement for
7465 expressions used in type of decl.
7466 (grokparm): Update call to grokdeclarator.
7467 (push_parm_decl): Update call to grokdeclarator.
7468 (build_compound_literal): Add parameter non_const and build a
7469 C_MAYBE_COSNT_EXPR if applicable.
7470 (grokdeclarator): Take extra parameters expr and
7471 expr_const_operands. Track expressions used in declaration
7472 specifiers and declarators. Fold array sizes and track whether
7473 they are constant expressions and whether they are integer
7474 constant expressions.
7475 (parser_xref_tag): Set expr and expr_const_operands fields in
7476 return value.
7477 (grokfield): Update call to grokdeclarator.
7478 (start_function): Update call to grokdeclarator.
7479 (build_null_declspecs): Set expr and expr_const_operands fields in
7480 return value.
7481 (declspecs_add_type): Handle expressions in typeof specifiers.
7482 * c-parser.c (c_parser_declspecs): Set expr and
7483 expr_const_operands fields for declaration specifiers.
7484 (c_parser_enum_specifier): Likewise.
7485 (c_parser_struct_or_union_specifier): Likewise.
7486 (c_parser_typeof_specifier): Likewise. Update call to
7487 groktypename. Fold expression as needed. Return expressions with
7488 type instead of adding statements.
7489 (c_parser_attributes): Update calls to c_parser_expr_list.
7490 (c_parser_statement_after_labels): Fold expression before passing
7491 to objc_build_throw_stmt.
7492 (c_parser_condition): Fold expression.
7493 (c_parser_asm_operands): Fold expression.
7494 (c_parser_conditional_expression): Use c_save_expr. Update call
7495 to build_conditional_expr.
7496 (c_parser_alignof_expression): Update call to groktypename.
7497 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
7498 original_code. Fold expression argument of va_arg. Create
7499 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
7500 argument to va_arg. Update calls to groktypename. Fold array
7501 index for offsetof. Verify that first argument to
7502 __builtin_choose_expr has integer type.
7503 (c_parser_postfix_expression_after_paren_type): Update calls to
7504 groktypename and build_compound_literal. Handle expressions with
7505 side effects in type name.
7506 (c_parser_postfix_expression_after_primary): Update call to
7507 c_parser_expr_list. Set original_code for calls to
7508 __builtin_constant_p.
7509 (c_parser_expr_list): Take extra parameter fold_p. Fold
7510 expressions if requested.
7511 (c_parser_objc_type_name): Update call to groktypename.
7512 (c_parser_objc_synchronized_statement): Fold expression.
7513 (c_parser_objc_receiver): Fold expression.
7514 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
7515 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
7516 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
7517 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
7518 (struct c_typespec): Add elements expr and expr_const_operands.
7519 (struct c_declspecs): Add elements expr and expr_const_operands.
7520 (groktypename, build_conditional_expr, build_compound_literal):
7521 Update prototypes.
7522 (in_late_binary_op): Declare.
7523 * c-typeck.c (note_integer_operands): New function.
7524 (in_late_binary_op): New variable.
7525 (decl_constant_value_for_broken_optimization): Move to c-common.c
7526 and rename to decl_constant_value_for_optimization.
7527 (default_function_array_conversion): Do not strip nops.
7528 (default_conversion): Do not call
7529 decl_constant_value_for_broken_optimization.
7530 (build_array_ref): Do not fold result.
7531 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
7532 result when operand is a VLA.
7533 (c_expr_sizeof_type): Update call to groktypename. Handle
7534 expressions included in type name. Use C_MAYBE_CONST_EXPR for
7535 result when operand names a VLA type.
7536 (build_function_call): Update call to build_compound_literal.
7537 Only fold result for calls to __builtin_* functions. Strip
7538 NOP_EXPR from INTEGER_CST returned from such functions. Fold
7539 the function designator.
7540 (convert_arguments): Fold arguments. Update call to
7541 convert_for_assignment.
7542 (build_unary_op): Handle increment and decrement of
7543 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
7544 decrement earlier. Fold operand of increment and decrement.
7545 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
7546 built for integer operand. Wrap returns that are INTEGER_CSTs
7547 without being integer constant expressions or that have integer
7548 constant operands without being INTEGER_CSTs.
7549 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
7550 (build_conditional_expr): Add operand ifexp_bcp. Track whether
7551 result is an integer constant expression or can be used in
7552 unevaluated parts of one and avoid folding and wrap as
7553 appropriate. Fold operands before possibly doing -Wsign-compare
7554 warnings.
7555 (build_compound_expr): Wrap result for C99 if operands can be used
7556 in integer constant expressions.
7557 (build_c_cast): Update call to digest_init. Do not ignore
7558 overflow from casting floating-point constants to integers. Wrap
7559 results that could be confused with integer constant expressions,
7560 null pointer constants or floating-point constants.
7561 (c_cast_expr): Update call to groktypename. Handle expressions
7562 included in type name.
7563 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
7564 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
7565 Update calls to convert_for_assignment.
7566 (convert_for_assignment): Take new parameter
7567 null_pointer_constant. Do not strip nops or call
7568 decl_constant_value_for_broken_optimization. Set
7569 in_late_binary_op for conversions to boolean.
7570 (store_init_value): Update call to digest_init.
7571 (digest_init): Take new parameter null_pointer_constant. Do not
7572 call decl_constant_value_for_broken_optimization. pedwarn for
7573 initializers not constant expressions. Update calls to
7574 convert_for_assignment.
7575 (constructor_nonconst): New.
7576 (struct constructor_stack): Add nonconst element.
7577 (really_start_incremental_init, push_init_level, pop_init_level):
7578 Handle constructor_nonconst and nonconst element.
7579 (set_init_index): Call constant_expression_warning for array
7580 designators.
7581 (output_init_element): Fold value. Set constructor_nonconst as
7582 applicable. pedwarn for initializers not constant expressions.
7583 Update call to digest_init. Call constant_expression_warning
7584 where constant initializers are required.
7585 (process_init_element): Use c_save_expr.
7586 (c_finish_goto_ptr): Fold expression.
7587 (c_finish_return): Fold return value. Update call to
7588 convert_for_assignment.
7589 (c_start_case): Fold switch expression.
7590 (c_process_expr_stmt): Fold expression.
7591 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 7592 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
7593 (build_binary_op): Track whether results are integer constant
7594 expressions or may occur in such, disable folding and wrap results
7595 as applicable. Fold operands for -Wsign-compare warnings unless
7596 in_late_binary_op.
7597 (c_objc_common_truthvalue_conversion): Handle results folded to
7598 integer constants that are not integer constant expressions.
7599 * doc/extend.texi: Document when typeof operands are evaluated,
7600 that condition of __builtin_choose_expr is an integer constant
7601 expression, and more about use of __builtin_constant_p in
7602 initializers.
7603
5babbcc0
RG
76042009-03-29 Richard Guenther <rguenther@suse.de>
7605
7606 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
7607 propagate addresses of array references.
7608
0340f2ba
SB
76092009-03-29 Steven Bosscher <steven@gcc.gnu.org>
7610
7611 * regmove.c (perhaps_ends_bb_p): Remove.
7612 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
7613 from INSN and check that the main loop stays within that basic block.
7614 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
7615 (regmove_forward_pass): Split out from regmove_optimize. Use
7616 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
7617 (regmove_backward_pass): Split out from regmove_optimize. Use
7618 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
7619 (regmove_optimize): Simplify.
7620
eeae74a1
L
76212009-03-29 H.J. Lu <hongjiu.lu@intel.com>
7622
7623 PR target/39545
7624 * config/i386/i386.c (classify_argument): Ignore flexible array
7625 member in struct and warn ABI change.
7626
a24078b2
L
76272009-03-29 H.J. Lu <hongjiu.lu@intel.com>
7628
7629 * config/i386/i386-protos.h (ix86_agi_dependent): New.
7630
7631 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
7632 (ix86_adjust_cost): Updated.
7633
a8da523f
JH
76342009-03-29 Jan Hubicka <jh@suse.cz>
7635
7636 PR middle-end/28850
7637 * tree-pass.h (pass_cleanup_eh): New function.
7638 (remove_unreachable_regions): Break code handling RTL
7639 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
7640 that can not be reached by runtime.
7641 (can_be_reached_by_runtime): New function.
7642 (label_to_region_map): New function.
7643 (num_eh_regions): New function.
7644 (rtl_remove_unreachable_regions): New function.
7645 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
7646 (remove_eh_region): New function.
7647 * except.h: Include sbitmap and vecprim.
7648 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
7649 num_eh_regions): Declare.
7650 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 7651 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
7652 * tree-eh.c (tree_remove_unreachable_handlers): New function.
7653 (tree_empty_eh_handler_p): New function.
7654 (cleanup_empty_eh): New function.
7655 (cleanup_eh): New function.
7656 (pass_cleanup_eh): New function.
7657
98f358e5
JH
76582009-03-29 Jan Hubicka <jh@suse.cz>
7659
7660 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
7661 for removed regions.
7662
13a9fa44
JH
76632009-03-29 Jan Hubicka <jh@suse.cz>
7664
7665 * except.c (dump_eh_tree): Dump all datastructures.
7666
e38cf733
JH
76672009-03-29 Jan Hubicka <jh@suse.cz>
7668
7669 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
7670 (duplicate_eh_regions_1): Likewise.
7671 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
7672 vector; call EH verification.
7673 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7674 Be ready for region being removed.
7675
12802c2b
JH
76762009-03-29 Jan Hubicka <jh@suse.cz>
7677
7678 * bitmap.c (bitmap_last_set_bit): New function.
7679 * bitmap.h (bitmap_last_set_bit): Declare.
7680
4ea80a41
DA
76812009-03-29 David Ayers <ayers@fsfe.org>
7682
7683 PR objc/27377
7684 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
7685 by calling objc_compare_types and surpress warnings about
7686 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 7687
4ea80a41 76882009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
7689
7690 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
7691 call initialize_inline_failed.
7692 (initialize_inline_failed): Move it from here ...
7693 * cgraph.c (initialize_inline_failed): ... to here.
7694 (cgraph_create_edge): Call initialize_inline_failed rather than
7695 setting inline_failed directly.
7696
7fb0ee07
BE
76972009-03-29 Ben Elliston <bje@au.ibm.com>
7698
7699 PR target/32542
7700 * sysv4.opt (msdata): Improve comment.
7701 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
7702 * sysv4.h (SVR4_ASM_SPEC): Likewise.
7703
0be77bf2
BE
77042009-03-29 Ben Elliston <bje@au.ibm.com>
7705
7706 PR target/30451
7707 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
7708 load and store attributes.
7709
593812b6
BE
77102009-03-29 Ben Elliston <bje@au.ibm.com>
7711
7712 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
7713 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
7714 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
7715 * doc/extend.texi (X86 Built-in Functions): Add index entries for
7716 __builtin_infq and __builtin_huge_valq.
7717
8272d11d
AS
77182009-03-28 Anatoly Sokolov <aesok@post.ru>
7719
7720 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
7721 atmega8m1 devices.
7722 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7723 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
7724
74fe548b
XDL
77252009-03-28 Xinliang David Li <davidxl@google.com>
7726
2ba9daa7 7727 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
7728 (do_dbg_cnt): New function.
7729
33977f81
JH
77302009-03-28 Jan Hubicka <jh@suse.cz>
7731
7732 Merge from pretty-ipa:
7733
7734 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 7735
33977f81
JH
7736 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
7737 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
7738 * passes.c (function_called_by_processed_nodes_p): New.
7739 * ipa-pure-const.c (check_call): Fix handling of operands.
7740 (analyze_function): Dump debug output for skipped bodies.
7741 (local_pure_const): Use function_called_by_processed_nodes_p.
7742 * dwarf2out.c (reference_to_unused): Use output.
7743 * passes.c (do_per_function_toporder): Likewise.
7744
7745 2008-11-12 Jan Hubicka <jh@suse.cz>
7746
7747 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
7748 * ipa-pure-const.c (funct_state_d): Add can throw field; make
7749 state_set_in_source enum
7750 (check_decl): Ignore memory tags; do not set fake looping flags;
7751 dump diagnostics.
7752 (check_operand, check_tree, check_rhs_var, check_lhs_var,
7753 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
7754 (check_call, analyze_function): Rewrite.
7755 (check_stmt): New.
7756 (add_new_function): Update call of analyze_function.
7757 (generate_summary): Add call of analyze_function.
7758 (propagate): Propagate can_throw; handle state_set_in_source correctly.
7759 (local_pure_const): New function.
7760 (pass_local_pure_const): New pass.
7761 * ipa-inline.c (inline_transform): Set after_inlining.
7762 * tree-eh.c (stmt_can_throw_external): New.
7763 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
7764 work with aliasing built.
7765 * tree-flow.h (stmt_can_throw_external): New.
7766 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
7767 and local pure/const pass in early and late optimization queue.
ba20e309 7768
617f3897
MJ
77692009-03-28 Martin Jambor <mjambor@suse.cz>
7770
7771 * fold-const.c (get_pointer_modulus_and_residue): New parameter
7772 allow_func_align.
7773 (fold_binary): Allow function decl aligment consideration is the
7774 second argument is integer constant one.
7775 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
7776 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
7777 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
7778
fe89fbc5
JH
77792009-03-28 Jan Hubicka <jh@suse.cz>
7780
7781 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
7782 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
7783 * function.h (rtl_data): Add nothrow flag.
7784 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
7785 set DECL_NOTHROW for AVAILABLE functions.
7786
574872ff
JJ
77872009-03-28 Jakub Jelinek <jakub@redhat.com>
7788
b3bf8855
JJ
7789 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
7790 following vector keyword has expansion starting with pixel or bool
7791 keyword, expand vector to __vector and pixel or bool to __pixel or
7792 __bool.
7793
574872ff
JJ
7794 PR c++/39554
7795 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
7796 warn_if_disallowed_function_p): Removed.
7797 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
7798 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
7799 warning_if_disallowed_function_p.
7800 * flags.h (warn_if_disallowed_function_p,
7801 warn_disallowed_functions): Removed.
7802 * common.opt (Wdisallowed-function-list=): Removed.
7803 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
7804
b005da11
RG
78052009-03-28 Richard Guenther <rguenther@suse.de>
7806
7807 PR tree-optimization/38723
7808 * tree-ssa-pre.c (compute_avail): Add all default definitions to
7809 the entry block.
7810
1de812a6
JH
78112009-03-28 Jan Hubicka <jh@suse.cz>
7812
7813 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
7814 test introduced by my previous patch.
7815
fbb789d4
RG
78162009-03-28 Richard Guenther <rguenther@suse.de>
7817
7818 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
7819 the PHIs value undefined.
7820
6f1873a1
JH
78212009-03-28 Jan Hubicka <jh@suse.cz>
7822
7823 * tree-pass.h (pass_fixup_cfg): New pass.
7824 * ipa-inline.c (inline_transform): Set
7825 always_inline_functions_inlined/after_inlining.
7826 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
7827 (pass_fixup_cfg): New pass.
7828 * passes.c (init_optimization_passes): Add fixup_cfg.
7829
17021bc8
RG
78302009-03-28 Richard Guenther <rguenther@suse.de>
7831
7832 PR tree-optimization/38458
7833 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
7834 argument use the arguments copy-of value.
7835
e8114fba
RG
78362009-03-28 Richard Guenther <rguenther@suse.de>
7837
7838 PR tree-optimization/38180
7839 * tree-ssa-ccp.c (get_default_value): Simplify.
7840 (likely_value): Likewise.
7841 (surely_varying_stmt_p): Properly handle VOP case.
7842 (ccp_initialize): Likewise.
7843 (ccp_fold): Handle propagating through *&.
7844 (fold_const_aggregate_ref): Also handle decls.
7845
257eb6e3
JH
78462009-03-28 Jan Hubicka <jh@suse.cz>
7847
7848 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
7849 * cgraph.h (cgraph_node): Likewise.
7850 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
7851 (cgraph_reset_node): Use process flag.
7852 (cgraph_mark_functions_to_output): Likewise.
7853 (cgraph_expand_function): Likewise.
7854 (cgraph_expand_all_functions): Likewise.
7855 (cgraph_output_in_order): Likewise.
7856 * dwarf2out.c (reference_to_unused): Likewise.
7857 * passes.c do_per_function_toporder): Likewise.
7858
61a05df1
JH
78592009-03-28 Jan Hubicka <jh@suse.cz>
7860
7861 Bring from lto-branch:
ba20e309 7862
61a05df1
JH
7863 2008-09-03 Doug Kwan <dougkwan@google.com>
7864
7865 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
7866 enums instead of reason strings.
7867 * cgraph.c (cgraph_create_edge): Same.
7868 (cgraph_inline_failed_string): New function.
7869 * cgraph.h (cgraph_inline_failed_t): New enum type.
7870 (cgraph_inline_failed_string): New prototype.
7871 (struct cgraph_edge): Change type of INLINED_FAILED from constant
7872 char pointer to cgraph_inline_failed_t.
7873 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
7874 (cgraph_default_inline_p): Ditto.
60839f5d 7875 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
7876 to cgraph_inline_failed_t pointer.
7877 * cif-code.def: New file.
7878 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
7879 reason string.
7880 (cgraph_check_inline_limits): Change type of REASON to pointer to
7881 cgraph_inline_failed_t. Replace reason strings with enums.
7882 (cgraph_default_inline_p): Ditto.
7883 (cgraph_recursive_inlining_p): Ditto.
7884 (update_caller_keys): Change type of FAILED_REASON to
7885 cgraph_inline_failed_t.
7886 (cgraph_set_inline_failed): Change type of REASON to pointer to
7887 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
7888 convert enums to strings for text output.
7889 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
7890 to be of type cgraph_inline_failed_t. Replace reason strings with
7891 enums. Call cgraph_inline_failed_string to covert enums
7892 to strings for text output.
7893 (cgraph_decide_inlining): Replace reason strings with enums.
7894 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
7895 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
7896 for text output.
7897 * tree-inline.c (expand_call_inline): Change type of REASON
7898 to cgraph_inline_failed_t. Replace reason strings with enums.
7899 Call cgraph_inline_failed_string for text output.
7900 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
7901 (cgraph.o): Ditto.
7902
144e8aac
JH
79032009-03-28 Jan Hubicka <jh@suse.cz>
7904
7905 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
7906 cgraph_clone_node): Remove master clone handling.
7907 (cgraph_is_master_clone, cgraph_master_clone): Remove.
7908 * cgraph.h (master_clone): Remove.
7909 (cgraph_is_master_clone, cgraph_master_clone): Remove.
7910 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
7911 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
7912
4a371c8d
JH
79132009-03-28 Jan Hubicka <jh@suse.cz>
7914
7915 * cgraph.c (cgraph_function_body_availability): Functions declared
7916 inline are always safe to assume that it is not going to be replaced.
7917
6cdb0ee3
RG
79182009-03-28 Richard Guenther <rguenther@suse.de>
7919
7920 PR tree-optimization/38513
7921 * tree-ssa-pre.c (eliminate): Remove redundant stores.
7922 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
7923 EXC_PTR_EXPR and FILTER_EXPR.
7924 (get_ref_from_reference_ops): Likewise.
7925
8ca1fd76
RG
79262009-03-28 Richard Guenther <rguenther@suse.de>
7927
7928 PR tree-optimization/38968
7929 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
7930 Use FLOOR_MOD_EXPR to compute misalignment.
7931
a254e44d
RG
79322009-03-28 Richard Guenther <rguenther@suse.de>
7933
7934 PR tree-optimization/37795
7935 * tree.h (combine_comparisons): Declare.
7936 * fold-const.c (combine_comparisons): Export.
7937 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
7938 comparisons.
7939 (ifcombine_iforif): Use combine_comparisons.
7940
a8ee227c
JH
79412009-03-28 Jan Hubicka <jh@suse.cz>
7942
7943 * tree-eh.c (inlinable_call_p): New function.
7944 (make_eh_edges): Use it.
7945 (verify_eh_edges): Use it.
7946 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
7947 * except.c (reachable_next_level): Add inlinable_function argument
7948 (sjlj_find_directly_reachable_regions): Update.
7949 (add_reachable_handler): Do not set saw_any_handlers.
7950 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
7951 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7952 Add new inlinable call parameter.
7953 (can_throw_internal, can_throw_external): Update.
7954 * except.h (can_throw_internal_1, can_throw_external_1,
7955 foreach_reachable_handler): Update declaration.
7956
52c0e446
JM
79572009-03-28 Joseph Myers <joseph@codesourcery.com>
7958
7959 * config/arm/t-arm-coff, config/h8300/coff.h,
7960 config/i386/i386-aout.h, config/i386/i386-coff.h,
7961 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
7962 config/pdp11/2bsd.h, config/rs6000/aix41.h,
7963 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
7964 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
7965 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
7966 sys-types.h: Remove.
7967 * Makefile.in: Remove protoize and fixproto support and references
7968 in comments.
7969 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
7970 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
7971 Remove.
7972 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
7973 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
7974 unprotoize$(exeext).
7975 (rest.encap): Don't depend on $(STMP_FIXPROTO)
7976 (.PHONY): Don't depend on proto.
7977 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
7978 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
7979 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
7980 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
7981 build/gen-protos.o, build/scan.o, xsys-protos.h,
7982 build/fix-header$(build_exeext), build/fix-header.o,
7983 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
7984 stmp-install-fixproto): Remove.
7985 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
7986 SYSCALLS.c or fixproto files.
7987 (install-common): Don't install protoize.
7988 (install-headers-tar, install-headers-cpio, install-headers-cp):
7989 Don't depend on $(STMP_FIXPROTO).
7990 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
7991 install fixproto files or write out fixproto settings.
7992 (uninstall): Don't uninstall protoize.
7993 * config.gcc (use_fixproto): Remove.
7994 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
7995 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
7996 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
7997 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
7998 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
7999 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8000 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8001 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8002 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8003 * config/t-vxworks (STMP_FIXPROTO): Remove.
8004 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8005 STMP_FIXPROTO): Remove.
8006 * config.in, configure: Regenerate.
8007 * crtstuff.c (gid_t, uid_t): Don't undefine.
8008 * doc/install.texi: Change m68k-coff to m68k-elf in example.
8009 (arm-*-coff, arm-*-aout: Remove target entries.
8010 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8011 Remove mention of AIX 4.1.
8012 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8013 * doc/invoke.texi (Running Protoize): Remove.
8014 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8015 (Protoize Caveats): Remove.
8016 * tsystem.h: Update comments on headers assumed to exist.
8017
20a07f44
VM
80182009-03-27 Vladimir Makarov <vmakarov@redhat.com>
8019
8020 * genautomata.c: Add a new year to the copyright. Add a new
8021 reference.
8022 (struct insn_reserv_decl): Add comments for member bypass_list.
8023 (find_bypass): Remove.
8024 (insert_bypass): New.
8025 (process_decls): Use insert_bypass.
8026 (output_internal_insn_latency_func): Output all bypasses with the
8027 same input insn in one switch case.
8028
8029 * rtl.def (define_bypass): Describe bypass choice.
8030 * doc/md.texi (define_bypass): Ditto.
8031
3a0d06c1
RB
80322009-03-27 Richard Guenther <rguenther@suse.de>
8033
8034 * gimplify.c (mark_addressable): Export.
8035 * tree-flow.h (mark_addressable): Declare.
8036 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8037 * tree-ssa.c (verify_phi_args): Verify that address taken
8038 variables have TREE_ADDRESSABLE set.
8039
80402009-03-27 Richard Guenther <rguenther@suse.de>
8041
8042 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8043 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
8044 Do not mark decls TREE_ADDRESSABLE.
8045 (build_fold_addr_expr): Adjust.
8046 (fold_addr_expr): Remove.
8047 (fold_unary): Use build_fold_addr_expr.
8048 (fold_comparison): Likewise.
8049 (split_address_to_core_and_offset): Likewise.
8050 * coverage.c (tree_coverage_counter_addr): Mark the array decl
8051 TREE_ADDRESSABLE.
8052 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8053 (gimplify_modify_expr_to_memcpy): Mark source and destination
8054 addressable.
8055 * omp-low.c (create_omp_child_function): Mark the object decl
8056 TREE_ADDRESSABLE.
8057 (lower_rec_input_clauses): Mark the var we take the address of
8058 TREE_ADDRESSABLE.
8059 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8060
2ac26e15
L
80612009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8062
8063 PR middle-end/39315
8064 * cfgexpand.c (expand_one_stack_var_at): Change alignment
8065 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8066
472c7fbd
RG
80672009-03-27 Richard Guenther <rguenther@suse.de>
8068
8069 PR tree-optimization/39120
8070 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8071 constraints.
8072 (handle_lhs_call): Process return constraints. Add escape
8073 constraints if necessary.
8074 (handle_const_call): Fill out return constraints. Make nested
8075 case more precise. Avoid consttmp if possible.
8076 (handle_pure_call): Fill out return constraints. Avoid
8077 callused if possible.
8078 (find_func_aliases): Simplify call handling.
8079
80802009-03-27 Richard Guenther <rguenther@suse.de>
8081
8082 PR tree-optimization/39120
8083 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8084 as a representative.
8085 (solve_graph): Do propagate CALLUSED.
8086 (handle_pure_call): Use a scalar constraint from CALLUSED for
8087 the return value.
8088 (find_what_p_points_to): CALLUSED shall not appear in poins-to
8089 solutions.
8090
d9223014
L
80912009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8092
8093 PR c/39323
8094 * c-common.c (handle_aligned_attribute): Properly check alignment
8095 overflow. Use (1U << i) instead of (1 << i).
8096
ba20e309 8097 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
8098
8099 * expr.h (get_mem_align_offset): Updated.
8100
8101 * tree.h (tree_decl_common): Change align to "unsigned int" and
8102 move it before pointer_alias_set.
8103
689b689c
L
81042009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8105 Jakub Jelinek <jakub@redhat.com>
8106
8107 PR target/38034
8108 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8109 gr_register_operand with gr_reg_or_0_operand.
8110 (cmpxchg_rel_di): Likewise.
8111 (sync_lock_test_and_set<mode>): Likewise.
8112
c619e982
L
81132009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8114
8115 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8116 (true_regnum): Likewise.
8117
8118 * rtlanal.c (subreg_info): Moved to ...
8119 * rtl.h (subreg_info): Here. New.
8120 (subreg_get_info): New.
8121
8122 * rtlanal.c (subreg_get_info): Make it extern.
8123
51212b32
L
81242009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8125
8126 PR target/39472
8127 * config/i386/i386.c (ix86_abi): New.
8128 (override_options): Handle -mabi=.
ba20e309 8129 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
8130 (ix86_call_abi_override): Likewise.
8131 (init_cumulative_args): Likewise.
8132 (function_arg_advance): Likewise.
8133 (function_arg_64): Likewise.
8134 (function_arg): Likewise.
8135 (ix86_pass_by_reference): Likewise.
8136 (ix86_function_value_regno_p): Likewise.
8137 (ix86_build_builtin_va_list_abi): Likewise.
8138 (setup_incoming_varargs_64): Likewise.
8139 (is_va_list_char_pointer): Likewise.
8140 (ix86_init_machine_status): Likewise.
ba20e309 8141 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
8142 (ix86_function_type_abi): Return enum calling_abi. Rewrite
8143 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 8144 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
8145 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
8146 with ix86_abi.
8147 (ix86_fn_abi_va_list): Updated.
8148
8149 * config/i386/i386.h (ix86_abi): New.
8150 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8151 (CONDITIONAL_REGISTER_USAGE): Likewise.
8152 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8153 (machine_function): Likewise.
8154
8155 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8156 with ix86_abi.
8157 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8158 (STACK_BOUNDARY): Likewise.
8159 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8160
8161 * config/i386/i386.opt (mabi=): New.
8162
8163 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8164 return enum calling_abi.
8165 (ix86_function_type_abi): Likewise.
8166 (ix86_function_abi): Removed.
8167
8168 * doc/invoke.texi: Document -mabi= option for x86.
8169
7338ea63
KG
81702009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8171
8172 * builtins.c (real_dconstp): Delete.
8173 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8174
68599f33
DS
81752009-03-27 Dodji Seketeli <dodji@redhat.com>
8176 Jakub Jelinek <jakub@redhat.com>
8177
8178 PR debug/37959
8179 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8180 (gen_subprogram_die): When a function is explicit, generate the
8181 DW_AT_explicit attribute.
8182 * langhooks.h (struct lang_hooks_for_decls): Add
8183 function_decl_explicit_p langhook.
8184 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8185 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8186
9f5e9983
JJ
81872009-03-27 Jakub Jelinek <jakub@redhat.com>
8188
64d7685c
JJ
8189 * builtins.c (fold_builtin_memory_op): Optimize memmove
8190 into memcpy if we can prove source and destination don't overlap.
8191
9f5e9983
JJ
8192 * tree-inline.c: Include gt-tree-inline.h.
8193 (clone_fn_id_num): New variable.
8194 (clone_function_name): New function.
8195 (tree_function_versioning): Use it.
8196 * Makefile.in (GTFILES): Add tree-inline.c.
8197
e54d52a8
MM
81982009-03-27 Mark Mitchell <mark@codesourcery.com>
8199
8200 * BASE-VER: Change to 4.5.0.
8201
e9d51dc6
XDL
82022009-03-27 Xinliang David Li <davidxl@google.com>
8203
8204 PR tree-optimization/39557
8205 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8206
4577cea1
XDL
82072009-03-27 Xinliang David Li <davidxl@google.com>
8208
8209 PR tree-optimization/39548
2ba9daa7 8210 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
8211 candidate check.
8212
0f7464f4
L
82132009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8214
8215 * c-common.c (pointer_int_sum): Use %wd on return from
8216 tree_low_cst.
8217
a8847a7f
L
82182009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8219
8220 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8221 on return from tree_low_cst.
8222
b0957daf
AP
82232009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
8224
8225 PR c++/36799
ba20e309
UB
8226 * ginclude/stdarg.h (va_copy): Define also for
8227 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 8228
a5f805df
MLI
82292009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8230
8231 PR c++/35652
8232 * builtins.h (c_strlen): Do not warn here.
8233 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8234 * c-common.c (pointer_int_sum): Take an explicit location.
8235 Warn about offsets out of bounds.
8236 * c-common.h (pointer_int_sum): Adjust declaration.
8237
6f401211
RW
82382009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8239
a5f805df
MLI
8240 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8241 markup glitch.
6f401211 8242
5a59b39e
JJ
82432009-03-26 Jakub Jelinek <jakub@redhat.com>
8244
8245 PR c++/39554
8246 * opts.c (warn_if_disallowed_function_p): Don't assume
8247 get_callee_fndecl must return non-NULL.
8248
d5f89b53
VM
82492009-03-26 Vladimir Makarov <vmakarov@redhat.com>
8250
8251 PR rtl-optimization/39522
8252 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8253 when reg_reloaded_valid is set.
8254
61238a79
UW
82552009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8256
8257 * config/spu/divv2df3.c: New file.
8258 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8259 (DPBIT_FUNCS): Filter out _div_df.
8260
03f8829b
BS
82612009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
8262
8263 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8264 a jump insn, count that jump in the distance to the loop start.
8265
9fdcdc74
KK
82662009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
8267
8268 PR target/39523
8269 * config/sh/sh.c (calc_live_regs): Fix condition for global
8270 registers except PIC_OFFSET_TABLE_REGNUM.
8271
46994828
KT
82722009-03-25 Kai Tietz <kai.tietz@onevision.com>
8273
8274 PR/39518
8275 * doc/invoke.texi (-mconsole): New.
8276 (-mcygwin): New.
8277 (-mno-cygwin): New.
8278 (-mdll): New.
8279 (-mnop-fun-dllimport): New.
8280 (-mthread): New.
8281 (-mwin32): New.
8282 (-mwindows): New.
8283 (sub section "i386 and x86-64 Windows Options"): New.
8284
60839f5d 82852009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
8286
8287 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8288 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8289
ae560440
RG
82902009-03-25 Richard Guenther <rguenther@suse.de>
8291
8292 PR middle-end/39497
8293 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8294 of -Wno-error.
8295
cd510f15
AM
82962009-03-25 Andrey Belevantsev <abel@ispras.ru>
8297
8298 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8299 neither of haifa/selective schedulers are working.
8300
44ab0f0e
RW
83012009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8302
8303 * doc/invoke.texi (Debugging Options): Fix description of
8304 -fno-merge-debug-strings.
8305
ad9646c7
HPN
83062009-03-24 Hans-Peter Nilsson <hp@axis.com>
8307
e6142656
HPN
8308 * config/cris/libgcc.ver: New version-script.
8309 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8310
ad9646c7
HPN
8311 * configure.ac <GAS features, nop mnemonic>: Add pattern
8312 crisv32-*-* for "nop".
ba20e309 8313 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
8314 * configure: Regenerate.
8315
09ac4473
IR
83162009-03-24 Ira Rosen <irar@il.ibm.com>
8317
8318 PR tree-optimization/39529
8319 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8320 mark_sym_for_renaming for the tag copied to the new vector
8321 pointer.
8322
d94a427e
AL
83232009-03-24 Arthur Loiret <aloiret@debian.org>
8324
ba20e309 8325 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
8326 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8327 EXTRA_SPEC_FUNCTIONS.
8328 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8329 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8330 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8331 -march and -mtune options.
8332
60839f5d 83332009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
8334
8335 * config/m68k/t-rtems: Add m5329 multilib.
8336
603f5959
DS
83372009-03-24 Dodji Seketeli <dodji@redhat.com>
8338 Jakub Jelinek <jakub@redhat.com>
8339
8340 PR debug/39524
8341 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8342 nodes.
8343
c5cdb03f
JJ
83442009-03-23 Jakub Jelinek <jakub@redhat.com>
8345
8346 PR c/39495
8347 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
8348 instead of c_parser_expression_conv, if original_code isn't one of the
8349 4 allowed comparison codes, fail.
8350
3691626c
RG
83512009-03-23 Richard Guenther <rguenther@suse.de>
8352
8353 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
8354 * tree.h (struct tree_type): Likewise.
8355 * reload.h (struct insn_chain): Likewise.
8356 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
8357 * function.h (struct function): Likewise.
8358 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
8359
88ccb72a
JJ
83602009-03-23 Jakub Jelinek <jakub@redhat.com>
8361
8362 PR tree-optimization/39516
8363 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
8364
60839f5d 83652009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 8366
2ba9daa7 8367 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
8368 should be set true if BITS_PER_WORD of target is bigger than 32
8369
f82162f8
HPN
83702009-03-22 Hans-Peter Nilsson <hp@axis.com>
8371
8372 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
8373 Translate -B-options to -rpath-link. Correct existing
8374 rpath-link and conditionalize on !nostdlib.
8375
048fd785
RW
83762009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8377
8378 * doc/extend.texi (Function Attributes, Variable Attributes):
8379 Fix typos.
8380 * doc/invoke.texi (Debugging Options, Optimize Options)
8381 (i386 and x86-64 Options, MCore Options): Likewise.
8382
6e75c1a9
JJ
83832009-03-20 Jakub Jelinek <jakub@redhat.com>
8384
8385 PR debug/37890
8386 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
8387 it for block local namespace aliases.
8388 (gen_decl_die): Pass context_die to gen_namespace_die.
8389
ea1199ee
JJ
83902009-03-19 Jakub Jelinek <jakub@redhat.com>
8391
8392 PR c/39495
8393 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
8394 minimum or maximum value.
8395
58929c10
AO
83962009-03-19 Alexandre Oliva <aoliva@redhat.com>
8397
8398 * reginfo.c (globalize_reg): Recompute derived reg sets.
8399
60839f5d 84002009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
8401
8402 PR target/39063
8403 * libgcc2.c (mprotect): Do not use signed arguments for
8404 VirtualProtect, use DWORD arguments. Also fix the 'may
8405 be used uninitialized' warning for the np variable.
8406
f57c2f04
JJ
84072009-03-19 Jakub Jelinek <jakub@redhat.com>
8408
8409 PR target/39496
8410 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
8411 functions using regparm calling conventions when not optimizing.
8412 (ix86_function_sseregparm): Similarly for sseregparm calling
8413 conventions.
8414
9e517d61
LF
84152009-03-19 Li Feng <nemokingdom@gmail.com>
8416
8417 PR middle-end/39500
8418 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
8419 dependence if the first conflict is after niter iterations.
8420
8ef20026
HPN
84212009-03-19 Hans-Peter Nilsson <hp@axis.com>
8422
8423 PR middle-end/38609
8424 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
8425 functions with dynamic stack-pointer adjustments.
8426
64e4a1a6
BE
84272009-03-19 Ben Elliston <bje@au.ibm.com>
8428
8429 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
8430 option; change to -msdata=data.
8431
9a0f3e86
RW
84322009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8433
8434 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
8435 and -fopenmp.
8436
09bc5979
EB
84372009-03-18 Eric Botcazou <ebotcazou@adacore.com>
8438
8439 PR target/35180
8440 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
8441
332459cd
SL
84422009-03-18 Sandra Loosemore <sandra@codesourcery.com>
8443
8444 * doc/invoke.texi (Code Gen Options): Expand discussion of
8445 -fno-common.
8446
8f5929e1
JJ
84472009-03-18 Jakub Jelinek <jakub@redhat.com>
8448
8449 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
8450 * matrix-reorg.c (struct matrix_info): Likewise.
8451 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
8452 * rtl.h (struct mem_attrs): Likewise.
8453 * df.h (struct df): Likewise.
8454 * tree-data-ref.h (struct data_dependence_relation): Likewise.
8455 * ira-int.h (struct ira_allocno): Likewise.
8456 * df-scan.c (struct df_collection_rec): Likewise.
8457 * ira.c (struct equivalence): Likewise.
8458 * function.c (struct temp_slot): Likewise.
8459 * cfgloop.h (struct loop): Likewise.
8460
d130d647
JJ
8461 PR debug/39485
8462 * function.c (use_register_for_decl): When not optimizing, disregard
8463 register keyword for variables with types containing methods.
8464
9968d233
SP
84652009-03-18 Sebastian Pop <sebastian.pop@amd.com>
8466
8467 PR middle-end/39447
8468 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
8469 (is_simple_operand): Call contains_component_ref_p before calling data
8470 reference analysis that would fail on COMPONENT_REFs.
8471
8472 * tree-vrp.c (search_for_addr_array): Fix formatting.
8473
69484bfd
RG
84742009-03-18 Richard Guenther <rguenther@suse.de>
8475
8476 * tree-vect-transform.c (vect_loop_versioning): Fold the
8477 generated comparisons.
8478 * tree-vectorizer.c (set_prologue_iterations): Likewise.
8479 (slpeel_tree_peel_loop_to_edge): Likewise.
8480
66811228
RW
84812009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8482
0631b69f
RW
8483 PR middle-end/37805
8484 * opts.c (print_specific_help): In addition to `undocumented',
8485 accept `separate' and `joined' flags if passed alone. Describe
8486 output by the first matched one of those.
8487 (common_handle_option): Skip over empty strings.
8488 * gcc.c (display_help): Fix help string for `--help='.
8489 * doc/invoke.texi (Option Summary, Overall Options): With
8490 `--help=', classes and qualifiers can both be repeated, but
8491 only the latter can be negated. One should not pass only
8492 negated qualifiers. Fix markup and examples.
8493
66811228
RW
8494 Revert
8495 2008-10-14 Jakub Jelinek <jakub@redhat.com>
8496 PR middle-end/37805
8497 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
8498 and -fhelp=separate.
8499
3c072c6b
JY
85002009-03-17 Jing Yu <jingyu@google.com>
8501
8502 PR middle-end/39378
80c65208
JY
8503 * function.h (struct rtl_data): Move is_thunk from here...
8504 (struct function): ...to here.
8505 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
8506 * varasm.c (assemble_start_function): Change is_thunk from crtl to
8507 cfun.
80c65208
JY
8508 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
8509 cfun.
8510 (alpha_does_function_need_gp, alpha_start_function): Likewise.
8511 (alpha_output_function_end_prologue): Likewise.
8512 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
8513 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
8514 (rs6000_output_function_epilogue): Likewise.
8515 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 8516
9ade279b
UB
85172009-03-17 Uros Bizjak <ubizjak@gmail.com>
8518
8519 PR target/39482
8520 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
8521 from different units in a single alternative.
8522 (*truncdfsf_i387): Ditto.
8523 (*truncxfsf2_mixed): Ditto.
8524 (*truncxfdf2_mixed): Ditto.
8525
16e60c17
JJ
85262009-03-17 Jakub Jelinek <jakub@redhat.com>
8527
98381eb4
JJ
8528 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
8529 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
8530
df5deb18
JJ
8531 PR debug/39474
8532 * tree-ssa-live.c (remove_unused_locals): Don't remove local
8533 unused non-artificial variables when not optimizing.
8534
a3f596ba
JJ
8535 PR debug/39471
8536 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
8537 DW_TAG_imported_module even if decl is IMPORTED_DECL with
8538 NAMESPACE_DECL in its DECL_INITIAL.
8539
6b2b8871
JJ
8540 PR middle-end/39443
8541 * optabs.c (set_user_assembler_libfunc): New function.
8542 * expr.h (set_user_assembler_libfunc): New prototype.
8543 * c-common.c: Include libfuncs.h.
8544 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
8545 for memcmp, memset, memcpy, memmove and abort.
8546 * Makefile.in (c-common.o): Depend on libfuncs.h.
8547
16e60c17
JJ
8548 PR debug/39412
8549 * dwarf2out.c (gen_inlined_enumeration_type_die,
8550 gen_inlined_structure_type_die, gen_inlined_union_type_die,
8551 gen_tagged_type_instantiation_die): Removed.
8552 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
8553 do nothing.
8554
4d936aca
JJ
85552009-03-17 Janis Johnson <janis187@us.ibm.com>
8556
8557 PR testsuite/38526
8558 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
8559 its use.
8560 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
8561 (check-parallel-%): Ditto.
8562 (check-consistency): Ditto.
8563
4e9b2e50
KT
85642009-03-17 Kai Tietz <kai.tietz@onevision.com>
8565
8566 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
8567 local variable rhs by NULL_TREE.
8568
21440b2d
L
85692009-03-17 H.J. Lu <hongjiu.lu@intel.com>
8570
8571 PR target/39477
9ade279b 8572 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 8573
d8905c6a
L
85742009-03-17 H.J. Lu <hongjiu.lu@intel.com>
8575
8576 PR target/39476
9ade279b 8577 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
8578
85792009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
8580
8581 PR target/39473
8582 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
8583 for ms->sysv ABI calls only in 64bit mode.
8584
8585 * config/i386/i386.md (untyped_call): Support 32bit.
8586
cdcabece
L
85872009-03-16 H.J. Lu <hongjiu.lu@intel.com>
8588
8589 * doc/extend.texi: Replace x86_65 with x86_64.
8590
97b4ba9f
JJ
85912009-03-16 Jakub Jelinek <jakub@redhat.com>
8592
8593 PR tree-optimization/39455
8594 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
8595 mismatches for POINTER_TYPE_P (type).
8596 (number_of_iterations_le): Likewise.
8597
60839f5d 85982009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
8599
8600 * config/picochip/picochip.c: Removed profiling support.
8601 * config/picochip/picochip.md: Removed profiling instruction.
8602 * config/picochip/picochip.h: Removed profiling builtin.
8603
f38095f3
JM
86042009-03-16 Joseph Myers <joseph@codesourcery.com>
8605
8606 * doc/install.texi (--with-host-libstdcxx): Document.
8607
2cb4817b
AS
86082009-03-14 Anatoly Sokolov <aesok@post.ru>
8609
8610 PR target/34299
8611 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
8612 generate a warning if the function name does not begin with
8613 "__vector" and the function has either the 'signal' or 'interrupt'
8614 attribute, from here to ...
8615 (avr_declare_function_name): ...here. New function.
8616 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
8617 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
8618
39b2ac74
JJ
86192009-03-14 Jakub Jelinek <jakub@redhat.com>
8620
8621 PR bootstrap/39454
8622 * cse.c (fold_rtx): Don't modify original const_arg1 when
8623 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
8624 separate variable instead.
8625 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
8626 from out of range shift counts.
8627 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
8628
ad41bd84 86292009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 8630
60839f5d 8631 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
8632 diagnostic.h with $(DIAGNOSTIC_H).
8633
ad41bd84 86342009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
8635
8636 PR target/39431
8637 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
8638 predicate.
8639 * config/i386/sync.md (sync_compare_and_swap<mode>,
8640 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
8641 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
8642 into a register.
8643 (sync_double_compare_and_swapdi_pic,
8644 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
8645 cmpxchg8b_pic_memory_operand instead of just memory_operand.
8646
122c59c7
L
86472009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8648
8649 PR target/39445
9ade279b 8650 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 8651
cec8874f
L
86522009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8653
8654 PR target/39327
8655 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8656 (avx_addsubv4df3): Likewise.
8657 (*avx_addsubv4sf3): Likewise.
8658 (sse3_addsubv4sf3): Likewise.
8659
bbb52802
L
86602009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8661
8662 PR target/38824
9ade279b 8663 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 8664
a812fb07
VM
86652009-03-12 Vladimir Makarov <vmakarov@redhat.com>
8666
8667 PR debug/39432
8668 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
8669 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
8670 registers for allocnos created from user-defined variables.
8671
4caab5ba
UW
86722009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8673
8674 PR target/39181
8675 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
8676 of non-integer mode as well.
8677
498e51ca
AN
86782009-03-11 Adam Nemet <anemet@caviumnetworks.com>
8679
8680 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
8681 for functions for which the parameter types are unknown.
8682
9bfaf89d
JJ
86832009-03-11 Jakub Jelinek <jakub@redhat.com>
8684
8685 PR target/39137
9ade279b 8686 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
8687 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
8688 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
8689 * config/i386/i386.c (ix86_local_alignment): For
8690 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
8691 long long variables on the stack to avoid dynamic realignment.
8692 Allow the first argument to be a decl rather than type.
8693 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
8694
18a3bdcb
NC
86952009-03-11 Nick Clifton <nickc@redhat.com>
8696
8697 PR target/5362
40190a76
NC
8698 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
8699 options.
8700 Add description to mno-lsim option.
8701 * config/mcore/mcore.h: Remove comment about deprecated m4align
8702 option.
8703 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
8704 * doc/invoke.texi: Add description of mno-lsim and
8705 mstack-increment options.
8706
18a3bdcb
NC
8707 * config/fr30/fr30.opt: Document the -mno-lsim option.
8708 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
8709 and -mno-lsim options.
8710
dc215785
UW
87112009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8712
8713 * fold-const.c (fold_comparison): Only call fold_inf_compare
8714 if the mode supports infinities.
8715
7716876b
JM
87162009-03-11 Jason Merrill <jason@redhat.com>
8717
8718 PR debug/39086
8719 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
8720 end already did. Notice GIMPLE_CALL modifications of the result.
8721 Don't copy debug information from an ignored decl or a decl from
8722 another function.
8723
ddef83d2
RG
87242009-03-10 Richard Guenther <rguenther@suse.de>
8725 Nathan Froyd <froydnj@codesourcery.com>
8726
8727 PR middle-end/37850
9ade279b 8728 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
8729 (__divMODE3): Likewise.
8730
9a9ba8d9
JJ
87312009-03-09 Jakub Jelinek <jakub@redhat.com>
8732
8733 PR tree-optimization/39394
8734 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
8735 DECL_SIZE_UNIT of variable length FIELD_DECLs.
8736
929b7fc3
AK
87372009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8738
8739 * recog.c (verfiy_changes): Disallow renaming of hard regs in
8740 inline asms for register asm ("") declarations.
8741
1803581d
EB
87422009-03-09 Eric Botcazou <ebotcazou@adacore.com>
8743
8744 * fold-const.c (fold_unary): Fix comment.
8745
8454d27e
JH
87462009-03-07 Jan Hubicka <jh@suse.cz>
8747
8748 PR target/39361
969a5433
JJ
8749 * tree-inline.c (setup_one_parameter): Do replacement of const
8750 argument by constant in SSA form.
8454d27e 8751
3a695389
UW
87522009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8753
8754 PR middle-end/38028
8755 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
8756 determine alignment passed to assign_stack_local.
8757 (assign_parms_unsplit_complex): Likewise.
8758 * except.c (sjlj_build_landing_pads): Likewise.
8759
9f0e7885
JJ
87602009-03-06 Jakub Jelinek <jakub@redhat.com>
8761
65401a0b
JJ
8762 PR middle-end/39360
8763 * tree-flow.h (add_referenced_var): Return bool instead of void.
8764 * tree-dfa.c (add_referenced_var): Return result of
8765 referenced_var_check_and_insert call.
8766 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
8767 of referenced_var_check_and_insert.
8768
9f0e7885 8769 PR debug/39372
9ade279b 8770 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
8771 (gen_variable_die): Emit DW_AT_location on abstract static variable's
8772 DIE, don't emit it if abstract origin already has it.
8773 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
8774 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
8775
3b664bd1
JBG
87762009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8777
ba20e309 8778 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
8779 detection.
8780 (write_tm_constrs_h): Indent generated code.
8781
d8f8ca80
RR
87822009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8783
8784 * doc/extend.texi (Function Attributes): Add documentation
8785 for isr attributes.
8786
6c3d550c
JJ
87872009-03-06 Jakub Jelinek <jakub@redhat.com>
8788
8789 PR debug/39387
8790 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
8791 take locus from its DECL_SOURCE_LOCATION instead of input_location.
8792
f9e96751
BS
87932009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
8794
8795 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
8796 the loop as bad.
8797
ee0ee7e2
JJ
87982009-03-05 Jakub Jelinek <jakub@redhat.com>
8799
8800 PR debug/39379
8801 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
8802 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
8803
6c6094f1
UB
88042009-03-05 Uros Bizjak <ubizjak@gmail.com>
8805
8806 * config/i386/i386.md (R8_REG, R9_REG): New constants.
8807 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
8808 constants instead of magic numbers.
8809 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
8810 (QI_REG_P): Ditto.
8811 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
8812 (x86_64_ms_abi_int_parameter_registers): Ditto.
8813 (x86_64_int_return_registers): Ditto.
09f8a8d3 8814 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
8815 (ix86_expand_call): Ditto for clobbered_registers array.
8816 (ix86_hard_regno_mode_ok): Ditto.
8817 (x86_extended_QIreg_mentioned_p): Ditto.
8818
b267bd41
R
88192009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
8820
6c6094f1 8821 PR tree-optimization/39349
1f3ad3f0
R
8822 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
8823
b267bd41
R
8824 * combine.c (gen_lowpart_for_combine): Use omode when generating
8825 clobber.
8826
1242bc9d
R
88272009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
8828
6c6094f1 8829 PR rtl-optimization/39235
1242bc9d
R
8830 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
8831
48f03606
ZD
88322009-03-04 Zdenek Dvorak <ook@ucw.cz>
8833
8834 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
8835
b505e785
RG
88362009-03-04 Richard Guenther <rguenther@suse.de>
8837
8838 PR tree-optimization/39362
8839 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
8840 that occur in abnormal PHIs should be varying.
8841
f017bf5e
ZD
88422009-03-04 Zdenek Dvorak <ook@ucw.cz>
8843
8844 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
8845 Extend comments.
8846 (simple_iv): Take loop as an argument instead of statement.
8847 * tree-scalar-evolution.h (simple_iv): Declaration changed.
8848 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
8849 to simple_iv.
8850 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
8851 Ditto.
8852 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
8853 * matrix-reorg.c (analyze_transpose): Ditto.
8854 * tree-data-ref.c (dr_analyze_innermost): Ditto.
8855 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
8856 * tree-predcom.c (ref_at_iteration): Ditto.
8857 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
8858
6a66f28e
RG
88592009-03-04 Richard Guenther <rguenther@suse.de>
8860
8861 PR tree-optimization/39358
8862 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
8863 escaped_id and callused_id.
8864 (solve_graph): Likewise.
8865
57e454ee
RG
88662009-03-04 Richard Guenther <rguenther@suse.de>
8867
8868 PR tree-optimization/39339
8869 * tree-sra.c (try_instantiate_multiple_fields): Make it
8870 no longer ICE on the above.
8871
a6fe9ed4
JM
88722009-03-03 Joseph Myers <joseph@codesourcery.com>
8873
8874 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
8875 that fits within Pmode.
8876
dc672951
SE
88772009-03-03 Steve Ellcey <sje@cup.hp.com>
8878
8879 PR middle-end/10109
8880 * tm.texi (LIBCALL_VALUE): Update description.
8881
8b9d598f
SE
88822009-03-03 Steve Ellcey <sje@cup.hp.com>
8883
8884 PR middle-end/34443
8885 * doc/extend.texi (section): Update description.
8886
13e4e36e
L
88872009-03-03 H.J. Lu <hongjiu.lu@intel.com>
8888
8889 PR middle-end/39345
8890 * tree-inline.c (remapped_type): New.
8891 (can_be_nonlocal): Call remapped_type instead of remap_type.
8892
067dd3c9
JJ
88932009-03-03 Jakub Jelinek <jakub@redhat.com>
8894
8895 PR fortran/39354
8896 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
8897 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
8898
9bd9f738
RG
88992009-03-03 Richard Guenther <rguenther@suse.de>
8900
8901 PR middle-end/39272
8902 * tree.c (tree_nonartificial_location): New function.
8903 * tree.h (tree_nonartificial_location): Declare.
8904 * builtins.c (expand_builtin_memory_chk): Provide location
8905 of the call location for artificial function pieces.
8906 (maybe_emit_chk_warning): Likewise.
8907 (maybe_emit_sprintf_chk_warning): Likewise.
8908 (maybe_emit_free_warning): Likewise.
8909 * expr.c (expand_expr_real_1): Likewise.
8910
f07049c8
JJ
89112009-03-03 Jakub Jelinek <jakub@redhat.com>
8912
8913 PR tree-optimization/39343
8914 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
8915 COMPONENT_REF t has ARRAY_TYPE.
8916
7d4fba4a
SP
89172009-03-02 Sebastian Pop <sebastian.pop@amd.com>
8918
8919 PR middle-end/39335
8920 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
8921 when the type precision of the induction variable should be
8922 larger than the type precision of nit.
8923 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
8924 * graphite.c (graphite_loop_normal_form): Same.
8925 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
8926
78168632
UB
89272009-03-02 Uros Bizjak <ubizjak@gmail.com>
8928
8929 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
8930 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 8931 numbers to describe clobbered registers.
78168632 8932 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
8933 * config/i386/mmx.md (mmx_emms): Ditto.
8934 (mmx_femms): Ditto.
78168632 8935
63553059
RS
89362009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
8937
8938 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
8939 of ABI_64.
8940
500a1f85
UW
89412009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8942
8943 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
8944 (spu_section_type_flags): New function.
8945
962aae34
UB
89462009-03-02 Uros Bizjak <ubizjak@gmail.com>
8947
8948 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
8949 reg_class_contents of FLOAT_REGS into a temporary.
8950
6dfb529c 89512009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 8952 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
8953
8954 PR tree-optimization/39318
8955 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
8956 information to the vectorized statement.
8957
6b5629db
UB
89582009-03-01 Uros Bizjak <ubizjak@gmail.com>
8959
434426d2
UB
8960 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
8961 variable. Use defined names instead of magic constants for REX SSE
8962 registers.
6b5629db 8963
14e5b285
RG
89642009-03-01 Richard Guenther <rguenther@suse.de>
8965
8966 PR tree-optimization/39331
8967 * omp-low.c (lower_send_shared_vars): Do not receive new
8968 values for the reference of DECL_BY_REFERENCE parms or results.
8969
526d73ab
JH
89702009-03-01 Jan Hubicka <jh@suse.cz>
8971
8972 PR debug/39267
8973 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
8974 BLOCK_NONLOCALIZED_VAR): New macros.
8975 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
8976 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
8977 gen_decl_die): Add origin argument. Allow generation of die with
8978 origin at hand only.
526d73ab 8979 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
8980 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
8981 of gen_*.
526d73ab
JH
8982 (gen_block_die): Fix checking for unused blocks.
8983 (process_scope_var): Break out from .... ; work with origins only.
8984 (decls_for_scope) ... here; process nonlocalized list.
8985 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
8986 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
8987 vars.
526d73ab
JH
8988 (dump_scope_block): Dump them.
8989 * tree-inline.c (remap_decls): Handle nonlocalized vars.
8990 (remap_block): Likewise.
8991 (can_be_nonlocal): New predicate.
8992 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
8993
7a9d3fe8
RW
89942009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8995
8996 * configure: Regenerate.
8997
b3cdf3cb
RW
89982009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8999
a16d1645 9000 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 9001 Reuse help texts for duplicate options which do not have any.
a16d1645 9002
1156c176
RW
9003 * gcc.c (display_help): Document --version.
9004
033505fc
RW
9005 * gcc.c (main): If print_help_list and verbose_flag, ensure
9006 driver output comes before subprocess output.
9007
4d077054
RW
9008 * optc-gen.awk: Assign all remaining fields to help string,
9009 space-separated, for multi-line help in *.opt.
9010
a072f1cf
RW
9011 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9012 -Wno-pedantic-ms-format is for MinGW targets only.
9013
b3cdf3cb
RW
9014 * doc/options.texi (Option file format): Fix bad indentation,
9015 restoring dropped sentence.
9016
a3aadcc5
JH
90172009-02-28 Jan Hubicka <jh@suse.cz>
9018
9019 * tree-inline.c (tree_function_versioning): Output debug info.
9020
1cf5abb3
JH
90212009-02-28 Jan Hubicka <jh@suse.cz>
9022
9023 PR debug/39267
9024 * tree-inline.c (setup_one_parameter): Do not copy propagate
9025 arguments when not optimizing.
9026
c4d3f42f
L
90272009-02-28 H.J. Lu <hongjiu.lu@intel.com>
9028
9029 PR target/39327
9030 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9031 (avx_addsubv4df3): Likewise.
9032 (*avx_addsubv4sf3): Likewise.
9033 (sse3_addsubv4sf3): Likewise.
9034 (*avx_addsubv2df3): Likewise.
9035 (sse3_addsubv2df3): Likewise.
9036 (avx_unpckhps256): Correct item selectors.
9037 (avx_unpcklps256): Likewise.
9038 (avx_unpckhpd256): Likewise.
9039 (avx_unpcklpd256): Likewise.
9040
eb50f5f4
JH
90412009-02-28 Jan Hubicka <jh@suse.cz>
9042
9043 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9044 static vars.
9045 (copy_arguments_for_versioning): If var is declared don't declare it.
9046 (tree_function_versioning): First setup substitutions and then copy
9047 args.
9048
26140130
JH
90492009-02-27 Jan Hubicka <jh@suse.cz>
9050
9051 PR debug/39267
9052 * cgraph.h (varpool_output_debug_info): Remove.
9053 * cgraphunit.c (varpool_output_debug_info): Remove.
9054 * dwarf2out.c (deferred_locations_struct): New struct
9055 (deferred_locations): New type.
9056 (deferred_locations_list): New static var.
9057 (deffer_location): New function.
9058 (gen_variable_die): Use it.
9059 (decls_for_scope): Output info on local static vars.
9060 (dwarf2out_finish): Process deferred locations.
9061 * varpool.c (varpool_output_debug_info): Remove.
9062
cff7525f
JH
90632009-02-27 Jan Hubicka <jh@suse.cz>
9064
9065 PR debug/39267
9066 * tree.h (TREE_PROTECTED): Fix comment.
9067 (BLOCK_HANDLER_BLOCK): Remove.
9068 (struct tree_block): Remove handler_block add body_block.
9069 (inlined_function_outer_scope_p): New.
9070 (is_body_block): Remove.
9071 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9072 * dwarf2out.c (is_inlined_entry_point): Remove.
9073 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
9074 (gen_block_die): Use is_inlined_entry_point check. Remove body block
9075 code.
cff7525f
JH
9076 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9077 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
9078 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9079 block with multiple subblocks.
cff7525f
JH
9080 (dump_scope_block): Prettier output; dump more flags and info.
9081 (dump_scope_blocks): New.
9082 (remove_unused_locals): Use dump_scope_blocks.
9083 * tree-flow.h (dump_scope_blocks): Declare.
9084 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9085 * stmt.c (is_body_block): Remove.
9086 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9087 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9088
c20993b9
SP
90892009-02-27 Sebastian Pop <sebastian.pop@amd.com>
9090
9091 PR middle-end/39308
2ba9daa7 9092 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
9093 number_of_iterations_exit from a gcc_assert.
9094
e3cba5e5
AK
90952009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9096
60839f5d 9097 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
9098 jumps if COND is NULL.
9099 (find_cond_jump): New function.
9100 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 9101 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 9102
9dadeeb8
UB
91032009-02-26 Uros Bizjak <ubizjak@gmail.com>
9104
9105 * config/alpha/alpha.h (alpha_expand_mov): Return false if
9106 force_const_mem returns NULL_RTX.
9107
625d3251
EB
91082009-02-26 Jan Hubicka <jh@suse.cz>
9109
9110 PR debug/39267
9111 * cgraph.h (varpool_output_debug_info): Remove.
9112 * cgraphunit.c (varpool_output_debug_info): Remove.
9113 * dwarf2out.c (deferred_locations_struct): New struct
9114 (deferred_locations): New type.
9115 (deferred_locations_list): New static var.
9116 (deffer_location): New function.
9117 (gen_variable_die): Use it.
9118 (decls_for_scope): Output info on local static vars.
9119 (dwarf2out_finish): Process deferred locations.
9120 * varpool.c (varpool_output_debug_info): Remove.
9121
38432148 91222009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
9123
9124 PR rtl-optimization/39241
9125 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9126 to subreg_offset_representable_p.
9127
62d049cf
PB
91282009-02-25 Paolo Bonzini <bonzini@gnu.org>
9129
9130 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9131 execute function prototype. Get f and nregs from max_reg_num
9132 and get_insns. Remove the first backward pass as it's dead,
9133 guard the forward pass by flag_expensive_optimizations.
9134 (rest_of_handle_regmove): Delete.
9135 (pass_regmove): Replace it with regmove_optimize.
9136
f618d33e
MJ
91372009-02-25 Martin Jambor <mjambor@suse.cz>
9138
9139 PR tree-optimization/39259
9140 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 9141 calls_alloca function flags.
f618d33e
MJ
9142 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9143 calls are detected.
9144
c8a05f7c
PB
91452009-02-25 Paolo Bonzini <bonzini@gnu.org>
9146
9147 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9148 flags_set_1_rtx, flags_set_1_set): Delete.
9149 (regmove_optimize): Do not call mark_flags_life_zones.
9150
6d2538f5
JB
91512009-02-24 Julian Brown <julian@codesourcery.com>
9152
9153 PR target/35965
9154 * config/arm/arm.c (require_pic_register): Only set
9155 cfun->machine->pic_reg once per function.
9156
a2fa6772
SL
91572009-02-24 Sandra Loosemore <sandra@codesourcery.com>
9158
9159 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 9160 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 9161
5472de36
SE
91622009-02-24 Steve Ellcey <sje@cup.hp.com>
9163
9164 PR target/33785
9165 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9166
844216f3
RG
91672009-02-24 Richard Guenther <rguenther@suse.de>
9168
9169 PR debug/39285
9170 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9171
71adbef3 91722009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 9173 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
9174
9175 PR tree-optimization/39233
9176 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9177 from converting them to a generic type.
9178
f1a558e0
SP
91792009-02-23 Sebastian Pop <sebastian.pop@amd.com>
9180
9181 PR tree-optimization/39260
9182 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9183 contains a condition with a real type.
9184 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9185
d8028f2c
JM
91862009-02-23 Jason Merrill <jason@redhat.com>
9187
9188 PR c++/38880
9189 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9190 narrowing_initializer_constant_valid_p.
2ba9daa7 9191 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
9192 null_pointer_node for adding a pointer to itself.
9193
9283b513
JH
91942009-02-23 Jan Hubicka <jh@suse.cz>
9195
9196 PR c/12245
9dadeeb8
UB
9197 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9198 resizing.
9283b513 9199
61e04322
JH
92002009-02-23 Jan Hubicka <jh@suse.cz>
9201
9dadeeb8
UB
9202 PR tree-optimization/37709
9203 * tree.c (block_ultimate_origin): Move here from dwarf2out.
9204 * tree.h (block_ultimate_origin): Declare.
9205 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
9206 * tree-ssa-live.c (remove_unused_scope_block_p):
9207 Eliminate blocks containig no instructions nor live variables nor
9208 nested blocks.
9209 (dump_scope_block): New function.
9210 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 9211 enable dumping at TDF_DETAILS.
61e04322 9212
38432148 92132009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
9214
9215 * config/i386/i386.c (classify_argument): Don't allow COImode
9216 and OImode.
9217 (function_arg_advance_32): Don't allow OImode.
9218 (function_arg_32): Likewise.
9219 (function_value_32): Likewise.
9220 (return_in_memory_32): Likewise.
9221 (function_arg_64): Remove OImode comment.
9222
38432148 92232009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
9224
9225 PR target/39261
9226 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9227 ix86_expand_vector_set for V4DImode in 64bit mode only.
9228 (ix86_expand_vector_init_one_var): Likewise.
9229
dcd739a6
SP
92302009-02-21 Sebastian Pop <sebastian.pop@amd.com>
9231
9232 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9233
6c3b938d
RS
92342009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9235
8e361f23 9236 PR bootstrap/39257
6c3b938d
RS
9237 * loop-iv.c: Revert last change.
9238 * emit-rtl.c: Likewise.
9239
38432148 92402009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
9241
9242 PR target/39256
9243 * config/i386/i386.c (type_natural_mode): Remove an extra
9244 space in the warning message.
9245 (function_value_32): Handle 32-byte vector modes.
9246 (return_in_memory_32): Likewise.
9247
2ec62529
RS
92482009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9249
9250 * loop-iv.c (truncate_value): New function.
9251 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9252 of lowpart_subreg.
9253 (lowpart_subreg): Move to...
9254 * emit-rtl.c: ...here.
9255
ecb8c3cc 92562009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 9257
ecb8c3cc
DS
9258 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9259 accidental and undocumented change at revision 140860.
9260
ae46a823
JM
92612009-02-21 Joseph Myers <joseph@codesourcery.com>
9262
9263 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9264 take gimple_seq * arguments.
9265 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9266 types_compatible_p langhook.
9267
07d8efe3 92682009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 9269 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
9270
9271 * config/arm/arm.c (arm_builtin_va_list): New function.
9272 (arm_expand_builtin_va_start): Likewise.
9273 (arm_gimplify_va_arg_expr): Likewise.
9274 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9275 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9276 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9277 (va_list_type): New variable.
9278 (arm_mangle_type): Mangle va_list_type appropriately.
9279
b1fb9f56
JJ
92802009-02-20 Jakub Jelinek <jakub@redhat.com>
9281
9282 PR middle-end/39157
9283 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9284 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9285 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9286 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9287 parameter to 1000 for -O1 by default.
9288 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9289 parameter.
9290 * loop-invariant.c: Include params.h.
9291 (move_loop_invariants): Don't call move_single_loop_invariants on
9292 very large loops.
9293
5bc0807c
JM
92942009-02-20 Jaka Mocnik <jaka@xlab.si>
9295
9296 * calls.c (emit_library_call_value_1): Use slot_offset instead of
9297 offset when calculating bounds for indexing stack_usage_map. Fixes
9298 a buffer overflow with certain target setups.
9299
c69cd1f5
JJ
93002009-02-20 Jakub Jelinek <jakub@redhat.com>
9301
9302 PR target/39240
9303 * calls.c (expand_call): Clear try_tail_call if caller and callee
9304 disagree in promotion of function return value.
9305
09812622
JJ
93062009-02-19 Jakub Jelinek <jakub@redhat.com>
9307
9308 PR target/39175
9309 * c-common.c (c_determine_visibility): If visibility changed and
9310 DECL_RTL has been already set, call make_decl_rtl to update symbol
9311 flags.
9312
68017cb4
L
93132009-02-19 H.J. Lu <hongjiu.lu@intel.com>
9314
9315 PR c++/39188
9316 * varasm.c (assemble_variable): Don't check DECL_NAME when
9317 globalizing a variable.
9318
ab4194da
JM
93192009-02-19 Joseph Myers <joseph@codesourcery.com>
9320
9321 PR c/38483
9322 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9323 expression before any __builtin_trap call.
9324 * c-typeck.c (build_function_call): Convert and check function
9325 arguments before generating a call to a trap. Evaluate the
9326 function arguments before the trap.
9327
6b67572e
UB
93282009-02-19 Uros Bizjak <ubizjak@gmail.com>
9329
9330 PR target/39228
9331 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9332 (UNSPEC_FXAM_MEM): New unspec.
9333 (fxam<mode>2_i387_with_temp): New insn and split pattern.
9334 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
9335 memory using fxam<mode>2_i387_with_temp to remove excess precision.
9336
9e39dba6
RG
93372009-02-19 Richard Guenther <rguenther@suse.de>
9338
9339 PR tree-optimization/39207
9340 PR tree-optimization/39074
9341 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9342 storedanything_tree): New.
9343 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 9344 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
9345 (build_succ_graph): Add edges from STOREDANYTHING to all
9346 non-direct nodes.
9347 (init_base_vars): Initialize STOREDANYTHING.
9348 (compute_points_to_sets): Free substitution info after
9349 building the succ graph.
9350 (ipa_pta_execute): Likewise.
9351
9352 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
9353 field.
9354 (do_ds_constraint): Do not add to special var or non-pointer
9355 field solutions.
9356 (type_could_have_pointers): Split out from ...
9357 (could_have_pointers): ... here. For arrays use the element type.
9358 (create_variable_info_for): Initialize may_have_pointers.
9359 (new_var_info): Likewise.
9360 (handle_lhs_call): Make the HEAP variable unknown-sized.
9361 (intra_create_variable_infos): Use a type with pointers for
9362 PARM_NOALIAS, make it unknown-sized.
9363
fd7b2603
L
93642009-02-18 H.J. Lu <hongjiu.lu@intel.com>
9365
9366 PR target/39224
6b67572e 9367 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 9368
98b80692
JM
93692009-02-18 Jason Merrill <jason@redhat.com>
9370
9371 PR target/39179
9372 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
9373 value if DECL_EXTERNAL.
9374 * tree-sra.c (sra_walk_gimple_assign): Likewise.
9375 * target.h (gcc_target::binds_local_p): Clarify "module".
9376 * tree.h (TREE_PUBLIC): Clarify "module".
9377
0705d3f4
L
93782009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
9379
9380 PR target/38891
9381 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
9382 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
9383
bce08d50
L
93842009-02-17 H.J. Lu <hongjiu.lu@intel.com>
9385
9386 PR target/39082
9387 * c.opt (Wabi): Support C and ObjC.
9388 (Wpsabi): New.
9389
9390 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
9391
9392 * config/i386/i386.c (classify_argument): Warn once about the ABI
9393 change when passing union with long double.
9394
9395 * doc/invoke.texi: Update -Wabi for warning psABI changes.
9396
5600f233
JM
93972009-02-18 Joseph Myers <joseph@codesourcery.com>
9398
9399 PR c/35447
9400 * c-parser.c (c_parser_compound_statement): Always enter and leave
9401 a scope.
9402
8cd01fe6
JDA
94032009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9404
9405 PR target/34587
9406 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
9407
418df9d7
JJ
94082009-02-18 Jakub Jelinek <jakub@redhat.com>
9409
9410 PR tree-optimization/36922
9411 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
9412 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
9413 Likewise.
9414
082d2ebb
RS
94152009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9416
9417 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
9418 to 0 for EABI64.
9419
17de576c
RS
94202009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9421
9422 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
9423
6d8d5435
RS
94242009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9425
9426 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
9427 tree sharing.
9428
e69ff910
RB
94292009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
9430 Richard Sandiford <rdsandiford@googlemail.com>
9431
9432 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
9433 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
9434 (loongson_biadd): ...this.
9435
6b24ee26
RG
94362009-02-17 Richard Guenther <rguenther@suse.de>
9437
9438 PR tree-optimization/39202
9439 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
9440 a var make sure to follow existing collapses.
9441
91ab2c86
RG
94422009-02-17 Richard Guenther <rguenther@suse.de>
9443
9444 PR middle-end/39214
9445 * langhooks.c (lhd_print_error_function): Check for NULL block.
9446
73a63870
RG
94472009-02-17 Richard Guenther <rguenther@suse.de>
9448
9449 PR tree-optimization/39204
9450 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
9451 of the PHI arg.
9452
0e08f686
UB
94532009-02-17 Uros Bizjak <ubizjak@gmail.com>
9454
9455 * config/soft-fp/double.h: Update from glibc CVS.
9456
a60b7ddb
RG
94572009-02-17 Richard Guenther <rguenther@suse.de>
9458
9459 PR tree-optimization/39207
9460 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
9461 strict-aliasing warnings for pointers pointing to NULL.
9462
a47e20fd
JM
94632009-02-16 Joseph Myers <joseph@codesourcery.com>
9464
9465 PR c/35446
9466 * c-parser.c (c_parser_braced_init): Call pop_init_level when
9467 skipping until next close brace.
9468
50aab7dc
L
94692009-02-16 H.J. Lu <hongjiu.lu@intel.com>
9470
9471 PR target/37049
9472 * config/i386/i386.c (ix86_expand_push): Set memory alignment
9473 to function argument boundary.
9474
68e53db0
HS
94752009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
9476
9477 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
9478 in the lea_add. Reload eventually constraints it properly.
0d50d55a 9479 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
9480 "b", since it is not needed anymore.
9481
09e361bb
JJ
94822009-02-16 Jakub Jelinek <jakub@redhat.com>
9483
9484 * gthr-dce.h: Uglify function parameter and local variable names.
9485 * gthr-gnat.h: Likewise.
9486 * gthr-mipssde.h: Likewise.
9487 * gthr-nks.h: Likewise.
9488 * gthr-posix95.h: Likewise.
9489 * gthr-posix.h: Likewise.
9490 * gthr-rtems.h: Likewise.
9491 * gthr-single.h: Likewise.
9492 * gthr-solaris.h: Likewise.
9493 * gthr-tpf.h: Likewise.
9494 * gthr-vxworks.h: Likewise.
9495 * gthr-win32.h: Likewise.
9496
47f5a48f
L
94972009-02-15 H.J. Lu <hongjiu.lu@intel.com>
9498
9499 PR target/39196
9500 * config/i386/i386.md: Restrict the new peephole2 to move
9501 between MMX/SSE registers.
9502
68c9ab45
RG
95032009-02-15 Richard Guenther <rguenther@suse.de>
9504
9505 Revert
9506 2009-02-13 Richard Guenther <rguenther@suse.de>
9507
9508 * configure.ac: Enable LFS.
9509 * configure: Re-generate.
9510 * config.in: Likewise.
9511
d7815554
UW
95122009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9513
9514 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
9515 spu_srqwbyte, spu_srqwbytebc): Define.
9516 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
9517 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
9518 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
9519 "shrqby_<mode>"): New insn-and-split patterns.
9520 * config/spu/spu.c (expand_builtin_args): Determine and return
9521 number of operands using spu_builtin_description data.
9522 (spu_expand_builtin_1): Use it.
9523
c208436c
SE
95242009-02-13 Steve Ellcey <sje@cup.hp.com>
9525
9526 PR target/38056
9527 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
9528 TARGET_CONST_GP.
9529
c2e7ba7e
L
95302009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9531
9532 PR target/39149
9533 * config/i386/i386.c (override_options): Correct warning
6c6094f1 9534 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 9535
72f4e3a7
L
95362009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9537
9538 PR target/39152
9539 * config/i386/i386.md: Restrict the new peephole2 to move
9540 between the general purpose registers.
9541
53f648e2
L
95422009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9543
9544 PR target/39162
9545 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 9546 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
9547 (function_arg_advance): Updated.
9548 (function_arg): Likewise.
9549 (ix86_function_value): Likewise.
9550 (ix86_return_in_memory): Likewise.
9551 (ix86_sol10_return_in_memory): Likewise.
9552 (ix86_gimplify_va_arg): Likewise.
9553 (function_arg_32): Don't warn ABX ABI change here.
9554 (function_arg_64): Likewise.
9555
38432148 95562009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
9557
9558 * loop-iv.c (implies_p): In the final case, test that operands 0
9559 of the two comparisons match.
9560
dd2139e7
BS
9561 * config/bfin/bfin.c (find_prev_insn_start): New function.
9562 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
9563 (find_next_insn_start): Move.
9564
601b3e1a
RG
95652009-02-13 Richard Guenther <rguenther@suse.de>
9566
9567 * configure.ac: Enable LFS.
9568 * configure: Re-generate.
9569 * config.in: Likewise.
9570
f007042e
JM
95712009-02-13 Joseph Myers <joseph@codesourcery.com>
9572
9573 PR c/35444
9574 * c-parser.c (c_parser_parms_list_declarator): Discard pending
9575 sizes on syntax error after some arguments have been parsed.
9576
3f238e8b
JJ
95772009-02-12 Jakub Jelinek <jakub@redhat.com>
9578
9579 * doc/invoke.texi (-fira): Remove.
9580
328e13b7
L
95812009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9582
9583 * caller-save.c: Replace regclass.c with reginfo.c in comments.
9584 * recog.c: Likewise.
9585 * rtl.h: Likewise.
9586
c252db20
L
95872009-02-12 Uros Bizjak <ubizjak@gmail.com>
9588
9589 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
9590 (umul_ppmm): Likewise.
9591 (count_leading_zeros): Likewise.
9592 (count_trailing_zeros): Likewise.
9593 (UMUL_TIME): Likewise.
9594
95952009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9596
ba181049
UB
9597 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
9598 soft-fp/t-softfp to tmake_file.
c252db20
L
9599
9600 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
9601 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
9602 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
9603 IA64_BUILTIN_INFQ]: New.
c252db20
L
9604 (ia64_init_builtins): Initialize __builtin_infq,
9605 __builtin_fabsq and __builtin_copysignq if not HPUX.
9606 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
9607 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
9608
9609 * config/ia64/lib1funcs.asm (__divtf3): Define only if
9610 SHARED is defined.
9611 (__fixtfti): Likewise.
9612 (__fixunstfti): Likewise.
9613 (__floattitf): Likewise.
9614
9615 * config/ia64/libgcc-glibc.ver: New.
9616 * config/ia64/t-fprules-softfp: Likewise.
9617 * config/ia64/sfp-machine.h: Likewise.
9618
9619 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
9620 (LIBGCC2_TF_CEXT): Likewise.
9621 (TF_SIZE): Likewise.
9622 (TARGET_INIT_LIBFUNCS): Likewise.
9623
ba181049 9624 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 9625 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 9626
f13eae6a
L
96272009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9628
9629 * config/i386/i386.c (construct_container): Rewrite processing
9630 BLKmode with X86_64_SSE_CLASS.
9631
12019aec
L
96322009-02-12 Paolo Bonzini <bonzini@gnu.org>
9633
9634 PR target/39152
9635 * config/i386/i386.md: Replace simplify_replace_rtx with
9636 replace_rtx in the new peephole2.
9637
28c11eb3
NS
96382009-02-12 Nathan Sidwell <nathan@codesourcery.com>
9639
9640 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
9641 loop unrolling do not happen at -O2.
9642
c7b94907
MM
96432009-02-12 Michael Matz <matz@suse.de>
9644
9645 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
9646
61e98967
JJ
96472009-02-12 Jakub Jelinek <jakub@redhat.com>
9648
9649 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
9650 for -g3.
9651
a2a237b5
BE
96522009-02-12 Ben Elliston <bje@au.ibm.com>
9653
9654 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
9655 patterns when updating the back chain. Missed in the 2009-02-10
9656 change.
9657
853eda8d
JJ
96582009-02-11 Janis Johnson <janis187@us.ibm.com>
9659
9660 * doc/extend.texi (Decimal Floating Types): Update identifier of
9661 draft TR and list of missing support.
9662
3ad6b266
JJ
96632009-02-11 Jakub Jelinek <jakub@redhat.com>
9664
9665 PR middle-end/39154
9666 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
9667 bit to variable length decl's flags, add it also to its
9668 pointer replacement variable.
9669
b058b753
UB
96702009-02-11 Uros Bizjak <ubizjak@gmail.com>
9671 Jakub Jelinek <jakub@redhat.com>
9672
9673 PR target/39118
9674 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
9675 (memory_blockage): New expander.
9676 (*memory_blockage): New insn pattern.
9677 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
9678 instead of general blockage at the end of function prologue when
9679 frame pointer is used to access red zone area. Do not emit blockage
9680 when profiling, it is emitted in generic code.
9681 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
9682 function epilogue when frame pointer is used to access red zone area.
9683
bab64f23
PB
96842009-02-11 Paolo Bonzini <bonzini@gnu.org>
9685
0ce6dcfa 9686 PR target/38824
bab64f23
PB
9687 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
9688 by arithmetic with memory operands.
9689 * config/i386/predicates.md (commutative_operator): New.
9690
8fd94bda
JJ
96912009-02-10 Janis Johnson <janis187@us.ibm.com>
9692
9693 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
9694 bulleted lists.
9695
794511d2
EB
96962009-02-10 Eric Botcazou <ebotcazou@adacore.com>
9697
9698 * alias.h (record_alias_subset): Declare.
9699 * alias.c (record_alias_subset): Make global.
9700
6da7fc87
NC
97012009-02-10 Nick Clifton <nickc@redhat.com>
9702
9703 * tree-parloops.c: Change license to GPLv3.
9704 * ipa-struct-reorg.c: Change license to GPLv3.
9705 * ipa-struct-reorg.h: Change license to GPLv3.
9706
a03813c8
SE
97072009-02-10 Steve Ellcey <sje@cup.hp.com>
9708
9709 PR c/39084
9710 * c-decl.c (start_struct): Return NULL on error.
9711
fc3103e7
JJ
97122009-02-10 Jakub Jelinek <jakub@redhat.com>
9713
9b43d37b
JJ
9714 PR middle-end/39124
9715 * cfgloopmanip.c (remove_path): Call remove_bbs after
9716 cancel_loop_tree, not before it.
9717
fc3103e7 9718 PR target/39139
b058b753 9719 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
9720 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
9721 VAR_DECLs were seen.
9722 * tree-ssa-live.c (remove_unused_locals): Recompute
9723 cfun->has_local_explicit_reg_vars.
9724 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
9725 copies or clearings if cfun->has_local_explicit_reg_vars.
9726
dbf9ee15
UB
97272009-02-10 Uros Bizjak <ubizjak@gmail.com>
9728
9729 PR target/39118
9730 * config/i386/i386.c (expand_prologue): Emit blockage at the end
9731 of function prologue when frame pointer is used to access
9732 red zone area.
9733
bdec4dc7
RG
97342009-02-10 Richard Guenther <rguenther@suse.de>
9735
9736 PR middle-end/39127
9737 * gimplify.c (gimple_regimplify_operands): Always look if
9738 we need to create a temporary.
9739
7cae94fc
RG
97402009-02-10 Richard Guenther <rguenther@suse.de>
9741
9742 PR tree-optimization/39132
9743 * tree-loop-distribution.c (todo): New global var.
9744 (generate_memset_zero): Trigger TODO_rebuild_alias.
9745 (tree_loop_distribution): Return todo.
9746
a8800687
L
97472009-02-10 H.J. Lu <hongjiu.lu@intel.com>
9748
9749 PR target/39119
9750 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
9751 (x86_64_reg_class_name): Removed.
9752 (classify_argument): Return 0 if bytes > 32. Return 0 if the
9753 first one isn't X86_64_SSE_CLASS or any other ones aren't
9754 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
9755 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
9756 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
9757 and 3 X86_64_SSEUP_CLASS.
9758 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
9759 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
9760
d4bacef0
BE
97612009-02-10 Ben Elliston <bje@au.ibm.com>
9762
9763 * config/rs6000/rs6000.md (allocate_stack): Always use an update
9764 form instruction to update the stack back chain word, even if the
9765 user has disabled the generation of update instructions.
9766 (movdi_<mode>_update_stack): New.
9767 (movsi_update_stack): Likewise.
9768 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
9769 always use an update form instruction to update the stack back
9770 chain word.
9771
01d7d2f3
SP
97722009-02-09 Sebastian Pop <sebastian.pop@amd.com>
9773
9774 PR middle-end/38953
b058b753
UB
9775 * graphite.c (if_region_set_false_region): After moving a region in
9776 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
9777 (gloog): Remove wrong fix for PR38953.
9778
e41e2ab4
UW
97792009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9780
9781 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
9782 generation due to implicit sign extension.
9783
4bb07c5d
EB
97842009-02-09 Eric Botcazou <ebotcazou@adacore.com>
9785
9786 PR middle-end/38981
9787 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
9788 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
9789
f060a261
RG
97902009-02-09 Richard Guenther <rguenther@suse.de>
9791
9792 PR middle-end/35202
9793 * convert.c (convert_to_real): Disable (float)fn((double)x)
9794 to fnf(x) conversion if errno differences may occur and
9795 -fmath-errno is set.
9796
5a7e237c
AS
97972009-02-07 Anatoly Sokolov <aesok@post.ru>
9798
9799 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
9800 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9801 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9802
feab5a67
JM
98032009-02-06 Joseph Myers <joseph@codesourcery.com>
9804
9805 PR c/35434
9806 * c-common.c (handle_alias_attribute): Disallow attribute for
9807 anything not a FUNCTION_DECL or VAR_DECL.
9808
90ef2296
JJ
98092009-02-06 Janis Johnson <janis187@us.ibm.com>
9810
9811 PR c/39035
9812 * real.c (do_compare): Special-case compare of zero against
9813 decimal float value.
9814
1de2c900
JM
98152009-02-06 Joseph Myers <joseph@codesourcery.com>
9816
9817 PR c/36432
9818 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
9819 as indicating flexible array members unless the field itself is
9820 being declarared as the incomplete array.
9821
e901811a
JH
98222009-02-06 Jan Hubicka <jh@suse.cz>
9823
9824 PR tree-optimization/38844
9825 * ipa-inline.c (try_inline): Stop inlining recursion when edge
9826 is already inlined.
9827
3cfa762b
RG
98282009-02-06 Richard Guenther <rguenther@suse.de>
9829
9830 PR middle-end/38977
9831 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
9832 fork because we may expand it as __gcov_fork.
9833
8506528c
NC
98342009-02-06 Nick Clifton <nickc@redhat.com>
9835
dbf9ee15 9836 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 9837
85169114
PB
98382009-02-06 Paolo Bonzini <bonzini@gnu.org>
9839
9840 PR tree-optimization/35659
9841 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
9842 vn_phi_eq): Shortcut if hashcode does not match.
9843 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
9844 NULL operands.
9845 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
9846 and avoid iterative_hash_expr.
9847 (FOR_EACH_VALUE_ID_IN_SET): New.
9848 (value_id_compare): Remove.
9849 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
9850 sort expressions by value id.
9851
6d39673d
KK
98522009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
9853
9854 PR target/38991
9855 * config/sh/predicates.md (general_movsrc_operand): Don't check
9856 the subreg of system registers here.
9857
e6e1c050
JJ
98582009-02-05 Jakub Jelinek <jakub@redhat.com>
9859
9860 PR c++/39106
9861 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
9862 on the copied decl.
9863
65a74b5d
PB
98642009-02-05 Paolo Bonzini <bonzini@gnu.org>
9865
9866 PR rtl-optimization/39110
9867 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
9868 addresses, not aligned ones.
9869
08e14b2a
DB
98702009-02-05 Daniel Berlin <dberlin@dberlin.org>
9871 Richard Guenther <rguenther@suse.de>
9872
9873 PR tree-optimization/39100
9874 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
9875 comment says and add edges.
9876
5006381c
JM
98772009-02-05 Joseph Myers <joseph@codesourcery.com>
9878
9879 PR c/35435
9880 * c-common.c (handle_tls_model_attribute): Ignore attribute for
9881 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
9882
2ba9daa7 98832009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
9884
9885 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
9886 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
9887 register_bb_in_sese, new_sese, free_sese): Moved.
9888 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
9889 outermost_loop_in_scop, build_scop_iteration_domain,
9890 expand_scalar_variables_ssa_name, get_vdef_before_scop,
9891 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
9892 Use loop_in_sese_p instead of loop_in_scop_p.
9893 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
9894 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
9895 (scopdet_basic_block_info): Fix bug in scop detection.
9896 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
9897 eq_loop_to_cloog_loop): Remove.
9898 (nb_loops_around_loop_in_scop, nb_loop
9899 ref_nb_loops): Moved here...
9900 * graphite.h (ref_nb_loops): ... from here.
9901 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
9902 (loop_domain_dim, loop_iteration_vector_dim): Remove.
9903 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
9904 * testsuite/gcc.dg/graphite/scop-19.c: New
9905
48e8382e
PB
99062009-02-04 Paolo Bonzini <bonzini@gnu.org>
9907 Hans-Peter Nilsson <hp@axis.com>
9908
9909 PR rtl-optimization/37889
9910 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
9911 Move offset handling from PLUS to before the switch. Use new
9912 arguments when considering SYMBOL_REFs too.
9913 (rtx_addr_can_trap_p): Pass dummy offset and size.
9914 (enum may_trap_p_flags): Remove.
9915 (may_trap_p_1): Pass size from MEM_SIZE.
9916
9917 PR rtl-optimization/38921
9918 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
9919 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
9920 * rtlanal.c (may_trap_after_code_motion_p): Delete.
9921 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
9922
69349ea5
L
99232009-02-04 H.J. Lu <hongjiu.lu@intel.com>
9924
9925 AVX Programming Reference (January, 2009)
9926 * config/i386/sse.md (*vpclmulqdq): New.
9927
b545e411
JJ
99282009-02-04 Jakub Jelinek <jakub@redhat.com>
9929
9930 PR tree-optimization/38977
9931 PR gcov-profile/38292
bf9b2cc9 9932 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 9933
5b43bf05
HS
99342009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
9935
9936 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
9937 non-indexable addresses even before reload.
9938
062c4bb3
JM
99392009-02-03 Joseph Myers <joseph@codesourcery.com>
9940
9941 PR c/29129
9942 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
9943 as having variable size. Do not give an error for unnamed
9944 parameters with [*] declarators. Give a warning for type names
9945 with [*] declarators and mark them as variable size.
9946 * c-parser.c (c_parser_sizeof_expression): Do not give an error
9947 for sizeof applied to [*] type names.
9948
6175f578
AP
99492009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
9950
9951 PR C++/36607
9952 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
9953
d4f4bc84
JJ
99542009-02-03 Jakub Jelinek <jakub@redhat.com>
9955
9956 * gcc.c (process_command): Update copyright notice dates.
9957 * gcov.c (print_version): Likewise.
9958 * gcov-dump.c (print_version): Likewise.
9959 * mips-tfile.c (main): Likewise.
9960 * mips-tdump.c (main): Likewise.
9961
f6294de7
JM
99622009-02-03 Joseph Myers <joseph@codesourcery.com>
9963
9964 PR c/35433
9965 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
9966 for composite type involving a zero-length array type.
9967
754ccf7c
JJ
99682009-02-03 Jakub Jelinek <jakub@redhat.com>
9969
70f16287
JJ
9970 PR target/35318
9971 * function.c (match_asm_constraints_1): Skip over
9972 initial optional % in the constraint.
9973
754ccf7c
JJ
9974 PR inline-asm/39059
9975 * c-parser.c (c_parser_postfix_expression): If fixed point is not
9976 supported, don't accept FIXED_CSTs.
9977 * c-decl.c (finish_declspecs): Error if fixed point is not supported
9978 and _Sat is used without _Fract/_Accum. Set specs->type to
9979 integer_type_node for cts_fract/cts_accum if fixed point is not
9980 supported.
9981
965fdadf
CM
99822009-02-02 Catherine Moore <clm@codesourcery.com>
9983
dbf9ee15 9984 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 9985
2e8a796f
RS
99862009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
9987
9988 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
9989 (ABI_HAS_64BIT_SYMBOLS): Use it.
9990 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
9991
e0079468
PB
99922009-02-02 Paul Brook <paul@codesourcery.com>
9993
9994 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
9995
eca72963
JJ
99962009-02-02 Jakub Jelinek <jakub@redhat.com>
9997
9998 PR inline-asm/39058
9999 * recog.h (asm_operand_ok): Add constraints argument.
10000 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
10001 recurse on matching constraint.
10002 (check_asm_operands): Pass constraints as 3rd argument to
10003 asm_operand_ok. Don't look up matching constraint here.
10004 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10005 to asm_operand_ok.
10006
b5bde9ff
BE
100072009-02-02 Ben Elliston <bje@au.ibm.com>
10008
10009 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10010 TARGET_NARROW_VOLATILE_BITFIELD macro names.
10011
30f3e427
JDA
100122009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10013
be7659ba
JDA
10014 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10015 information. Remove some obsolete information. Reorganize.
10016
30f3e427
JDA
10017 * config/pa/fptr.c: Revert license to GPL 2.
10018 * config/pa/milli64.S: Likewise.
10019
3cbfaf98
DK
100202009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10021
10022 PR target/38904
10023 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
10024 LIBRARY name in, instead of hard-coding it.
10025 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
10026 extra target make frag to tmake_files according to EH model.
10027 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
10028 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
10029 frags that define makefile variable EH_MODEL appropriately.
10030 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
10031 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
10032 to "-sjlj" according to type of EH configured.
10033 (LIBGCC_SONAME): Concatenate it to shared library base name.
10034 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
10035 to "_sjlj" according to type of EH configured.
10036 (LIBGCC_SONAME): Concatenate it to shared library base name.
10037 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
10038 (SHLIB_LINK): Add missing semicolon to if-else construct.
10039 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10040 string value of "pe_dll" command-line option.
10041 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
10042 (SHLIB_SONAME): Use it when overriding t-cygming default.
10043 (SHLIB_IMPLIB): Override t-cygming default.
10044 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10045 string value of "pe_dll" command-line option.
10046
8d0b6068
DK
100472009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10048
10049 PR target/38952
10050 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 10051 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 10052
14c28276
RG
100532009-01-31 Richard Guenther <rguenther@suse.de>
10054
10055 PR tree-optimization/38937
10056 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10057 computing the transitive closure.
10058
5f4d82c2
RG
100592009-01-30 Richard Guenther <rguenther@suse.de>
10060
10061 PR tree-optimization/39041
10062 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10063 Propagate variable indices only if the types match for this stmt.
10064
d0728ae0
JJ
100652009-01-30 Jakub Jelinek <jakub@redhat.com>
10066
10067 PR target/39013
10068 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10069 inline but never defined.
10070
6b67572e 100712009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
10072
10073 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10074 (*insv_h_di_reg_extimm): New insn.
10075 (*insv_l<mode>_reg_extimm): New insn.
10076
100772009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
10078
10079 * config/picochip/picochip.c (flag_conserve_stack): set
10080 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10081 fconserve-stack. Reduce call-overhead used by inliner.
10082
9fec758d 100832009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
10084
10085 PR/38157
10086 * common.opt (flag_conserve_stack): Initialised to zero.
10087
7f1c539c
KT
100882009-01-30 Kai Tietz <kai.tietz@onevision.com>
10089
10090 PR/39002
10091 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10092 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10093 method.
10094
3631be48
L
100952009-01-29 H.J. Lu <hongjiu.lu@intel.com>
10096
10097 * ira-color.c (allocno_reload_assign): Update comments.
10098 * regmove.c (regmove_optimize): Likewise.
10099
10100 * ra.h: Removed.
10101
416ac4d4
RM
101022009-01-29 Robert Millan <rmh@aybabtu.com>
10103
60839f5d
EB
10104 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10105 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 10106 `MD_UNWIND_SUPPORT'.
60839f5d 10107 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 10108
d5e54bc1
KH
101092009-01-29 Kazu Hirata <kazu@codesourcery.com>
10110
10111 PR tree-optimization/39007
10112 * tree-loop-distribution.c (generate_builtin): Use
10113 recompute_dominator to compute the immediate dominator of the
10114 basic block just after the loop.
10115
38432148 101162009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
10117
10118 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10119 (ASM_OUTPUT_DWARF_PCREL): Define.
10120
38432148 101212009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
10122
10123 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10124 * doc/passes.texi: Remove entries about regclass, local-alloc, and
10125 global. Modify entries about regmove and IRA.
10126
10127 * ra-conflict.c: Remove the file.
10128
10129 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10130
10131 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10132 (pass_regclass_init): Rename to pass_reginfo_init.
10133
10134 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10135
10136 * toplev.h (flag_ira): Remove.
10137
10138 * caller-save.c (setup_save_areas): Remove flag_ira.
10139
bf9b2cc9 10140 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
10141
10142 * global.c: Remove the file.
10143
ba20e309 10144 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
10145
10146 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10147
10148 * regmove.c: Modify file description.
10149 (find_use_as_address, try_auto_increment): Define them only if
10150 AUTO_INC_DEC is defined.
10151 (replacement_quality, replace_in_call_usage, fixup_match_1,
10152 stable_and_no_regs_but_for_p): Remove.
10153 (reg_set_in_bb): Make it static.
10154 (regmove_optimize): Remove flag_ira and code which worked for
10155 !flag_ira.
10156
10157 * local-alloc.c: Remove the file.
10158
10159 * common.opt (fira): Remove.
10160
10161 * ira.c: Include except.h.
10162 (eliminable_regset): Move from global.c.
10163 (mark_elimination): Ditto. Remove flag_ira.
10164 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10165 equiv_mem_modified, validate_equiv_mem_from_store,
10166 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10167 contains_replace_regs, memref_referenced_p, memref_used_between_p,
10168 no_equiv, recorded_label_ref): Move from local-alloc.c.
10169 (update_equiv_regs): Ditto. Make it static.
10170 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 10171 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
10172 (build_insn_chain): Ditto. Make it static.
10173 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
10174 Rename to init_live_subregs.
10175 (gate_ira): Remove flag_ira.
10176
10177 * regclass.c: Rename reginfo.c. Change file description.
10178 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 10179 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
10180 (init_reg_sets_1): Remove code for evaluation of
10181 reg_class_superclasses and losing_caller_save_reg_set.
10182 (init_regs): Remove init_reg_autoinc.
10183 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10184 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 10185 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
10186 (pass_regclass_init): Rename to pass_reginfo_init. Modify
10187 corresponding entries.
10188 (dump_regclass, record_operand_costs, scan_one_insn,
10189 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10190 record_address_regs, auto_inc_dec_reg_p): Remove.
10191 (gt-regclass.h): Rename to gt-reginfo.h.
10192
10193 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 10194 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
10195
10196 * Makefile.in (RA_H): Remove.
10197 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10198 Rename regclass.o to reginfo.o.
10199 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
10200 gt-reginfo.h.
10201 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10202 (GTFILES): Rename regclass.c to reginfo.c.
10203
10204 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 10205 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
10206
10207 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10208 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10209 Remove flag_ira.
6b67572e 10210 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 10211
c95b2534 102122009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
10213
10214 PR middle-end/35854
10215 * doc/invoke.texi (rtl debug options): Complete rewrite.
10216 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10217 to auto_inc_dec".
10218 * mode-switching.c (pass_mode_switching): Rename pass from
10219 "mode-sw" to "mode_sw".
10220 * except.c (pass_convert_to_eh_ranges): Rename pass from
10221 "eh-ranges" to "eh_ranges".
10222 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10223 to "subreg1".
2ba9daa7
AS
10224
10225
72a54528
AM
102262009-01-29 Andrey Belevantsev <abel@ispras.ru>
10227 Alexander Monakov <amonakov@ispras.ru>
10228
10229 PR middle-end/38857
10230 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10231 register.
10232 (move_exprs_to_boundary): Change return type and pass through
10233 should_move from move_op. Relax assert. Update usage ...
10234 (schedule_expr_on_boundary): ... here. Use should_move instead of
10235 cant_move.
10236 (move_op_orig_expr_found): Indicate that insn was disconnected from
10237 stream.
10238 (code_motion_process_successors): Do not call after_merge_succs
10239 callback if original expression was not found when traversing any of
10240 the branches.
10241 (code_motion_path_driver): Change return type. Update prototype.
10242 (move_op): Update comment. Add a new parameter (should_move). Update
10243 prototype. Set *should_move based on indication provided by
10244 move_op_orig_expr_found.
10245
001b9eb6
PH
102462009-01-28 Pat Haugen <pthaugen@us.ibm.com>
10247
10248 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10249 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10250 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10251 * config/rs6000/rs6000.c (rs6000_override_options): Default
10252 avoid-indexed-addresses on for Power6, off for everything else.
10253 (avoiding_indexed_address_p): New function.
10254 (rs6000_legitimize_address): Use it.
10255 (rs6000_legitimate_address): Likewise.
10256 * config/rs6000/rs6000.md (movXX_updateX): Likewise
10257
59dc4898
KH
102582009-01-28 Kazu Hirata <kazu@codesourcery.com>
10259
10260 PR tree-optimization/38997
10261 * tree-loop-distribution.c (generate_memset_zero): Use
10262 POINTER_PLUS_EXPR for a pointer addition.
10263
07da44ab
AK
102642009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
10265
10266 * config/s390/s390.md (bswap<mode>2): New pattern added.
10267
cdc15d23
WG
102682009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10269
10270 * config/s390/s390.md (*tls_load_31): Added type attribute.
10271
d46f24b6
WG
102722009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10273
10274 * config/s390/s390.md: Fix a few comments.
10275
729e750f
WG
102762009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10277
10278 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10279 (*tm<mode>_full): Fixed z10prop attribute.
10280 (*tst<mode>_extimm): Fixed z10prop attribute.
10281 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10282 (*tstqiCCT_cconly): Fixed z10prop attribute.
10283 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10284 (*movsi_larl): Fixed z10prop attribute.
10285 (*movsi_zarch): Fixed z10prop attribute.
10286 (*movsi_eas): Fixed z10prop attribute.
10287 (*movhi): Fixed z10prop attribute.
10288 (*movqi): Fixed z10prop attribute.
10289 (*movstrictqi): Fixed z10prop attribute.
10290 (*mov<mode>): Fixed z10prop attribute.
10291 (*movcc): Fixed z10prop attribute.
10292 (*sethighpartdi_64): Fixed z10prop attribute.
10293 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10294 (*negdi2_sign_cc): Fixed z10prop attribute.
10295 (*negdi2_sign): Fixed z10prop attribute.
10296 (*absdi2_sign_cc): Fixed z10prop attribute.
10297 (*absdi2_sign): Fixed z10prop attribute.
10298 (*negabsdi2_sign_cc): Fixed z10prop attribute.
10299 (*negabsdi2_sign): Fixed z10prop attribute.
10300 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10301 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10302 (doloop_si64): Fixed z10prop attribute.
10303 (doloop_si31): Fixed z10prop attribute.
10304 (doloop_long): Fixed z10prop attribute.
10305 (indirect_jump): Fixed z10prop attribute.
10306 (nop): Fixed z10prop attribute.
10307 (main_base_64): Fixed z10prop attribute.
10308 (reload_base_64): Fixed z10prop attribute.
10309
c7789bfb
JJ
103102009-01-28 Jakub Jelinek <jakub@redhat.com>
10311
10312 PR rtl-optimization/38740
6b67572e
UB
10313 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10314 if !optimize.
c7789bfb
JJ
10315 * config/mips/mips.c (mips_reorg): Likewise.
10316
de081cfd
RG
103172009-01-28 Richard Guenther <rguenther@suse.de>
10318
10319 PR tree-optimization/38926
10320 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10321 with the correct value id to a value.
10322 (do_regular_insertion): Use the value number of edoubleprime
10323 for the value number of the expr.
10324
10325 Revert
10326 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 10327
d748c406
UB
10328 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10329 a PHI ask VN if it is already available.
10330 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10331 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 10332
a9d386a1
JJ
103332009-01-28 Jakub Jelinek <jakub@redhat.com>
10334
10335 PR middle-end/38934
10336 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10337 set to varying whenever max has TREE_OVERFLOW set, similarly
10338 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10339
97a170cd
RG
103402009-01-28 Richard Guenther <rguenther@suse.de>
10341
10342 PR middle-end/38908
10343 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
10344 uninitialized aggregate uses in call arguments.
10345
89ebafc6
PB
103462009-01-28 Paolo Bonzini <bonzini@gnu.org>
10347
10348 PR tree-optimization/38984
10349 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
10350 the nothing_id variable if -fno-delete-null-pointer-checks.
10351
bef3c57b
UB
103522009-01-28 Uros Bizjak <ubizjak@gmail.com>
10353
10354 PR target/38988
10355 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
10356 (set_got_offset_rex64): Ditto.
10357
0c6390fa
L
103582009-01-27 H.J. Lu <hongjiu.lu@intel.com>
10359
10360 PR target/38941
10361 * doc/extend.texi: Improve local variable with asm reg.
10362
bee6fa6d
AN
103632009-01-27 Adam Nemet <anemet@caviumnetworks.com>
10364
10365 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
10366 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
10367 was not supplied then set warn_packed_bitfield_compat to the
10368 default value of 1.
10369 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
10370 against 1.
10371
b5c3dfbb
RG
103722009-01-27 Richard Guenther <rguenther@suse.de>
10373
10374 PR tree-optimization/38503
10375 * cfgexpand.c (expand_gimple_basic_block): Ignore
10376 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
10377 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
10378 variables that cannot have TBAA applied.
10379 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
10380 statements.
10381
d748c406 103822009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
10383
10384 PR middle-end/38969
10385 * calls.c (initialize_argument_information): Do not wrap complex
10386 arguments in SAVE_EXPR.
10387
9112bb38
AT
103882009-01-26 Andreas Tobler <a.tobler@schweiz.org>
10389
10390 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 10391 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 10392
4757704f
RG
103932009-01-26 Richard Guenther <rguenther@suse.de>
10394
10395 PR tree-optimization/38745
10396 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
10397 from special handling.
10398
e3e6cff4
RG
103992009-01-26 Richard Guenther <rguenther@suse.de>
10400
10401 PR tree-optimization/38745
10402 * tree-ssa.c (execute_update_addresses_taken): Do not include
10403 variables that cannot possibly be a register in not_reg_needs.
10404 Do not clear TREE_ADDRESSABLE on vars that may not become
10405 registers.
10406 * tree-ssa.c (update_alias_info_1): Include those in the set
10407 of addressable vars.
10408
dc874b53
RG
104092009-01-26 Richard Guenther <rguenther@suse.de>
10410
10411 PR middle-end/38851
10412 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
10413 * tree-ssa-dse.c: Include langhooks.h
10414 (execute_simple_dse): Remove stores with zero size.
10415
849421a3
JJ
104162009-01-24 Jakub Jelinek <jakub@redhat.com>
10417
10418 PR c/38957
10419 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
10420 as PLUS_EXPR.
10421
82f70421
JB
104222009-01-24 Julian Brown <julian@codesourcery.com>
10423
10424 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
10425 config/arm/linux-atomic.c.
10426 * config/arm/linux-atomic.c: New.
10427
863412d6
EB
104282009-01-24 Eric Botcazou <ebotcazou@adacore.com>
10429
10430 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
10431 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
10432 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
10433
8c684300
L
104342009-01-24 H.J. Lu <hongjiu.lu@intel.com>
10435
10436 PR c/38938
93f1527a 10437 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
10438 properly.
10439
b840fb02
SP
104402009-01-24 Sebastian Pop <sebastian.pop@amd.com>
10441
10442 PR tree-optimization/38953
10443 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
10444 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
10445 (gloog): Split the exit of the scop when the scop exit is a loop exit.
10446 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
10447 changed the CFG.
10448
ecee559f
PB
104492009-01-24 Paul Brook <paul@codesourcery.com>
10450
10451 * config/arm/neon.md (neon_type): Move to arm.md.
10452 (neon_mov<VSTRUCT>): Add neon_type attribute.
10453 * config/arm/arm.md (neon_type): Move to here.
10454 (conds): Add "unconditioal" and use as default for NEON insns.
10455
61ad0914
BE
104562009-01-24 Ben Elliston <bje@au.ibm.com>
10457
10458 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
10459 void *' warning from -Wc++-compat.
10460 * Makefile.in (dominance.o-warn): Remove.
10461
38432148 104622009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
10463
10464 PR tree-optimization/38932
10465 * fold-const.c (fold_unary_ignore_overflow): New.
10466 * tree.h (fold_unary_ignore_overflow): Declare.
10467 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
10468 * tree-ssa-sccvn.c (visit_reference_op_load,
10469 simplify_unary_expression): Likewise.
10470
2cd36c22
AN
104712009-01-22 Adam Nemet <anemet@caviumnetworks.com>
10472
10473 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
10474 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
10475 regardless of their type.
10476 * c-common.c (handle_packed_attribute): Don't ignore packed on
10477 bitfields.
10478 * c.opt (Wpacked-bitfield-compat): New warning option.
10479 * stor-layout.c (place_field): Warn if offset of a field changed.
10480 * doc/extend.texi (packed): Mention the ABI change.
10481 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
10482 (Warning Options): Add it to the list.
10483
e4e624ab
L
104842009-01-22 H.J. Lu <hongjiu.lu@intel.com>
10485
10486 * c-opts.c (c_common_post_options): Fix a typo in comments.
10487
d0ea0759
SE
104882009-01-22 Steve Ellcey <sje@cup.hp.com>
10489
10490 PR middle-end/38615
10491 * gimplify.c (gimplify_init_constructor): Fix promotion of const
10492 variables to static.
10493 * doc/invoke.texi (-fmerge-all-constants): Update description.
10494
87673f84
UB
104952009-01-22 Uros Bizjak <ubizjak@gmail.com>
10496
10497 PR target/38931
10498 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
10499 (*movdi_1_rex64): Use type "mmx" for alternative 5.
10500
96339268
RE
105012009-01-22 Richard Earnshaw <rearnsha@arm.com>
10502
10503 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
10504 a word boundary.
10505 (LOCAL_ALIGNMENT): Similarly.
10506
442dc742 105072009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 10508 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
10509
10510 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
10511 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
10512 * config/arm/arm-tune.md: Regenerate.
10513 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
10514 -march=iwmmxt2.
10515
9b34732e
MS
105162009-01-22 Mark Shinwell <shinwell@codesourcery.com>
10517
10518 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
10519 version number to five.
10520
03c2a308
DS
105212009-01-22 Dodji Seketeli <dodji@redhat.com>
10522
10523 PR c++/38930
ba20e309 10524 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
10525 * c-common.c (set_underlying_type): Likewise.
10526 (is_typedef_decl ): Likewise
10527 * tree.h: Likewise
10528 (set_underlying_type): Likewise.
10529 (is_typedef_type): Likewise.
10530
1240d76e
VM
105312009-01-21 Vladimir Makarov <vmakarov@redhat.com>
10532
10533 PR middle-end/38587
10534 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
10535 crossing setjmps.
10536
b8a1087d
DK
105372009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
10538
10539 PR bootstrap/37660
10540 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
10541 (LIBGCC_SPEC): Don't define.
10542 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
10543
435da628
UB
105442009-01-21 Uros Bizjak <ubizjak@gmail.com>
10545
10546 PR rtl-optimization/38879
10547 * alias.c (base_alias_check): Unaligned access via AND address can
10548 alias all surrounding object types except those with sizes equal
10549 or wider than the size of unaligned access.
10550
d597b3ce
DS
105512009-01-21 Dodji Seketeli <dodji@redhat.com>
10552
10553 PR c++/26693
ba20e309 10554 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 10555 * c-common.c (set_underlying_type): ... here.
435da628 10556 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
10557 the newly created typedef variant type.
10558 (is_typedef_decl ): New entry point.
10559 * tree.h: Added a new member member_types_needing_access_check to
10560 struct tree_decl_non_common.
10561 (set_underlying_type): New entry point.
10562 (is_typedef_type): Likewise.
10563
71a6fe66
BM
105642009-01-21 Bingfeng Mei <bmei@broadcom.com>
10565
10566 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
10567 Check whether two instructions have memory references that
10568 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
10569 are helper functions for traversing.
10570 * alias.h (insn_alias_sets_confilict_p): New prototypes.
10571 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
10572 not to draw dependency edge for instructions with non-conflicting
10573 alias sets.
10574
5a248274
JM
105752009-01-20 Joseph Myers <joseph@codesourcery.com>
10576
10577 PR other/38758
6b67572e
UB
10578 * longlong.h: Update copyright years. Use soft-fp license notice.
10579 Sync __clz_tab declaration with glibc.
5a248274 10580
4b84f3de
SE
105812009-01-20 Steve Ellcey <sje@cup.hp.com>
10582
10583 PR target/30687
10584 * doc/extend.texi (syscall_linkage): New.
10585 (version_id): Modify.
10586
37348bf1 105872009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 10588 Richard Guenther <rguenther@suse.de>
37348bf1
AP
10589
10590 PR tree-optimization/38747
10591 PR tree-optimization/38748
10592 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
10593 conversion if the base address is an indirect reference and the
10594 aliasing sets could cause issues.
10595
d0a58904
SP
105962009-01-20 Sebastian Pop <sebastian.pop@amd.com>
10597
2ba9daa7 10598 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
10599 explaining why these options are not documented.
10600
71e7afb2
SP
106012009-01-20 Sebastian Pop <sebastian.pop@amd.com>
10602
10603 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
10604 gimple_call_lhs is NULL.
10605
38432148 106062009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
10607
10608 PR target/38868
10609 * emit-rtl.c (adjust_address_1): Make sure memref is never
10610 overwritten.
10611
cbb8dee3
BE
106122009-01-20 Ben Elliston <bje@au.ibm.com>
10613
10614 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 10615 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
10616 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10617 const qualifier from arg 2.
10618
72c66596
IS
106192009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
10620
435da628 10621 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 10622
f68211cd
VM
106232009-01-19 Vladimir Makarov <vmakarov@redhat.com>
10624
10625 PR c/38869
10626 * rtl.h (reinit_regs): New prototype.
10627 * regclass.c: Include ira.h.
10628 (reinit_regs): New.
10629 * Makefile.in (regclass.o): Add ira.h.
10630 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
10631
6e4f1168
L
106322009-01-18 H.J. Lu <hongjiu.lu@intel.com>
10633
10634 PR target/38736
10635 * c-common.c (handle_aligned_attribute): Use
10636 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
10637 default alignment value.
10638
10639 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
10640
10641 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
10642 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
10643
10644 * doc/extend.texi: Update __attribute__ ((aligned)). Document
10645 __BIGGEST_ALIGNMENT__.
10646
10647 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
10648
890065bf
RG
106492009-01-18 Richard Guenther <rguenther@suse.de>
10650
10651 PR tree-optimization/38819
10652 * tree-flow.h (operation_could_trap_helper_p): Declare.
10653 * tree-eh.c (operation_could_trap_helper_p): Export.
10654 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
10655 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
10656 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
10657 are about to insert a possibly trapping instruction and fail
10658 in this case.
10659
a729d731
AS
106602009-01-18 Andreas Schwab <schwab@suse.de>
10661
10662 * doc/install.texi (Configuration): Remove obsolete paragraph
10663 about use of --with-gnu-ld with --with-gnu-as.
10664
a640c13b
KH
106652009-01-18 Kazu Hirata <kazu@codesourcery.com>
10666
10667 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
10668 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
10669 Follow spelling conventions.
10670
dba2cc0c
BE
106712009-01-18 Ben Elliston <bje@au.ibm.com>
10672
10673 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
10674 C++ warning about implicit conversion from void * to struct
10675 bitmap_head_def *.
10676 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 10677 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 10678
2207a498
DK
106792009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
10680
10681 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
10682
8137e465
SP
106832009-01-17 Sebastian Pop <sebastian.pop@amd.com>
10684 Tobias Grosser <tobi.grosser@amd.com>
10685
10686 * graphite.c (graphite_trans_scop_block): Do not block single
10687 nested loops.
10688
5be1c58c
AO
106892009-01-16 Alexandre Oliva <aoliva@redhat.com>
10690
10691 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
10692 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
10693 test with assertion.
10694
786ce82d
RG
106952009-01-16 Richard Guenther <rguenther@suse.de>
10696
10697 PR tree-optimization/38835
10698 PR middle-end/36227
10699 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
10700 and INT + PTR -> (INT)(PTR p+ INT) folding.
10701 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
10702
c1cb09ad
AN
107032009-01-16 Adam Nemet <anemet@caviumnetworks.com>
10704
10705 PR target/38554
10706 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
10707 the subreg from a lowpart subreg if it is also casting the value.
10708
bcab4e19
SP
107092009-01-16 Sebastian Pop <sebastian.pop@amd.com>
10710 Tobias Grosser <tobi.grosser@amd.com>
10711
10712 * graphite.c (compare_prefix_loops): New.
10713 (build_scop_canonical_schedules): Rewritten.
10714 (graphite_transform_loops): Move build_scop_canonical_schedules
10715 after build_scop_iteration_domain.
10716
0b040072
SP
107172009-01-16 Sebastian Pop <sebastian.pop@amd.com>
10718 Tobias Grosser <tobi.grosser@amd.com>
10719
2ba9daa7 10720 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
10721 the dimension of the iteration domain. Do copy the domain
10722 only when it exists.
10723 (build_scop_conditions_1): Do not call add_conditions_to_domain.
10724 (add_conditions_to_constraints): New.
10725 (can_generate_code_stmt, can_generate_code): Removed.
10726 (gloog): Do not call can_generate_code.
10727 (graphite_transform_loops): Call add_conditions_to_constraints
10728 after building the iteration domain.
10729
56c6a499
JJ
107302009-01-16 Jakub Jelinek <jakub@redhat.com>
10731
10732 PR tree-optimization/38789
10733 * tree-ssa-threadedge.c
10734 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
10735 __builtin_constant_p.
10736
c95b2534 107372009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
10738
10739 * dce.c (delete_unmarked_insns): Reversed the order that insns are
10740 examined before deleting them.
2ba9daa7 10741
c433cb14
RE
107422009-01-16 Richard Earnshaw <rearnsha@arm.com>
10743
10744 * function.c (aggregate_value_p): Correctly extract the function
10745 type from CALL_EXPR_FN lookup.
10746
c95b2534 107472009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
10748
10749 * config/picochip/picochip.c (picochip_override_options): Revert
10750 CFI asm flag disable commited previously.
10751
c77bb78f
SP
107522009-01-15 Sebastian Pop <sebastian.pop@amd.com>
10753 Tobias Grosser <tobi.grosser@amd.com>
10754 Jan Sjodin <jan.sjodin@amd.com>
10755
10756 * graphite.c (scan_tree_for_params): On substractions negate
10757 all the coefficients of the term.
10758 (clast_to_gcc_expression_red): New. Handle reduction expressions
10759 of more than two operands.
10760 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
10761 (get_vdef_before_scop): Handle also the case of default definitions.
10762
574af2d6
RS
107632009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
10764
10765 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
10766 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
10767 Also use them when walking CALL_INSN_FUNCTION_USAGE.
10768
e939805b
L
107692009-01-15 H.J. Lu <hongjiu.lu@intel.com>
10770 Joey Ye <joey.ye@intel.com>
10771
10772 PR middle-end/37843
10773 * cfgexpand.c (expand_stack_alignment): Don't update stack
10774 boundary nor check incoming stack boundary here.
10775 (gimple_expand_cfg): Update stack boundary and check incoming
10776 stack boundary here.
10777
c95b2534 107782009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 10779
435da628 10780 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 10781
0196c95e
JJ
107822009-01-14 Jakub Jelinek <jakub@redhat.com>
10783
10784 PR rtl-optimization/38245
10785 * calls.c (expand_call): Add stack arguments to
10786 CALL_INSN_FUNCTION_USAGE even for pure calls (when
10787 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
10788 in regs and partially in memory or BLKmode arguments.
10789 (emit_library_call_value_1): Add stack arguments to
10790 CALL_INSN_FUNCTION_USAGE even for pure calls (when
10791 ACCUMULATE_OUTGOING_ARGS).
10792 * dce.c: Include tm_p.h.
10793 (find_call_stack_args): New function.
10794 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
10795 argument.
10796 (mark_insn): Call find_call_stack_args for CALL_Ps.
10797 (prescan_insns_for_dce): Walk insns backwards in bb rather than
10798 forwards. Allocate and free arg_stores bitmap if needed, pass it
10799 down to deletable_insn_p, don't mark stores set in arg_stores
10800 bitmap, clear the bitmap at the beginning of each bb.
10801 * Makefile.in (dce.o): Depend on $(TM_P_H).
10802
6df6bcfa
MM
108032009-01-14 Michael Meissner <gnu@the-meissners.org>
10804
10805 PR target/22599
435da628
UB
10806 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
10807 to make sure the insn is a conditional test (bug 22599). Reformat a
10808 few long lines.
6df6bcfa 10809
765ec70c
SP
108102009-01-14 Sebastian Pop <sebastian.pop@amd.com>
10811
10812 PR middle-end/38431
10813 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
10814 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
10815 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 10816 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
10817 scops have been code generated.
10818
7de2b688
BS
108192009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
10820 * doc/gty.texi (Invoking the garbage collector): Added new node
10821 and section documenting ggc_collect.
10822
10bd6c5c
RG
108232009-01-14 Richard Guenther <rguenther@suse.de>
10824
10825 PR tree-optimization/38826
10826 PR middle-end/38477
10827 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
10828 initialization notes only if we actually emitted a warning.
10829 (intra_create_variable_infos): Add constraints for a result decl
10830 that is passed by hidden reference.
10831 (build_pred_graph): Mark all related variables non-direct on
10832 address-taking.
10833
9c7c70ee
NC
108342009-01-14 Nick Clifton <nickc@redhat.com>
10835
10836 * ira-conflicts.c: Include addresses.h for the definition of
10837 base_reg_class.
435da628
UB
10838 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
10839 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 10840
cf0c2a60
VM
108412009-01-13 Vladimir Makarov <vmakarov@redhat.com>
10842
10843 PR target/38811
10844 * Makefile.in (ira-lives.o): Add except.h.
10845
10846 * ira-lives.c: Include except.h.
10847 (process_bb_node_lives): Process can_throw_internal.
10848
d3302fd3
JJ
108492009-01-13 Jakub Jelinek <jakub@redhat.com>
10850
10851 PR rtl-optimization/38774
10852 * combine.c (simplify_set): When undoing cc_use change, don't do
10853 PUT_CODE on the newly created comparison, but instead put back the
10854 old comparison.
10855
7ab23fd0
JM
108562009-01-13 Joseph Myers <joseph@codesourcery.com>
10857
10858 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
10859 values. Remove duplicate arm8 entry.
10860
f9344488
SP
108612009-01-13 Sebastian Pop <sebastian.pop@amd.com>
10862
10863 PR tree-optimization/38786
10864 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
10865 the SSA_NAME case of expand_scalar_variables_expr.
10866 Set the type of an expression to the type of its assign statement.
10867 (expand_scalar_variables_expr): Also gather the scalar computation
10868 used to index the memory access. Do not pass loop_p.
10869 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
10870 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
10871 the gimple_stmt_iterator where it inserts new code.
10872 Do not pass loop_p.
f9344488
SP
10873 (copy_bb_and_scalar_dependences): Do not pass loop_p.
10874 (translate_clast): Update call to copy_bb_and_scalar_dependences.
10875
2d8bb84d
SP
108762009-01-13 Sebastian Pop <sebastian.pop@amd.com>
10877
10878 * graphite.h (debug_value): Removed.
10879 * graphite.c (debug_value): Removed.
10880
ff128632
RE
108812009-01-13 Richard Earnshaw <rearnsha@arm.com>
10882
435da628
UB
10883 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
10884 ldrd/strd with two 32-bit instructions.
ff128632 10885
d5a0a47b
RE
108862009-01-13 Richard Earnshaw <rearnsha@arm.com>
10887
435da628
UB
10888 * config/arm/arm.c (struct processors): Pass for speed down into
10889 cost helper functions.
d5a0a47b
RE
10890 (const_ok_for_op): Handle COMPARE and inequality nodes.
10891 (arm_rtx_costs_1): Rewrite.
10892 (arm_size_rtx_costs): Update prototype.
10893 (arm_rtx_costs): Pass speed down to helper functions.
10894 (arm_slowmul_rtx_costs): Rework cost calculations.
10895 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
10896 (arm_9e_rtx_costs): Likewise.
10897
26d5bf5b
UB
108982009-01-13 Uros Bizjak <ubizjak@gmail.com>
10899
10900 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 10901 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
10902 (alpha_legitimize_address): Do not split local symbols wider than
10903 UNITS_PER_WORD into HIGH/LO_SUM parts.
10904
5d14e3d5
DS
109052009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
10906
10907 PR bootstrap/38580
10908 * gcc.c (process_command): Replace call to execvp with calls
10909 to pex_one and exit.
10910
33faafca
AS
109112009-01-03 Anatoly Sokolov <aesok@post.ru>
10912
10913 PR target/29141
10914 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
10915 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
10916 variant for devices with 3-byte PC.
ba20e309 10917 (__tablejump_elpm__): New.
33faafca 10918
634b5df5
JJ
109192009-01-12 Jakub Jelinek <jakub@redhat.com>
10920
10921 PR c/32041
10922 * c-parser.c (c_parser_postfix_expression): Allow `->' in
10923 offsetof member-designator, handle it as `[0].'.
10924
2842bb86
JDA
109252009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10926
10927 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
10928 function when not using named sections on targets with named sections
10929 if branch distance is less than 262132.
10930
76ee70f6
RE
109312009-01-12 Richard Earnshaw <rearnsha@arm.com>
10932
10933 * combine.c (combine_instructions): Recompute
10934 optimize_this_for_speed_p for each BB in the main combine loop.
10935
f56e675d
TB
109362009-01-12 Tomas Bily <tbily@suse.cz>
10937
10938 PR middlend/38385
26d5bf5b
UB
10939 * tree-loop-distribution.c (prop_phis): New function.
10940 (generate_builtin): Call prop_phis.
10941 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 10942
c2152239
JJ
109432009-01-12 Jakub Jelinek <jakub@redhat.com>
10944
10945 PR tree-optimization/38807
10946 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
10947 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
10948
0e510b3e
AN
109492009-01-11 Adam Nemet <anemet@caviumnetworks.com>
10950
10951 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
10952 subreg of op0 to the original op0.
10953
c95b2534 109542009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
10955
10956 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 10957
53a7ff9a
MS
109582009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
10959
10960 PR debug/7055
60839f5d 10961 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
10962 starting with digits.
10963
b3a796bc
JJ
109642009-01-10 Jakub Jelinek <jakub@redhat.com>
10965
10966 PR target/38695
10967 * config/arm/arm.c (arm_is_long_call_p): Don't call
10968 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
10969
b21b850e
SB
109702009-01-09 Steven Bosscher <steven@gcc.gnu.org>
10971
10972 * regrename.c (regrename_optimize): Fix dumping.
10973 (find_oldest_value_reg): Preserve REG_POINTER.
10974 (copy_hardreg_forward_1): Likewise.
10975
e0e10d3a
DN
109762009-01-09 Diego Novillo <dnovillo@google.com>
10977
bf9b2cc9 10978 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
10979 the restrictions on its use.
10980 (gimple_uid): Tidy.
10981 (gimple_set_uid): Tidy.
10982
c9da2ae8
JJ
109832009-01-09 Jakub Jelinek <jakub@redhat.com>
10984
10985 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
10986 zero guard even if align_bytes != 0 and count is smaller than
10987 size_needed.
10988
38432148 109892009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
10990
10991 PR rtl-optimization/38495
26d5bf5b 10992 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
10993 (add_range_and_copies_from_move_list): Print all added ranges.
10994 Add ranges to memory optimized destination.
10995
260fda3d
JJ
109962009-01-09 Jakub Jelinek <jakub@redhat.com>
10997
6f6278ad
JJ
10998 PR target/38686
10999 PR target/38708
11000 * config/i386/i386.c (override_options): Reject
11001 -mstringop-strategy=rep_8byte with -m32.
11002 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11003 to 1. Do count comparison against epilogue_size_needed at compile
11004 time even when count_exp was constant forced into register. For
11005 size_needed don't jump to epilogue, instead just avoid aligning
11006 and invoke the body algorithm. If need_zero_guard, add zero guard
11007 even if count is non-zero, but smaller than size_needed + number of
11008 bytes that could be stored for alignment.
11009 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11010 to 1. If need_zero_guard, add zero guard even if count is non-zero,
11011 but smaller than size_needed + number of bytes that could be stored
11012 for alignment. Compare size_needed with epilogue_size_needed instead
11013 of desired_align - align, don't adjust size_needed, pass
11014 epilogue_size_needed to the epilogue expanders.
11015
260fda3d 11016 PR c/35742
26d5bf5b 11017 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 11018
67b846fa
JDA
110192009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11020
11021 * pa.c (last_address): Change to unsigned.
11022 (update_total_code_bytes): Change argument to unsigned. Don't
11023 check if insn addresses are set.
11024 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11025 addresses are not set.
11026 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11027
91c82473
NC
110282009-01-09 Nick Clifton <nickc@redhat.com>
11029
11030 * config/sh/symbian.c: Replace uses of DECL_INLINE with
11031 DECL_DECLARED_INLINE_P.
11032
4017e262
JJ
110332009-01-09 Jakub Jelinek <jakub@redhat.com>
11034
0a49e5c2
JJ
11035 PR middle-end/38347
11036 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11037 GET_MODE (op0) in operand_subword_force calls.
11038
4017e262
JJ
11039 PR middle-end/38771
11040 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11041 fold_convert arg0 operands to TREE_TYPE (op0) first.
11042
7cd06356
VM
110432009-01-08 Vladimir Makarov <vmakarov@redhat.com>
11044
11045 * params.def (ira-max-conflict-table-size): Decrease default value
11046 to 1000.
11047
96867bbd
JJ
110482009-01-08 Jakub Jelinek <jakub@redhat.com>
11049
11050 PR tree-optimization/37031
11051 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11052 on parameter_set.
11053 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11054 allocate it using gc instead of heap, use VEC_quick_push instead of
11055 VEC_safe_push.
11056 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11057 instead of heap, use VEC_quick_push instead of VEC_safe_push.
11058 * tree-data-ref.h (struct access_matrix): Change matrix to gc
11059 allocated vector from heap allocated.
11060 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11061 * tree-loop-linear.c (linear_transform_loops): Allocate nest
11062 vector only after perfect_loop_nest_depth call.
11063
68f61c3d
SP
110642009-01-08 Sebastian Pop <sebastian.pop@amd.com>
11065 Jan Sjodin <jan.sjodin@amd.com>
11066
11067 PR tree-optimization/38559
11068 * graphite.c (debug_value, copy_constraint,
11069 swap_constraint_variables, scale_constraint_variable, ): New.
11070 (get_lower_bound, get_upper_bound): Removed.
11071 (graphite_trans_bb_strip_mine): Clean up this code that works
11072 only for constant number of iterations. Fully copy upper and
11073 lower bound constraints, not only the constant part of them.
11074 * graphite.h (debug_value): Declared.
11075
82567e33
IR
110762009-01-08 Ira Rosen <irar@il.ibm.com>
11077
11078 PR tree-optimization/37194
11079 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 11080 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
11081 outside cost in case of known number of iterations.
11082
7da13f1d
NF
110832009-01-07 Nathan Froyd <froydnj@codesourcery.com>
11084 Alan Modra <amodra@bigpond.net.au>
11085
11086 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11087 non-word-aligned REG+CONST addressing.
11088
c0f64575
UB
110892009-01-07 Uros Bizjak <ubizjak@gmail.com>
11090
11091 PR target/38706
11092 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11093 free_after_compilation when outputting a thunk.
11094 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11095 Do not call free_after_compilation here.
11096
301b6a4e
UB
110972009-01-07 Uros Bizjak <ubizjak@gmail.com>
11098
11099 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
11100 (ix86_valid_target_attribute_inner_p): Ditto.
11101
6a114766
JS
111022009-01-07 Jan Sjodin <jan.sjodin@amd.com>
11103
11104 PR tree-optimization/38492
11105 PR tree-optimization/38498
11106 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11107 * tree-chrec.h (scev_is_linear_expression): Declared.
11108 * graphite.c (graphite_cannot_represent_loop_niter): New.
11109 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11110 (graphite_loop_normal_form): Use gcc_assert.
11111 (scan_tree_for_params): Use CASE_CONVERT.
11112 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11113 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11114 Use gcc_assert. Discard scops that contain unhandled cases.
11115 (build_scop_conditions): Return a boolean status for unhandled cases.
11116 (strip_mine_profitable_p): Print the loop number, not its depth.
11117 (is_interchange_valid): Pass the depth of the loop nest, don't
11118 recompute it wrongly.
11119 (graphite_trans_bb_block): Same.
11120 (graphite_trans_bb_block): Print tentative of loop blocking.
11121 (graphite_trans_scop_block): Do not print that the loop has been
11122 blocked.
11123 (graphite_transform_loops): Do not handle scops that contain condition
11124 scalar phi nodes.
11125
65b82caa
L
111262009-01-07 H.J. Lu <hongjiu.lu@intel.com>
11127
11128 AVX Programming Reference (December, 2008)
11129 * config/i386/avxintrin.h (_mm256_stream_si256): New.
11130 (_mm256_stream_pd): Likewise.
11131 (_mm256_stream_ps): Likewise.
11132
11133 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11134 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11135 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11136 (bdesc_special_args): Add __builtin_ia32_movntdq256,
11137 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11138 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11139 (ix86_expand_special_args_builtin): Likewise.
11140
11141 * config/i386/sse.md (AVXMODEDI): New.
11142 (avx_movnt<mode>): Likewise.
11143 (avx_movnt<mode>): Likewise.
11144 (<sse>_movnt<mode>): Remove AVX support.
11145 (sse2_movntv2di): Likewise.
11146
cef158f9
RG
111472009-01-07 Richard Guenther <rguenther@suse.de>
11148
11149 PR middle-end/38751
11150 * fold-const.c (extract_muldiv): Remove obsolete comment.
11151 (fold_plusminus_mult_expr): Undo MINUS_EXPR
11152 to PLUS_EXPR canonicalization for the canonicalization.
11153
246cb5be
GP
111542009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
11155
11156 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11157 hosted cross-compilers generating less efficient code.
11158
84b9b872
RS
111592009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11160
11161 * function.h (rtl_data): Add a dbr_scheduled_p field.
11162 * reorg.c (dbr_schedule): Set it.
11163 (gate_handle_delay_slots): Check it.
11164 * config/mips/mips.c (mips_base_delayed_branch): Delete.
11165 (mips_reorg): Check flag_delayed_branch instead of
11166 mips_base_delayed_branch.
11167 (mips_override_options): Don't set mips_base_delayed_branch
11168 or flag_delayed_branch.
11169
ace984c8
RS
111702009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11171
11172 PR rtl-optimization/38426.
11173 * ira.c (ira): Set current_function_is_leaf earlier.
11174
7ad7809b
JJ
111752009-01-06 Jakub Jelinek <jakub@redhat.com>
11176
11177 PR rtl-optimization/38722
11178 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11179 too early, only set a flag and modify after last possible
11180 undo_all point.
11181
c52ec948
JJ
111822009-01-06 Janis Johnson <janis187@us.ibm.com>
11183
11184 PR c/34252
11185 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11186 * real.c (decimal_single_format): Correct values of emin and emax.
11187 (decimal_double_format): Ditto.
11188 (decimal_quad_format): Ditto.
11189 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11190 computation of DECnn_MIN and DECnn_MAX for corrected values of
11191 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
11192 __DECnn_MIN__, and adjust its computation for the corrected value
11193 of emin.
11194
300240e1
JH
111952009-01-06 Jan Hubicka <jh@suse.cz>
11196
11197 PR target/38744
435da628 11198 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 11199
271c069e
GP
112002009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
11201
11202 * doc/contrib.texi (Contributors): Slightly adjust the end note.
11203 Add Robert Clark to the list of testers.
11204
64e4c301 112052009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11206 Kai Tietz <kai.tietz@onevision.com>
64e4c301 11207
435da628
UB
11208 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11209 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 11210
7650b83e 112112009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11212 Kai Tietz <kai.tietz@onevision.com>
7650b83e 11213
435da628
UB
11214 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11215 for w64 ABI.
11216 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
11217 (ix86_nsaved_regs): Count only general purpose regs.
11218 (ix86_nsaved_sseregs): New.
11219 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11220 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
11221 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11222 general purpose regs.
7650b83e
JH
11223 (ix86_emit_save_sse_regs_using_mov): New.
11224 (ix86_expand_prologue): Save SSE regs if needed.
11225 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11226 (ix86_emit_restore_sse_regs_using_mov): New.
11227 (ix86_expand_epilogue): Save SSE regs if needed.
11228
9aa5c1b2 112292009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11230 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 11231
435da628
UB
11232 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11233 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11234 functions when accumulate outgoing args is off.
9aa5c1b2 11235
f7556aae
L
112362009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11237
11238 PR bootstrap/38742
11239 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11240 before using pseudos_have_intersected_live_ranges_p.
11241
11242 * ira-int.h (ira_assert): Always define.
11243
e47b7d04
L
112442009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11245
11246 AVX Programming Reference (December, 2008)
11247 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11248 (_mm256_permute2_pd): Likewise.
11249 (_mm_permute2_ps): Likewise.
11250 (_mm256_permute2_ps): Likewise.
11251 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11252 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11253
11254 * config/i386/i386.c (ix86_builtins): Remove
11255 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11256 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11257 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11258 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11259 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11260 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11261 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11262 __builtin_ia32_vpermil2ps256.
11263 (ix86_init_mmx_sse_builtins): Updated.
11264 (ix86_expand_args_builtin): Likewise.
11265
44b86471
JDA
112662009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11267
e47b7d04
L
11268 * pa.c (output_call): Relocate non-jump insns in the delay slot of
11269 long absolute calls when generating PA 2.0 code.
44b86471 11270
311aab06
VM
112712009-01-05 Vladimir Makarov <vmakarov@redhat.com>
11272
11273 PR rtl-optimization/38583
11274 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11275
11276 * params.def (ira-max-conflict-table-size): New.
11277
11278 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 11279
311aab06 11280 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 11281
311aab06
VM
11282 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11283 table. Report this. Return result of building.
11284 (ira_build_conflicts): Use ira_conflicts_p. Check result of
11285 building conflict table.
11286
301b6a4e 11287 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 11288 (ira_color): Use ira_conflicts_p.
2ba9daa7 11289
311aab06
VM
11290 * global.c: Include ira.h.
11291 (pseudo_for_reload_consideration_p, build_insn_chain): Use
11292 ira_conflicts_p.
11293
11294 * Makefile.in (global.o): Add ira.h.
2ba9daa7 11295
311aab06
VM
11296 * ira-build.c (mark_all_loops_for_removal,
11297 propagate_some_info_from_allocno): New.
11298 (remove_unnecessary_allocnos): Call
11299 propagate_some_info_from_allocno.
11300 (remove_low_level_allocnos): New.
11301 (remove_unnecessary_regions): Add parameter. Call
11302 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
11303 parameter to remove_unnecessary_regions.
11304 (ira_build): Remove all regions but root if the conflict table was
11305 not built. Update conflict hard regs for allocnos crossing calls.
11306
11307 * ira.c (ira_conflicts_p): New global.
11308 (ira): Define and use ira_conflicts_p.
11309
11310 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11311 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 11312 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 11313
5641785f
BE
113142009-01-06 Ben Elliston <bje@au.ibm.com>
11315
11316 * gengtype-lex.l (YY_NO_INPUT): Define.
11317
e4e5261f
AP
113182009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
11319
11320 PR c/34911
5641785f
BE
11321 * c-common.c (handle_vector_size_attribute): Also reject
11322 BOOLEAN_TYPE types.
e4e5261f 11323
7b10257f
SP
113242009-01-05 Sebastian Pop <sebastian.pop@amd.com>
11325
11326 PR tree-optimization/38492
11327 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
11328 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11329 rename_map_elt_info, eq_rename_map_elts,
11330 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
11331 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11332 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11333 (sese_build_livein_liveouts): New.
11334 (new_sese, free_sese): New.
11335 (new_scop): Call new_sese.
11336 (free_scop): Call free_sese.
11337 (rename_variables_from_edge, rename_phis_end_scop): Removed.
11338 (register_old_new_names): Renamed register_old_and_new_names.
11339 (register_scop_liveout_renames, add_loop_exit_phis,
11340 insert_loop_close_phis, struct igp,
11341 default_liveout_before_guard, add_guard_exit_phis,
11342 insert_guard_phis, copy_renames): New.
11343 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
11344 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
11345 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
11346 (scop_adjust_phis_for_liveouts): New.
11347 (gloog): Call scop_adjust_phis_for_liveouts.
11348
11349 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 11350 num_ver and livein.
7b10257f
SP
11351 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
11352 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
11353 (struct scop): Added field liveout_renames.
11354 (SCOP_LIVEOUT_RENAMES): New.
11355
9761fcc7
HJ
113562009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
11357
11358 PR tree-optimization/38510
11359 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
11360 (translate_clast): Call recompute_all_dominators before
11361 graphite_verify.
11362 (gloog): Call recompute_all_dominators before graphite_verify.
11363
113642009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 11365 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
11366
11367 PR tree-optimization/38500
11368 * graphite.c (create_sese_edges): Call fix_loop_structure after
11369 splitting blocks.
11370
c95b2534 113712009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
11372
11373 * config.gcc: Add m32r*-*-rtems*.
11374 * config/m32r/rtems.h: New file.
11375
fc0cd180
BE
113762009-01-05 Ben Elliston <bje@au.ibm.com>
11377
11378 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
11379 (.po.pox): Likewise.
11380 (po/gcc.pot): Likewise.
11381
3106d8e5
DM
113822009-01-04 David S. Miller <davem@davemloft.net>
11383
11384 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11385 (STARTING_FRAME_OFFSET): Always set to zero.
11386
0009b473
RS
113872009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11388
11389 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
11390 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
11391 fixed-point types, and vectors of the same.
11392
4f24c6d6
RS
113932009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11394
11395 * config/mips/sync.md (*mb_barrier): Rename to...
11396 (*memory_barrier): ...this.
11397
1df48f5c
JW
113982009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
11399
11400 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 11401 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
11402 and put in alphabetical order. Fix 'target' name and put in order.
11403 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
11404 typos.
11405
1a8c13b3
UB
114062009-01-04 Uros Bizjak <ubizjak@gmail.com>
11407
11408 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
11409 (memory_barrier): Expand as unspec instead of unspec_volatile.
11410 Remove mem:BLK from insn operands. Use Pmode scratch register.
11411 (*memory_barrier): Define as unspec instead of unspec_volatile.
11412 Use (match_dup 0) as input operand.
11413
11414 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
11415 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
11416 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
11417 scratch register. Remove operand 1.
11418 (*stbar): Define as unspec instead of unspec_volatile.
11419 Use (match_dup 0) as input operand, remove (const_int 8).
11420 (*membar): Define as unspec instead of unspec_volatile.
11421 Use (match_dup 0) as input operand, remove input operand 2.
11422
11423 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
11424 (memory_barrier): Expand as unspec instead of unspec_volatile.
11425 Remove mem:BLK from insn operands. Use Pmode scratch register.
11426 (*memory_barrier): Define as unspec instead of unspec_volatile.
11427 Use (match_dup 0) as input operand.
11428
11429 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
11430 Remove mem:BLK from insn operands. Use Pmode scratch register.
11431 Set volatile flag on operand 0.
11432 (*memory_barrier): New insn pattern.
11433
11434 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
11435 insn operands.
11436 (*memory_barrier): Use (match_dup 0) as input operand.
11437
11438 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
11439 Remove mem:BLK from insn operands. Use Pmode scratch register.
11440 Set volatile flag on operand 0.
301b6a4e 11441 (*mb_internal): New insn pattern.
1a8c13b3
UB
11442
11443 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
11444
fb0703f7
SB
114452009-01-04 Steven Bosscher <steven@gcc.gnu.org>
11446
11447 PR middle-end/38586
11448 * function.c (struct temp_slot): Move to the section of the file
11449 that deals with temp slots. Remove field 'address'.
11450 (temp_slot_address_table): New hash table of address -> temp slot.
11451 (struct temp_slot_address_entry): New struct, items for the table.
11452 (temp_slot_address_compute_hash, temp_slot_address_hash,
11453 temp_slot_address_eq, insert_temp_slot_address): Support functions
11454 for the new table.
11455 (find_temp_slot_from_address): Rewrite to use the new hash table.
11456 (remove_unused_temp_slot_addresses): Remove addresses of temp
11457 slots that have been made available.
11458 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
11459 worker function for remove_unused_temp_slot_addresses.
11460 (assign_stack_temp_for_type): Don't clear the temp slot address list.
11461 Add the temp slot address to the address -> temp slot map.
11462 (update_temp_slot_address): Update via insert_temp_slot_address.
11463 (free_temp_slots): Call remove_unused_temp_slot_addresses.
11464 (pop_temp_slots): Likewise.
11465 (init_temp_slots): Allocate the address -> temp slot map, or empty
11466 the map if it is already allocated.
11467 (prepare_function_start): Initialize temp slot processing.
11468
b5a430f3
SB
114692009-01-04 Steven Bosscher <steven@gcc.gnu.org>
11470
11471 PR middle-end/38584
11472 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
11473 Calculate the size of all stack vars assuming no packing of stack
11474 vars will happen, replacing a quadratic algorithm with a linear one.
11475
5d560619
JJ
114762009-01-03 Jakub Jelinek <jakub@redhat.com>
11477
11478 PR target/38707
11479 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
11480 can't be used.
11481
953a7caa
DN
114822009-01-03 Diego Novillo <dnovillo@google.com>
11483
11484 * doc/contrib.texi: Update contributions.
11485
5f26a230
JJ
114862009-01-03 Jakub Jelinek <jakub@redhat.com>
11487
493aa551
JJ
11488 PR c++/38705
11489 * builtins.c (fold_builtin_memory_op): Give up if either operand
11490 is volatile. Set srctype or desttype to non-qualified version
11491 of the other type.
11492
5f26a230
JJ
11493 PR c/38700
11494 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
11495 and FUNCTION_DECLs.
11496
c95b2534 114972009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
11498
11499 PR rtl-optimization/35805
11500 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
11501 problem if fast dce is able to remove any instructions.
11502 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 11503
0b355794
MM
115042009-01-02 Mark Mitchell <mark@codesourcery.com>
11505
11506 PR 33649
11507 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
11508
0cf0d02b
JJ
115092009-01-02 Jakub Jelinek <jakub@redhat.com>
11510
11511 PR middle-end/38690
11512 * tree-flow.h (op_code_prio, op_prio): New prototypes.
11513 * tree-pretty-print.c (op_code_prio): New function.
11514 (op_prio): No longer static. Use op_code_prio.
11515 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
11516 Use op_prio and op_code_prio to determine if () should be
11517 printed around operand(s) or not.
11518
11519 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
11520 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
11521 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
11522 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
11523 pp_character instead of pp_string for single letter printing.
11524
e3606f3b
RS
115252009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
11526
11527 * doc/extend.texi: Fix '#pragma GCC option' typo.
11528
c95b2534 115292009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 11530
a5f061dc
RG
11531 * doc/install.texi (--enable-checking): Mention different
11532 default for stage1.
11533 (--enable-stage1-checking): Document.
00f39bd5 11534
26de0bcb
AP
115352009-01-01 Andrew Pinski <pinskia@gmail.com>
11536
11537 PR middle-end/30142
11538 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
11539 case to be an error.
11540
7a7d8fab
BE
115412009-01-02 Ben Elliston <bje@au.ibm.com>
11542
11543 * config/fp-bit.h (pack_d): Constify argument.
11544 * config/fp-bit.c (makenan): Constify return type. Remove casts.
11545 (isnan): Constify argument.
11546 (isinf): Likewise.
11547 (iszero): Likewise.
11548 (pack_d): Likewise.
11549 (_fpadd_parts): Constify return type.
11550 (_fpmul_parts): Likewise.
11551 (_fpdiv_parts): Likewise.
11552
b295aee2
JJ
115532009-01-01 Jakub Jelinek <jakub@redhat.com>
11554
11555 PR c/36489
11556 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
11557 warn about overwriting initializer with side-effects or
11558 -Woverride-init if !IMPLICIT.
11559 (output_init_element): Likewise. Pass IMPLICIT down to
11560 add_pending_init.
11561 (process_init_element): Add IMPLICIT argument. Pass it down
11562 to output_init_element.
11563 (push_init_element, pop_init_level, set_designator): Adjust
11564 process_init_element callers.
11565 (set_nonincremental_init, set_nonincremental_init_from_string):
11566 Adjust add_pending_init callers.
11567 (output_pending_init_elements): Adjust output_init_element callers.
11568 * c-tree.h (process_init_element): Adjust prototype.
11569 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
11570 process_init_element callers.
ad41bd84
JM
11571
11572\f
11573Copyright (C) 2009 Free Software Foundation, Inc.
11574
11575Copying and distribution of this file, with or without modification,
11576are permitted in any medium without royalty provided the copyright
11577notice and this notice are preserved.