]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR target/39561 (-mno-expand-cbranchdi broken)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
c3537723
KK
12009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
2
3 PR target/39561
4 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
5 TARGET_EXPAND_CBRANCHDI4.
6 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
7 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
8 (cmpeqdi): Fix comment.
9
cdeed45a
KK
102009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
11
12 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
13 (sh_legitimate_address_p): Likewise.
14 * config/sh/sh.c (sh_legitimate_index_p): New.
15 (sh_legitimate_address_p): Likewise.
16 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
17 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
18 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
19 (MAYBE_BASE_REGISTER_RTX_P): New macro.
20 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
21 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
22 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
23 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
24 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
25
02f0b13a
JH
262009-05-12 Jan Hubicka <jh@suse.cz>
27
28 * tree-inline.c (estimate_operator_cost): Add operands;
29 when division happens by constant, it is cheap.
30 (estimate_num_insns): Loads and stores are not having cost of 0;
31 EH magic stuff is cheap; when computing runtime cost of switch,
32 use log2 base of amount of its cases; builtin_expect has cost of 0;
33 compute cost for moving return value of call.
34 (init_inline_once): Initialize time_based flags.
35 * tree-inline.h (eni_weights_d): Add time_based flag.
36
ecb7f6de
PB
372009-05-12 Paolo Bonzini <bonzini@gnu.org>
38
39 * df-core.c: Update head documentation.
40
c24151ce
MM
412009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
42
43 PR bootstrap/40118
44 * rs6000.c (rs6000_generate_compare): Use op1b instead of
45 shadowing exisiting variable op1.
46
fbdf817d
UB
472009-05-12 Uros Bizjak <ubizjak@gmail.com>
48
704bf7c8 49 PR target/37179
fbdf817d
UB
50 * config/i386/driver-i386.c (processor_signatures): New enum.
51 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
52 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
53 processor signature to detect geode processor.
54
5e8d1826
PB
552009-05-12 Paolo Bonzini <bonzini@gnu.org>
56
57 Revert:
58
59 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
60
61 * optabs.c (prepare_cmp_insn): Temporarily disable test that
62 causes spurious differences between trunk and cond-optab branch.
63
f90b7a5a
PB
642009-05-12 Paolo Bonzini <bonzini@gnu.org>
65
fbdf817d
UB
66 * dojump.c (compare_from_rtx): Delete.
67 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
68 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
69 if the comparison does not satisfy the predicate; test predicates for
70 operands 2 and 3 of a cstore pattern. Don't try cstore optab
71 further if one existing pattern fails.
fbdf817d 72 * expr.h (compare_from_rtx): Delete.
f90b7a5a 73 (prepare_operand): Declare it.
fbdf817d 74 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 75 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
76 HAVE_conditional_trap, emit_cmp_insn): Delete.
77 (can_compare_p): Delete cmp_optab case.
f90b7a5a 78 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
79 Accept other parameters by value.
80 (prepare_operand): Make non-static.
81 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
82 other parameters by value. Try to widen operands here based on
83 an optab_methods argument and looking at cbranch_optab.
84 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
85 loop. Use cbranch_optab directly.
86 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
87 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
88 assertion.
89 (emit_conditional_move, emit_conditional_add): Inline what's needed
90 of compare_from_rtx, using new prepare_cmp_insn for the rest.
91 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
92 with COMPARE. Move cmov_optab and cstore_optab above
93 with cbranch_optab, move cmp_optab down with ucmp_optab,
94 remove tst_otpab. Do not initialize trap_rtx.
95 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
96 for trap code. Do not check HAVE_conditional_trap. Use
97 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
98 * optabs.h (OTI_cmp): Mark as used only for libcalls.
99 (OTI_ctrap, ctrap_optab): New.
100 (tst_optab): Delete.
101 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
102 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
103 with lookup of ctrap_optab.
104 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
105 setcc_gen_code): Delete.
106 (ctrap_optab): New.
107
108 * combine.c (combine_simplify_rtx, simplify_set): Do not
109 special case comparing against zero for cc0 machines.
f90b7a5a
PB
110 * simplify-rtx.c (simplify_binary_operation_1): Never remove
111 COMPARE on cc0 machines.
112 (simplify_relational_operation): Return a new expression when
113 a COMPARE could be removed.
fbdf817d
UB
114 * final.c (final_scan_insn): Compare cc_status values
115 against LHS of a (compare FOO (const_int 0)) cc0 source.
116 Also check if cc_status.value is the full compare.
f90b7a5a 117
fbdf817d
UB
118 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
119 (cstoreMM4): Document.
f90b7a5a 120 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 121 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
122 (Dependent Patterns): Eliminate obsolete information referring to
123 the old jump optimization phase.
fbdf817d 124 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
125 of compares with 0 on cc0 machines.
126 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
127 avoiding references to cc0. Remove text about storing operands
128 in cmpMM.
129 * doc/tm.texi (Condition Codes): Include blurb on different
130 condition code representations, separate into subsections for
131 CC0, MODE_CC and conditional execution.
132
fbdf817d
UB
133 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
134 alpha_emit_setcc): Accept operands and a machine mode.
135 * config/alpha/alpha.c (alpha_emit_conditional_branch):
136 Get code/op0/op1 from operands, use machine mode argument
137 instead of alpha_compare.fp_p. Emit the branch here.
138 (alpha_emit_setcc): Likewise, and return boolean.
139 (alpha_emit_conditional_move): Likewise. Assert that
140 cmp_op_mode == cmp_mode, and simplify accordingly.
141 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
142 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
143 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
144 Delete.
145 (stack probe test): Use cbranchdi4.
146 * config/alpha/predicates.md (alpha_cbranch_operator): New.
147
148 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
149 * config/arc/arc.h (movsicc, movsfcc): Use it.
150 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
151 (cbranchsi4, cstoresi4): New.
152 (cmpsi, bCC and sCC expanders): Remove.
153
154 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
155 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
156 * config/arm/predicates.md (arm_comparison_operator): Only include
157 floating-point operators if there is a hardware floating-point unit.
158 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
159 deferring to cbranch_cc and cstore_cc respectively.
160 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
161 cbranch_cc, cstore_cc): New.
162 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 163 arm_compare_op1.
fbdf817d
UB
164 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
165
166 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
167 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
168 as an argument.
169 (adjust_insn_length): Adjust calls.
170 (avr_reorg): Handle (compare (foo) (const_int 0)).
171 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
172 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
173 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
174 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
175 (bCC): Remove.
176 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
177 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
178
fbdf817d
UB
179 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
180 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 181 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
182 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
183 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
184 (bfin_optimize_loop): Use cbranch expander.
185 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
186 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
187 (bfin_bimode_comparison_operator): ... this.
188 (bfin_direct_comparison_operator): New.
f90b7a5a 189
fbdf817d
UB
190 * config/cris/cris.c (cris_normal_notice_update_cc): Look
191 inside (compare FOO (const_int 0)).
192 (cris_rtx_costs): Handle ZERO_EXTRACT.
193 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
194 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
195 (*tstdi_v32): Delete.
196 (*cmpdi_non_v32): Add M alternative for operand 1.
197 (cmpsi, cmp<mode>): Make private.
198 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
199 with COMPARE.
200 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
201
202 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
203 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
204 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
205 (cc_reg_operand): New.
206 (any_cond): Delete.
fbdf817d
UB
207 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
208 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
209 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
210 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
211 crx_expand_scond): Delete.
212
213 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
214 (cbranchsi4): New.
215 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
216 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
217
218 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
219 cstoresi4, cstoresf4, cstoredf4): New.
220 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
221 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
222 Receive the entire operands array.
223 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
224 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
225 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
226 Get test/op0/op1 from the operands array.
227 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
228
229 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
230 (h8300_expand_store): New.
231 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
232 (const_int 0)).
233 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
234 (h8300_expand_store): New.
235 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
236 or do not try to produce (set (cc0) REG).
237 (peepholes): Wrap arguments with COMPARE. Add a peephole to
238 change a compare into a move to a scratch register. Disable some
239 peepholes when comparing with zero.
240 (tstsi, tsthi, tstsi, cmpqi): Make private.
241 (cmphi): Delete.
242 (bCC, sCC): Delete.
243 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
244 cstoresi4): New.
f90b7a5a
PB
245
246 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
247 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
248 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
249 (ix86_emit_i387_log1p): Use cbranchxf2.
250 (ix86_expand_setcc): Return void.
251 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
252 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
253 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
254 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
255 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
256 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
257 (sCC and bCC expanders): Remove.
258 (stack_protect_test): Use cbranchcc4.
259
fbdf817d
UB
260 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
261 Delete.
262 (ia64_expand_compare): Accept three rtx by reference and return void.
263 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
264 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
265 from *expr. Update *expr with the BImode comparison to do.
266 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
267 cmptf, bCC, sCC, conditional_trap): Delete.
268 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
269 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
270 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
271 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
272 * config/ia64/predicates.md (ia64_cbranch_operator): New.
273
274 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
275 type of last argument.
276 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
277 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
278 use machine mode argument instead of branch_type. Remove dead
279 code for floating-point comparisons.
280 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
281 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
282 Remove.
283 (cbranchsi4, cstoresi4): New.
284 * config/iq2000/predicates.md (reg_or_const_operand): New.
285
286 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
287 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
288 (b<code>_op): Rewrite to...
289 (bcc_op): ... this, using match_operator.
290 (s<code>_op): Rewrite to...
291 (scc_op): ... this, using match_operator.
292 (s<code>_24_op): Rewrite to...
293 (scc_op_24): ... this, using match_operator.
294 (s<code>_<mode>): Rewrite to...
295 (cstore<mode>4): ... this, using match_operator.
296 (s<code>_<mode>_24): Rewrite to...
297 (cstore<mode>4_24): ... this, using match_operator.
298 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
299 m32c_unpend_compare, m32c_expand_scc): Delete.
300 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
301 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
302 (m32c_expand_movcc): Change NE to EQ if necessary.
303 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
304
305 * config/m32r/m32r-protos.h (gen_cond_store): New.
306 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
307 (gen_cond_store): New, from sCC patterns.
308 (m32r_expand_block_move): Use cbranchsi4.
309 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
310 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
311 (cbranchsi4, cstoresi4): New.
312
313 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
314 Delete.
315 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 316 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
317 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
318 Delete.
319 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
320 cmphi, cmpqi, bCC): Delete.
321 (cbranchsi4, cbranchhi4, cbranchqi4): New.
322 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
323 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
324 sets with COMPARE.
325
326 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
327 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
328 * config/m68k/constraints.md (H): New.
329 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
330 the define_insn below.
331 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
332 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
333 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
334 patterns): Wrap RHS with COMPARE.
335 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
336 (*cmpdi_internal): Name this pattern.
337 (cmpdi): Change to define_insn.
338 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
339 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
340 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
341 predicate.
342 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
343 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
344 (conditional_trap): Change to...
345 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
346 (*conditional_trap): Use the ordered_comparison_operator and
347 const1_operand predicates.
348 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
349 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
350 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
351 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
352
353 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
354 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
355 (mcore_gen_compare): New.
356 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
357 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
358 (mcore_gen_compare): ... this.
359 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
360 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
361 (stack probe pattern): Use cbranchsi4.
362
363 * config/mips/predicates.md (mips_cstore_operator): New.
364 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
365 * config/mips/mips.md (any_cond): Delete.
366 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
367 always succeed.
368 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
369 fixuns_truncsfdi2): Use cbranch patterns.
370 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
371 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
372 Adjust call to mips_expand_conditional_branch.
373 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
374 cstore<GPR:mode>4.
375 * config/mips/mips-protos.h (mips_expand_conditional_branch,
376 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
377 * config/mips/mips.c (cmp_operands): Delete.
378 (mips_emit_compare): Get comparison operands from *op0/*op1.
379 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
380 that it succeeds. Use op0/op1 instead of cmp_operands.
381 (mips_expand_conditional_branch, mips_expand_conditional_move,
382 mips_expand_conditional_trap): Likewise.
383 (mips_block_move_loop): Use cbranch patterns.
384 * config/mips/mips.h (cmp_operands): Delete.
385
386 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
387 (mmix_gen_compare_reg): Just return a register in the right CC mode.
388 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
389 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
390 (*cmpcc_folded): Rename to...
391 (*cmpdi_folded): this.
392 (*cmpcc): Rename to...
393 (*cmps): ... this.
394 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
395 (bCC): Remove.
396 (cbranchdi4): New.
397 (cbranchdf4): New. Handle invalid comparisons here.
398 * config/mmix/predicates.md (float_comparison_operator): New.
399
400 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
401 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
402 * config/mn10300/mn10300.md (tst): Delete.
403 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
404 Name these patterns and wrap RHS in a compare.
405 (*cmpsi): Make this pattern private. Include tst.
406 (*cmpsf): Make this pattern private.
407 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
408 (compare with zero peepholes): Likewise.
409 (bCC): Remove.
410 (cbranchsi4, cbranchsf4): New.
411 (casesi): Use cbranchsi4.
412
413 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
414 hppa_branch_type): Delete.
415 (return_addr_rtx): Use cbranchsi4.
416 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
417 Emit CCFPmode comparison here.
418 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
419 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
420 hppa_branch_type): Delete.
421 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
422 (movsicc, movdicc): Remove references to hppa_compare_op0,
423 hppa_compare_op1 and compare_from_rtx.
424 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
425 (casesi): Use cbranchsi4.
426
427 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
428 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
429 * config/pdp11/pdp11.md (register_or_const0_operand): New.
430 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
431 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
432 (bCC): Delete.
433 (cbranchdf4, cbranchhi4, cbranchqi4): New.
434 (*branch, *branch_inverted): New.
435
436 * config/picochip/picochip.md (cbranchhi4): Use
437 ordered_comparison_operator.
438 (cmphi, bCC): Remove.
439
440 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
441 (trap_comparison_operator): Delete.
442 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
443 rs6000_emit_cbranch): Accept mode and operands.
444 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
445 rs6000_compare_fp_p): Delete.
446 (rs6000_generate_compare): Accept mode and comparison. Extract code
447 and op0/op1 from there. Replace references to rs6000_compare_op0
448 and rs6000_compare_op1.
449 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
450 extract result from passed operands.
451 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
452 extract loc from passed operands.
453 (rs6000_emit_cmove): Likewise.
454 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
455 rs6000_compare_fp_p): Delete.
456 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
457 (cbranch<GPR>4, cbranch<FP>4): New.
458 (cstore<mode>4): New. Consolidate here all choices about when to use
459 portable or specialized sCC sequences.
460 (stack_protect_test): Use cbranchsi4.
461 (conditional_trap): Replace with ctrap<GPR>4.
462 (conditional trap insn): Replace trap_comparison_operator with
463 ordered_comparison_operator.
464
465 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
466 (s390_emit_prologue): Use ctrap.
467 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
468 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
469 New predicates replacing...
470 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
471 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
472 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
473 (add<mode>cc): Do not use s390_compare_op0/op1.
474 (s<code>): Change to...
475 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
476 (seq): Change to...
477 (cstorecc4): ... this. Handle EQ or NE equally.
478 (*sne): Un-privatize for use in cstorecc4.
479 (b<code>): Change to...
480 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
481 (conditional_trap): Replace with...
482 (ctrap<GPR>4, ctrap<FP>4): ... these.
483 (stack_protect): Use cbranchcc4.
484
485 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
486 * config/score/score-protos.h (score_gen_cmp): Delete.
487 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
488 (score_block_move-loop): Use cbranchsi4.
489 * config/score/score.md (cbranchsi4): New.
490 (cmpsi, bCC): Delete.
491 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
492 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
493 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
494 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
495 * config/score/score3.h (score3_gen_cmp): Delete.
496 * config/score/score7.h (score7_gen_cmp): Delete.
497
498 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
499 (sh_emit_scc_to_t): ... this. Return void.
500 (from_compare): Rename to...
501 (sh_emit_compare_and_branch): ... this.
502 (sh_emit_compare_and_set): New.
503 (sh_expand_t_scc): Accept operands.
504 * config/sh/predicates.md (sh_float_comparison_operator): New.
505 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
506 (prepare_scc_operands): Rename to...
507 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
508 arguments.
509 (sh_emit_cheap_store_flag): New.
f90b7a5a 510 (sh_emit_set_t_insn): New.
fbdf817d
UB
511 (from_compare): Rename to...
512 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
513 handling of TARGET_SH2E floating point to avoid recursive call.
514 Generate branch here.
515 (sh_emit_compare_and_set): New.
516 (sh_expand_t_scc): Get op0/op1 from arguments.
517 (sh_emit_cheap_store_flag): New.
518 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
519 cases.
f90b7a5a 520 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
521 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
522 (movsicc, movdicc): Do nothing when it recreated operands from
523 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
524 prepare_scc_operands (now sh_emit_scc_to_t).
525 (udivdi3): Use cstoresi4.
526 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
527 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
528 (cbranchint4_media, cbranchfp4_media): New.
529 (casesi): Use cbranchdi4.
530 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
531 Delete.
532 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
533 (movnegt): Remove second operand.
534 (cbranchsf4, cbranchdf4): New.
535 (stack_protect): Use cbranchdi4/cbranchsi4.
536
537 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
538 (gen_compare_reg): Accept comparison, extract part of it to...
539 (gen_compare_reg_1): ... this.
540 (gen_compare_operator): Delete.
541 (gen_v9_scc): Accept separate destination, comparison code and arms.
542 Do not use sparc_compare_op0/sparc_compare_op1.
543 (emit_scc_insn, emit_conditional_branch_insn): New.
544 (emit_v9_brxx): Make static. Remove useless assertion.
545 (sparc_emit_float_lib_cmp): Return RTL instead of calling
546 emit_cmp_insn.
547 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
548 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
549 sparc_emit_float_lib_cmp): Adjust prototype.
550 (emit_scc_insn, emit_conditional_branch_insn): New.
551 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
552 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
553 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
554 iterators to the top.
555 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
556 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 557 snedi_special_trunc): Delete.
fbdf817d 558 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 559 and snedi_special_trunc.
fbdf817d
UB
560 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
561 cbranchdi4, cbranch<F:mode>4): New.
562 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
563 here. Use gen_compare_reg instead of gen_compare_operator.
564 (conditional_trap): Replace with...
565 (ctrapsi4, ctrapdi4): ... this.
566 (stack_protect_test): Use cbranchcc4.
567
568 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
569 argument to rtx.
570 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
571 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
572 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
573 from operands[0] or operands[3] depending on is_set.
574 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
575 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
576 cmpdf, bCC), sCC: Remove.
577 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
578 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
579 cstoredf4): New.
580 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
581 spu_emit_branch_or_set.
582
583 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
584 Add two arguments.
585 * config/stormy16/stormy16.h (xstormy16_compare_op0,
586 xstormy16_compare_op1): Delete.
587 * config/stormy16/stormy16.c (xstormy16_compare_op0,
588 xstormy16_compare_op1): Delete.
589 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
590 Adjust calls.
591 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
592 (cmphi, cmpsi, bCC): Remove.
593
594 * config/v850/v850.md (tstsi, cmpsi): Fold into...
595 (*cmpsi): ... this one.
596 (cbranchsi4, cstoresi4): New.
597 (bCC expanders): Delete.
598 (sCC insns): Fold into...
599 (*setcc): ... this one.
600 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
601 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
602 (movsicc): Simplify.
603 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
604
fbdf817d
UB
605 * config/vax/vax-protos.h (cond_name): New.
606 (vax_output_conditional_branch): Remove.
607 * config/vax/vax.c (cond_name): New.
608 (vax_output_conditional_branch): Remove.
609 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
610 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
611 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
612 (bit<VAXint>): Wrap source with (compare).
613 (b<code> and following unnamed pattern): Rename to *branch and
614 *branch_reversed. Change macroization to match_operator.
615 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
616
617 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
618 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
619 Change last argument to machine_mode.
620 (xtensa_expand_scc): Add machine_mode argument.
621 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
622 (gen_conditional_move, xtensa_expand_conditional_branch,
623 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
624 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
625 Adjust operand numbers.
626 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
627 Delete.
628 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
629 (cmpsi, cmpsf, b<code>, s<code>): Delete.
630 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 631
16670495
PB
6322009-05-12 Paolo Bonzini <bonzini@gnu.org>
633
634 * optabs.c (prepare_cmp_insn): Temporarily disable test that
635 causes spurious differences between trunk and cond-optab branch.
636
4a4a4e99
AO
6372009-05-12 Alexandre Oliva <aoliva@redhat.com>
638
639 PR target/37137
640 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
641
72b9acff
AO
6422009-05-12 Alexandre Oliva <aoliva@redhat.com>
643
644 * tree.c (iterative_hash_pointer): Delete.
645 (iterative_hash_expr): Short-circuit handling of NULL pointer.
646 Hash UIDs and versions of SSA names. Don't special-case built-in
647 function declarations.
648
b7dd69ac
ILT
6492009-05-11 Ian Lance Taylor <iant@google.com>
650
651 PR bootstrap/40103
652 * graphite.c: Force -Wc++-compat to only be a warning before
653 #including "cloog/cloog.h".
654
ed102b70
MJ
6552009-05-11 Martin Jambor <mjambor@suse.cz>
656
657 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
658
08f1af2e
JH
6592009-05-11 Jan Hubicka <jh@suse.cz>
660
661 * tree-ssa-loop-ivcanon.c: Include target.h
662 (struct loop_size): new structure.
663 (constant_after_peeling): New predicate.
664 (tree_estimate_loop_size): New function.
665 (estimated_unrolled_size): Rewrite for new estimates.
666 (try_unroll_loop_completely): Use new estimates.
667 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
668
a7d39bd3
AP
6692009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
670
671 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
672 libcpp interface change.
673 (spu_macro_to_expand): Likewise.
674
f5a1f0d0
PB
6752009-05-11 Paolo Bonzini <bonzini@gnu.org>
676
677 PR tree-optimization/40026
678 * gimplify.c (gimplify_init_constructor): Change initial conditional
679 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
680 optimize_compound_literals_in_ctor.
681
c260f01f
NS
6822009-05-11 Nathan Sidwell <nathan@codesourcery.com>
683
684 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
685 New devices.
686 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
687
df398a37
L
6882009-05-11 H.J. Lu <hongjiu.lu@intel.com>
689
690 * tree-vect-data-refs.c (vect_analyze_group_access): Use
691 HOST_WIDE_INT for gap.
692
4da39468
IR
6932009-05-11 Ira Rosen <irar@il.ibm.com>
694
695 PR tree-optimization/40074
696 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
697 account in group size and step comparison.
698
4effdf02
RG
6992009-05-11 Richard Guenther <rguenther@suse.de>
700
701 * passes.c (init_optimization_passes): Strip now incorrect comment.
702 (execute_function_todo): Do not set PROP_alias.
703 * tree-pass.h (PROP_alias): Remove.
704 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
705 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
706 * tree-nrv.c (pass_return_slot): Likewise.
707 * tree-object-size.c (pass_object_sizes): Likewise.
708 * tree-ssa-dom.c (pass_dominator): Likewise.
709 (pass_phi_only_cprop): Likewise.
710 * tree-ssa-dse.c (pass_dse): Likewise.
711 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
712 (pass_cselim): Likewise.
713 * tree-ssa-pre.c (pass_pre): Likewise.
714 (pass_fre): Likewise.
715 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
716 * tree-ssa-sink.c (pass_sink_code): Likewise.
717 * tree-stdarg.c (pass_stdarg): Likewise.
718 * tree-tailcall.c (pass_tail_calls): Likewise.
719 * tree-vrp.c (pass_vrp): Likewise.
720
24b97832
ILT
7212009-05-10 Ian Lance Taylor <iant@google.com>
722
723 * basic-block.h (enum profile_status): Break out of struct
724 control_flow_graph.
725 * cgraph.h (struct inline_summary): Break out of struct
726 cgraph_local_info.
727 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
728 of struct cgraph_order_sort.
fbdf817d 729 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
730 * cse.c (struct branch_path): Break out of struct
731 cse_basic_block_data.
732 * except.h (enum eh_region_type): Break out of struct eh_region.
733 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 734 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
735 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
736 ggc_pch_data.
fbdf817d
UB
737 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
738 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
739 * sched-int.h (enum post_call_group): New enum, broken out of
740 struct deps.
741 (struct deps_reg): Break out of struct deps.
742 * target.h (struct asm_int_op): Break out of struct gcc_target.
743 * tree-eh.c (struct goto_queue_node): Break out of struct
744 leh_tf_state.
745 * tree-inline.h (enum copy_body_cge_which): Break out of
746 copy_body_data.
747 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
748
749 * c-decl.c (in_struct, struct_types): New static variables.
750 (pushtag): Add loc parameter. Change all callers.
751 (lookup_tag): Add ploc parameter. Change all callers.
752 (check_compound_literal_type): New function.
753 (parser_xref_tag): Add loc parameter. Change all callers. If
754 -Wc++-compat, warn about struct/union/enum types defined within a
755 struct or union.
756 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
757 and loc parameters. Change all callers. Change error calls to
758 error_at, using loc. For a redefinition, if the location of the
759 original definition is known, report it. Set in_struct and
fbdf817d 760 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
761 (finish_struct): Add new parameters enclosing_in_struct and
762 enclosing_struct_types. Change all callers. Set
763 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
764 in the struct. If in a struct, add this struct to struct_types.
765 (start_enum): Add loc parameter. Change all callers. Use
766 error_at for errors, using loc. For a redefinition, if the
767 location of the original definition is known, report it. If in a
768 struct, add this enum type to struct_types. If -Wc++-compat warn
769 if in sizeof, typeof, or alignof.
fbdf817d
UB
770 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
771 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
772 (c_parser_enum_specifier): Get enum location for start_enum.
773 (c_parser_struct_or_union_specifier): Get struct location for
774 start_struct. Save in_struct and struct_types status between
775 start_struct and finish_struct.
776 (c_parser_cast_expression): Get location of cast.
777 (c_parser_alignof_expression): Get location of type.
778 (c_parser_postfix_expression): Likewise.
779 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
780 parameter. Change all callers. Call check_compound_literal_type.
781 Use type_loc for error about variable size type.
782 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
783 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
784 (c_cast_expr): Add loc parameter. Change all callers. If
785 -Wc++-compat, warn about defining a type in a cast.
786 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
787 (start_enum, start_struct, finish_struct): Update declarations.
788 (parser_xref_tag, c_cast_expr): Update declarations.
789 (check_compound_literal_type): Declare.
790
7a2738fa
BE
7912009-05-11 Ben Elliston <bje@au.ibm.com>
792
793 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
794 for recent libcpp interface change.
795 (rs6000_macro_to_expand): Likewise.
796
af618949
MM
7972009-05-10 Michael Matz <matz@suse.de>
798
799 PR target/40031
800 * config/arm/arm.c (require_pic_register): Emit on entry edge,
801 not at entry of function.
802
b7d7a473
RG
8032009-05-10 Richard Guenther <rguenther@suse.de>
804
805 PR tree-optimization/40081
806 Revert
807 * tree-sra.c (instantiate_element): Instantiate scalar replacements
808 using the main variant of the element type. Do not fiddle with
809 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
810
811 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
812 structs with volatile fields.
813
078c3644
JH
8142009-05-10 Jan Hubicka <jh@suse.cz>
815
816 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
817 (estimate_move_cost): Assert that it does not get called for
818 VOID_TYPE_P.
078c3644
JH
819 (estimate_num_insns): Skip VOID types in argument handling.
820 (optimize_inline_calls): Delete unreachable blocks and verify that
821 callgraph is valid.
822
39ff5a96
JH
8232009-05-10 Jan Hubicka <jh@suse.cz>
824
825 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
826 * cgraph.c (cgraph_mark_address_taken_node): New function.
827 (dump_cgraph_node): Dump new flag.
828 * cgraph.h (struct cgraph_node): Add address_taken.
829 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
830 * ipa.c (cgraph_postorder): Prioritize functions with address taken
831 since new direct calls can be born.
832
9a0c6187
JM
8332009-05-10 Joseph Myers <joseph@codesourcery.com>
834
835 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
836 tok->val.node.node.
837
4b685e14
JH
8382009-05-10 Jan Hubicka <jh@suse.cz>
839
840 PR middle-end/40084
fb0be169
EB
841 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
842 argument; rewrite.
4b685e14
JH
843 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
844 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
845 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
846 (fold_marked_statements): Update call to
847 cgraph_update_edges_for_call_stmt.
4b685e14 848
29d08eba
JM
8492009-05-10 Joseph Myers <joseph@codesourcery.com>
850
851 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
852 identifiers in diagnostics.
853 * config/arm/arm.c (arm_handle_fndecl_attribute,
854 arm_handle_isr_attribute): Likewise.
855 * config/avr/avr.c (avr_handle_progmem_attribute,
856 avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
857 Likewise.
858 * config/bfin/bfin.c (handle_int_attribute,
859 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
860 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
861 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
862 Likewise.
863 * config/darwin.c (darwin_handle_kext_attribute,
864 darwin_handle_weak_import_attribute): Likewise.
865 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
866 h8300_handle_eightbit_data_attribute,
867 h8300_handle_tiny_data_attribute): Likewise.
868 * config/i386/i386.c (ix86_handle_cconv_attribute,
869 ix86_handle_abi_attribute, ix86_handle_struct_attribute):
870 Likewise.
871 * config/i386/winnt.c (ix86_handle_shared_attribute,
872 ix86_handle_selectany_attribute): Likewise.
873 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
874 * config/m32c/m32c.c (function_vector_handler): Likewise.
875 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
876 m68hc11_handle_fntype_attribute): Likewise.
877 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
878 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
879 * config/mips/mips.c (mips_insert_attributes,
880 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
881 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
882 rs6000_handle_struct_attribute): Likewise.
883 * config/sh/sh.c (sh_insert_attributes,
884 sh_handle_resbank_handler_attribute,
885 sh_handle_interrupt_handler_attribute,
886 sh2a_handle_function_vector_handler_attribute,
887 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
888 Likewise.
889 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
890 * config/spu/spu.c (spu_handle_fndecl_attribute,
891 spu_handle_vector_attribute): Likewise.
892 * config/stormy16/stormy16.c
893 (xstormy16_handle_interrupt_attribute): Likewise.
894 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
895 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
896
f41c4af3
JM
8972009-05-10 Joseph Myers <joseph@codesourcery.com>
898
899 * pretty-print.h (struct pretty_print_info): Add
900 translate_identifiers.
901 (pp_translate_identifiers): New.
902 (pp_identifier): Only conditionally translate identifier to locale
903 character set.
904 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
905 (pp_base_tree_identifier): Only conditionally translate identifier
906 to locale character set.
907 * c-pretty-print.c (M_): Define.
908 (pp_c_type_specifier, pp_c_primary_expression): Mark English
909 fragments for conditional translation with M_.
910 * tree-pretty-print.c (maybe_init_pretty_print): Disable
911 identifier translation.
912
896d7dbd
RG
9132009-05-10 Richard Guenther <rguenther@suse.de>
914
915 PR tree-optimization/40081
916 * tree-sra.c (instantiate_element): Instantiate scalar replacements
917 using the main variant of the element type. Do not fiddle with
918 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
919
9a23acef
JH
9202009-05-09 Jan Hubicka <jh@suse.cz>
921
922 PR middle-end/40080
923 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
924 indirect calls; verify cgraph afterwards.
925
d563610d
JH
9262009-05-09 Jan Hubicka <jh@suse.cz>
927
928 PR bootstrap/40082
929 * ipa.c (update_inlined_to_pointer): New function.
930 (cgraph_remove_unreachable_nodes): Use it.
931
f08a18d0
JH
9322009-05-09 Jan Hubicka <jh@suse.cz>
933
934 * tree-eh.c (struct leh_state): Remove prev_try.
935 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
936 not track prev_try.
937 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
938 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
939 remove_eh_handler_and_replace, foreach_reachable_handler,
940 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
941 * except.h (struct eh_region): Remove eh_region_u_cleanup.
942 (gen_eh_region_cleanup): Update prototype.
943
0afd7219
JH
9442009-05-09 Jan Hubicka <jh@suse.cz>
945
946 PR middle-end/40043
947 * except.c (copy_eh_region): Always set prev_try.
948 (redirect_eh_edge_to_label): Find outer try.
949 (foreach_reachable_handler): When looking for prev try
950 handle case where previous try is not going to be taken.
951
ad6c0864
MM
9522009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
953
954 PR tree-optimization/40049
955 * tree-vect-stmts.c (vectorizable_operation): If the machine has
956 only vector/vector shifts, convert the type of the constant to the
957 appropriate type to avoid building incorrect trees, which
958 eventually have problems with garbage collection.
959
c94f9067
JM
9602009-05-08 Joseph Myers <joseph@codesourcery.com>
961
962 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
963 -1 for complex floating-point types if honoring signed zeros.
964
9187e02d
JH
9652009-05-08 Jan Hubicka <jh@suse.cz>
966
20acb8a2
EB
967 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
968 argument; handle correctly when profile is absent.
9187e02d
JH
969 (build_cgraph_edges): Update.
970 (rebuild_cgraph_edges): Update.
20acb8a2
EB
971 * cgraph.c: Do not include varray.h.
972 (cgraph_set_call_stmt_including_clones): New function.
973 (cgraph_create_edge_including_clones): Likewise
974 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
975 (cgraph_update_edges_for_call_stmt): Handle clones.
976 (cgraph_remove_node): Handle clone tree.
977 (cgraph_remove_node_and_inline_clones): New function.
978 (dump_cgraph_node): Dump clone tree.
979 (cgraph_clone_node): Handle clone tree.
20acb8a2 980 (clone_function_name): Bring here from tree-inline.c.
9187e02d 981 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
982 * cgraph.h (ipa_replace_map): Move here from ipa.h.
983 (cgraph_clone_info): New function.
9187e02d 984 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
985 (cgraph_remove_node_and_inline_clones,
986 cgraph_set_call_stmt_including_clones,
987 cgraph_create_edge_including_clones,
988 cgraph_create_virtual_clone): Declare.
9187e02d
JH
989 (cgraph_function_versioning): Use VEC argument.
990 (compute_call_stmt_bb_frequency): Update prototype.
991 (cgraph_materialize_all_clones): New function.
992 * ipa-cp.c (ipcp_update_cloned_node): Remove.
993 (ipcp_create_replace_map): Update to VECtors.
994 (ipcp_update_callgraph): Use virtual clones.
995 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
996 (ipcp_update_profiling): Do not update local profiling.
997 (ipcp_insert_stage): Use VECtors and virtual clones.
998 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
999 (clone_of_p): New function.
1000 (cgraph_preserve_function_body_p): Use clone tree.
1001 (cgraph_optimize): Materialize clones.
1002 (cgraph_function_versioning): Update for VECtors.
1003 (save_inline_function_body): Use clone tree.
20acb8a2
EB
1004 (cgraph_materialize_clone): New function.
1005 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
1006 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
1007 * ipa.c: Include gimple.h.
1008 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
1009 * ipa-prop.c (ipa_note_param_call): Update call to
1010 compute_call_stmt_bb_frequencycall.
9187e02d 1011 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 1012 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
1013 (copy_bb): Handle updating of clone tree; add new edge when new call
1014 appears.
1015 (expand_call_inline): Be strict about every call having edge.
1016 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
1017 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
1018 (tree_function_versioning): Use VECtors; always remove unreachable
1019 blocks and fold conditionals.
1020 * tree-inline.h: Do not include varray.h.
9187e02d
JH
1021 (tree_function_versioning): Remove.
1022 * Makefile.in (GTFILES): Remove tree-inline.c
1023 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
1024 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
1025 tree.
9187e02d 1026
9b86d6bb
L
10272009-05-08 H.J. Lu <hongjiu.lu@intel.com>
1028 Andrew Morrow <acm@google.com>
1029
1030 PR c/36892
1031 * c-common.c (c_common_attribute_table): Permit deprecated
1032 attribute to take an optional argument.
1033 (handle_deprecated_attribute): If the optional argument to
1034 __attribute__((deprecated)) is not a string ignore the attribute
1035 and emit a warning.
1036
1037 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
1038 * c-typeck.c (build_component_ref): Likewise.
1039 (build_external_ref): Likewise.
1040
1041 * toplev.c (warn_deprecated_use): Add an attribute argument.
1042 Emit the message associated with __attribute__((deprecated)).
1043
1044 * toplev.h (warn_deprecated_use): Updated.
1045
1046 * doc/extend.texi: Document new optional parameter to
1047 __attribute__((deprecated))
1048
82ad047f
ME
10492009-05-08 Michael Eager <eager@eagercon.com>
1050
1051 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1052 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1053
788d3075
RG
10542009-05-08 Richard Guenther <rguenther@suse.de>
1055
1056 PR tree-optimization/40062
1057 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1058 Avoid exponential behavior.
1059
00952e97
PB
10602009-05-08 Paolo Bonzini <bonzini@gnu.org>
1061
1062 PR rtl-optimization/33928
1063 PR 26854
1064 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1065 process_uses, build_single_def_use_links): New.
1066 (update_df): Update use_def_ref.
1067 (forward_propagate_into): Use get_def_for_use instead of use-def
1068 chains.
1069 (fwprop_init): Call build_single_def_use_links and let it initialize
1070 dataflow.
1071 (fwprop_done): Free use_def_ref.
1072 (fwprop_addr): Eliminate duplicate call to df_set_flags.
1073 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
1074 df_rd_simulate_one_insn): New.
1075 (df_rd_bb_local_compute_process_def): Update head comment.
1076 (df_chain_create_bb): Use the new RD simulation functions.
1077 * df.h (df_rd_simulate_artificial_defs_at_top,
1078 df_rd_simulate_one_insn): New.
1079 * opts.c (decode_options): Enable fwprop at -O1.
1080 * doc/invoke.texi (-fforward-propagate): Document this.
1081
2ca862e9
JM
10822009-05-08 Joseph Myers <joseph@codesourcery.com>
1083
1084 PR c/24581
1085 * c-typeck.c (build_binary_op): Handle arithmetic between one real
1086 and one complex operand specially.
1087 * tree-complex.c (some_nonzerop): Do not identify a real value as
1088 zero if flag_signed_zeros.
1089
3e807ffc
PB
10902009-05-08 Paolo Bonzini <bonzini@gnu.org>
1091
1092 PR rtl-optimization/33928
7925c06c 1093 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 1094
1bfdbb29
PB
10952009-05-08 Paolo Bonzini <bonzini@gnu.org>
1096
1097 PR rtl-optimization/33928
e913423f
EB
1098 * loop-invariant.c (struct use): Add addr_use_p.
1099 (struct def): Add n_addr_uses.
1100 (struct invariant): Add cheap_address.
1101 (create_new_invariant): Set cheap_address.
1102 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
1103 (record_uses): Pass df_ref to record_use.
1104 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1105 used only as such.
1bfdbb29 1106
702cb2a0
KK
11072009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
1108
1109 * config/sh/sh.c: Do not include c-pragma.h.
1110
5e8df753
AP
11112009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
1112
1113 * config/spu/spu.c: Remove include of c-common.h.
1114
6ec637a4
JJ
11152009-05-07 Janis Johnson <janis187@us.ibm.com>
1116
1117 PR c/39037
1118 * c-common.h (mark_valid_location_for_stdc_pragma,
1119 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1120 clear_float_const_decimal64, float_const_decimal64_p): New.
1121 * c.opt (Wunsuffixed-float-constants): New.
1122 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1123 unsuffixed float constant, handle new warning.
1124 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1125 * c-decl.c (c_scope): New flag float_const_decimal64.
1126 (set_float_const_decimal64, clear_float_const_decimal64,
1127 float_const_decimal64_p): New.
1128 (push_scope): Set new flag.
1129 * c-parser.c (c_parser_translation_unit): Mark when it's valid
1130 to use STDC pragmas.
1131 (c_parser_external_declaration): Ditto.
1132 (c_parser_compound_statement_nostart): Ditto.
1133 * c-pragma.c (valid_location_for_stdc_pragma,
1134 mark_valid_location_for_stdc_pragma,
1135 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1136 handle_pragma_float_const_decimal64): New.
1137 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1138 * cp/semantics.c (valid_location_for_stdc_pragma_p,
1139 set_float_const_decimal64, clear_float_const_decimal64,
1140 float_const_decimal64_p): New dummy functions.
1141 * doc/extend.texi (Decimal Float): Remove statement that the
1142 pragma, and suffix for double constants, are not supported.
1143 * doc/invoke.texi (Warning Options): List new option.
1144 (-Wunsuffixed-float-constants): New.
1145
45b9b2e9
SB
11462009-05-08 Steven Bosscher <steven@gcc.gnu.org>
1147
1148 * config/i386/i386.c: Do not include c-common.h.
1149
e71da632
MH
11502009-05-07 Mark Heffernan <meheff@google.com>
1151
1152 * doc/invoke.texi (Debugging Options): Document change of debugging
1153 dump location.
e913423f 1154 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
1155 aux_base_name directory.
1156
fe4c7bc6
HS
11572009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1158
1159 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1160 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1161
3b3e44eb
RAE
11622009-05-07 Rafael Avila de Espindola <espindola@google.com>
1163
1164 * Makefile.in (install-plugin): Simplify a bit.
1165
fac41238
PB
11662009-05-07 Paolo Bonzini <bonzini@gnu.org>
1167
1168 * Makefile.in (OBJS-common): Add regcprop.o.
1169 (regcprop.o): New.
1170 * timevar.def (TV_CPROP_REGISTERS): New.
1171 * regrename.c (regrename_optimize): Return 0.
1172 (rest_of_handle_regrename): Delete.
1173 (pass_rename_registers): Point to regrename_optimize.
1174 (struct value_data_entry, struct value_data,
1175 kill_value_one_regno, kill_value_regno, kill_value,
1176 set_value_regno, init_value_data, kill_clobbered_value,
1177 kill_set_value, kill_autoinc_value, copy_value,
1178 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1179 replace_oldest_value_reg, replace_oldest_value_addr,
1180 replace_oldest_value_mem, copyprop_hardreg_forward_1,
1181 debug_value_data, validate_value_data): Move...
1182 * regcprop.c: ... here.
1183 (rest_of_handle_cprop): Delete.
1184 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1185
472e0df9
JJ
11862009-05-07 Jakub Jelinek <jakub@redhat.com>
1187
1188 PR middle-end/40057
1189 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1190 GEN_INT for 1 << bitnum.
1191 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1192 build_int_cst_type.
1193
0d50d55a
UB
11942009-05-07 Uros Bizjak <ubizjak@gmail.com>
1195
1196 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 1197 Remove wrong description of "nand" operation.
0d50d55a 1198
22f597f1
RG
11992009-05-06 Richard Guenther <rguenther@suse.de>
1200 Adam Nemet <anemet@caviumnetworks.com>
1201
1202 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1203 comment. Add that if LHS is not a gimple register, then RHS1 has
1204 to be a single object (GIMPLE_SINGLE_RHS).
1205
641cac0b
AN
12062009-05-06 Adam Nemet <anemet@caviumnetworks.com>
1207
1208 * expr.c (get_def_for_expr): Move it up in the file.
1209 (store_field): When expanding a bit-field store, look at the
1210 defining gimple stmt for the masking conversion.
1211
5a5c6435
JJ
12122009-05-06 Janis Johnson <janis187@us.ibm.com>
1213
1214 PR middle-end/39986
1215 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1216 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1217 32-bit memcpy into long.
1218
96474f36
JJ
12192009-05-06 Jakub Jelinek <jakub@redhat.com>
1220
1221 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1222 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1223 new_reg_loc_descr.
1224 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1225 instead of appending DW_OP_deref*.
1226
529ff441
MM
12272009-05-06 Michael Matz <matz@suse.de>
1228
1229 PR middle-end/40021
1230 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1231 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1232
9419a9fd
RAE
12332009-05-06 Rafael Avila de Espindola <espindola@google.com>
1234
1235 * Makefile.in (install-plugin): Fix srcdir handling.
1236
fff1894c
AB
12372009-05-06 Andrey Belevantsev <abel@ispras.ru>
1238
1239 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1240 when processing for not_regs_needed bitmap.
1241 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1242 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
1243 handling it for rhs.
1244
700ae70c
L
12452009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1246
ab3426a7 1247 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 1248 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
1249 * config/i386/predicates.md (incdec_operand): Likewise.
1250 (aligned_operand): Likewise.
1251 * config/i386/sse.md (divv8sf3): Likewise.
1252 (sqrtv8sf2): Likewise.
1253
67341fb5
L
12542009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1255
1256 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1257
1258 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1259
87946f42
L
12602009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1261
1262 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1263 ssemodesuffixf2c with avxmodesuffixf2c.
1264
1202aec1
JM
12652009-05-06 Joseph Myers <joseph@codesourcery.com>
1266
1267 PR c/40032
aa016ff7 1268 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 1269
6e57a01d
JJ
12702009-05-05 Jakub Jelinek <jakub@redhat.com>
1271
1272 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1273 (struct tree_base): Adjust spacing for 8 bit boundaries.
1274 (struct tree_decl_common): Add decl_by_reference_flag bit.
1275 (DECL_BY_REFERENCE): Adjust.
1276 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1277 print DECL_BY_REFERENCE bit.
1278 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1279 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1280 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1281 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
1282 unconditionally.
1283
32f579f6
JJ
1284 PR middle-end/39666
1285 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1286 range of the type, but default label is missing, add it with one
1287 of the existing labels instead of adding a new label for it.
1288
617ab743
JM
12892009-05-05 Joseph Myers <joseph@codesourcery.com>
1290
1291 * dwarf.h: Remove.
1292
bf016de8
RAE
12932009-05-05 Rafael Avila de Espindola <espindola@google.com>
1294
1295 * Makefile.in (enable_plugin, plugin_includedir): New.
1296 (install): Depend on install-plugin.
1297 (PLUGIN_HEADERS): New.
1298 (install-plugin): New.
1299 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1300
7f8fdb9f
RG
13012009-05-05 Richard Guenther <rguenther@suse.de>
1302
1303 PR tree-optimization/40022
1304 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1305 the only vuse.
1306 (phivn_valid_p): Fix tuplification error, simplify.
1307 (phiprop_insert_phi): Add dumps.
1308 (propagate_with_phi): Simplify.
1309
8d972839
RG
13102009-05-05 Richard Guenther <rguenther@suse.de>
1311
1312 PR middle-end/40023
aa016ff7 1313 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 1314
66ba9b0b
SZ
13152009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
1316
1317 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
1318 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1319 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1320 block_ultimate_origin): Rearrange the declarations line to match the
1321 comment that indicates the .c file which the functions are defined.
1322 (dwarf2out_*, set_decl_rtl): Add comment.
1323 (get_base_address): Adjust comment.
1324 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1325 declarations line and add comment.
1326 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 1327
4f1e4960
JM
13282009-05-04 Joseph Myers <joseph@codesourcery.com>
1329
1330 * attribs.c (decl_attributes): Use %qE for identifiers in
1331 diagnostics.
1332 * cgraphunit.c (verify_cgraph_node): Translate function names to
1333 locale character set in diagnostics.
1334 * coverage.c (get_coverage_counts): Use %qE for identifiers in
1335 diagnostics.
1336 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1337 Document that functions are named in UTF-8.
1338 * expr.c (expand_expr_real_1): Translate function names to locale
1339 character set in diagnostics.
1340 * gimplify.c (omp_notice_variable, omp_is_private,
1341 gimplify_scan_omp_clauses): Use %qE for identifiers in
1342 diagnostics.
1343 * langhooks.c (lhd_print_error_function): Translate function names
1344 to locale character set.
1345 * langhooks.h (decl_printable_name): Document that return value is
1346 in internal character set.
1347 * stmt.c: Include pretty-print.h
1348 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1349 diagnostics.
1350 (resolve_operand_name_1): Translate named operand name to locale
1351 character set.
1352 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1353 diagnostics.
1354 * toplev.c (announce_function): Translate function names to locale
1355 character set.
1356 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1357 (default_tree_printer): Use pp_identifier or translate identifiers
1358 to locale character set. Mark "<anonymous>" for translation.
1359 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1360 for identifiers in diagnostics.
1361 * tree.c (handle_dll_attribute): Use %qE for identifiers in
1362 diagnostics.
1363 * varasm.c (output_constructor): Use %qE for identifiers in
1364 diagnostics.
1365
40540e68
RAE
13662009-05-04 Rafael Avila de Espindola <espindola@google.com>
1367
1368 * configure.ac: use ` ` instead of $()
1369 * configure: Regenerate.
1370
33fc884c
BE
13712009-05-05 Ben Elliston <bje@au.ibm.com>
1372
1373 * config/pa/linux-atomic.c: Eliminate conditional include of
1374 errno.h on non-LP64 systems to simplify build requirements.
1375
88388a52
JM
13762009-05-04 Joseph Myers <joseph@codesourcery.com>
1377
1378 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1379 diagnostics.
1380 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1381 and pass value to identifier_to_locale.
1382 (warn_variable_length_array): Make name a tree.
1383 (grokdeclarator): Separate diagnostic texts for named and unnamed
1384 declarators. Use %qE for named declarators.
1385 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
1386 diagnostics.
1387 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
1388 identifiers in diagnostics.
1389 * c-typeck.c (push_member_name, start_init): Pass identifiers to
1390 identifier_to_locale. Mark "anonymous" strings for translation.
1391
960c5c79
ME
13922009-05-04 Michael Eager <eager@eagercon.com>
1393
1394 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 1395 address for DImode/DFmode only if double-precision FP regs.
960c5c79 1396
d083fbba
ME
13972009-05-04 Michael Eager <eager@eagercon.com>
1398
1399 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
1400 TARGET_SINGLE_FLOAT check.
1401
c3ba8d32
ME
14022009-05-04 Michael Eager <eager@eagercon.com>
1403
1404 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
1405
edce9f18
ME
14062009-05-04 Michael Eager <eager@eagercon.com>
1407
1408 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
1409 * config/rs6000/t-xilinx: New
1410
506d7b68
PB
14112009-05-04 Paolo Bonzini <bonzini@gnu.org>
1412
e913423f 1413 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
1414 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
1415 * gcc/explow.c (memory_address): Use target hook.
1416 * gcc/targhooks.c (default_legitimize_address): New.
1417 * gcc/targhooks.h (default_legitimize_address): New.
1418 * gcc/target.h (legitimize_address): New.
1419 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
1420 (TARGET_INITIALIZER): Include it.
1421 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
1422
1423 * config/bfin/bfin-protos.h (legitimize_address): Remove.
1424 * config/bfin/bfin.c (legitimize_address): Remove.
1425 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
1426 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
1427 Remove.
506d7b68
PB
1428 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
1429 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
1430
1431 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
1432 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
1433 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
1434 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
1435 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
1436 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
1437 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
1438 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
1439 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
1440 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
1441 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
1442 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
1443 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
1444 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
1445 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
1446 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
1447 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
1448 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
1449 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
1450 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
1451 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
1452 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
1453 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
1454
1455 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
1456 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
1457 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
1458 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
1459 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
1460 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
1461 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
1462 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
1463 (thumb_legitimize_address): Delete.
1464 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
1465 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
1466 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
1467 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
1468 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
1469 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
1470 Delete.
1471 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
1472 Delete.
506d7b68
PB
1473
1474 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
1475 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
1476 * config/m32r/m32r.c (m32r_legitimize_address): New.
1477 * config/m68k/m68k.c (m68k_legitimize_address): New.
1478 * config/score/score.c (score_legitimize_address): Standardize.
1479 * config/score/score3.c (score3_legitimize_address): Standardize.
1480 * config/score/score3.h (score3_legitimize_address): Adjust.
1481 * config/score/score7.c (score7_legitimize_address): Standardize.
1482 * config/score/score7.h (score7_legitimize_address): Adjust.
1483 * config/sh/sh.c (sh_legitimize_address): New.
1484 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
1485
1486 * gcc/config/s390/s390.c (legitimize_address): Rename to...
1487 (s390_legitimize_address): ... this.
1488 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
1489 (sparc_legitimize_address): ... this.
1490 * gcc/config/i386/i386.c (legitimize_address): Rename to...
1491 (ix86_legitimize_address): ... this.
1492 * gcc/config/avr/avr.c (legitimize_address): Rename to...
1493 (avr_legitimize_address): ... this.
1494 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
1495 (mn10300_legitimize_address): ... this.
1496 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
1497 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
1498 (alpha_expand_mov): Adjust call.
1499
1500 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
1501 * config/spu/spu.c (spu_legitimize_address): Likewise.
1502 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
1503 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
1504
a3af5087
JM
15052009-05-04 Joseph Myers <joseph@codesourcery.com>
1506
1507 * intl.c (locale_encoding, locale_utf8): New.
1508 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
1509 * intl.h (locale_encoding, locale_utf8): Declare.
1510 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
1511 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
1512 New.
1513 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
1514 argument.
1515 (pp_tree_identifier): Define to call pp_base_tree_identifier.
1516 (pp_base_tree_identifier): Declare as function.
1517 (identifier_to_locale): Declare.
1518 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 1519 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 1520
ea5cd5f1
RG
15212009-05-04 Richard Guenther <rguenther@suse.de>
1522
1523 PR middle-end/40015
1524 * builtins.c (fold_builtin_memory_op): Do not decay to element
1525 type if the size matches the whole array.
1526
ddc2690a
KH
15272009-05-04 Kazu Hirata <kazu@codesourcery.com>
1528
1529 * expmed.c (synth_mult): When trying out a shift, pass the result
1530 of a signed shift.
1531
ef268d34
KH
15322009-05-04 Kazu Hirata <kazu@codesourcery.com>
1533
1534 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
1535 (shiftsub1_cost): New.
1536 (init_expmed): Compute shiftsub1_cost.
1537 (synth_mult): Optimize multiplications by constants of the form
1538 -(2^^m-1) for some constant positive integer m.
1539
255d3827
RG
15402009-05-03 Richard Guenther <rguenther@suse.de>
1541
1542 PR c/39983
1543 * c-typeck.c (array_to_pointer_conversion): Do not built
1544 ADDR_EXPRs of arrays of pointer-to-element type.
1545 * c-gimplify.c (c_gimplify_expr): Revert change fixing
1546 up wrong ADDR_EXPRs after-the-fact.
1547 * c-common.c (strict_aliasing_warning): Strip pointer
1548 conversions for obtaining the original type.
1549 * builtins.c (fold_builtin_memset): Handle array types.
1550 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
1551 and array types
1552
16c33770
RG
15532009-05-03 Richard Guenther <rguenther@suse.de>
1554
1555 PR middle-end/23329
1556 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
1557 Do not lose casts from array types with unknown extent to array
1558 types with known extent.
1559 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
1560 alias set compatibility.
1561
62a67c94
MLI
15622009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
1563
1564 * flags.h (extra_warnings): Delete.
1565 * toplev.c (process_options): Handle Wuninitialized here.
1566 * opts.c (extra_warnings): Delete.
1567 (set_Wextra): Delete.
1568 (common_handle_option): -Wextra can be handled automatically.
1569 * c-opts.c (c_common_handle_option): Delete obsolete code.
1570 (c_common_post_options): Simplify comment.
1571 * common.opt (W): Add Var.
1572 (Wextra): Add Var.
1573 (Wuninitialized): Initialize to -1.
1574
8c7926c4
AN
15752009-05-03 Adam Nemet <anemet@caviumnetworks.com>
1576 Richard Guenther <rguenther@suse.de>
1577
1578 * expr.c (get_def_for_expr): New function.
1579 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
1580 SSA rather than trees.
1581 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
1582 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
1583
fa5da7de
JM
15842009-05-03 Joseph Myers <joseph@codesourcery.com>
1585
1586 * c-common.c (reswords): Add _Imaginary.
1587 * c-common.c (enum rid): Add RID_IMAGINARY.
1588
2ddd5020
PB
15892009-05-03 Paolo Bonzini <bonzini@gnu.org>
1590
1591 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
1592 Patch by Richard Guenther.
1593
aea88c05
AS
15942009-05-03 Anatoly Sokolov <aesok@post.ru>
1595
1596 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
1597 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1598 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
1599 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
1600 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
1601 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
1602 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
1603 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
1604 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
1605 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
1606 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
1607 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
1608 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
1609 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
1610 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
1611 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
1612 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
1613 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
1614
85e59f3a
RG
16152009-05-02 Richard Guenther <rguenther@suse.de>
1616
1617 PR tree-optimization/39940
1618 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
1619 doing so.
1620
4636b850
RG
16212009-05-02 Richard Guenther <rguenther@suse.de>
1622
1623 PR middle-end/40001
1624 * tree-ssa.c (execute_update_addresses_taken): Properly check
1625 if we can mark a variable DECL_GIMPLE_REG_P.
1626 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
1627 back to the end of the function.
1628 (is_gimple_reg_type): Remove complex type special casing.
1629 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
1630 if not optimizing.
1631
5e10cb5a
BE
16322009-05-02 Ben Elliston <bje@au.ibm.com>
1633
1634 * doc/collect2.texi (Collect2): Document search path behaviour
1635 when configured with --with-ld.
1636
048bf48b
JH
16372009-05-02 Jan Hubicka <jh@suse.cz>
1638
1639 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
1640 parameter; update callers.
aa016ff7
UB
1641 (coalesce_cost_edge): EH edges are costier because they needs
1642 splitting even if not critical and even more costier when there are
1643 multiple EH predecestors.
048bf48b 1644
d5c5f9ab
JH
16452009-05-02 Jan Hubicka <jh@suse.cz>
1646
1647 * except.c (remove_eh_handler_and_replace): Handle updating after
1648 removing TRY blocks.
1649
2ed1959a
EB
16502009-05-02 Eric Botcazou <ebotcazou@adacore.com>
1651
1652 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
1653
d363a7e7
SB
16542009-05-02 Steven Bosscher <steven@gcc.gnu.org>
1655
1656 * varasm.c: Do not include c-pragma.h.
1657 * attribs.c: Do not incude c-common.h.
1658
9c3d55b4
MM
16592009-05-01 Michael Matz <matz@suse.de>
1660
1661 * calls.c (initialize_argument_information): Handle SSA names like
1662 decls with a non MEM_P DECL_RTL.
1663
ea264ca5
SB
16642009-05-01 Steven Bosscher <steven@gcc.gnu.org>
1665
1666 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
1667 * ipa-utils.c: Likewise.
1668 * ipa-type-escape.c: Likewise.
1669 * cgraphunit.c Do not include c-common.h.
1670 * ipa-pure-const.c: Likewise.
1671 * tree-if-conv.c: Likewise.
1672 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
1673 * ipa-struct-reorg.c: Likewise.
1674 * tree-nomudflap.c: Likewise.
1675 * tree-ssa-structalias.c: Likewise.
1676
6c5d4d1a
SB
16772009-05-01 Steven Bosscher <steven@gcc.gnu.org>
1678
1679 * store-motion.c: Many cleanups to make this pass a first-class
1680 citizen instead of an appendix to gcse load motion. Add TODO list
1681 to make this pass faster/cleaner/better.
1682
1683 (struct ls_expr): Post gcse.c-split cleanups.
1684 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
1685 "stores" field to "avail_stores".
1686 (pre_ldst_mems): Rename to store_motion_mems.
1687 (pre_ldst_table): Rename to store_motion_mems_table.
1688 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
1689 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
1690 (ldst_entry): Rename to st_expr_entry, update users.
1691 (free_ldst_entry): Rename to free_st_expr_entry, update users.
1692 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
1693 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
1694 update caller.
6c5d4d1a
SB
1695 (first_ls_expr): Rename to first_st_expr, update users.
1696 (next_ls_expr): Rename to next_st_expr, update users.
1697 (print_ldst_list): Rename to print_store_motion_mems. Print names of
1698 fields properly for store motion instead of names inherited from load
1699 motion in gcse.c.
1700 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
1701 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
1702 are done with it.
1703
1704 (ae_kill): Rename to st_kill, update users.
1705 (ae_gen): Rename to st_avloc, update users.
1706 (transp): Rename to st_transp, update users.
1707 (pre_insert_map): Rename to st_insert_map, update users.
1708 (pre_delete_map): Rename to st_delete_map, update users.
1709 (insert_store, build_store_vectors, free_store_memory,
1710 one_store_motion_pass): Update for abovementioned changes.
1711
1712 (gcse_subst_count, gcse_create_count): Remove.
1713 (one_store_motion_pass): New statistics counters "n_stores_deleted"
1714 and "n_stores_created", local variables.
1715
1716 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
1717 use for_each_rtx.
1718
1719 (regvec, compute_store_table_current_insn): Remove.
1720 (reg_set_info, reg_clear_last_set): Remove.
1721 (compute_store_table): Use DF caches instead of local dataflow
1722 solvers.
1723
b02cec6e
JM
17242009-05-01 Joseph Myers <joseph@codesourcery.com>
1725
1726 * c-objc-common.c (c_tree_printer): Print identifiers with
1727 pp_identifier, not pp_string. Mark "({anonymous})" for
1728 translation.
1729 * c-pretty-print.c (pp_c_ws_string): New.
1730 (pp_c_cv_qualifier, pp_c_type_specifier,
1731 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
1732 pp_c_storage_class_specifier, pp_c_function_specifier,
1733 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
1734 pp_c_primary_expression, pp_c_postfix_expression,
1735 pp_c_unary_expression, pp_c_shift_expression,
1736 pp_c_relational_expression, pp_c_equality_expression,
1737 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
1738 use pp_string and pp_c_ws_string in place of pp_identifier and
1739 pp_c_identifier for non-identifiers. Mark English strings for
1740 translation.
1741 * c-pretty-print.h (pp_c_ws_string): Declare.
1742
cd533689
PP
17432009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
1744 Roland McGrath <roland@redhat.com>
1745
aa016ff7 1746 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
1747 (ENABLE_LD_BUILDID): New configuration option.
1748 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
1749 (LINK_BUILDID_SPEC): New macro.
1750 (init_spec): If defined, prepend it between LINK_EH_SPEC and
1751 link_spec.
1752 * doc/install.texi: Document --enable-linker-build-id option.
1753 * configure: Rebuild.
1754 * config.in: Rebuild.
1755
ba6adec4
AN
17562009-04-30 Adam Nemet <anemet@caviumnetworks.com>
1757
1758 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
1759 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
1760 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
1761 MIPS_GP_SAVE_AREA_SIZE.
1762 * config/mips/mips.c (struct mips_frame_info): Update comment
1763 before arg_pointer_offset and hard_frame_pointer_offset.
1764 (mips_compute_frame_info): Update diagram before function: to
1765 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
1766 indicate the position of frame_pointer_rtx with -fstack-protector and
1767 to show args_size. Don't allocate cprestore area for leaf functions
1768 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
1769 cprestore_size.
1770 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
1771
48f5b722
MM
17722009-04-30 Michael Matz <matz@suse.de>
1773
ba6adec4
AN
1774 PR tree-optimization/39955
1775 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 1776
b65d6744
DK
17772009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
1778
1779 * ira.c (setup_cover_and_important_classes): Use safe macro
1780 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
1781 directly.
1782 * genpreds.c (write_tm_preds_h): Output suitable definition of
1783 REG_CLASS_FOR_CONSTRAINT.
1784
f136c8ae
RAE
17852009-04-30 Rafael Avila de Espindola <espindola@google.com>
1786
1787 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
1788 instead of an int.
1789 * bitmap.c (bitmap_descriptor): Likewise.
1790 * ggc-common.c (loc_descriptor): Likewise.
1791 * varray.c (varray_descriptor): Likewise.
1792 * vec.c (vec_descriptor): Likewise.
1793
43fcece8 17942009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
1795
1796 * Makefile.in (dce.o): Add $(EXCEPT_H).
1797 * dce.c: Include except.h and delete redundant vector definitions.
1798 (deletable_insn_p): Return false for non-call insns that can throw
1799 if DF is running.
1800
df35c271
SB
18012009-04-30 Steven Bosscher <steven@gcc.gnu.org>
1802
1803 * gcse.c (ae_gen): Remove.
1804 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
1805 and make non-static function to make it available in store-motion.c.
1806 Update call sites with search-and-replace.
1807 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
1808 extract_mentioned_regs, extract_mentioned_regs_helper,
1809 find_moveable_store, compute_store_table, load_kills_store, find_loads,
1810 store_killed_in_insn, store_killed_after, store_killed_before,
1811 build_store_vectors, insert_insn_start_basic_block, insert-store,
1812 remove_reachable_equiv_notes, replace_store_insn, delete_store,
1813 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
1814 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
1815 * store-motion.c: ...new file. Also copy data structures from gcse.c
1816 and clean up to remove parts not used by store motion.
1817 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
1818 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
1819
f711a87a
RR
18202009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1821
1822 PR target/38571
1823 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
1824 when optimizing for size.
1825
fa5ed76e
HPN
18262009-04-30 Hans-Peter Nilsson <hp@axis.com>
1827
1828 * gcse.c (gcse_constant_p): Fix typo in last change.
1829
0acbbdb0
RAE
18302009-04-30 Rafael Avila de Espindola <espindola@google.com>
1831
1832 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
1833
82f5c05d
AK
18342009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
1835
1836 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
1837
6d8f135b
JW
18382009-04-29 James E. Wilson <wilson@codesourcery.com>
1839
1840 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
1841 CONST_HIGH_PART result.
1842
c21ca196
AS
18432009-04-29 Anatoly Sokolov <aesok@post.ru>
1844
1845 * config/avr/avr.c (initial_elimination_offset): Rename to
1846 avr_initial_elimination_offset.
1847 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
1848 change return type to bool.
1849 (avr_can_eliminate): New function.
1850 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
1851 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
1852 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 1853 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
1854 avr_initial_elimination_offset.
1855 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
1856 (avr_initial_elimination_offset): Define.
1857
2a34bece 18582009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 1859 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
1860
1861 PR rtl-optimization/39938
1862 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
1863 * cfgrtl.c: Include insn-attr.h.
1864 (rest_of_pass_free_cfg): New function.
1865 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
1866 * resource.c (init_resource_info): Remove call to df_analyze.
1867
5dc7911e
RG
18682009-04-29 Richard Guenther <rguenther@suse.de>
1869
1870 PR target/39943
1871 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
1872 allow conversion to signed integers.
1873
1fe479fd
RG
18742009-04-29 Richard Guenther <rguenther@suse.de>
1875
1876 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
1877 shifts of floating point vectors if the shift amount is
1878 a constant multiple of the element size.
1879
8e001680
AK
18802009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
1881 Michael Matz <matz@suse.de>
1882
1883 PR middle-end/39927
1884 PR bootstrap/39929
1885 * tree-outof-ssa.c (emit_partition_copy): New function.
1886 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
1887 insert_part_to_rtx_on_edge): Perform the partition base var
1888 copy using emit_partition_copy.
1889 (insert_value_copy_on_edge): Convert constants to the right mode.
1890 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
1891 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
1892
e50e3081
BS
18932009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1894
1895 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
1896 scan backwards to try to find a constant to initialize it.
1897
4e5d521b
BS
1898 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
1899 insn before the loop_end instruction, don't look past labels.
1900
7c90021d
RG
19012009-04-29 Richard Guenther <rguenther@suse.de>
1902
1903 PR middle-end/39937
1904 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
1905 loose type conversions.
1906 (forward_propagate_addr_expr): Fix tuplification bug. Remove
1907 stmts only if there are no uses of its definition.
1908
97a988bc
BS
19092009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1910
1911 * config/bfin/bfin.h (splitting_loops): Declare.
1912 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
1913 Reorder bit definitions to be ascending.
1914 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
1915 * config/bfin/bfin.c (splitting_loops): New variable.
1916 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
1917 (struct loop_info): Remove members INIT and LOOP_INIT.
1918 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
1919 the LSETUP sequence. Allow LC to be loaded from any register, but
1920 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
1921 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
1922 set to 1.
1923 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
1924 of reload_completed.
aa016ff7 1925
97a988bc
BS
1926 From Jie Zhang:
1927 * config/bfin/bfin.md (movsi_insn): Refine constraints.
1928
0c463e16
RAE
19292009-04-29 Rafael Avila de Espindola <espindola@google.com>
1930
1931 * Makefile.in (PLUGIN_VERSION_H): New.
1932 (OBJS-common): Remove plugin-version.o.
1933 (plugin.o): Depend on (PLUGIN_VERSION_H).
1934 (plugin-version.o): Remove.
1935 * configure: Regenerate
1936 * configure.ac: Create plugin-version.h.
1937 * gcc-plugin.h (plugin_gcc_version): Remove.
1938 (plugin_default_version_check): Change signature.
1939 * plugin-version.c: Remove.
1940 * plugin.c: Include plugin-version.h.
1941 (str_plugin_gcc_version_name): Remove.
1942 (try_init_one_plugin): Pass gcc version to plugin_init.
1943 (plugin_default_version_check): Both gcc and plugin versions are now
1944 arguments.
1945
307e7eab
BS
19462009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1947
1948 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
1949 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
1950 Remove special case testing for last insn of inner loops. Don't fail
1951 if the loop ends with a jump, emit an extra nop instead.
307e7eab 1952
c5d96723
BS
1953 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
1954 DREGS rather than comparing directly. Remove code that tries to
1955 account for latencies.
1956
de0b4ad5
RG
19572009-04-29 Richard Guenther <rguenther@suse.de>
1958
1959 PR tree-optimization/39941
1960 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
1961 eliminating an indirect call.
1962
3a19701a
RG
19632009-04-29 Richard Guenther <rguenther@suse.de>
1964
1965 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
1966 parameter. Allow invariants as base if !require_lvalue.
1967 (verify_gimple_assign_single): Adjust.
1968
a0a31d1e
BS
19692009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1970
1971 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
1972 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
1973 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
1974 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
1975 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
1976 a VEC_SELECT.
aa016ff7
UB
1977 * config/bfin/bfin.c (bfin_expand_builtin,
1978 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 1979
795bd26a
RG
19802009-04-28 Richard Guenther <rguenther@suse.de>
1981
1982 * tree-vect-loop.c (get_initial_def_for_induction): Use
1983 correct types for pointer increment.
1984
04be270f
KG
19852009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1986
1987 * toplev.c (print_version): Update GMP version string calculation.
1988
e1a3b85c
EB
19892009-04-28 Eric Botcazou <ebotcazou@adacore.com>
1990
1991 PR rtl-optimization/39938
1992 * resource.c (init_resource_info): Add call to df_analyze.
1993
8224166e
UB
19942009-04-28 Uros Bizjak <ubizjak@gmail.com>
1995
1996 * config/alpha/alpha.md (usegp): Cast the result of
1997 alpha_find_lo_sum_using_gp to enum attr_usegp.
1998 * config/alpha/alpha.c (override_options): Remove end-of-structure
1999 marker element from cpu_table. Use array size of cpu_table to handle
2000 -mcpu and -mtune options.
2001 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2002
c5f0fe67
JM
20032009-04-28 Joseph Myers <joseph@codesourcery.com>
2004
2005 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
2006 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
2007 tune_32 and tune_64.
2008 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2009 support on PowerPC.
2010 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
2011 * config/rs6000/option-defaults.h: ... here. New file.
2012 (OPT_64, OPT_32): Define.
2013 (MASK_64BIT): Define to 0 if not already defined.
2014 (OPT_ARCH64, OPT_ARCH32): Define.
2015 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
2016 and tune_64.
2017
0c48a567
RR
20182009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2019
2020 * config/arm/arm.c (arm_override_options): Emit error on using
2021 fpa with AAPCS.
2022
f1028b9d
UB
20232009-04-28 Uros Bizjak <ubizjak@gmail.com>
2024
2025 PR rtl-optimization/39914
2026 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2027 registers for allocnos created from user-defined variables only
2028 when not optimizing.
2029
e0dd989a
RG
20302009-04-28 Richard Guenther <rguenther@suse.de>
2031
2032 PR middle-end/39937
2033 * fold-const.c (fold_binary): Use distribute_real_division only
2034 on float types.
2035
9a17c91d
SE
20362009-04-28 Steve Ellcey <sje@cup.hp.com>
2037
2038 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
2039 add hpux-stdint.h to tm_file.
2040 (hppa[12]*-*-hpux11*): Ditto.
2041 (ia64*-*-hpux*): Ditto.
2042 * config/hpux-stdint.h: New.
60839f5d 2043 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 2044 __STDC_EXT__ for all compiles.
60839f5d
EB
2045 * config/pa/pa-hpux.h: Ditto.
2046 * config/pa/pa-hpux10.h: Ditto.
2047 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 2048
af04e659
CM
20492009-04-28 Catherine Moore <clm@codesourcery.com>
2050
2051 * debug.h (set_name): Add comment.
2052
04ef80ce
AP
20532009-04-28 Andrew Pinski <pinskia@gmail.com>
2054
2055 PR target/39929
2056 * config/darwin.c (machopic_gen_offset): Check
2057 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2058 * config/arm/arm.c (require_pic_register): Likewise.
2059
65ad77af
PB
20602009-04-28 Paolo Bonzini <bonzini@gnu.org>
2061
8224166e
UB
2062 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2063 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2064 m32c_promote_prototypes): Delete.
65ad77af 2065
1b15a008
MM
20662009-04-28 Michael Matz <matz@suse.de>
2067
2068 PR middle-end/39922
2069 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2070 constants.
2071
7569a6cc
RG
20722009-04-28 Richard Guenther <rguenther@suse.de>
2073
f1028b9d 2074 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 2075
ead204d9
RR
20762009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2077
2078 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2079 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2080 * config/arm/arm-tune.md: Regenerate.
2081
f2c45f08 20822009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 2083
f2c45f08
AM
2084 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2085 block if there are complex incoming edges.
2086 (sel_merge_blocks): Remove useless assert.
2087 (sel_redirect_edge_and_branch): Check that edge was redirected.
2088 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2089 (sel_find_rgns): Delete declaration.
2090 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2091 the region when it is not a preheader.
2092
7a00d767
UB
20932009-04-28 Uros Bizjak <ubizjak@gmail.com>
2094
2095 PR c/39323
2096 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2097
448ee662
RG
20982009-04-28 Richard Guenther <rguenther@suse.de>
2099
2100 * tree.h (SSA_NAME_VALUE): Remove.
2101 (struct tree_ssa_name): Remove value_handle member.
2102 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2103 array for jump threading.
2104 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2105 SSA_NAME_VALUEs.
2106 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2107 * tree-flow.h (threadedge_initialize_values): Declare.
2108 (threadedge_finalize_values): Likewise.
2109 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2110 (SSA_NAME_VALUE): Define.
2111 (threadedge_initialize_values): New function.
2112 (threadedge_finalize_values): Likewise.
2113 * tree-ssa-dom.c (ssa_name_values): New global variable.
2114 (SSA_NAME_VALUE): Define.
f1028b9d 2115 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 2116
8644a673
IR
21172009-04-28 Ira Rosen <irar@il.ibm.com>
2118
2119 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2120 Use REPORT_VECTORIZED_LOCATIONS instead
2121 REPORT_VECTORIZED_LOOPS.
2122 * tree-vectorizer.c (vect_verbosity_level): Make static.
2123 (vect_loop_location): Rename to vect_location.
2124 (vect_set_verbosity_level): Update comment.
2125 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2126 and vect_location.
2127 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2128 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2129 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
2130 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2131 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 2132 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 2133 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
2134 REPORT_UNVECTORIZED_LOCATIONS.
2135 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2136 and vect_used_in_loop and to vect_unused_in_scope and
2137 vect_used_in_scope.
2138 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2139 (vect_verbosity_level): Remove declaration.
2140 (vect_analyze_operations): Likewise.
2141 (vect_analyze_stmt): Declare.
2142 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2143 REPORT_UNVECTORIZED_LOCATIONS.
2144 (vect_get_loop_niters): Fix indentation.
2145 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2146 (vect_analyze_loop_operations): New function.
2147 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2148 vect_analyze_operations.
2149 (vect_is_simple_reduction): Use new names.
2150 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
2151 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2152 to specify whether the data references can be a part of interleaving
2153 chain.
8644a673
IR
2154 (vect_analyze_data_ref_dependence): Use new names.
2155 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2156 (vect_create_addr_base_for_vector_ref): Remove redundant code.
2157 * tree-vect-patterns.c (widened_name_p): Use new names.
2158 (vect_recog_dot_prod_pattern): Likewise.
2159 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2160 (process_use, vect_mark_stmts_to_be_vectorized,
2161 vect_model_simple_cost, vect_model_store_cost,
2162 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2163 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2164 vectorizable_operation, vectorizable_type_demotion,
2165 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2166 vectorizable_condition): Likewise.
2167 (vect_analyze_operations): Split into vect_analyze_loop_operations
2168 and ...
2169 (vect_analyze_stmt): ... new function.
2170 (new_stmt_vec_info): Use new names.
2171 (vect_is_simple_use): Use new names and fix comment.
2172 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2173 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2174
b91322f2
UB
21752009-04-28 Uros Bizjak <ubizjak@gmail.com>
2176
2177 PR target/39911
2178 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2179 and integer modes for x87 operands. Do not ICE for unsupported size,
2180 generate error instead. Generate error for unsupported operand types.
2181 ['z']: Do not handle HImode memory operands specially. Warning
2182 for floating-point operands. Fallthru to 'Z' for unsupported operand
2183 types. Do not ICE for unsupported size, generate error instead.
2184 (output_387_binary_op): Use %Z to output operands.
2185 (output_fp_compare): Ditto.
2186 (output_387_reg_move): Ditto.
2187
b2ed71b6
BE
21882009-04-28 Ben Elliston <bje@au.ibm.com>
2189
2190 PR c++/35652
2191 Revert:
2192
2193 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2194
2195 * builtins.c (c_strlen): Do not warn here.
2196 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2197 * c-common.c (pointer_int_sum): Take an explicit location.
2198 Warn about offsets out of bounds.
2199 * c-common.h (pointer_int_sum): Adjust declaration.
2200
81f40b79
ILT
22012009-04-27 Ian Lance Taylor <iant@google.com>
2202
2203 * collect2.c (is_ctor_dtor): Change type of ret field in struct
2204 names to symkind.
2205 * dce.c (run_fast_df_dce): Change type of old_flags to int.
2206 * df-core.c (df_set_flags): Change return type to int. Change
2207 type of old_flags to int.
2208 (df_clear_flags): Likewise.
2209 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2210 (df_get_conditional_uses): Likewise.
2211 * df.h (df_set_flags, df_clear_flags): Update declarations.
2212 * dwarf2out.c (struct indirect_string_node): Change type of form
2213 field to enum dwarf_form.
2214 (AT_string_form): Change return type to enum dwarf_form.
2215 * fixed-value.c (fixed_compare): Add cast to enum type.
2216 * fwprop.c (update_df): Change 0 to VOIDmode.
2217 * gensupport.c: Change 0 to UNKNOWN.
2218 * gimple.h (gimple_cond_code): Add cast to enum type.
2219 * haifa-sched.c (reemit_notes): Add cast to enum type.
2220 * hooks.c (hook_int_void_no_regs): Remove function.
2221 * hooks.h (hook_int_void_no_regs): Remove declaration.
2222 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 2223 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
2224 * real.c (real_arithmetic): Add cast to enum type.
2225 (real_compare): Likewise.
2226 * target.h (struct gcc_target): Change return type of
2227 branch_target_register_class to enum reg_class.
2228 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2229 default_branch_target_register_class.
7a00d767 2230 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 2231 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 2232 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
2233 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2234 cast to int.
2235 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2236 ERROR_MARK.
2237 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2238 vect_uninitialized_def. Change 0 to ERROR_MARK.
2239 * tree-vect-stmts.c (supportable_widening_operation): Don't
2240 initialize icode1 and icode2.
7a00d767 2241 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
2242 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2243 and to STD_C89.
2244 (cmn_err_flag_specs): Change 0 to STD_C89.
2245 (cmn_err_char_table): Likewise.
2246 * config/arm/arm.c (get_arm_condition_code): Change type of code
2247 to enum arm_cond_code.
2248 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2249 (IWMMXT_BUILTIN2): Likewise.
2250 (neon_builtin_type_bits): Don't define typedef.
2251 (neon_builtin_datum): Change type of bits field to int.
2252 (arm_expand_neon_args): Add cast to enum type.
2253 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2254 TLS_MODEL_NONE.
2255 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
2256 casts to enum type.
2257 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2258 MIPS_FP_COND_f.
2259 * config/mips/mips.md (jal_macro): Return enum constant.
2260 (single_insn): Likewise.
2261 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2262 CODE_FOR_nothing.
2263 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2264 casts to enum type.
2265 * config/s390/s390.c (s390_tune_flags): Change type to int.
2266 (s390_arch_flags): Likewise.
7a00d767 2267 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
2268 * config/s390/s390.h (s390_tune_flags): Update declaration.
2269 (s390_arch_flags): Likewise.
2270 * config/sh/sh.c (prepare_move_operands): Compare
2271 tls_symbolic_operand result with enum constant.
2272 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2273 (sh_expand_prologue): Add cast to enum type.
2274 (sh_expand_epilogue): Likewise.
2275 (tls_symbolic_operand): Change return type to enum tls_model.
2276 (fpscr_set_from_mem): Add cast to enum type.
2277 (legitimize_pic_address): Compare tls_symbolic_operand result with
2278 enum constant.
2279 (sh_target_reg_class): Change return type to enum reg_class.
2280 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2281 PROCESSOR_xxx.
7a00d767
UB
2282 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2283 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
2284 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2285 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2286 (delayed_branch, tls_call_delay): Likewise.
2287 (eligible_for_sibcall_delay): Likewise.
2288 (eligible_for_return_delay): Likewise.
2289 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2290 (spu_expand_builtin_1): Likewise.
2291
2292 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2293 for all types of conversions.
2294 (output_init_element): Issue -Wc++-compat warning if needed when
2295 initializing a bitfield with enum type.
2296 * c-parser.c (c_parser_expression): Set original_type to
2297 original_type of right hand operand of comman operator.
2298
e4ae5e77
RW
22992009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2300
2301 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2302 grammar nits.
7a00d767 2303 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
2304 * doc/cpp.texi (Standard Predefined Macros)
2305 (Implementation-defined behavior): Likewise.
7a00d767 2306 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
2307 * doc/gimple.texi (GIMPLE Exception Handling)
2308 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 2309 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
2310 * doc/invoke.texi (Warning Options, Optimize Options)
2311 (AVR Options, Darwin Options): Likewise.
2312 (Optimize Options): Reformulate -fwhole-program description.
2313 * doc/loop.texi (Lambda): Likewise.
2314 * doc/md.texi (Output Template, Define Constraints)
2315 (Standard Names, Insn Splitting): Likewise.
2316 * doc/options.texi (Option properties): Likewise.
2317 * doc/passes.texi (Tree-SSA passes): Likewise.
2318 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2319 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2320 (File Names and DBX): Likewise.
2321 * doc/trouble.texi (Incompatibilities): Likewise.
2322
1883802f 23232009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
2324
2325 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2326 instruction is correct.
2327
1883802f 23282009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
2329
2330 Allow non-constant arguments to conversion intrinsics.
2331 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2332 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2333 * spu.c (print_operand): Handle 'v' and 'w'.
2334 (exp2_immediate_p, spu_gen_exp2): Define.
2335 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2336 spu_convtf_1): Update parameter descriptions.
7a00d767 2337 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
2338 * constraints.md ('v', 'w'): New.
2339 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2340 Remove.
2341 (i2f, I2F): New define_mode_attr.
2342 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2343 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2344 fixuns_truncv4sfv4si2): Update to use mode attribute.
2345 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2346 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2347 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2348 patterns for combine.
2349
5f39ad47
SB
23502009-04-27 Steven Bosscher <steven@gcc.gnu.org>
2351
2352 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2353 (cprop, hoist, pre, store_motion): New debug counters.
2354 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2355 is not an RTL pass anymore.
2356 (pass_profiling): Remove extern decl for pass removed in 2005.
2357 (pass_gcse, pass_jump_bypass): Remove.
2358 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2359 to 0 for clean state.
2360 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2361 * cse.c (gate_handle_cse_after_global_opts,
2362 rest_of_handle_cse_after_global_opts): New functions.
2363 (pass_cse_after_global_opts): New pass, does local CSE.
2364 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2365 (TV_CPROP): New timevar.
2366 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2367 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2368 (gcse_main, recompute_all_luids): Remove.
2369 (compute_hash_table_work): Call max_reg_num instead of reading
2370 max_gcse_regno.
2371 (cprop_jump): Don't set run_jump_opt_after_gcse.
2372 (constprop_register): Always allow to alter jumps.
2373 (cprop_insn): Likewise.
2374 (do_local_cprop): Likewise.
2375 (local_cprop_pass): Likewise. Return non-zero if something changed.
2376 (cprop): Remove function, fold interesting bits into one_cprop_pass.
2377 (find_implicit_sets): Add note about missed optimization opportunity.
2378 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2379 pass_rtl_cprop execute function.
2380 Don't bother tracking the pass number, each pass gets its own dumpfile
2381 now anyway.
2382 Always allow to alter jumpsand bypass jumps.
2383 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
2384 will just find no suitable set.
2385 (pre_edge_insert): Fix dumping, this function is for PRE only.
2386 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
2387 pass_rtl_pre execute function.
2388 (hoist_code): Return non-zero if something changed. Keep track of
2389 substitutions and insertions for statistics gathering similar to PRE.
2390 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
2391 called from the pass_rtl_hoist execute function. Show pass statistics.
2392 (compute_store_table): Use max_reg_num directly instead of using the
2393 formerly global max_gcse_regno.
2394 (build_store_vectors): Likewise.
2395 (replace_store_insn): Fix dumping.
2396 (store_motion): Rename to ...
2397 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
2398 pass, called from the pass_rtl_store_motion execute function. Keep
2399 track of substitutions and insertions for statistics gathering similar
2400 to PRE.
2401 (bypass_jumps): Remove, fold interesting bits into ...
2402 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
2403 from the pass_rtl_cprop execute function.
2404 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
2405 pass_jump_bypass): Remove.
2406 (gate_handle_gcse, rest_of_handle_gcse): Remove.
2407 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
2408 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
2409 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
2410 (gate_rtl_store_motion, execute_rtl_store_motion,
2411 pass_rtl_store_motion): New.
2412 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
2413 make it clear that -fcse-skip-blocks is a no-op for backward compat.
2414 * passes.c (init_optimization_passes): Remove pass_gcse and
2415 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
2416 and cse_after_global_opts in place of pass_gcse. Schedule cprop
2417 instead of pass_jump_bypass.
2418
c685de4a
RG
24192009-04-27 Richard Guenther <rguenther@suse.de>
2420
2421 PR middle-end/39928
2422 * gimplify.c (gimplify_expr): If we are required to create
2423 a temporary make sure it ends up as register.
2424
72d41f29
L
24252009-04-27 H.J. Lu <hongjiu.lu@intel.com>
2426
2427 PR target/39903
2428 * config/i386/i386.c (construct_container): Don't call
2429 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
2430 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
2431
e97809c6
MM
24322009-04-27 Michael Matz <matz@suse.de>
2433
2434 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
2435 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
2436 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
2437 (dump_replaceable_exprs): Take a bitmap.
2438 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
2439 array.
2440 (expand_gimple_basic_block): Likewise.
2441 * tree-ssa-ter.c (struct temp_expr_table_d): Make
2442 replaceable_expressions member a bitmap.
2443 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
2444 (mark_replaceable): Likewise.
2445 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
2446 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
2447
211ca15c
RG
24482009-04-27 Richard Guenther <rguenther@suse.de>
2449
2450 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
2451 (verify_stmts): Dispatch to gimple/type verification code.
2452 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
2453 issue with call argument types.
2454
fca5f3d1
MM
24552009-04-27 Michael Matz <matz@suse.de>
2456
2457 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
2458 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
2459 to above.
2460
a1fa3e79 24612009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 2462 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
2463
2464 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
2465 a label's basic block.
2466 (mark_target_live_regs): Tidy and rework obsolete comments.
2467 Change back DF problem to LIVE. If a label starts a basic block,
2468 assume that all registers that used to be live then still are.
2469 (init_resource_info): If a label starts a basic block, set its
2470 BLOCK_FOR_INSN accordingly.
2471 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
2472
33b223c0
RG
24732009-04-27 Richard Guenther <rguenther@suse.de>
2474
2475 * tree-flow-inline.h (function_ann): Remove.
2476 (get_function_ann): Likewise.
2477 * tree-dfa.c (create_function_ann): Remove.
2478 * tree-flow.h (struct static_var_ann_d): Remove.
2479 (struct function_ann_d): Likewise.
2480 (union tree_ann_d): Remove fdecl member.
2481 (function_ann_t): Remove.
2482 (function_ann, get_function_ann, create_function_ann): Remove
2483 declarations.
2484
e3136fa2
UB
24852009-04-27 Uros Bizjak <ubizjak@gmail.com>
2486
2487 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
2488
f87c9042
JH
24892009-04-27 Jan Hubicka <jh@suse.cz>
2490
2491 * ipa-pure-const.c (struct funct_state_d): New fields
2492 state_previously_known, looping_previously_known; remove
2493 state_set_in_source.
2494 (analyze_function): Use new fields.
2495 (propagate): Avoid assumption that state_set_in_source imply
2496 nonlooping.
2497
2498 * tree-ssa-loop-niter.c (finite_loop_p): New function.
2499 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
2500 * cfgloop.h (finite_loop_p): Declare.
2501
33abd718
MM
25022009-04-26 Michael Matz <matz@suse.de>
2503
e3136fa2 2504 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 2505
ddc34084
MM
25062009-04-26 Michael Matz <matz@suse.de>
2507
2508 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
2509 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
2510 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
2511 pass_mark_used_blocks): Remove.
2512 * tree-optimize.c (pass_free_datastructures,
2513 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
2514 * passes.c (init_optimization_passes): Don't call
2515 pass_mark_used_blocks, remove dead code.
2516
1fec7ed4
L
25172009-04-26 H.J. Lu <hongjiu.lu@intel.com>
2518
2519 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
2520 * tree-ssa-live.h (register_ssa_partition): Likewise.
2521
4e3825db
MM
25222009-04-26 Michael Matz <matz@suse.de>
2523
2524 Expand from SSA.
2525 * builtins.c (fold_builtin_next_arg): Handle SSA names.
2526 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
2527 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
2528 SSA names.
2529 (compare_pairs): Swap cost comparison.
2530 (coalesce_ssa_name): Don't use change_partition_var.
2531 * tree-nrv.c (struct nrv_data): Add modified member.
2532 (finalize_nrv_r): Set it.
2533 (tree_nrv): Use it to update statements.
2534 (pass_nrv): Require PROP_ssa.
2535 * tree-mudflap.c (mf_decl_cache_locals,
2536 mf_build_check_statement_for): Use make_rename_temp.
2537 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
2538 * alias.c (find_base_decl): Handle SSA names.
2539 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
2540 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
2541 * rtl.h (set_reg_attrs_for_parm): Declare.
2542 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
2543 to "optimized", remove unused locals at finish.
2544 (execute_free_datastructures): Make global, call
2545 delete_tree_cfg_annotations.
2546 (execute_free_cfg_annotations): Don't call
2547 delete_tree_cfg_annotations.
2548
2549 * ssaexpand.h: New file.
2550 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 2551 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
2552 (expand_expr_real_1): Expand SSA names.
2553 * cfgexpand.c (toplevel): Include ssaexpand.h.
2554 (SA): New global variable.
2555 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
2556 (SSAVAR): New macro.
2557 (set_rtl): New helper function.
2558 (add_stack_var): Deal with SSA names, use set_rtl.
2559 (expand_one_stack_var_at): Likewise.
2560 (expand_one_stack_var): Deal with SSA names.
2561 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
2562 before unique numbers.
2563 (expand_stack_vars): Use set_rtl.
2564 (expand_one_var): Accept SSA names, add asserts for them, feed them
2565 to above subroutines.
2566 (expand_used_vars): Expand all partitions (without default defs),
2567 then only the local decls (ignoring those expanded already).
2568 (expand_gimple_cond): Remove edges when jumpif() expands an
2569 unconditional jump.
2570 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
2571 or remove abnormal edges. Ignore insns setting the LHS of a TERed
2572 SSA name.
2573 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
2574 members of SA; deal with PARM_DECL partitions here; expand
2575 all PHI nodes, free tree datastructures and SA. Commit instructions
2576 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
2577 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
2578 info and statements at start, collect garbage at finish.
2579 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
2580 (VAR_ANN_PARTITION) Remove.
2581 (change_partition_var): Don't declare.
2582 (partition_to_var): Always return SSA names.
2583 (var_to_partition): Only accept SSA names.
2584 (register_ssa_partition): Only check argument.
2585 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
2586 member.
2587 (delete_var_map): Don't free it.
2588 (var_union): Only accept SSA names, simplify.
2589 (partition_view_init): Mark only useful SSA names as used.
2590 (partition_view_fini): Only deal with SSA names.
2591 (change_partition_var): Remove.
2592 (dump_var_map): Use ssa_name instead of partition_to_var member.
2593 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
2594 basic blocks.
2595 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
2596 (struct _elim_graph): New member const_dests; nodes member vector of
2597 ints.
2598 (set_location_for_edge): New static helper.
2599 (create_temp): Remove.
2600 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 2601 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
2602 (new_elim_graph): Allocate const_dests member.
2603 (clean_elim_graph): Truncate const_dests member.
2604 (delete_elim_graph): Free const_dests member.
2605 (elim_graph_size): Adapt to new type of nodes member.
2606 (elim_graph_add_node): Likewise.
2607 (eliminate_name): Likewise.
2608 (eliminate_build): Don't take basic block argument, deal only with
2609 partition numbers, not variables.
2610 (get_temp_reg): New static helper.
2611 (elim_create): Use it, deal with RTL temporaries instead of trees.
2612 (eliminate_phi): Adjust all calls to new signature.
2613 (assign_vars, replace_use_variable, replace_def_variable): Remove.
2614 (rewrite_trees): Only do checking.
2615 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
2616 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
2617 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
2618 contains_tree_r, MAX_STMTS_IN_LATCH,
2619 process_single_block_loop_latch, analyze_edges_for_bb,
2620 perform_edge_inserts): Remove.
2621 (expand_phi_nodes): New global function.
2622 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
2623 functions, initialize new parameter, remember partitions having a
2624 default def.
2625 (finish_out_of_ssa): New global function.
2626 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
2627 don't reset in_ssa_p here, don't disable TER when mudflap.
2628 (pass_del_ssa): Remove.
2629 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
2630 partition members.
2631 (execute_free_datastructures): Declare.
2632 * Makefile.in (SSAEXPAND_H): New variable.
2633 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
2634 * basic-block.h (commit_one_edge_insertion): Declare.
2635 * passes.c (init_optimization_passes): Move pass_nrv and
2636 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
2637 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
2638 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
2639 (redirect_branch_edge): Deal with super block when expanding, split
2640 out jump patching itself into ...
2641 (patch_jump_insn): ... here, new static helper.
2642
17c665a9
MM
26432009-04-26 Michael Matz <matz@suse.de>
2644
2645 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
2646 beyond num_ssa_names.
2647 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
2648 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
2649
92061771
JJ
26502009-04-26 Jakub Jelinek <jakub@redhat.com>
2651
ce372372
JJ
2652 PR inline-asm/39543
2653 * fwprop.c (forward_propagate_asm): New function.
2654 (forward_propagate_and_simplify): Propagate also into __asm, if it
2655 doesn't increase the number of referenced registers.
2656
92061771
JJ
2657 PR c/39889
2658 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
2659
26602009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
2661
2662 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
2663 note_nonlocal_vla_type for nonlocal VLAs.
2664 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
2665 contains_remapped_vars, remap_vla_decls): New functions.
2666 (convert_nonlocal_reference_stmt): If not optimizing, call
2667 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
2668 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
2669 if it wasn't found in var_map.
2670 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
2671 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
2672 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
2673 declare_vars.
2674 * gimplify.c (nonlocal_vlas): New variable.
2675 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
2676 referenced VLAs.
2677 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 2678
4561e242
JJ
2679 * dwarf2out.c (loc_descr_plus_const): New function.
2680 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
2681 mem_loc_descriptor, loc_descriptor_from_tree_1,
2682 descr_info_loc, gen_variable_die): Use it.
2683
a9548ddf
JJ
2684 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
2685 !TREE_STATIC VAR_DECLs.
2686 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
2687 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
2688 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
2689 DECL_BY_REFERENCE is valid.
2690 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
2691 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
2692 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
2693 Copy DECL_BY_REFERENCE.
2694 (struct nesting_copy_body_data): New type.
2695 (nesting_copy_decl): New function.
2696 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
2697 if they have variable length.
2698
10555d08
MM
26992009-04-26 Michael Matz <matz@suse.de>
2700
2701 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
2702 mark new temporaries for renaming.
2703
e11187cc
JM
27042009-04-26 Joseph Myers <joseph@codesourcery.com>
2705
2706 PR c/39581
2707 * c-decl.c (global_bindings_p): Return negative value.
2708 (c_variable_size): New. Based on variable_size from
2709 stor-layout.c.
2710 (grokdeclarator): Call c_variable_size not variable_size.
2711
f6a51d31
UB
27122009-04-26 Uros Bizjak <ubizjak@gmail.com>
2713
2714 * config/i386/i386.c (print_operand) ['z']: Fix typo.
2715
4b97723d
KT
27162009-04-26 Kai Tietz <kai.tietz@onevision.com>
2717
2718 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
2719 Redefine it to just use mingw/include.
2720 (ASM_SPEC): Rules for -m32 and -m64.
2721 (LINK_SPEC): Use Likewise.
2722 (SPEC_32): New define.
2723 (SPEC_64): Likewise.
2724 (SUB_LINK_SPEC): Likewise.
2725 (MULTILIB_DEFAULTS): New define.
2726 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
2727 Add multilib options.
2728 (MULTILIB_DIRNAMES): Likewise.
2729 (MULTILIB_OSDIRNAMES): Likewise.
2730 (LIBGCC): Likewise.
2731 (INSTALL_LIBGCC): Likewise.
2732
991d6621
JM
27332009-04-26 Joseph Myers <joseph@codesourcery.com>
2734
2735 PR c/39556
2736 * c-tree.h (enum c_inline_static_type): New.
2737 (record_inline_static): Declare.
2738 * c-decl.c (struct c_inline_static, c_inline_statics,
2739 record_inline_static, check_inline_statics): New.
2740 (pop_file_scope): Call check_inline_statics.
2741 (start_decl): Call record_inline_static instead of pedwarning
2742 directly for static in inline function.
2743 * c-typeck.c (build_external_ref): Call record_inline_static
2744 instead of pedwarning directly for static referenced in inline
2745 function.
2746
4a81774c
SB
27472009-04-26 Steven Bosscher <steven@gcc.gnu.org>
2748
2749 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
2750 not new but only being rescanned.
2751 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
2752 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
2753 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
2754 record_set_info, compute_set, grealloc): Remove.
2755 (recompute_all_luids): New function.
2756 (gcse_main): Don't compute sets, and don't do related memory
2757 allocations/free-ing. If something changed before the end of the
2758 pass, update LUIDs using recompute_all_luids.
2759 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
2760 (free_gcse_mem): Don't free it either.
2761 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
2762 Use the df insn LUIDs.
2763 (load_killed_in_block): Likewise.
2764 (compute_hash_table_work): Don't compute reg_set_in_block.
2765 (compute_transp): Use DF_REG_DEF_CHAINs.
2766 (local_cprop_pass): Don't use compute_sets and related functions.
2767 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
2768 Use get_max_uid() instead of max_cuid.
2769 (insert_insn_end_basic_block, pre_insert_copy_insn,
2770 update_ld_motion_stores): Don't try to
2771 keep reg_set tables up to date.
2772 (pre_insert_copies): Use df insn LUIDs.
2773 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
2774 (reg_set_info): Don't use extra bitmap argument.
2775 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
2776 information to compute regs_set_in_block.
2777 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
2778 (bypass_jumps): Don't use compute_sets and friends.
2779
e8f99a9d
RW
27802009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2781
2782 PR testsuite/39710
2783 * opts.c (undocumented_msg): Do not leave blank even with
2784 ENABLE_CHECKING.
2785
6895bac8
JM
27862009-04-25 Joseph Myers <joseph@codesourcery.com>
2787
2788 * c-decl.c (build_enumerator): Allow values folding to integer
2789 constants but not integer constant expressions with a pedwarn if
2790 pedantic.
2791
24070fcb
JM
27922009-04-25 Joseph Myers <joseph@codesourcery.com>
2793
2794 PR c/39582
2795 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
2796 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
2797 type is an integer constant.
2798
d6d89aa1
UB
27992009-04-25 Uros Bizjak <ubizjak@gmail.com>
2800
2801 PR target/39897
2802 * config/i386/i386.c (print_operand) ['z']: Revert handling of
2803 HImode operands.
2804
92f6fd0b
JM
28052009-04-25 Joseph Myers <joseph@codesourcery.com>
2806
2807 PR c/39564
2808 * c-decl.c (grokdeclarator): Diagnose declarations of functions
2809 with variably modified return type and no storage class
2810 specifiers, except for the case of nested functions. Distinguish
2811 extern declarations of functions with variably modified return
2812 types from those of objects with variably modified types.
2813
a3710436
JH
28142009-04-25 Jan Hubicka <jh@suse.cz>
2815
2816 * tree.c (list_equal_p): New function.
2817 * tree.h (list_equal_p): Declare.
2818 * coretypes.h (edge_def, edge, const_edge, basic_block_def
2819 basic_block_def, basic_block, const_basic_block): New.
2820 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
2821 (redirect_eh_edge): New function.
2822 (make_eh_edge_update_phi): EH edges are not abnormal.
2823 * except.c: Include tree-flow.h.
2824 (list_match): New function.
2825 (eh_region_replaceable_by_p): New function.
2826 (replace_region): New function.
2827 (hash_type_list): New function.
2828 (hash_eh_region): New function.
2829 (eh_regions_equal_p): New function.
2830 (merge_peers): New function.
2831 (remove_unreachable_regions): Verify EH tree when checking;
2832 merge peers.
2833 (copy_eh_region_1): New function.
2834 (copy_eh_region): New function.
2835 (push_reachable_handler): New function.
2836 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
2837 regions without label but with live RESX.
2838 * except.h (redirect_eh_edge_to_label): New.
2839 * tree-flow.h (redirect_eh_edge): New.
2840 * coretypes.h (edge_def, edge, const_edge, basic_block_def
2841 basic_block_def, basic_block, const_basic_block): Remove.
2842 * Makefile.in (except.o): Add dependency on tree-flow.h
2843 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
2844 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
2845 Remove.
2846
3764d512
EB
28472009-04-25 Eric Botcazou <ebotcazou@adacore.com>
2848
2849 PR bootstrap/39645
2850 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
2851 on the destination of memcpy.
2852
1c62e8f2
PB
28532009-04-25 Paolo Bonzini <bonzini@gnu.org>
2854
2855 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
2856 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
2857 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
2858
496a4ef5
JH
28592009-04-25 Jan Hubicka <jh@suse.cz>
2860
2861 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
2862 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
2863 to be reached by different label than left.
2864 (update_eh_edges): Update comment; remove edge_to_remove if possible
2865 and return true if suceeded.
2866 (cleanup_empty_eh): Accept sharing map; handle shared regions.
2867 (cleanup_eh): Compute sharing map.
2868 * except.c (remove_eh_handler_and_replace): Add argument if we should
2869 update regions.
2870 (remove_unreachable_regions): Update for label sharing.
2871 (label_to_region_map): Likewise.
2872 (get_next_region_sharing_label): New function.
2873 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
2874 prev_try pointers.
2875 (remove_eh_handler): Update.
2876 (remove_eh_region_and_replace_by_outer_of): New function.
2877 * except.h (struct eh_region): Add next_region_sharing_label.
2878 (remove_eh_region_and_replace_by_outer_of,
2879 get_next_region_sharing_label): Declare.
2880 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
2881
28822009-04-25 Jan Hubicka <jh@suse.cz>
2883
2884 * tree-cfg.c (split_critical_edges): Split also edges where we can't
2885 insert code even if they are not critical.
2886
28872009-04-25 Jan Hubicka <jh@suse.cz>
2888
2889 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2890 (gimple_can_remove_branch_p): EH edges won't remove branch by
2891 redirection.
2892 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
2893 updating of non-abnormal EH edges.
2894 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2895 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
2896 (split_critical_edges): Split also edges where emitting code on them
2897 will lead to splitting later.
2898
a3a5e3d1
UB
28992009-04-25 Uros Bizjak <ubizjak@gmail.com>
2900 H.J. Lu <hongjiu.lu@intel.com>
2901
2902 PR target/39590
2903 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
2904 the configured assembler supports fildq and fistpq mnemonics.
2905 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
2906 * configure: Regenerated.
2907 * config.in: Ditto.
2908
2909 * config/i386/i386.c (print_operand): Handle 'Z'.
2910 ['z']: Remove handling of special fild/fist suffixes.
2911 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
2912 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
2913 suffix of fild insn.
2914 (*floatsi<mode>2_vector_mixed): Ditto.
2915 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
2916 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
2917 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2918 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
2919 * config/i386/gas.h (GAS_MNEMONICS): Remove.
2920
23750d7f
BE
29212009-04-25 Ben Elliston <bje@au.ibm.com>
2922
2923 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
2924 the source of a set operation.
2925
e6ff3083
AS
29262009-04-25 Anatoly Sokolov <aesok@post.ru>
2927
2928 * target.h (struct gcc_target): Add case_values_threshold field.
2929 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
2930 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
2931 * targhooks.c (default_case_values_threshold): New function.
2932 * targhooks.h (default_case_values_threshold): Declare function.
2933 * stmt.c (expand_case): Use case_values_threshold target hook.
2934 * expr.h (case_values_threshold): Remove declartation.
2935 * expr.c (case_values_threshold): Remove function.
2936 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
2937
2938 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
2939 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2940 (avr_case_values_threshold): Declare as static.
2941 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
2942
2943 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
2944 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2945 (mn10300_case_values_threshold): New function.
2946
569c72fc
L
29472009-04-24 H.J. Lu <hongjiu.lu@intel.com>
2948
2949 * ira.c (setup_cover_and_important_classes): Add enum cast.
2950
ff3cb468
VM
29512009-04-24 Vladimir Makarov <vmakarov@redhat.com>
2952
2953 * genpreds.c (write_enum_constraint_num): Output definition of
2954 CONSTRAINT_NUM_DEFINED_P macro.
2955 * ira.c (setup_cover_and_important_classes): Use
2956 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
2957
4f7be849
DD
29582009-04-24 DJ Delorie <dj@redhat.com>
2959
2960 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
2961 __SH2A_SINGLE_ONLY__ also.
2962
735b94a7
SE
29632009-04-24 Steve Ellcey <sje@cup.hp.com>
2964
2965 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
2966 (movdf_internal): Ditto.
2967 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
2968 SFmode and DFmode constants.
2969 (ia64_print_operand): Add 'G' format for printing
2970 floating point constants.
2971
77a30264
RG
29722009-04-24 Richard Guenther <rguenther@suse.de>
2973
2974 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
2975 from unsigned additions.
2976
2b6da65c
JM
29772009-04-24 Joseph Myers <joseph@codesourcery.com>
2978
2979 * c-typeck.c (set_init_index): Allow array designators that are
2980 not integer constant expressions with a pedwarn if pedantic.
2981
f5a17c43
BS
29822009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
2983
2984 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
2985 zero if no overlap in nonzero bits between the operands.
2986
32e8bb8e
ILT
29872009-04-24 Ian Lance Taylor <iant@google.com>
2988
2989 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
2990 (record_dead_and_set_regs): Likewise.
2991 * df.h (struct df_mw_hardreg): Change flags field to int.
2992 (struct df_base_ref): Likewise.
2993 (struct df): Change changeable_flags field to int.
2994 * df-scan.c (df_defs_record): Change clobber_flags to int.
2995 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
2996 constants rather than #define macros.
2997 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
2998 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
2999 (enum dwarf_calling_convention): Likewise.
3000 (enum dwarf_line_number_x_ops): Likewise.
3001 (enum dwarf_call_frame_info): Likewise.
3002 (enum dwarf_source_language): Likewise.
3003 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
3004 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
3005 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
3006 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
3007 * genrecog.c (maybe_both_true_2): Change c to int.
3008 (write_switch): Likewise. Add cast to enum type.
3009 * gimplify.c (gimplify_omp_for): Handle return values from
3010 gimplify_expr using MIN rather than bitwise or.
3011 (gimplify_expr): Add cast to enum type.
3012 * ipa-prop.c (update_jump_functions_after_inlining): Change
3013 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
3014 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
3015 Add casts to enum type.
32e8bb8e
ILT
3016 (setup_cover_and_important_classes): Change cl to int. Add casts
3017 to enum type.
3018 (setup_class_translate): Change cl and mode to int.
3019 (ira_init_once): Change mode to int.
3020 (free_register_move_costs): Likewise.
3021 (setup_prohibited_mode_move_regs): Add casts to enum type.
3022 * langhooks.c (add_builtin_function_common): Rework assertion that
3023 value fits bitfield.
3024 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
3025 * omega.c (omega_do_elimination): Avoid math on enum types.
3026 * optabs.c (expand_vec_shift_expr): Remove casts to int.
3027 * opts.c (set_debug_level): Change 2 to enum constant. Use new
3028 int local to handle integral_argment value.
3029 * regmove.c (try_auto_increment): Change PUT_MODE to
3030 PUT_REG_NOTE_KIND.
3031 * reload.c (push_secondary_reload): Add casts to enum type.
3032 (secondary_reload_class, find_valid_class): Likewise.
3033 * reload1.c (emit_input_reload_insns): Likewise.
3034 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
3035 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
3036 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
3037 constant.
3038 * tree.c (build_common_builtin_nodes): Add casts to enum type.
3039 * tree-complex.c (complex_lattice_t): Typedef to int rather than
3040 enum type.
3041 (expand_complex_libcall): Add casts to enum type.
3042 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3043 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3044 with ERROR_MARK, not NUM_TREE_CODES.
3045 (vect_create_epilog_for_reduction): Likewise.
3046 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 3047 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
3048 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3049 enum machine_mode.
3050 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3051 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 3052 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
3053 * var-tracking.c (get_init_value): Change return type to enum
3054 var_init_status.
3055 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3056 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3057 arm_fp_model.
3058 (arm_override_options): Add casts to enum type.
3059 (arm_emit_tls_decoration): Likewise.
3060 * config/i386/i386.c (ix86_function_specific_restore): Add casts
3061 to enum type.
3062 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3063 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3064 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3065 enum type.
3066 * config/s390/s390.c (code_for_builtin_64): Change to array of
3067 enum insn_code.
3068 (code_for_builtin_31): Likewise.
3069 (s390_expand_builtin): Change code_for_builtin to enum insn_code
3070 const *.
3071 * config/sparc/sparc.c (sparc_override_options): Change value
3072 field in struct code_model to enum cmodel. In initializer change
3073 0 to NULL and add cast to enum type.
3074
3075 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3076 Change all callers. Issue a -Wc++-compat warning using
3077 lhs_origtype if necessary.
3078 (convert_for_assignment): Issue -Wc++-compat warnings about
3079 invalid conversions to enum type on assignment.
3080 * c-common.h (build_modify_expr): Update declaration.
3081
ac4fc08a
NC
30822009-04-24 Nick Clifton <nickc@redhat.com>
3083
3084 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3085 (function_arg_advance): Likewise.
3086 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3087 5th alternative.
3088
f22e891a
AK
30892009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
3090
3091 * config/s390/constraints.md ('I', 'J'): Fix condition.
3092
ad58aabe
DN
30932009-04-24 Diego Novillo <dnovillo@google.com>
3094
3095 * gengtype-parse.c (parse_error): Add newline after message.
3096
879a4a01
L
30972009-04-24 H.J. Lu <hongjiu.lu@intel.com>
3098
3099 * config/i386/sse.md (avxmodesuffixs): Removed.
3100 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3101 (*avx_pinsr<ssevecsize>): This.
3102
f63426af
BS
31032009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3104
3105 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3106 follow chains of regs with a single definition, and allow expressions
3107 that are function_invariant_p.
ce72fe6c 3108 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 3109
30349c74
PB
31102009-04-24 Paolo Bonzini <bonzini@gnu.org>
3111
3112 PR middle-end/39867
3113 * fold-const.c (fold_cond_expr_with_comparison): When folding
3114 > and >= to MAX, make sure the MAX uses the same type as the
3115 comparison's operands.
3116
8d8256c1
NC
31172009-04-24 Nick Clifton <nickc@redhat.com>
3118
3119 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3120 addressing for DImode accesses.
3121 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 3122 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 3123
6216f94e
JJ
31242009-04-24 Jakub Jelinek <jakub@redhat.com>
3125
3126 PR rtl-optimization/39794
3127 * alias.c (canon_true_dependence): Add x_addr argument.
3128 * rtl.h (canon_true_dependence): Adjust prototype.
3129 * cse.c (check_dependence): Adjust canon_true_dependence callers.
3130 * cselib.c (cselib_invalidate_mem): Likewise.
3131 * gcse.c (compute_transp): Likewise.
3132 * dse.c (scan_reads_nospill): Likewise.
3133 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
3134 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3135 canon_base_addr of the group, plus optional offset.
3136 (struct group_info): Rename canon_base_mem to
3137 canon_base_addr.
3138 (get_group_info): Set canon_base_addr to canon_rtx of base, not
3139 canon_rtx of base_mem.
3140
6de7a512
PB
31412009-04-23 Paolo Bonzini <bonzini@gnu.org>
3142
3143 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3144 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3145
4a3a2376
UW
31462009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3147
3148 * config/spu/spu-builtins.h: Delete file.
3149
3150 * config/spu/spu.h (enum spu_builtin_type): Move here from
3151 spu-builtins.h.
3152 (struct spu_builtin_description): Likewise. Add GTY marker.
3153 Do not use enum spu_function_code or enum insn_code.
3154 (spu_builtins): Add extern declaration.
3155
3156 * config/spu/spu.c: Do not include "spu-builtins.h".
3157 (enum spu_function_code, enum spu_builtin_type_index,
3158 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3159 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3160 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3161 unsigned_V2DI_type_node): Move here from spu-builtins.h.
3162 (spu_builtin_types): Make static. Add GTY marker.
3163 (spu_builtins): Add extern declaration with GTY marker.
3164 Include "gt-spu.h".
3165
3166 * config/spu/spu-c.c: Do not include "spu-builtins.h".
3167 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3168 Check programmatically whether all parameters are scalar.
3169
3170 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3171
bbaba73f
EB
31722009-04-23 Eric Botcazou <ebotcazou@adacore.com>
3173
3174 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3175 assignment from the constructor either if the target is volatile.
3176
ee93c1c6
DJ
31772009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
3178
3179 * config/arm/arm.md (insv): Do not share operands[0].
3180
b2f21330
NS
31812009-04-23 Nathan Sidwell <nathan@codesourcery.com>
3182
3183 * config/vxlib-tls.c (active_tls_threads): Delete.
3184 (delete_hook_installed): New.
3185 (tls_delete_hook): Don't delete the delete hook.
3186 (tls_destructor): Delete it here.
3187 (__gthread_set_specific): Adjust installing the delete hook.
3188 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3189 __gthread_leave_tsd_dtor_context.
3190
4782dfa7
RAE
31912009-04-23 Rafael Avila de Espindola <espindola@google.com>
3192
3193 * c-format.c (gcc_tdiag_char_table): Add support for %E.
3194
bf758008
UB
31952009-04-23 Uros Bizjak <ubizjak@gmail.com>
3196
3197 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3198 enum type.
3199 (alpha_rtx_costs): Ditto.
3200 (emit_unlikely_jump): Use add_reg_note.
3201 (emit_frame_store_1): Ditto.
3202 (alpha_expand_prologue): Ditto.
3203 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3204 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3205
7323a100
NC
32062009-04-23 Nick Clifton <nickc@redhat.com>
3207
3208 * config/v850/v850.md (epilogue): Remove suppressed code.
3209 (return): Rename to return_simple and remove test of frame size.
3210 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3211 to gen_return_simple.
3212
360032ba
JY
32132009-04-22 Jing Yu <jingyu@google.com>
3214
3215 PR testsuite/39781
3216 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3217
53650abe
AP
32182009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
3219
3220 PR C/31499
3221 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3222 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
3223 value is a VECTOR_CST, the element type is the element type of the
3224 vector.
3225
89043e8a
DD
32262009-04-22 DJ Delorie <dj@redhat.com>
3227
3228 * config/m32c/m32c.h: Update GTY annotations to new syntax.
3229
023f059b
JJ
32302009-04-22 Jakub Jelinek <jakub@redhat.com>
3231
3232 * alias.c (find_base_term): Move around LO_SUM case, so that
3233 CONST falls through into PLUS/MINUS handling.
3234
2c0eba5a
JJ
3235 PR c/39855
3236 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3237 into 0, use omit_one_operand.
3238
9a461028
BE
32392009-04-23 Ben Elliston <bje@au.ibm.com>
3240
3241 * config/rs6000/linux-unwind.h (get_regs): Remove type
3242 puns. Change the type of `pc' to an array of unsigned ints and
3243 update all users. Constify frame24.
3244
653e2568
DD
32452009-04-22 DJ Delorie <dj@redhat.com>
3246
3247 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3248 declarations before code.
3249 (current_function_special_page_vector): Likewise.
3250 (m32c_expand_insv): Silence a warning.
3251
60839f5d 32522009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
3253
3254 * alias.c: Update GTY annotations to new syntax.
3255 * basic-block.h: Likewise.
3256 * bitmap.h: Likewise.
3257 * c-common.h: Likewise.
3258 * c-decl.c: Likewise.
3259 * c-parser.c: Likewise.
3260 * c-pragma.c: Likewise.
3261 * c-tree.h: Likewise.
3262 * cfgloop.h: Likewise.
3263 * cgraph.h: Likewise.
3264 * config/alpha/alpha.c: Likewise.
3265 * config/arm/arm.h: Likewise.
3266 * config/avr/avr.h: Likewise.
3267 * config/bfin/bfin.c: Likewise.
3268 * config/cris/cris.c: Likewise.
3269 * config/darwin.c: Likewise.
3270 * config/frv/frv.c: Likewise.
3271 * config/i386/i386.c: Likewise.
3272 * config/i386/i386.h: Likewise.
3273 * config/i386/winnt.c: Likewise.
3274 * config/ia64/ia64.h: Likewise.
3275 * config/iq2000/iq2000.c: Likewise.
3276 * config/mips/mips.c: Likewise.
3277 * config/mmix/mmix.h: Likewise.
3278 * config/pa/pa.c: Likewise.
3279 * config/pa/pa.h: Likewise.
3280 * config/rs6000/rs6000.c: Likewise.
3281 * config/s390/s390.c: Likewise.
3282 * config/sparc/sparc.c: Likewise.
3283 * config/xtensa/xtensa.c: Likewise.
3284 * cselib.h: Likewise.
3285 * dbxout.c: Likewise.
3286 * dwarf2out.c: Likewise.
3287 * except.c: Likewise.
3288 * except.h: Likewise.
3289 * fixed-value.h: Likewise.
3290 * function.c: Likewise.
3291 * function.h: Likewise.
3292 * gimple.h: Likewise.
3293 * integrate.c: Likewise.
3294 * optabs.c: Likewise.
3295 * output.h: Likewise.
3296 * real.h: Likewise.
3297 * rtl.h: Likewise.
3298 * stringpool.c: Likewise.
3299 * tree-data-ref.c: Likewise.
3300 * tree-flow.h: Likewise.
3301 * tree-scalar-evolution.c: Likewise.
3302 * tree-ssa-address.c: Likewise.
3303 * tree-ssa-alias.h: Likewise.
3304 * tree-ssa-operands.h: Likewise.
3305 * tree.c: Likewise.
3306 * tree.h: Likewise.
3307 * varasm.c: Likewise.
3308 * varray.h: Likewise.
3309 * vec.h: Likewise.
bf758008 3310 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
3311 * doc/gty.texi: Update GTY documentation to new syntax.
3312 * gengtype-lex.l: Enforce attribute-like syntax for GTY
3313 annotations on structs.
3314 * gengtype-parse.c: Likewise.
3315
a123d175
MH
33162009-04-22 Mark Heffernan <meheff@google.com>
3317
bf758008 3318 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 3319
4c7c486a
KH
33202009-04-22 Kazu Hirata <kazu@codesourcery.com>
3321
3322 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3323 where appropriate.
3324
6e782a29
KH
33252009-04-22 Kazu Hirata <kazu@codesourcery.com>
3326
3327 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3328 the same as a PLUS without a shift. Increase the cost of a
3329 CONST_INT in MULT.
3330
38d2336a
MLI
33312009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3332
3333 * Makefile.in: Update dependencies.
bf758008 3334 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
3335 * errors.h: Remove bogus comment about compatibility.
3336 (warning): Update declaration.
3337 * genautomata.c: Update all calls to warning.
3338 * gimple.c: Do not include errors.h. Include toplev.h.
3339 * tree-ssa-structalias.c: Do not include errors.h.
3340 * omega.c: Likewise.
3341 * tree-ssa-reassoc.c: Likewise.
3342 * config/spu/spu-c.c: Likewise.
3343 * config/spu/t-spu-elf: Update dependencies.
3344
aea4deba
RG
33452009-04-22 Richard Guenther <rguenther@suse.de>
3346
3347 PR tree-optimization/39824
3348 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3349 make sure the types are compatible.
3350
cfc93532
MLI
33512009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3352
3353 PR c++/14875
3354 * c-common.c (c_parse_error): Take a token_flags parameter.
3355 Use token_type for the token type instead.
3356 Pass token_flags to cpp_type2name.
3357 * c-common.h (c_parse_error): Update declaration.
3358 * c-parser.c (c_parser_error): Pass 0 as token flags.
3359
8632d02a
AB
33602009-04-22 Andrey Belevantsev <abel@ispras.ru>
3361
3362 PR rtl-optimization/39580
3363 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
3364
4c33221c
UW
33652009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3366
3367 * function.c (expand_function_end): Do not emit a jump to the "naked"
3368 return label for fall-through returns.
3369 * except.c (sjlj_emit_function_exit): Always place the call to the
3370 unregister function at the location installed by expand_function_end.
3371
9925bce0
RG
33722009-04-22 Richard Guenther <rguenther@suse.de>
3373
3374 PR tree-optimization/39845
3375 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3376 (gen_inbound_check): Likewise.
3377
24a40b35
NS
33782009-04-22 Nathan Sidwell <nathan@codesourcery.com>
3379
3380 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3381 padding for PPC.
3382 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
3383 * config/vxlib.c (__gthread_once): Add race guard for PPC.
3384
6c34a092
PB
33852009-04-22 Paolo Bonzini <bonzini@gnu.org>
3386
3387 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
3388 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
3389 shift counts to avoid out-of-bounds array accesses.
3390
baa48dfa
PB
33912009-04-22 Paolo Bonzini <bonzini@gnu.org>
3392
3393 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
3394 (Pmode): Move above.
3395
7d83f4f5
UB
33962009-04-22 Uros Bizjak <ubizjak@gmail.com>
3397
3398 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
3399 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
3400 GET_CODE macro. Use IN_RANGE macro where appropriate.
3401 * config/alpha/alpha.h: Ditto.
3402 * config/alpha/alpha.md: Ditto.
3403 * config/alpha/constraints.md: Ditto.
3404 * config/alpha/predicates.md: Ditto.
3405
3ad606bc
PB
34062009-04-22 Paolo Bonzini <bonzini@gnu.org>
3407
3408 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
3409 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3410 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3411 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3412 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3413 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3414 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3415 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3416 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3417 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3418 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3419 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3420 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3421 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3422 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3423 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3424 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3425 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3426 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3427 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3428 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3429 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3430 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3431 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3432 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3433 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3434 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3435
3cabd6d1
LB
34362009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3437
3438 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
3439 references from comments.
3440 * cfgbuild.c: (count_basic_blocks): Delete.
3441 (find_basic_blocks_1): Delete.
3442 (find_basic_blocks): Delete.
3443 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 3444 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
3445 * except.h (finish_eh_generation): Delete.
3446 * basic-block.h (find_basic_blocks): Delete.
3447 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
3448
270d1bcd
DK
34492009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
3450
3451 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
3452 (sdbout_parms): Likewise.
3453
b757d36f
KK
34542009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
3455
3456 * config/sh/sh.c (prepare_cbranch_operands): Use
3457 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
3458 (expand_cbranchdi4): Likewise.
3459 (from_compare): Add cast to enum type.
3460 (expand_cbranchsi4): Use add_reg_note.
3461 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
3462 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
3463 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
3464 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3465 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
3466 instead of CODE_FOR_nothing.
3467 (cbranchdi4): Likewise. Fix the order of arguments for
3468 gen_rtx_fmt_ee.
3469 (push_fpscr): Use add_reg_note.
3470 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
3471 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
3472
ad41bd84
JM
34732009-04-21 Joseph Myers <joseph@codesourcery.com>
3474
3475 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
3476 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3477 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3478 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
3479 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
3480 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
3481 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
3482 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
3483 config/alpha/x-vms, config/arc/t-arc,
3484 config/arm/README-interworking, config/arm/arm-c.c,
3485 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
3486 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
3487 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
3488 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
3489 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
3490 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
3491 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
3492 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
3493 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
3494 config/cris/t-elfmulti, config/crx/t-crx,
3495 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
3496 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
3497 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
3498 config/h8300/t-h8300, config/i386/athlon.md,
3499 config/i386/darwin-libgcc.10.4.ver,
3500 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
3501 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
3502 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
3503 config/i386/t-linux64, config/i386/t-nwld,
3504 config/i386/t-rtems-i386, config/i386/t-sol2-10,
3505 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
3506 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
3507 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
3508 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
3509 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
3510 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
3511 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
3512 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
3513 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
3514 config/m68k/t-uclinux, config/mcore/t-mcore,
3515 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
3516 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
3517 config/mips/crtn.asm, config/mips/irix-crti.asm,
3518 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
3519 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
3520 config/mips/mips-fixed.md, config/mips/sb1.md,
3521 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
3522 config/mips/t-iris6, config/mips/t-isa3264,
3523 config/mips/t-libgcc-mips16, config/mips/t-linux64,
3524 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
3525 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
3526 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
3527 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
3528 config/mn10300/t-linux, config/mn10300/t-mn10300,
3529 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
3530 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
3531 config/picochip/libgccExtras/clzsi2.asm,
3532 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
3533 config/rs6000/darwin-libgcc.10.4.ver,
3534 config/rs6000/darwin-libgcc.10.5.ver,
3535 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
3536 config/rs6000/t-aix43, config/rs6000/t-aix52,
3537 config/rs6000/t-darwin, config/rs6000/t-fprules,
3538 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
3539 config/rs6000/t-lynx, config/rs6000/t-netbsd,
3540 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
3541 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
3542 config/rs6000/t-rtems, config/rs6000/t-spe,
3543 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
3544 config/score/t-score-elf, config/sh/divcost-analysis,
3545 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
3546 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
3547 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
3548 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
3549 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
3550 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
3551 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
3552 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
3553 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
3554 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
3555 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
3556 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
3557 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
3558 limitx.h, version.c, xcoff.h: Add copyright and license notices.
3559 * config/h8300/genmova.sh: Include copyright and license notices
3560 in generated output.
3561 * config/h8300/mova.md: Regenerate.
3562 * doc/install.texi2html: Include word "Copyright" in copyright
3563 notice and use name "Free Software Foundation, Inc.".
3564 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3565 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3566 ChangeLog-2007, ChangeLog-2008: Correct dates.
3567
ca80e52b
EB
35682009-04-21 Eric Botcazou <ebotcazou@adacore.com>
3569
3570 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
3571 NE_EXPR operations as well.
3572 * c-parser.c (c_parser_condition): Do not set location information on
3573 the condition.
3574 (c_parser_conditional_expression): Likewise.
3575 (c_parser_binary_expression): Set location information on operators.
3576 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
3577 TRUTH_NOT_EXPR has been folded.
3578 * fold-const.c (fold_truth_not_expr): Copy location information from
3579 the incoming expression to the outgoing one.
3580 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
3581 recursive calls on the LHS of the operator but pass that of the
3582 operator to recursive calls on the RHS of the operator. Set it
3583 on the COND_EXPR.
3584 (shortcut_cond_expr): Set the locus of the operator on the second
3585 COND_EXPR and that of the expression on the first in degenerate cases.
3586 Pass the locus of the expression to calls to shortcut_cond_r.
3587 Set the locus of the 'then' block on the associated jump, if any.
3588 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
3589 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
3590 expression to call to gimplify_boolean_expr.
3591
35091630
KT
35922009-04-21 Kai Tietz <kai.tietz@onevision.com>
3593
3594 * config.gcc: Add additional configuration for
3595 i686-w64-mingw* and x86_64-w64-mingw* triplet.
3596 * config/i386/mingw-w64.h: New mingw-w64 specific header.
3597 (CPP_SPEC): Redefine for allowing -municode option.
3598 (STARTFILE_SPEC): Likewise.
3599 * config/i386/t-mingw-w64: New.
3600 * config/i386/mingw-w64.opt: New.
3601 (municode): Add new target option.
3602 * doc/invoke.texi (municode): Add documentation for new option.
3603
0267afc4
ILT
36042009-04-21 Ian Lance Taylor <iant@google.com>
3605
3606 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3607 Correct test for number of arguments.
3608 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
3609
2ba9daa7
AS
36102009-04-21 Andreas Schwab <schwab@linux-m68k.org>
3611
3612 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
3613 argument of emit_library_call.
3614
ad8a1ac0
RG
36152009-04-21 Richard Guenther <rguenther@suse.de>
3616
3617 PR middle-end/39829
3618 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
3619 inside VIEW_CONVERT_EXPRs.
3620
7156c8ab
MJ
36212009-04-21 Martin Jambor <mjambor@suse.cz>
3622
3623 * tree-switch-conversion.c (build_constructors): Split a long line.
3624 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
3625 (build_one_array): Create assigns of constants if possible, do not
3626 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
3627 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
3628 make_rename_temp. Do not call mark_symbols_for_renaming, call
3629 update_stmt.
3630 (gen_def_assigns): Do not call mark_symbols_for_renaming or
3631 find_new_referenced_vars, call update_stmt.
3632 (gen_inbound_check): Use create_tmp_var and create ssa names manually
3633 instead of calling make_rename_temp. Do not call
3634 find_new_referenced_vars or mark_symbols_for_renaming, call
3635 update_stmt.
3636
2970ccb3
RG
36372009-04-21 Richard Guenther <rguenther@suse.de>
3638
3639 PR tree-optimization/39827
7d83f4f5 3640 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
3641 (tree_ssa_phiprop): Pass the correct array size.
3642
47f402d1
UB
36432009-04-21 Uros Bizjak <ubizjak@gmail.com>
3644
3645 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
3646
1e4ae551
MLI
36472009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
3648
3649 PR 16202
3650 * c-typeck.c (lvalue_p): Move declaration ...
3651 * c-common.h (lvalue_p): ... to here.
3652 * c-common.c (candidate_equal_p): New.
3653 (add_tlist): Use it.
3654 (merge_tlist): Use it.
3655 (warn_for_collisions_1): Likewise.
3656 (warning_candidate_p): Accept more candidates.
3657 (verify_tree): A warning candidate can be an expression. Use
3658 candidate_equal_p.
3659
244609a6
BE
36602009-04-21 Ben Elliston <bje@au.ibm.com>
3661
3662 PR target/5267
3663 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3664 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
3665 options. Remove -mcall-solaris documentation.
3666
9c650d90
MLI
36672009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3668
3669 PR c++/13358
3670 * doc/invoke.texi (-Wlong-long): Update description.
3671 * c-lex (interpret_integer): Only warn if there was no previous
3672 overflow and -Wlong-long is enabled.
3673 * c-decl.c (declspecs_add_type): Drop redundant flags.
3674 * c.opt (Wlong-long): Init to -1.
3675 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
3676 and front-end warn_long_long. Wlong-long only depends on other
3677 flags if it is uninitialized.
3678 * c-parser.c (disable_extension_diagnostics): warn_long_long is
3679 the same for CPP and FE.
3680 (restore_extension_diagnostics): Likewise.
3681
bbbbb16a
ILT
36822009-04-20 Ian Lance Taylor <iant@google.com>
3683
3684 Fix enum conversions which are invalid in C++:
47f402d1
UB
3685 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
3686 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3687 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
3688 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 3689 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 3690 (dbxout_parms): Likewise.
47f402d1 3691 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
3692 (df_clear_flags): Likewise.
3693 * df-problems.c (df_rd_bb_local_compute_process_def): Change
3694 top_flag parameter to int.
3695 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
3696 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
3697 Remove cast.
bbbbb16a
ILT
3698 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
3699 (df_ref_create_structure, df_def_record_1): Likewise.
3700 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
3701 (df_notes_rescan): Change 0 to VOIDmode in function call.
3702 (df_get_call_refs, df_insn_refs_collect): Likewise.
3703 (df_bb_regs_collect): Likewise.
3704 (df_entry_block_defs_collect): Likewise.
3705 (df_exit_block_uses_collect): Likewise.
3706 * df.h: Update declarations.
3707 * double-int.c (double_int_divmod): Add cast to enum type.
3708 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
3709 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
3710 (based_loc_descr): Likewise.
3711 (loc_descriptor_from_tree_1): Change first_op and second_op to
3712 enum dwarf_location_atom. Add cast to enum type.
3713 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 3714 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
3715 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
3716 (do_store_flag): Likewise.
3717 * fixed-value.h (struct fixed_value): Change mode to enum
3718 machine_mode.
47f402d1 3719 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
3720 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
3721 function call.
3722 (insert_insn_decl, insert_decl, insert_state): Likewise.
3723 (automata_list_finish): Likewise.
3724 * genrecog.c (process_define_predicate): Add cast to enum type.
3725 * gensupport.c (init_predicate_table): Add cast to enum type.
3726 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
3727 function call.
3728 (gimple_build_call_1, gimple_build_label): Likewise.
3729 (gimple_build_goto, gimple_build_asm_1): Likewise.
3730 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 3731 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
3732 (enum fallback): Rename from enum fallback_t.
3733 (fallback_t): Typedef as int.
3734 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
3735 GSI_SAME_STMT in function call.
3736 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
3737 enum type.
3738 (setup_reg_class_relations): Likewise.
47f402d1 3739 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
3740 (setup_prohibited_class_mode_regs): Add cast to enum type.
3741 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 3742 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
3743 (record_address_regs): Change i to enum reg_class.
3744 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
3745 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
3746 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
3747 (GET_MODE_2XWIDER_MODE): Likewise.
3748 (GET_CLASS_NARROWEST_MODE): Likewise.
3749 * omp-low.c (expand_omp_for): Add cast to enum type.
3750 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
3751 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
3752 * postreload.c (reload_cse_simplify_operands): Change rclass local
3753 to enum reg_class.
3754 * predict.c (combine_predictions_for_insn): Change best_predictor
3755 and predictor to enum br_predictor.
3756 (combine_predictions_for_bb): Likewise.
3757 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
3758 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 3759 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
3760 * reginfo.c (init_move_cost): Add casts to enum type.
3761 (init_reg_sets_1, init_fake_stack_mems): Likewise.
3762 * regmove.c (regclass_compatible_p): Change class0 and class1 to
3763 enum reg_class.
3764 * reload.c (find_valid_class): Add casts to enum type.
3765 (push_reload): Change 0 to NO_REGS in function call.
3766 (find_reloads): Change this_alternative to array of enum
3767 reg_class. Remove some now-unnecessary casts.
3768 (make_memloc): Change 0 to VOIDmode in function call.
3769 * reload1.c (reload): Change 0 to VOIDmode in function call.
3770 (eliminate_regs_1, elimination_effects): Likewise.
3771 (eliminate_regs_in_insn): Likewise.
3772 (emit_input_reload_insns): Add cast to enum type.
3773 (delete_output_reload): Change 0 to VOIDmode in function call.
3774 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
3775 to enum type in function call.
3776 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
3777 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 3778 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
3779 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
3780 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
3781 (dump_function): Likewise.
3782 * tree-dump.h: Update declarations.
3783 * tree-pass.h: Update declarations.
3784 * varasm.c (assemble_integer): Change mclass to enum mode_class.
3785 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
3786 enum type.
3787 (arm_rtx_costs_1): Correct parenthesization.
3788 (arm_rtx_costs): Add casts to enum type.
3789 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
3790 (vfp_emit_fstmd): Use add_rg_note.
3791 (emit_multi_reg_push, emit_sfm): Likewise.
3792 (thumb_set_frame_pointer): Likewise.
3793 (arm_expand_prologue): Likewise.
3794 (arm_regno_class): Change return type to enum reg_class.
3795 (thumb1_expand_prologue): Use add_reg_note.
3796 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
3797 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
3798 in function call.
3799 * config/arm/gentune.sh: Add cast to enum type.
3800 * config/arm/arm-tune.md: Rebuild.
3801 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
3802 (ix86_split_fp_branch, predict_jump): Likewise.
3803 (ix86_expand_multi_arg_builtin): Change sub_code from enum
3804 insn_code to enum rtx_code.
3805 (ix86_builtin_vectorized_function): Add cast to enum type.
3806 * config/i386/i386.md (truncdfsf2): Change slot to enum
3807 ix86_stack_slot.
3808 (truncxf<mode>2, isinf<mode>2): Likewise.
3809 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
3810 enum type.
3811 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
3812 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
3813 (insert_bundle_state): Change 1 to INSERT in function call.
3814 (ia64_add_bundle_selector_before): Likewise.
3815 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
3816 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
3817 (restore_stack_nonlocal): Likewise.
3818 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
3819 function call.
3820 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
3821 function call.
3822 (mips_rtx_costs): Likewise.
3823 (mips_override_options): Add casts to enum type.
3824 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
3825 in function call.
3826 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
3827 (store_reg, set_reg_plus_d): Likewise.
3828 (hppa_expand_prologue, hppa_profile_hook): Likewise.
3829 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
3830 cast to enum type.
3831 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
3832 function call.
3833 (emit_unlikely_jump): Use add_reg_note.
3834 (rs6000_emit_allocate_stack): Likewise.
3835 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
3836 (output_toc): Change 1 to INSERT in function call.
3837 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
3838 (rs6000_initialize_trampoline): Likewise.
3839 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
3840 function call.
3841 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
3842 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
3843 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
3844 (save_gprs): Use add_reg_note.
3845 (s390_emit_prologue): Likewise.
47f402d1 3846 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3847 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
3848 (sparc_fold_builtin): Add cast to enum type.
3849 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
3850 enum insn_code.
3851 (spu_expand_prologue): Use add_reg_note.
47f402d1 3852 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3853
38542009-04-20 Ian Lance Taylor <iant@google.com>
3855
3856 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
3857 (c_parser_postfix_expression_after_primary): Get VEC for list of
3858 arguments. Get original types of arguments. Call
3859 build_function_call_vec.
3860 (cached_expr_list_1, cached_expr_list_2): New static variables.
3861 (c_parser_expr_list): Change return type to VEC *. Add
3862 p_orig_types parameter. Change all callers.
3863 (c_parser_release_expr): New static function.
3864 (c_parser_vec_to_tree_list): New static function.
3865 * c-typeck.c (build_function_call): Rewrite to build a VEC and
3866 call build_function_call_vec.
3867 (build_function_call_vec): New function, based on old
3868 build_function_call.
3869 (convert_arguments): Remove nargs and argarray parameters. Change
3870 values to a VEC. Add origtypes parameter.
47f402d1 3871 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
3872 (convert_for_assignment): Add origtype parameter. Change all
3873 callers. If warn_cxx_compat, check for conversion to an enum
3874 type when calling a function.
3875 (store_init_value): Add origtype parameter. Change all callers.
3876 (digest_init): Likewise.
3877 (struct init_node): Add origtype field.
3878 (add_pending_init): Add origtype parameter. Change all callers.
3879 (output_init_element): Likewise.
3880 (output_pending_init_elements): Pass origtype from init_node to
3881 output_init_element.
f28a61ab 3882 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
3883 output_init_element.
3884 (c_finish_return): Add origtype parameter. Change all callers.
3885 * c-common.c (sync_resolve_size): Change params to VEC *. Change
3886 caller.
3887 (sync_resolve_params): Likewise.
47f402d1 3888 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 3889 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 3890 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
3891 * c-decl.c (finish_decl): Add origtype parameter. Change all
3892 callers. Call build_function_call_vec rather than
3893 build_function_call for cleanup.
3894 * c-tree.h: Update declarations.
3895 * c-common.h: Update declarations.
3896 * stub-objc.c (objc_rewrite_function_call): Change parameter from
3897 params to first_param.
3898 * target.h (struct gcc_target): Change resolve_overloaded_builtin
3899 params parameter from tree to void *.
3900 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3901 Change arglist parameter to have type void *, and to be a pointer
3902 to a VEC.
3903 * config/rs6000/rs6000-protos.h
3904 (altivec_resolve_overloaded_builtin): Update declaration.
3905 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
3906 fnargs parameter to have type void *, and to be a pointer to a
3907 VEC. Call build_function_call_vec instead of
3908 build_function_call.
47f402d1 3909 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 3910
6ff078d4 39112009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 3912 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
3913 H.J. Lu <hongjiu.lu@intel.com>
3914
3915 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
3916
3917 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
3918 (IX86_LEA_PRIORITY): Likewise.
3919 (distance_non_agu_define): New function.
3920 (distance_agu_use): Likewise.
3921 (ix86_lea_for_add_ok): Likewise.
3922 (ix86_dep_by_shift_count): Likewise.
3923
3924 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
3925 should split for LEA.
3926
3927 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
3928 function.
3929 (ix86_dep_by_shift_count): Likewise.
3930
87a5b4cc
RG
39312009-04-20 Richard Guenther <rguenther@suse.de>
3932
3933 * expr.c (handled_component_p): Move ...
3934 * tree.h (handled_component_p): ... here.
3935 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
3936 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
3937 and REALPART_EXPR to be in one group.
3938
438c239d
RG
39392009-04-20 Richard Guenther <rguenther@suse.de>
3940
3941 * basic-block.h (get_all_dominated_blocks): Declare.
3942 * dominance.c (get_all_dominated_blocks): New function.
3943 * tree-cfg.c (get_all_dominated_blocks): Remove.
3944 (remove_edge_and_dominated_blocks): Adjust.
3945 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
3946 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
3947 instead of recursing.
3948
fed5ae11
DK
39492009-04-20 Doug Kwan <dougkwan@google.com>
3950
3951 * cgraph.h (cgraph_node_ptr): New type for vector functions.
3952 (struct cgraph_node_set_def): New type.
3953 (cgraph_node_set) New type. Also declare vector functions.
3954 (struct cgraph_node_set_element_def): New type.
3955 (cgraph_node_set_element): Ditto.
3956 (cgraph_node_set_iterator): New iterator type.
3957 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
3958 cgraph_node_set_remove, dump_cgraph_node_set,
3959 debug_cgraph_node_set): New prototypes.
3960 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
3961 cgraph_node_set_size): New inlines.
3962 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
3963 including cgraph.h.
3964 (struct ipa_opt_pass): Add struct cgraph_node_set_def
3965 argument to function 'write_summary'.
3966 * ipa.c: Include ggc.h.
3967 (hash_cgraph_node_set_element,
3968 eq_cgraph_node_set_element, cgraph_node_set_new,
3969 cgraph_node_set_add, cgraph_node_set_remove,
3970 cgraph_node_set_find, dump_cgraph_node_set,
3971 debug_cgraph_node_set): New functions.
3972 * Makefile.in (ipa.o): Add dependency on GGC_H.
3973
c4551b28
IR
39742009-04-20 Ira Rosen <irar@il.ibm.com>
3975
3976 PR tree-optimization/39675
2ba9daa7 3977 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
3978 check of the return code of vect_schedule_slp. Check that
3979 stmt_vec_info still exists for the statement, before checking its
3980 vectorization type.
c4551b28 3981
21a495fb
MM
39822009-04-20 Michael Matz <matz@suse.de>
3983
3984 * Makefile.in (generated_files): Take out $(simple_generated_c).
3985
8e208874
DK
39862009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
3987
3988 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
3989 (UINTPTR_TYPE): Likewise.
3990
a45e580b
JM
39912009-04-19 Joseph Myers <joseph@codesourcery.com>
3992
3993 PR c/37481
3994 * c-typeck.c (digest_init): Check for initializing an array with a
3995 string literal.
3996
20845d35
JM
39972009-04-19 Joseph Myers <joseph@codesourcery.com>
3998
3999 PR c/19771
4000 * c-semantics.c (pop_stmt_list): Propagate
4001 STATEMENT_LIST_HAS_LABEL to parent statement list.
4002
28143fdd
AN
40032009-04-19 Adam Nemet <anemet@caviumnetworks.com>
4004
4005 * config/mips/mips.h (mips_tune_attr): New macro.
4006 * config/mips/mips.md (cpu): Use it.
4007
da377db9
JM
40082009-04-19 Joseph Myers <joseph@codesourcery.com>
4009
4010 PR c/38243
4011 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
4012 declaring a tag.
4013
3baf459d
DN
40142009-04-19 Diego Novillo <dnovillo@google.com>
4015
4016 * toplev.c (compile_file): Move call to coverage_finish ...
4017 * cgraphunit.c (ipa_passes): ... here.
4018 Call cgraph_process_new_functions.
4019 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
4020 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
4021
b6fa5b01
JH
40222009-04-19 Jan Hubicka <jh@suse.cz>
4023
47f402d1
UB
4024 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
4025 cfun.
b6fa5b01
JH
4026 (dump_cgraph_node): Dump can throw external flag.
4027 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
4028
ca409efd
MLI
40292009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4030
4031 PR c/32061
4032 PR c++/36954
4033 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
4034 * common.opt (Wlogical-op): Move from here...
4035 * c.opt (Wlogical-op): ... to here.
4036 * c-typeck.c (parser_build_binary_op): Update call to
4037 warn_logical_operator.
4038 * c-opts.c (c_common_post_options): Enable warn_logical_op with
4039 extra_warnings.
4040 * c-common.c (warn_logical_op): Update.
4041 * c-common.h (warn_logical_op): Update declaration.
4042
9db4cdd3
EB
40432009-04-19 Eric Botcazou <ebotcazou@adacore.com>
4044
4045 * tree.c (protected_set_expr_location): Fix formatting.
4046
f37acdf9
JM
40472009-04-18 Joseph Myers <joseph@codesourcery.com>
4048
4049 PR c/27676
4050 * c-typeck.c (readonly_warning): new.
4051 (build_unary_op, build_modify_expr): Use readonly_warning for
4052 storing into something readonly but not const-qualified.
4053
2b4b7036
JM
40542009-04-18 Joseph Myers <joseph@codesourcery.com>
4055
4056 PR c/22367
4057 * c-typeck.c (build_unary_op): Check for taking address of
4058 expression of type void.
4059
3ce62965
JM
40602009-04-18 Joseph Myers <joseph@codesourcery.com>
4061
4062 PR c/35210
4063 * c-typeck.c (build_function_call): Check for calling a function
4064 with qualified void return types. Call require_complete_type when
4065 generating a trap.
4066
2505c5ed
JH
40672009-04-18 Jan Hubicka <jh@suse.cz>
4068
4069 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4070 Set nothrow flag.
4071 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4072 can_throw_external flag.
4073 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4074 * ipa-pure-const.c (ignore_edge): New function.
4075 (propagate): Compute order for NOTHROW computation; set NOTHROWs
4076 only over can_throw_external edges.
4077 (local_pure_const): Add nothrow flag.
4078 * ipa-utils.c (searchc): Add ignore_edge callback.
4079 (ipa_utils_reduced_inorder): Add ignore_edge callback.
4080 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4081 (set_nothrow_function_flags): Update cgraph.
4082 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4083
2586ba4b
RG
40842009-04-18 Richard Guenther <rguenther@suse.de>
4085
4086 PR middle-end/39804
4087 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4088 (fold_stmt): ... this and ...
4089 (fold_stmt_inplace): ... this.
4090 (fold_stmt_1): Fold references in calls and asms.
4091 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4092
1eefab17
KH
40932009-04-18 Kazu Hirata <kazu@codesourcery.com>
4094
4095 * tree-vrp.c (ssa_name_nonzero_p): Remove.
4096 * tree.h: Remove the prototype for ssa_name_nonzero_p.
4097
aa424b01
KH
40982009-04-18 Kazu Hirata <kazu@codesourcery.com>
4099
4100 * tree.c (function_args_count): Remove.
4101 * tree.h: Remove the prototype for function_args_count.
4102
613a896b
KH
41032009-04-18 Kazu Hirata <kazu@codesourcery.com>
4104
4105 * tree-iterator.c (expr_only): Remove.
4106 * tree.h: Remove the prototype for expr_only.
4107
579e694c
KH
41082009-04-18 Kazu Hirata <kazu@codesourcery.com>
4109
4110 * reginfo.c (cannot_change_mode_set_regs): Remove.
4111 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4112
ee7e3ad3
AS
41132009-04-08 Anatoly Sokolov <aesok@post.ru>
4114
4115 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4116 whether operands 0 and 1 overlaps.
4117
92ef7fb1
MLI
41182009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
4119
4120 PR middle-end/36902
4121 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4122 pointer. Use warning_at instead of warning.
4123 (search_for_addr_array): Likewise.
4124 (check_array_bounds): Likewise.
4125 (check_all_array_refs): Check that the incoming edge is not in the
4126 list of edges to be removed.
4127 (check_all_array_refs): Avoid the temporal pointer.
4128 (vrp_visit_cond_stmt): Fix typo.
4129 (simplify_switch_using_ranges): Handle the case where the switch
4130 index is an integer constant.
4131
0e097268
AN
41322009-04-18 Adam Nemet <anemet@caviumnetworks.com>
4133
4134 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4135
c782f1dd
KH
41362009-04-18 Kazu Hirata <kazu@codesourcery.com>
4137
4138 * doc/extend.texi, doc/invoke.texi: Fix typos.
4139
668fb0e8
CC
41402009-04-17 Cary Coutant <ccoutant@google.com>
4141
4142 * tree-flow-inline.h (get_lineno): Fix inverted test.
4143
4d4014c1
DN
41442009-04-17 Diego Novillo <dnovillo@google.com>
4145
4146 * tree-ssa-pre.c (create_expression_by_pieces): Remove
4147 assertion for AVAIL_OUT.
4148
2984e1b6
MF
41492009-04-17 Mike Frysinger <vapier@gentoo.org>
4150
4151 PR target/38627
4152 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4153 * config/sh/linux-atomic.asm: Likewise.
4154
9994a182
DN
41552009-04-17 Diego Novillo <dnovillo@google.com>
4156
4157 * except.c (debug_eh_tree): New.
4158 (struct eh_region, struct eh_status): Move ...
4159 * except.h: ... here.
4160 (add_type_for_runtime): Declare extern.
4161 (lookup_type_for_runtime): Likewise.
4162 (debug_eh_tree): Declare.
4163 * Makefile.in (GTFILES): List except.h before except.c
4164
07485407
DN
41652009-04-17 Diego Novillo <dnovillo@google.com>
4166
47f402d1 4167 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
4168 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4169 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4170 (find_vars_r): ... here.
4171 * tree-flow.h (find_referenced_vars_in): Declare.
4172 * tree-ssa-pre.c (create_expression_by_pieces): Assert
4173 that AVAIL_OUT exists for BLOCK.
4174 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4175 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4176 (tree-parloops.o): Likewise.
4177
4e53d196
SB
41782009-04-17 Simon Baldwin <simonb@google.com>
4179
4180 * toplev.c (default_tree_printer): Add handling for %E format.
4181
413d3aa8
DN
41822009-04-17 Diego Novillo <dnovillo@google.com>
4183
47f402d1
UB
4184 * tree-pretty-print.c (dump_generic_node): Add break after
4185 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
4186 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
4187 FUNCTION_TYPE together. Call print_struct_decl when printing
4188 structures and TDF_SLIM is not given.
413d3aa8
DN
4189 (print_struct_decl): Fix logic for detecting recursion.
4190
5a691e98
RAE
41912009-04-17 Rafael Avila de Espindola <espindola@google.com>
4192
4193 PR 31567
4194 * gcc.c (create_at_file): New.
4195 (compile_input_file_p): New.
4196 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4197 * main.c (main): Update call to toplev_main.
4198 * toplev.c (toplev_main): Change signature. Call expandargv.
4199 * toplev.h (toplev_main): Change signature.
4200
9eacf7a6
EB
42012009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4202
4203 * dwarf2out.c (field_byte_offset): Use the type size as the field size
4204 if the latter is not constant.
4205
58298177
DE
42062009-04-17 David Edelsohn <edelsohn@gnu.org>
4207
4208 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4209
5b4c43d7
EB
42102009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4211
4212 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4213 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4214
b51605c4
RG
42152009-04-17 Richard Guenther <rguenther@suse.de>
4216
4217 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4218 Handle component references view-converting an invariant address.
4219
9e3be889
AN
42202009-04-17 Adam Nemet <anemet@caviumnetworks.com>
4221
4222 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4223 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4224 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4225 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4226 Use @deftypevr rather than @deftypevar.
4227
7c3e9dc3
RG
42282009-04-17 Richard Guenther <rguenther@suse.de>
4229
47f402d1 4230 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
4231 (get_prop_source_stmt): Likewise.
4232 (can_propagate_from): Likewise.
4233
aca600aa
AS
42342009-04-17 Andrew Stubbs <ams@codesourcery.com>
4235
4236 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4237 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4238 (--with-multilib-list): Add default value.
4239 * configure: Regenerate.
4240 * Makefile.in (TM_ENDIAN_CONFIG): Define.
4241 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4242 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4243 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4244 Don't add default cpu to multilib list unnecessarily, but do enable
4245 the relevant compiler option..
4246 Add support for --with-multilib-list=<blank> and
4247 --with-multilib-list=!<somelib> to supress unwanted multilibs.
4248 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4249 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4250 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4251 TM_MULTILIB_CONFIG.
4252 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4253 (MULTILIB_OSDIRNAMES): New variable.
4254 * config/sh/t-1e: Delete file.
4255 * config/sh/t-mlib-sh1: Delete file.
4256 * config/sh/t-mlib-sh2: Delete file.
4257 * config/sh/t-mlib-sh2a: Delete file.
4258 * config/sh/t-mlib-sh2a-nofpu: Delete file.
4259 * config/sh/t-mlib-sh2a-single: Delete file.
4260 * config/sh/t-mlib-sh2a-single-only: Delete file.
4261 * config/sh/t-mlib-sh2e: Delete file.
4262 * config/sh/t-mlib-sh3e: Delete file.
4263 * config/sh/t-mlib-sh4: Delete file.
4264 * config/sh/t-mlib-sh4-nofpu: Delete file.
4265 * config/sh/t-mlib-sh4-single: Delete file.
4266 * config/sh/t-mlib-sh4-single-only: Delete file.
4267 * config/sh/t-mlib-sh4a: Delete file.
4268 * config/sh/t-mlib-sh4a-nofpu: Delete file.
4269 * config/sh/t-mlib-sh4a-single: Delete file.
4270 * config/sh/t-mlib-sh4a-single-only: Delete file.
4271 * config/sh/t-mlib-sh4al: Delete file.
4272 * config/sh/t-mlib-sh5-32media: Delete file.
4273 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4274 * config/sh/t-mlib-sh5-64media: Delete file.
4275 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4276 * config/sh/t-mlib-sh5-compact: Delete file.
4277 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4278 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4279 * doc/install.texi (Options specification): Add
4280 --with-multilib-list and --with-endian.
4281
cf8aba7f
RAE
42822009-04-17 Rafael Avila de Espindola <espindola@google.com>
4283
4284 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4285 REVISION_c.
4286 (OBJS-common): Add plugin-version.o.
4287 (plugin-version.o): New.
4288 * gcc-plugin.h (plugin_gcc_version): New.
4289 (plugin_default_version_check): New.
4290 (plugin_init_func, plugin_init): Add version argument.
4291 * plugin-version.c: New.
4292 * plugin.c (str_plugin_gcc_version_name): New.
4293 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4294 pass it to the init function.
4295 (plugin_default_version_check): New.
4296
61e20b90
RG
42972009-04-17 Richard Guenther <rguenther@suse.de>
4298
4299 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4300 for decl-vs-decl disambiguation.
4301
90c6fd8a
AK
43022009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
4303
4304 * config/s390/s390.h (s390_tune_attr): New macro definition.
4305 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4306
9fe9fe04
RG
43072009-04-17 Richard Guenther <rguenther@suse.de>
4308
4309 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4310 (fold_stmt_r): Likewise.
4311 (maybe_fold_reference): New function.
4312 (fold_gimple_assign): Handle cases fold_stmt_r did.
4313 (fold_stmt): Do not use fold_stmt_r.
4314 (fold_stmt_inplace): Likewise.
4315
7e673273
RG
43162009-04-17 Richard Guenther <rguenther@suse.de>
4317
4318 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4319 (record_equivalences_from_stmt): Remove useless checks and
4320 simplifications.
4321 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4322 the type is already suitable.
4323
fabf2749
PB
43242009-04-17 Paolo Bonzini <bonzini@gnu.org>
4325
4326 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4327
68f7b061
UB
43282009-04-17 Uros Bizjak <ubizjak@gmail.com>
4329
4330 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4331 (CMPtype): Define as __gcc_CMPtype.
4332
532bfb0a
AJ
43332009-04-17 Aurelien Jarno <aurelien@aurel32.net>
4334
4335 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4336 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4337
e3ac77ff
RG
43382009-04-17 Richard Guenther <rguenther@suse.de>
4339
4340 PR tree-optimization/39746
4341 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4342 special-casing for builtins and static variable use/def.
4343 (call_may_clobber_ref_p_1): Likewise.
4344
7072a650
ILT
43452009-04-16 Ian Lance Taylor <iant@google.com>
4346
4347 * df.h: Include "timevar.h".
4348 (struct df_problem): Change tv_id field to timevar_id_t.
4349 * tree-pass.h: Include "timevar.h".
4350 (struct opt_pass): Change tv_id field to timevar_id_t.
4351 * timevar.h (timevar_id_t): Define TV_NONE.
4352 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4353 TV_NONE rather than tv_id != 0.
4354 (execute_one_pass): Likewise.
4355 * Makefile.in (DF_H): Add $(TIMEVAR_H).
4356 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
4357 dependencies to $(TREE_PASS_H).
4358 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4359 to TV_NONE.
4360 (pass_branch_target_load_optimize2): Likewise.
4361 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4362 (pass_outof_cfg_layout_mode): Likewise.
4363 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4364 (pass_rebuild_cgraph_edges): Likewise.
4365 (pass_remove_cgraph_callee_edges): Likewise.
4366 * df-core.c (pass_df_initialize_opt): Likewise.
4367 (pass_df_initialize_no_opt): Likewise.
4368 (pass_df_finish): Likewise.
4369 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4370 * except.c (pass_set_nothrow_function_flags): Likewise.
4371 (pass_convert_to_eh_region_ranges): Likewise.
4372 * final.c (pass_compute_alignments): Likewise.
4373 * function.c (pass_instantiate_virtual_regs): Likewise.
4374 (pass_init_function): Likewise.
4375 (pass_leaf_regs): Likewise.
4376 (pass_match_asm_constraints): Likewise.
4377 * gimple-low.c (pass_lower_cf): Likewise.
4378 (pass_mark_used_blocks): Likewise.
4379 * init-regs.c (pass_initialize_regs): Likewise.
4380 * integrate.c (pass_initial_value_sets): Likewise.
4381 * ira.c (pass_ira): Likewise.
4382 * jump.c (pass_cleanup_barriers): Likewise.
4383 * omp-low.c (pass_expand_omp): Likewise.
4384 (pass_lower_omp): Likewise.
4385 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
4386 * recog.c (pass_split_all_insns): Likewise.
4387 (pass_split_after_reload): Likewise.
4388 (pass_split_before_regstack): Likewise.
4389 (pass_split_before_sched2): Likewise.
4390 (pass_split_for_shorten_branches): Likewise.
4391 * reginfo.c (pass_reginfo_init): Likewise.
4392 (pass_subregs_of_mode_init): Likewise.
4393 (pass_subregs_of_mode_finish): Likewise.
4394 * passes.c (pass_postreload): Likewise.
4395 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
4396 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
4397 (pass_warn_function_return): Likewise.
4398 (pass_warn_function_noreturn): Likewise.
4399 * tree-complex.c (pass_lower_complex): Likewise.
4400 (pass_lower_complex_O0): Likewise.
4401 * tree-if-conv.c (pass_if_conversion): Likewise.
4402 * tree-into-ssa.c (pass_build_ssa): Likewise.
4403 * tree-mudflap.c (pass_mudflap_1): Likewise.
4404 (pass_mudflap_2): Likewise.
4405 * tree-nomudflap.c (pass_mudflap_1): Likewise.
4406 (pass_mudflap_2): Likewise.
4407 * tree-nrv.c (pass_return_slot): Likewise.
4408 * tree-object-size.c (pass_object_sizes): Likewise.
4409 * tree-optimize.c (pass_all_optimizations): Likewise.
4410 (pass_early_local_passes): Likewise.
4411 (pass_all_early_optimizations): Likewise.
4412 (pass_cleanup_cfg): Likewise.
4413 (pass_cleanup_cfg_post_optimizing): Likewise.
4414 (pass_free_datastructures): Likewise.
4415 (pass_free_cfg_annotations): Likewise.
4416 (pass_fixup_cfg): Likewise.
4417 (pass_init_datastructures): Likewise.
4418 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
4419 (pass_late_warn_uninitialized): Likewise.
4420 (pass_update_address_taken): Likewise.
4421 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
4422 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
4423 (pass_cse_sincos): Likewise.
4424 (pass_convert_to_rsqrt): Likewise.
4425 * tree-ssa-structalias.c (pass_build_alias): Likewise.
4426 * tree-stdarg.c (pass_stdarg): Likewise.
4427 * tree-tailcall.c (pass_tail_recursion): Likewise.
4428 (pass_tail_calls): Likewise.
4429 * tree-vect-generic.c (pass_lower_vector): Likewise.
4430 (pass_lower_vector_ssa): Likewise.
4431 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
4432
0051ef59
JM
44332009-04-16 Joseph Myers <joseph@codesourcery.com>
4434
4435 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4436 XLR entry.
4437 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
4438 Handle -march=xlr.
4439 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
4440 logical and signext.
4441
b3f8558a
KK
44422009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
4443
4444 PR target/39767
4445 * config/sh/predicates.md (arith_operand): Check if the operand
4446 of TRUNCATE is a REG.
4447
f57597d9
KH
44482009-04-16 Kazu Hirata <kazu@codesourcery.com>
4449
4450 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4451 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4452
b172d063
KH
44532009-04-16 Kazu Hirata <kazu@codesourcery.com>
4454
4455 * tree-iterator.c (tsi_split_statement_list_after,
4456 tsi_split_statement_list_before): Remove.
4457 * tree-iterator.h: Remove the prototypes for
532bfb0a 4458 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 4459
78fe4f1f
KH
44602009-04-16 Kazu Hirata <kazu@codesourcery.com>
4461
4462 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
4463 * tree-ssa-propagate.h: Remove the prototype for
4464 stmt_makes_single_load.
4465
43dd3201
KH
44662009-04-16 Kazu Hirata <kazu@codesourcery.com>
4467
4468 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
4469 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
4470
4252a4aa
KH
44712009-04-16 Kazu Hirata <kazu@codesourcery.com>
4472
4473 * tree-iterator.c (EXPR_LAST_BODY): Remove.
4474
bfb69968
KH
44752009-04-16 Kazu Hirata <kazu@codesourcery.com>
4476
4477 * except.c (eh_region_outer_p): Remove.
4478 * except.h: Remove the prototype for eh_region_outer_p.
4479
c7db7fa5
KH
44802009-04-16 Kazu Hirata <kazu@codesourcery.com>
4481
4482 * function.c (current_function_assembler_name): Remove.
4483 * function.h: Remove the prototype for
4484 current_function_assembler_name.
4485
efc0b2bd
ILT
44862009-04-16 Ian Lance Taylor <iant@google.com>
4487
532bfb0a 4488 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
4489 (add_reg_note): Call alloc_reg_note.
4490 * rtl.h (alloc_reg_note): Declare.
4491 * combine.c (try_combine): Use alloc_reg_note.
4492 (recog_for_combine, move_deaths): Likewise.
4493 (distribute_notes): Use alloc_reg_note and add_reg_note.
4494 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
4495 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
4496 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
4497
6080348f
VM
44982009-04-16 Vladimir Makarov <vmakarov@redhat.com>
4499
4500 PR rtl-optimization/39762
4501 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
4502 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 4503 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 4504
6080348f
VM
4505 * ira-conflicts.c (process_regs_for_copy): Use function
4506 ira_get_register_move_cost instead of global
4507 ira_register_move_cost.
4508
4509 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
4510 color_pass, move_spill_restore, update_curr_costs): Ditto.
4511
4512 * ira-lives.c (process_single_reg_class_operands): Ditto.
4513
4514 * ira-emit.c (emit_move_list): Ditto.
4515
4516 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
4517 (record_reg_classes): Ditto. Use functions
4518 ira_get_register_move_cost and ira_get_may_move_cost instead of
4519 global vars ira_register_move_cost, ira_may_move_out_cost and
4520 ira_may_move_in_cost.
4521 (record_address_regs): Don't call ira_init_register_move_cost.
4522 Use function ira_get_may_move_cost instead of global
4523 ira_may_move_in_cost.
4524 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 4525 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 4526 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 4527
646bea10
RG
45282009-04-16 Richard Guenther <rguenther@suse.de>
4529
4530 * tree-cfg.c (verify_gimple_assign_binary):
4531 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
4532 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
4533 (create_general_new_stmt): Note that this function is broken.
4534
02e819ff
RAE
45352009-04-16 Rafael Avila de Espindola <espindola@google.com>
4536
4537 * common.opt (fhelp): Add Var(help_flag).
4538 * gcc-plugin.h (plugin_info): Add help.
4539 * plugin.c (plugin_name_args): Add help.
4540 (register_plugin_info): Set plugin->help.
4541 (print_help_one_plugin): New.
4542 (print_plugins_help): New.
4543 * plugin.h (print_plugins_help): New.
4544 * toplev.c (toplev_main): Call print_plugins_help if needed.
4545
ccacdf06
RG
45462009-04-16 Richard Guenther <rguenther@suse.de>
4547
4548 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
4549 (gimple_ior_addresses_taken_1): New function.
4550 (gimple_ior_addresses_taken): Likewise.
4551 * gimple.h (struct gimple_statement_with_ops_base): Remove
4552 addresses_taken member.
4553 (gimple_ior_addresses_taken): Declare.
4554 (gimple_addresses_taken, gimple_addresses_taken_ptr,
4555 gimple_set_addresses_taken): Remove.
4556 * ipa-reference.c (mark_address): New function.
4557 (scan_stmt_for_static_refs): Use it for marking addresses taken.
4558 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
4559 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
4560 (gimple_add_to_addresses_taken): Remove.
4561 (get_tmr_operands): Call mark_address_taken.
4562 (get_asm_expr_operands): Likewise.
4563 (get_expr_operands): Likewise.
4564 (build_ssa_operands): Do not clear the addresses_taken bitmap.
4565 (free_stmt_operands): Do not free it.
4566 * tree-ssa.c (delete_tree_ssa): Likewise.
4567 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
4568
346ef3fa
RG
45692009-04-16 Richard Guenther <rguenther@suse.de>
4570
4571 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
4572 (walk_stmt_load_store_ops): Likewise.
4573 * gimple.c (get_base_loadstore): New function.
4574 (walk_stmt_load_store_addr_ops): Likewise.
4575 (walk_stmt_load_store_ops): Likewise.
4576 * ipa-pure-const.c (check_op): Simplify.
4577 (check_load, check_store): New functions.
4578 (check_stmt): Use walk_stmt_load_store_ops.
4579 * ipa-reference.c (mark_load): Adjust signature.
4580 (mark_store): Likewise.
4581 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
4582
44e9f006
RAE
45832009-04-16 Rafael Avila de Espindola <espindola@google.com>
4584
4585 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
4586 (plugin_info): New.
4587 * opts.c (common_handle_option): Don't call print_version.
4588 * plugin.c (plugin_name_args): Add version.
4589 (register_plugin_info): New.
4590 (register_callback): Handle PLUGIN_INFO.
4591 (try_init_one_plugin): New.
4592 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
4593 if failed to init.
4594 (finalize_one_plugin): New.
4595 (finalize_plugins): New.
4596 (print_one_plugin): New.
4597 (print_plugins_versions): New.
4598 * plugin.h (print_plugins_versions): New.
4599 (finalize_plugins): New.
4600 * toplev.c (compile_file): Don't call initialize_plugins.
4601 (print_version): Call print_plugins_versions.
4602 (toplev_main): Call initialize_plugins. Print version if needed.
4603 Call finalize_plugins.
4604
41fd0f9b
RAE
46052009-04-16 Rafael Avila de Espindola <espindola@google.com>
4606
4607 * common.opt (fversion): New.
4608 * gcc.c (print_version): New.
4609 (process_command): Don't print the version. Just set print_version.
4610 (main): Print version. Call subprocesses if print_version and
4611 verbose_flag are set.
4612 * opts.c (common_handle_option): Handle OPT_fversion.
4613
550918ca 46142009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 4615 Ira Rosen <irar@il.ibm.com>
550918ca
RG
4616
4617 PR tree-optimization/39698
4618 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
4619 type of the reduction variable. Only generate the def if
4620 it is needed.
4621
4622 * omp-low.c (expand_omp_for_generic): When converting to a pointer
4623 make sure to first convert to an integer of the same precision.
4624 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
4625 the type of the evolution correctly in computing the new
4626 induction variable base.
4627
54634841
RG
46282009-04-16 Richard Guenther <rguenther@suse.de>
4629
4630 PR middle-end/39625
4631 * tree-cfg.c (make_blocks): Split statements with to-be
4632 abnormal SSA names on the lhs.
4633
b6fc2cdb
PB
46342009-04-16 Paolo Bonzini <bonzini@gnu.org>
4635
4636 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
4637 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
4638 * c-typeck.c (really_start_incremental_init): Likewise.
4639 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
4640 (TARGET_INITIALIZER): Remove it.
4641 * target.h (struct target): Remove vector_opaque_p.
4642 * tree.c (build_opaque_vector_type): New.
4643 * tree.h (TYPE_VECTOR_OPAQUE): New.
4644 (build_opaque_vector_type): Declare.
4645 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
4646 * config/rs6000/rs6000.c (build_opaque_vector_type,
4647 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
4648 (rs6000_init_builtins): Use build_opaque_vector_type for
4649 opaque_V4SI_type_node.
4650
a417cdd9
CM
46512009-04-15 Catherine Moore <clm@codesourcery.com>
4652
532bfb0a
AJ
4653 * debug.h (set_name): Declare.
4654 * dwarf2out.c (dwarf2out_set_name): Declare.
4655 (dwarf2_debug_hooks): Add set_name.
4656 (find_AT_string): New.
4657 (add_AT_string): Call find_AT_string.
4658 (dwarf2out_set_name): New.
4659 * cp/decl.c (grokdeclarator): Call set_name.
4660 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
4661 * debug.c (do_nothing_debug_hooks): Likewise.
4662 * dbxout.c (dbx_debug_hooks): Likewise.
4663 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 4664
60839f5d 46652009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 4666
532bfb0a
AJ
4667 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
4668 reg for single-precision FPU.
4669 * config/rs6000/rs6000.md (movsi_internal1): Only for
4670 !TARGET_SINGLE_FPU.
4671 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
4672 single-precision FP regs.
4673
ada39f0b
RG
46742009-04-15 Richard Guenther <rguenther@suse.de>
4675
4676 * omp-low.c (lower_rec_input_clauses): Build correct address
4677 expressions.
4678 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 4679 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
4680 (generate_memset_zero): Fix types.
4681 * tree-profile.c (prepare_instrumented_value): Correctly
4682 widen a pointer.
4683
6866c6e8
ILT
46842009-04-15 Ian Lance Taylor <iant@google.com>
4685
4686 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
4687 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
4688 for -Wall and for -Wc++-compat.
4689 (c_common_post_options): For C++, set warn_enum_compare if not
4690 already set.
4691 * c-tree.h (struct c_expr): Add field original_type.
4692 (build_external_ref): Update declaration.
4693 * c-parser.c (c_parser_braced_init): Set original_type.
4694 (c_parser_initelt): Likewise.
4695 (c_parser_expr_no_commas): Likewise.
4696 (c_parser_conditional_expression): Likewise.
4697 (c_parser_cast_expression): Likewise.
4698 (c_parser_unary_expression): Likewise. Pull setting of
4699 original_code to top of function.
4700 (c_parser_sizeof_expression): Set original_type.
4701 (c_parser_alignof_expression): Likewise.
4702 (c_parser_postfix_expression): Likewise. Pull setting of
4703 original_code to top of function.
532bfb0a 4704 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
4705 (c_parser_postfix_expression_after_primary): Likewise.
4706 (c_parser_expression): Likewise.
4707 * c-typeck.c (build_external_ref): Add type parameter. Change all
4708 callers.
4709 (c_expr_sizeof_expr): Set original_type field.
4710 (parser_build_unary_op): Likewise.
4711 (parser_build_binary_op): Likewise. Optionally warn about
4712 comparisons of enums of different types.
4713 (digest_init): Set original_type field.
4714 (really_start_incremental_init): Likewise.
4715 (push_init_level, pop_init_level): Likewise.
4716 * doc/invoke.texi (Warning Options): -Wenum-compare now
4717 supported in C.
4718
f116fecf
RG
47192009-04-15 Richard Guenther <rguenther@suse.de>
4720
4721 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
4722 out a necessary conversion.
4723 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
4724 names we didn't value number.
4725 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
4726
25e20805
RG
47272009-04-15 Richard Guenther <rguenther@suse.de>
4728
4729 PR tree-optimization/39764
4730 * tree-ssa-ccp.c (get_value): Canonicalize value with
4731 canonicalize_float_value.
4732
90cc3676
JH
47332009-04-15 Jan Hubicka <jh@suse.cz>
4734
4735 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
4736 Wrong version of patch.
4737
6d14c006
JH
47382009-04-15 Jan Hubicka <jh@suse.cz>
4739
4740 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
4741
5afaa917
NS
47422009-04-15 Nathan Sidwell <nathan@codesourcery.com>
4743
4744 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
4745 our distinct integral and vector types.
4746
3b482fca
RAE
47472009-04-15 Rafael Avila de Espindola <espindola@google.com>
4748
4749 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
4750 * init.c (build_vtbl_address): Remove call to assemble_external.
4751
6cd1d2e2
DJ
47522009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
4753
4754 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
4755 output for other floating point modes.
4756
dab71827
DN
47572009-04-14 Diego Novillo <dnovillo@google.com>
4758
4759 * diagnostic.c (diagnostic_report_diagnostic): Do not
4760 warn about loaded plugins for DK_ERROR and DK_WARNING.
4761 * c-decl.c (declspecs_add_type): Move call to
4762 invoke_plugin_callbacks ...
4763 * c-parser.c (c_parser_declspecs): ... here.
4764 * plugin.c (dump_active_plugins): Tidy output.
4765
68a607d8
DN
47662009-04-14 Diego Novillo <dnovillo@google.com>
4767 Le-Chun Wu <lcwu@google.com>
4768
4769 * configure.ac: Add --enable-plugin support.
4770 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
4771 * Makefile.in (PLUGIN_H): Define.
4772 Export ENABLE_PLUGIN and GMPINC to site.exp.
4773 Add PLUGINLIBS to link command.
4774 Add/modify dependencies for plugin.o and files including plugin.h.
4775 (plugin.o): New.
4776 * config.in: Regenerate.
2ba9daa7 4777
68a607d8
DN
4778 * opts.c (common_handle_option): Handle OPT_fplugin_ and
4779 OPT_fplugin_arg_.
4780
47812009-04-14 Le-Chun Wu <lcwu@google.com>
4782
4783 * tree-pass.h (register_one_dump_file): Add a prototype for
4784 register_one_dump_file.
4785 * toplev.c (compile_file): Call initialize_plugins.
4786 (do_compile): Call invoke_plugin_callbacks.
4787 (toplev_main): Call invoke_plugin_callbacks.
4788 * common.opt: Add -fplugin= and -fplugin-arg-.
4789 * gcc-plugin.h: New public header file for plugins to include.
4790 * plugin.c: New source file.
4791 * plugin.h: New internal header file.
4792 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 4793
68a607d8
DN
4794 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
4795
47962009-04-14 Diego Novillo <dnovillo@google.com>
4797
4798 * doc/plugins.texi: New.
4799 * doc/gccint.texi: Add reference to Plugins chapter.
4800 * doc/invoke.texi: Document -fplugin and -fplugin-arg
4801 * diagnostic.c (diagnostic_report_diagnostic): Warn about
4802 loaded plugins, if any.
4803 * timevar.def (TV_PLUGIN_INIT): Define.
4804 (TV_PLUGIN_RUN): Define.
4805 * plugin.c: Include timevar.h
4806 (plugins_active_p): New.
4807 (dump_active_plugins): New.
4808 (debug_active_plugins): New.
4809
50617257
JM
48102009-04-14 Joseph Myers <joseph@codesourcery.com>
4811
4812 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
4813 library paths.
4814 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
4815
b32f6fff
KH
48162009-04-14 Kazu Hirata <kazu@codesourcery.com>
4817
4818 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
4819 the same as a minus without a shift.
4820
85d04fa2
NC
48212009-04-14 Nick Clifton <nickc@redhat.com>
4822
4823 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
4824 comparisons with small integers will always produce a short
4825 branch.
4826
e495a0c8
RAE
48272009-04-14 Rafael Avila de Espindola <espindola@google.com>
4828
4829 Merge:
e495a0c8
RAE
4830 2008-12-19 Diego Novillo <dnovillo@google.com>
4831
532bfb0a 4832 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 4833
ad41bd84 48342009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
4835
4836 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
4837 verification.
4838 (verify_gimple_assign_binary): Likewise. Handle shifts and
4839 rotates correctly.
4840 (verify_gimple_phi): Print the mismatched argument position.
4841 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
4842 Fix types.
4843 (vect_update_init_of_dr): Likewise.
4844 * matrix-reorg.c (transform_access_sites): Do what the
4845 comment suggests.
4846 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
4847
60839f5d 48482009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
4849
4850 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
4851 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
4852 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 4853 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
4854 remove duplicate config
4855
b0e2d008
DR
48562009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
4857
4858 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
4859 file_name:line_number type locator of the call site.
2ba9daa7 4860
1244a8b7
VM
48612009-04-13 Vladimir Makarov <vmakarov@redhat.com>
4862
4863 * genautomata.c: Put blank after comma.
4864 (automaton_decls): New.
4865 (struct unit_usage): Add comments to member next.
4866 (store_alt_unit_usage): Keep the list ordered.
4867 (unit_present_on_list_p, equal_alternatives_p): New.
4868 (check_regexp_units_distribution): Check units distribution
4869 correctness correctly.
4870 (main): Don't write automata if error is found. Return correct
4871 exit code.
2ba9daa7 4872
1244a8b7
VM
4873 * config/m68k/cf.md (cfv4_ds): Remove.
4874 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
4875 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
4876
4877 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
4878 power4-load-ext, power4-store, power4-store-update,
4879 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
4880 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
4881 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
4882 power4-sqrt, power4-isync): Modify reservation to make correct
4883 unit distribution to automata.
4884
4885 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
4886 power5-store-update, power5-two, power5-three, power5-lmul,
4887 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 4888
f7dd1864
AN
48892009-04-13 Adam Nemet <anemet@caviumnetworks.com>
4890
4891 * except.c (pass_set_nothrow_function_flags): Set name and add
4892 TODO_dump_func.
4893 (set_nothrow_function_flags): Mention in the dump file when
4894 changing a function to nothrow.
4895
59a1171f
OS
48962009-04-13 Ozkan Sezer <sezeroz@gmail.com>
4897
4898 PR/39066
4899 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
4900 instead of unsigned long.
4901
934c2060
RR
49022009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4903
f7dd1864
AN
4904 * config/arm/arm.c (return_used_this_function): Remove.
4905 (arm_output_function_prologue): Remove use of
934c2060 4906 return_used_this_function.
f7dd1864 4907 (output_return_instruction): Replace use of
934c2060
RR
4908 return_used_this_function
4909 by cfun->machine->return_used_this_function.
f7dd1864
AN
4910 (arm_output_epilogue): Likewise.
4911 (arm_output_function_epilogue): Likewise.
4912 (thumb_unexpanded_epilogue): Likewise.
4913 * config/arm/arm.h (struct machine_function):
934c2060 4914 New member return_used_this_function.
f7dd1864 4915
ae5cc016
MM
49162009-04-12 Mark Mitchell <mark@codesourcery.com>
4917
4918 * doc/install.texi: Correct description of default directory for
4919 --with-gxx-include-dir.
4920
a0ce68df 49212009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
4922
4923 * fold-const.c (build_range_check): Properly deal with enumeral and
4924 boolean base types.
4925
3906a4a1
SB
49262009-04-12 Steven Bosscher <steven@gcc.gnu.org>
4927
4928 * doc/invoke.texi (max_gcse_passes): Remove documentation.
4929 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
4930 * params.h (MAX_GCSE_PASSES): Remove.
4931 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
4932 in sequence. Remove ability to run multiple passes.
4933 (bypass_jumps): Report run as third CPROP pass.
4934
efaadb93
AN
49352009-04-12 Adam Nemet <anemet@caviumnetworks.com>
4936
4937 PR middle-end/39651
4938 * except.c (can_throw_external): Look at each insn in a SEQUENCE
4939 when deciding whether the whole SEQUENCE can throw.
4940
4c48007b
UB
49412009-04-12 Uros Bizjak <ubizjak@gmail.com>
4942
4943 PR target/39740
4944 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
4945 offseted label references.
4946
b4104018
JH
49472009-04-11 Jan Hubicka <jh@suse.cz>
4948
4949 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
4950
32848948
RG
49512009-04-11 Richard Guenther <rguenther@suse.de>
4952
4953 PR middle-end/39732
4954 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
4955 return variables as TREE_ADDRESSABLE.
4956
8810712e
RG
49572009-04-11 Richard Guenther <rguenther@suse.de>
4958
4959 PR tree-optimization/39713
4960 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
4961 reference trees have SSA_NAME operands.
4962
fa78c0c1
RG
49632009-04-11 Richard Guenther <rguenther@suse.de>
4964
4965 PR c/39712
4966 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
4967 address expressions.
4968
4d722130
DK
49692009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
4970
4971 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
4972 match changes in Cygwin 1.7
4973 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
4974 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
4975
567a90f5
PB
49762009-04-10 Paolo Bonzini <bonzini@gnu.org>
4977
4978 PR tree-optimization/39701
4979 * doc/invoke.texi (Optimization Options): Document change in
4980 meaning and initialization of -fdelete-null-pointer-checks.
4981
1ad2f450
L
49822009-04-10 H.J. Lu <hongjiu.lu@intel.com>
4983
4984 PR middle-end/39701
4985 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
4986
4987 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
4988 here.
4989
4990 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
4991
1afc5373
CF
49922009-04-10 Chao-ying Fu <fu@mips.com>
4993
4994 * doc/tm.texi (Instruction Output): Document
4995 TARGET_ASM_FINAL_POSTSCAN_INSN.
4996 * target.h (final_postscan_insn): New field in asm_out.
4997 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
4998 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
4999 * final.c (final_scan_insn): Call
5000 targetm.asm_out.final_postscan_insn after outputting
5001 an asm macro and a normal instruction.
5002
5003 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
5004 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
5005 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
5006 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
5007 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5008
4d35e75c
PB
50092009-04-10 Paolo Bonzini <bonzini@gnu.org>
5010
5011 PR middle-end/39701
1ad2f450
L
5012 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
5013 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 5014
62c49b83
L
50152009-04-10 H.J. Lu <hongjiu.lu@intel.com>
5016
5017 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
5018
80558628
L
50192009-04-09 H.J. Lu <hongjiu.lu@intel.com>
5020
5021 PR target/39678
5022 * config/i386/i386.c (classify_argument): Handle SCmode with
5023 (bit_offset % 64) != 0.
5024
8c70d28b
SL
50252009-04-09 Sandra Loosemore <sandra@codesourcery.com>
5026
5027 * doc/invoke.texi (Optimize Options): Add cross-reference to
5028 -Q --help=optimizers examples.
5029
e1ff19bf
BE
50302009-04-10 Ben Elliston <bje@au.ibm.com>
5031
5032 PR target/36800
5033 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
5034 regalign for the reg == fpr and TDmode case.
5035
52daca75
DA
50362009-04-09 David Ayers <ayers@fsfe.org>
5037
5038 PR objc/29200
5039 * objc/objc-act.c (warn_with_method): Remove helper function.
5040 (check_duplicates): Call warning and inform directly.
5041 (really_start_method): Likewise.
5042
b45f0e58
PB
50432009-04-09 Paolo Bonzini <bonzini@gnu.org>
5044
5045 * expmed.c (expand_divmod): Always use a comparison for a division
5046 by a large unsigned integer.
5047
1ad2f450
L
5048 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5049 for things others than variables or functions as nonzero.
b45f0e58 5050
748086b7
JJ
50512009-04-09 Nick Clifton <nickc@redhat.com>
5052
5053 * unwind-compat.c: Change copyright header to refer to version
5054 3 of the GNU General Public License with version 3.1 of the
5055 GCC Runtime Library Exception and to point readers at the
7a715bba 5056 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
5057 * config/alpha/crtfastmath.c: Likewise.
5058 * config/alpha/linux-unwind.h: Likewise.
5059 * config/alpha/qrnnd.asm: Likewise.
5060 * config/alpha/vms-crt0-64.c: Likewise.
5061 * config/alpha/vms-crt0.c: Likewise.
5062 * config/alpha/vms-dwarf2.asm: Likewise.
5063 * config/alpha/vms-dwarf2eh.asm: Likewise.
5064 * config/alpha/vms-psxcrt0-64.c: Likewise.
5065 * config/alpha/vms-psxcrt0.c: Likewise.
5066 * config/alpha/vms_tramp.asm: Likewise.
5067 * config/arc/initfini.c: Likewise.
5068 * config/arc/lib1funcs.asm: Likewise.
5069 * config/arm/bpabi-v6m.S: Likewise.
5070 * config/arm/bpabi.S: Likewise.
5071 * config/arm/bpabi.c: Likewise.
5072 * config/arm/crti.asm: Likewise.
5073 * config/arm/crtn.asm: Likewise.
5074 * config/arm/ieee754-df.S: Likewise.
5075 * config/arm/ieee754-sf.S: Likewise.
5076 * config/arm/lib1funcs.asm: Likewise.
5077 * config/arm/libunwind.S: Likewise.
5078 * config/arm/linux-atomic.c: Likewise.
5079 * config/arm/mmintrin.h: Likewise.
5080 * config/arm/pr-support.c: Likewise.
5081 * config/arm/unaligned-funcs.c: Likewise.
5082 * config/arm/unwind-arm.c: Likewise.
5083 * config/arm/unwind-arm.h: Likewise.
5084 * config/avr/libgcc.S: Likewise.
5085 * config/bfin/crti.s: Likewise.
5086 * config/bfin/crtlibid.s: Likewise.
5087 * config/bfin/crtn.s: Likewise.
5088 * config/bfin/lib1funcs.asm: Likewise.
5089 * config/bfin/linux-unwind.h: Likewise.
5090 * config/cris/arit.c: Likewise.
5091 * config/cris/cris_abi_symbol.c: Likewise.
5092 * config/darwin-64.c: Likewise.
5093 * config/darwin-crt2.c: Likewise.
5094 * config/darwin-crt3.c: Likewise.
5095 * config/darwin.h: Likewise.
5096 * config/dbxelf.h: Likewise.
5097 * config/dfp-bit.c: Likewise.
5098 * config/dfp-bit.h: Likewise.
5099 * config/elfos.h: Likewise.
5100 * config/fixed-bit.c: Likewise.
5101 * config/fixed-bit.h: Likewise.
5102 * config/fp-bit.c: Likewise.
5103 * config/fp-bit.h: Likewise.
5104 * config/fr30/crti.asm: Likewise.
5105 * config/fr30/crtn.asm: Likewise.
5106 * config/fr30/lib1funcs.asm: Likewise.
5107 * config/freebsd-spec.h: Likewise.
5108 * config/frv/cmovd.c: Likewise.
5109 * config/frv/cmovh.c: Likewise.
5110 * config/frv/cmovw.c: Likewise.
5111 * config/frv/frvbegin.c: Likewise.
5112 * config/frv/frvend.c: Likewise.
5113 * config/frv/lib1funcs.asm: Likewise.
5114 * config/glibc-stdint.h: Likewise.
5115 * config/h8300/clzhi2.c: Likewise.
5116 * config/h8300/crti.asm: Likewise.
5117 * config/h8300/crtn.asm: Likewise.
5118 * config/h8300/ctzhi2.c: Likewise.
5119 * config/h8300/fixunssfsi.c: Likewise.
5120 * config/h8300/lib1funcs.asm: Likewise.
5121 * config/h8300/parityhi2.c: Likewise.
5122 * config/h8300/popcounthi2.c: Likewise.
5123 * config/i386/ammintrin.h: Likewise.
5124 * config/i386/att.h: Likewise.
5125 * config/i386/avxintrin.h: Likewise.
5126 * config/i386/biarch64.h: Likewise.
5127 * config/i386/bmmintrin.h: Likewise.
5128 * config/i386/cpuid.h: Likewise.
5129 * config/i386/cross-stdarg.h: Likewise.
5130 * config/i386/crtfastmath.c: Likewise.
5131 * config/i386/crtprec.c: Likewise.
5132 * config/i386/cygming-crtbegin.c: Likewise.
5133 * config/i386/cygming-crtend.c: Likewise.
5134 * config/i386/cygwin.asm: Likewise.
5135 * config/i386/emmintrin.h: Likewise.
5136 * config/i386/gmm_malloc.h: Likewise.
5137 * config/i386/gthr-win32.c: Likewise.
5138 * config/i386/i386.h: Likewise.
5139 * config/i386/immintrin.h: Likewise.
5140 * config/i386/linux-unwind.h: Likewise.
5141 * config/i386/linux64.h: Likewise.
5142 * config/i386/mm3dnow.h: Likewise.
5143 * config/i386/mmintrin-common.h: Likewise.
5144 * config/i386/mmintrin.h: Likewise.
5145 * config/i386/nmmintrin.h: Likewise.
5146 * config/i386/pmm_malloc.h: Likewise.
5147 * config/i386/pmmintrin.h: Likewise.
5148 * config/i386/smmintrin.h: Likewise.
5149 * config/i386/sol2-c1.asm: Likewise.
5150 * config/i386/sol2-ci.asm: Likewise.
5151 * config/i386/sol2-cn.asm: Likewise.
5152 * config/i386/sol2-gc1.asm: Likewise.
5153 * config/i386/tmmintrin.h: Likewise.
5154 * config/i386/unix.h: Likewise.
5155 * config/i386/w32-unwind.h: Likewise.
5156 * config/i386/wmmintrin.h: Likewise.
5157 * config/i386/x86-64.h: Likewise.
5158 * config/i386/x86intrin.h: Likewise.
5159 * config/i386/xmmintrin.h: Likewise.
5160 * config/ia64/crtbegin.asm: Likewise.
5161 * config/ia64/crtend.asm: Likewise.
5162 * config/ia64/crtfastmath.c: Likewise.
5163 * config/ia64/crti.asm: Likewise.
5164 * config/ia64/crtn.asm: Likewise.
5165 * config/ia64/fde-glibc.c: Likewise.
5166 * config/ia64/lib1funcs.asm: Likewise.
5167 * config/ia64/linux-unwind.h: Likewise.
5168 * config/ia64/quadlib.c: Likewise.
5169 * config/ia64/unwind-ia64.c: Likewise.
5170 * config/linux.h: Likewise.
5171 * config/m32c/m32c-lib1.S: Likewise.
5172 * config/m32c/m32c-lib2-trapv.c: Likewise.
5173 * config/m32c/m32c-lib2.c: Likewise.
5174 * config/m32r/initfini.c: Likewise.
5175 * config/m68hc11/larith.asm: Likewise.
5176 * config/m68hc11/m68hc11-crt0.S: Likewise.
5177 * config/m68k/cf.md: Likewise.
5178 * config/m68k/crti.s: Likewise.
5179 * config/m68k/crtn.s: Likewise.
5180 * config/m68k/lb1sf68.asm: Likewise.
5181 * config/m68k/linux-unwind.h: Likewise.
5182 * config/mcore/crti.asm: Likewise.
5183 * config/mcore/crtn.asm: Likewise.
5184 * config/mcore/lib1.asm: Likewise.
5185 * config/mips/linux-unwind.h: Likewise.
5186 * config/mips/loongson.h: Likewise.
5187 * config/mips/mips16.S: Likewise.
5188 * config/mmix/crti.asm: Likewise.
5189 * config/mmix/crtn.asm: Likewise.
5190 * config/pa/fptr.c: Likewise.
5191 * config/pa/hpux-unwind.h: Likewise.
5192 * config/pa/lib2funcs.asm: Likewise.
5193 * config/pa/linux-atomic.c: Likewise.
5194 * config/pa/linux-unwind.h: Likewise.
5195 * config/pa/milli64.S: Likewise.
5196 * config/pa/quadlib.c: Likewise.
5197 * config/pa/stublib.c: Likewise.
5198 * config/picochip/libgccExtras/adddi3.asm: Likewise.
5199 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5200 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5201 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5202 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5203 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5204 * config/picochip/libgccExtras/divmod15.asm: Likewise.
5205 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5206 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5207 * config/picochip/libgccExtras/longjmp.asm: Likewise.
5208 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5209 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5210 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5211 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5212 * config/picochip/libgccExtras/setjmp.asm: Likewise.
5213 * config/picochip/libgccExtras/subdi3.asm: Likewise.
5214 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5215 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5216 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5217 * config/rs6000/750cl.h: Likewise.
5218 * config/rs6000/altivec.h: Likewise.
5219 * config/rs6000/biarch64.h: Likewise.
5220 * config/rs6000/crtresfpr.asm: Likewise.
5221 * config/rs6000/crtresgpr.asm: Likewise.
5222 * config/rs6000/crtresxfpr.asm: Likewise.
5223 * config/rs6000/crtresxgpr.asm: Likewise.
5224 * config/rs6000/crtsavfpr.asm: Likewise.
5225 * config/rs6000/crtsavgpr.asm: Likewise.
5226 * config/rs6000/darwin-asm.h: Likewise.
5227 * config/rs6000/darwin-fallback.c: Likewise.
5228 * config/rs6000/darwin-fpsave.asm: Likewise.
5229 * config/rs6000/darwin-ldouble.c: Likewise.
5230 * config/rs6000/darwin-tramp.asm: Likewise.
5231 * config/rs6000/darwin-unwind.h: Likewise.
5232 * config/rs6000/darwin-vecsave.asm: Likewise.
5233 * config/rs6000/darwin-world.asm: Likewise.
5234 * config/rs6000/e500crtres32gpr.asm: Likewise.
5235 * config/rs6000/e500crtres64gpr.asm: Likewise.
5236 * config/rs6000/e500crtres64gprctr.asm: Likewise.
5237 * config/rs6000/e500crtrest32gpr.asm: Likewise.
5238 * config/rs6000/e500crtrest64gpr.asm: Likewise.
5239 * config/rs6000/e500crtresx32gpr.asm: Likewise.
5240 * config/rs6000/e500crtresx64gpr.asm: Likewise.
5241 * config/rs6000/e500crtsav32gpr.asm: Likewise.
5242 * config/rs6000/e500crtsav64gpr.asm: Likewise.
5243 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5244 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5245 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5246 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5247 * config/rs6000/eabi-ci.asm: Likewise.
5248 * config/rs6000/eabi-cn.asm: Likewise.
5249 * config/rs6000/eabi.asm: Likewise.
5250 * config/rs6000/linux-unwind.h: Likewise.
5251 * config/rs6000/linux64.h: Likewise.
5252 * config/rs6000/paired.h: Likewise.
5253 * config/rs6000/paired.md: Likewise.
5254 * config/rs6000/ppc64-fp.c: Likewise.
5255 * config/rs6000/ppu_intrinsics.h: Likewise.
5256 * config/rs6000/rs6000.h: Likewise.
5257 * config/rs6000/si2vmx.h: Likewise.
5258 * config/rs6000/sol-ci.asm: Likewise.
5259 * config/rs6000/sol-cn.asm: Likewise.
5260 * config/rs6000/spe.h: Likewise.
5261 * config/rs6000/spu2vmx.h: Likewise.
5262 * config/rs6000/sysv4.h: Likewise.
5263 * config/rs6000/tramp.asm: Likewise.
5264 * config/rs6000/vec_types.h: Likewise.
5265 * config/s390/linux-unwind.h: Likewise.
5266 * config/s390/tpf-unwind.h: Likewise.
5267 * config/score/crti.asm: Likewise.
5268 * config/score/crtn.asm: Likewise.
5269 * config/sh/crt1.asm: Likewise.
5270 * config/sh/crti.asm: Likewise.
5271 * config/sh/crtn.asm: Likewise.
5272 * config/sh/divtab-sh4-300.c: Likewise.
5273 * config/sh/divtab-sh4.c: Likewise.
5274 * config/sh/divtab.c: Likewise.
5275 * config/sh/lib1funcs-4-300.asm: Likewise.
5276 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5277 * config/sh/lib1funcs.asm: Likewise.
5278 * config/sh/lib1funcs.h: Likewise.
5279 * config/sh/linux-atomic.asm: Likewise.
5280 * config/sh/linux-unwind.h: Likewise.
5281 * config/sh/shmedia.h: Likewise.
5282 * config/sh/sshmedia.h: Likewise.
5283 * config/sh/ushmedia.h: Likewise.
5284 * config/sparc/crtfastmath.c: Likewise.
5285 * config/sparc/linux-unwind.h: Likewise.
5286 * config/sparc/sol2-c1.asm: Likewise.
5287 * config/sparc/sol2-ci.asm: Likewise.
5288 * config/sparc/sol2-cn.asm: Likewise.
5289 * config/spu/divmodti4.c: Likewise.
5290 * config/spu/divv2df3.c: Likewise.
5291 * config/spu/float_disf.c: Likewise.
5292 * config/spu/float_unsdidf.c: Likewise.
5293 * config/spu/float_unsdisf.c: Likewise.
5294 * config/spu/float_unssidf.c: Likewise.
5295 * config/spu/mfc_multi_tag_release.c: Likewise.
5296 * config/spu/mfc_multi_tag_reserve.c: Likewise.
5297 * config/spu/mfc_tag_release.c: Likewise.
5298 * config/spu/mfc_tag_reserve.c: Likewise.
5299 * config/spu/mfc_tag_table.c: Likewise.
5300 * config/spu/multi3.c: Likewise.
5301 * config/spu/spu_internals.h: Likewise.
5302 * config/spu/spu_intrinsics.h: Likewise.
5303 * config/spu/spu_mfcio.h: Likewise.
5304 * config/spu/vec_types.h: Likewise.
5305 * config/spu/vmx2spu.h: Likewise.
5306 * config/stormy16/stormy16-lib2.c: Likewise.
5307 * config/svr4.h: Likewise.
5308 * config/sync.c: Likewise.
5309 * config/v850/lib1funcs.asm: Likewise.
5310 * config/vxlib-tls.c: Likewise.
5311 * config/vxlib.c: Likewise.
5312 * config/vxworks-dummy.h: Likewise.
5313 * config/xtensa/crti.asm: Likewise.
5314 * config/xtensa/crtn.asm: Likewise.
5315 * config/xtensa/ieee754-df.S: Likewise.
5316 * config/xtensa/ieee754-sf.S: Likewise.
5317 * config/xtensa/lib1funcs.asm: Likewise.
5318 * config/xtensa/lib2funcs.S: Likewise.
5319 * config/xtensa/linux-unwind.h: Likewise.
5320 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5321 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5322 * coretypes.h: Likewise.
5323 * crtstuff.c: Likewise.
5324 * defaults.h: Likewise.
5325 * dwarf2.h: Likewise.
5326 * emutls.c: Likewise.
5327 * gbl-ctors.h: Likewise.
5328 * gcov-io.h: Likewise.
5329 * ginclude/float.h: Likewise.
5330 * ginclude/iso646.h: Likewise.
5331 * ginclude/stdarg.h: Likewise.
5332 * ginclude/stdbool.h: Likewise.
5333 * ginclude/stddef.h: Likewise.
5334 * ginclude/stdfix.h: Likewise.
5335 * ginclude/stdint-gcc.h: Likewise.
5336 * ginclude/tgmath.h: Likewise.
5337 * gthr-aix.h: Likewise.
5338 * gthr-dce.h: Likewise.
5339 * gthr-gnat.c: Likewise.
5340 * gthr-gnat.h: Likewise.
5341 * gthr-lynx.h: Likewise.
5342 * gthr-mipssde.h: Likewise.
5343 * gthr-nks.h: Likewise.
5344 * gthr-posix.c: Likewise.
5345 * gthr-posix.h: Likewise.
5346 * gthr-posix95.h: Likewise.
5347 * gthr-rtems.h: Likewise.
5348 * gthr-single.h: Likewise.
5349 * gthr-solaris.h: Likewise.
5350 * gthr-tpf.h: Likewise.
5351 * gthr-vxworks.h: Likewise.
5352 * gthr-win32.h: Likewise.
5353 * gthr.h: Likewise.
5354 * libgcc2.c: Likewise.
5355 * libgcc2.h: Likewise.
5356 * libgcov.c: Likewise.
5357 * tsystem.h: Likewise.
5358 * typeclass.h: Likewise.
5359 * unwind-c.c: Likewise.
5360 * unwind-compat.h: Likewise.
5361 * unwind-dw2-fde-compat.c: Likewise.
5362 * unwind-dw2-fde-darwin.c: Likewise.
5363 * unwind-dw2-fde-glibc.c: Likewise.
5364 * unwind-dw2-fde.c: Likewise.
5365 * unwind-dw2-fde.h: Likewise.
5366 * unwind-dw2.c: Likewise.
5367 * unwind-dw2.h: Likewise.
5368 * unwind-generic.h: Likewise.
5369 * unwind-pe.h: Likewise.
5370 * unwind-sjlj.c: Likewise.
5371 * unwind.inc: Likewise.
5372 * config/arm/neon-gen.ml: Change generated copyright header to
5373 refer to version 3 of the GNU General Public License with
5374 version 3.1 of the GCC Runtime Library Exception and to point
5375 readers at the COPYING3 and COPYING3.RUNTIME files and the
5376 FSF's license web page.
5377 * config/arm/arm_neon.h: Regenerate.
5378
53792009-04-09 Jakub Jelinek <jakub@redhat.com>
5380
5381 * config/cris/cris.md: Change copyright header to refer to version
5382 3 of the GNU General Public License.
5383 * doc/install.texi2html: Change copyright header to refer to version
5384 3 of the GNU General Public License and to point readers at the
5385 COPYING3 file and the FSF's license web page.
5386 * config/vax/linux.h: Likewise.
5387
4a77c72b
PB
53882009-04-09 Paolo Bonzini <bonzini@gnu.org>
5389
1ad2f450
L
5390 * config/i386/i386.md (cmpcc): New.
5391 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
5392 (sync_compare_and_swap_cc*): Delete.
5393
5394 * config/s390/s390.c (s390_compare_emitted): Remove.
5395 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
5396 s390_compare_emitted used to be handled. Assert that modes match.
5397 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
5398 refer to sync_compare_and_swap_ccsi.
5399 * config/s390/s390.h (s390_compare_emitted): Remove.
5400 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
5401 instead of s390_compare_emitted.
5402 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
5403 instead of s390_compare_emitted.
5404 * config/s390/s390.md (cmpcc): New.
5405 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
5406 CC_REGNUM, do not pretend it's set.
5407 (sync_compare_and_swap_cc*): Delete.
5408 * config/s390/predicates.md (cc_reg_operand): New.
5409
5410 * expr.c (sync_compare_and_swap_cc): Delete.
5411 * optabs.h (sync_compare_and_swap_cc): Delete.
5412 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
5413 is being used with can_compare_p.
5414 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
5415 (find_cc_set): New.
5416 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
5417 look for a MODE_CC set instead. Use emit_store_flag.
5418 (expand_compare_and_swap_loop): Likewise, with some additional
5419 complication to avoid a force_reg when useless. Use
5420 emit_cmp_and_jump_insns.
5421 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
5422 * doc/md.texi (sync_compare_and_swap_cc): Merge with
5423 sync_compare_and_swap documentation.
4a77c72b 5424
0c0efb33
JH
54252009-04-09 Jan Hubicka <jh@suse.cz>
5426
5427 * except.c (find_prev_try): Break out from ....
5428 (duplicate_eh_regions): ... here; properly update prev_try pointers
5429 when duplication part of tree.
5430 (dump_eh_tree): Improve dumping.
5431 (verify_eh_region): New.
5432 (verify_eh_tree): Use it.
5433
22a65a54
RG
54342009-04-06 Richard Guenther <rguenther@suse.de>
5435
5436 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
5437 &ARRAY addresses by adjusting their types and prepending
5438 a conversion.
5439 * tree-cfg.c (verify_gimple_assign_single): Verify that
5440 addresses are correct.
5441
f76968e6
RG
54422009-04-09 Richard Guenther <rguenther@suse.de>
5443
5444 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
5445 indices into an array reference if possible.
5446 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5447 Fold POINTER_PLUS_EXPR statements with invariant address.
5448
c90c5fb5
AM
54492009-04-09 Alan Modra <amodra@bigpond.net.au>
5450
5451 PR target/39634
5452 * config.gcc (powerpc64-*-linux*): Always build biarch.
5453
17cede2e
JM
54542009-04-09 Joseph Myers <joseph@codesourcery.com>
5455
5456 PR c/39613
5457 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5458 it and pedwarn if this results in an INTEGER_CST.
5459
a3337ea2
KG
54602009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5461
5462 * doc/install.texi: Update minimum GMP version. Remove obsolete
5463 text in MPFR section.
5464
ce9ba79b
JJ
54652009-04-08 Jakub Jelinek <jakub@redhat.com>
5466
5467 * dwarf2out.c (class_scope_p): New static inline.
5468 (class_or_namespace_scope_p): Use it.
5469 (gen_variable_die): Use DW_TAG_member tag for static data member
5470 declarations instead of DW_TAG_variable.
5471
4f0ae266
JJ
5472 PR middle-end/39573
5473 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
5474 variables.
5475
d27f0ddc
RG
54762009-04-08 Richard Guenther <rguenther@suse.de>
5477
5478 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
5479 valueize random data.
5480
557cc596
DE
54812009-04-08 David Edelsohn <edelsohn@gnu.org>
5482
5483 * config.gcc (aix tm_file): Add aix-stdint.h.
5484 (aix tm clause use_gcc_stdint): Set to wrap.
5485 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 5486
75ccc1e7
RG
54872009-04-08 Richard Guenther <rguenther@suse.de>
5488
5489 PR middle-end/36291
5490 * tree-dfa.c (add_referenced_var): Do not recurse into
5491 global initializers.
5492 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
5493 exposed variables.
5494 (fold_const_aggregate_ref): Likewise.
5495
c6963675
PB
54962009-04-08 Paolo Bonzini <bonzini@gnu.org>
5497
6c44cf79
L
5498 * recog.c (ordered_comparison_operator): New.
5499 * gensupport.c (std_preds): Add it.
c6963675
PB
5500 * doc/md.texi (Machine-Independent Predicates): Document it.
5501
6d07ad98
JH
55022009-04-08 Jan Hubicka <jh@suse.cz>
5503
5504 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
5505 * function.h (rtl_eh): Remove exception_handler_label_map.
5506 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
5507 remove_exception_handler_label, for_each_eh_label_1): Remove.
5508 (rtl_remove_unreachable_regions): Remove.
5509 (convert_from_eh_region_ranges): Do not remove unreachable regions.
5510 (find_exception_handler_labels): Don't build the hashtable.
5511 (maybe_remove_eh_handler): Remove.
5512 (for_each_eh_label): Rewrite to walk the tree.
5513 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
5514 * except.h (maybe_remove_eh_handler): Remove.
5515 * passes.c (init_optimization_passes): Schedule second EH cleanup
5516 before out-of-ssa.
5517 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
5518 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
5519
7ddf71e3
PB
55202009-04-08 Paolo Bonzini <bonzini@gnu.org>
5521
5522 * genoutput.c (validate_optab_operands): New.
5523 (gen_insn, gen_expand): Call it.
5524
5525 * genflags.c (gen_insn): Detect misused iterators.
5526 (main): Pass line_no to gen_insn, exit with status 1 on error.
5527
5528 * genextract.c (line_no): Make global.
5529 (VEC_safe_set_locstr): Change assertion to error message.
5530 (main): Exit with status 1 on error.
5531
4d84fe7c
JM
55322009-04-08 Joseph Myers <joseph@codesourcery.com>
5533
5534 PR c/39614
5535 PR c/39673
5536 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
5537 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
5538 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
5539 * c-convert.c (convert): Do not call fold on results of conversion
5540 functions when the result is a C_MAYBE_CONST_EXPR.
5541 * c-parser.c (c_parser_postfix_expression): Do not fold condition
5542 of __builtin_choose_expr.
5543 * c-typeck.c (remove_c_maybe_const_expr): New.
5544 (build_unary_op, build_conditional_expr, build_compound_expr,
5545 build_binary_op, c_objc_common_truthvalue_conversion): Call
5546 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
5547 integer operands.
5548
60839f5d 55492009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 5550
2ba9daa7 5551 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 5552 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 5553
8e481a2c
DS
55542009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
5555
5556 PR bootstrap/39660
5557 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
5558 mix declarations and code.
5559
ee618c17
BE
55602009-04-08 Ben Elliston <bje@au.ibm.com>
5561
5562 * gcc.c: Replace `CC' with `GCC' throughout.
5563
f2a758a2
L
55642009-04-07 H.J. Lu <hongjiu.lu@intel.com>
5565
5566 * doc/invoke.texi: Document Atom support.
5567
6ea2bd47
JM
55682009-04-07 Jason Merrill <jason@redhat.com>
5569
5570 PR c++/25185
5571 * c-common.h, c-common.c: Add flag_pretty_templates.
5572 * c-opts.c (c_common_handle_option): Set it.
5573 * c.opt: Add -fno-pretty-templates.
5574 * doc/invoke.texi (C++ Dialect Options): Likewise.
5575
fcb82ab0
UB
55762009-04-07 Uros Bizjak <ubizjak@gmail.com>
5577
5578 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
5579 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
5580 (ia64_expand_builtin): Likewise.
5581
dc5e7298
MJ
55822009-04-07 Martin Jambor <mjambor@suse.cz>
5583
5584 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
5585 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
5586 ADDR_EXPRS are include too.
5587
0609b355
RG
55882009-04-07 Richard Guenther <rguenther@suse.de>
5589
5590 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
5591 decls are only used if passes as parameters or if they are
5592 local statics and the call is not to a builtin.
5593 (call_may_clobber_ref_p_1): Likewise.
5594
d8e535fa
PB
55952009-04-07 Paolo Bonzini <bonzini@gnu.org>
5596
5597 * expr.c (do_store_flag): Remove last argument. Simplify code
5598 to avoid duplication of tests already done by can_compare_p.
5599 (expand_expr_real_1): Adjust caller.
5600
c3c64f50
PB
56012009-04-07 Paolo Bonzini <bonzini@gnu.org>
5602
fcb82ab0
UB
5603 * optabs.c (can_compare_p): Test the predicate of a
5604 cbranch and cstore pattern.
c3c64f50 5605
9a53bc17
PB
56062009-04-07 Paolo Bonzini <bonzini@gnu.org>
5607
fcb82ab0
UB
5608 * expr.c (convert_move): Use emit_store_flag instead of
5609 "emulating" it.
9a53bc17 5610
67b8f1c1
PB
56112009-04-07 Paolo Bonzini <bonzini@gnu.org>
5612
fcb82ab0
UB
5613 * config/i386/i386.c (ix86_compare_emitted): Remove.
5614 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
5615 ix86_compare_op0 like ix86_compare_emitted used to be handled.
5616 * config/i386/i386.h (ix86_compare_emitted): Remove.
5617 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
5618 instead of ix86_compare_emitted.
5619 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 5620
44509946
AS
56212009-04-07 Andrew Stubbs <ams@codesourcery.com>
5622
5623 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
5624 Add t-sysroot-suffix to tmake_file.
5625 * config/print-sysroot-suffix.sh: New file.
5626 * config/t-sysroot-suffix: New file.
5627
ca22d882
BE
56282009-04-07 Ben Elliston <bje@au.ibm.com>
5629
5630 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
5631 as the latter produces a warning when the target does not support
5632 infinity.
5633
95aac11b
BE
56342009-04-07 Ben Elliston <bje@au.ibm.com>
5635
5636 * dfp.c: Replace type punning assignments with memcpy throughout.
5637 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 5638
633dd061
AM
56392009-04-07 Alan Modra <amodra@bigpond.net.au>
5640
5641 PR target/39634
5642 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
5643 Include soft-fp/t-softfp after rs6000/t-linux64.
5644
fe0a25ec
EB
56452009-04-06 Eric Botcazou <ebotcazou@adacore.com>
5646
5647 * stor-layout.c (set_sizetype): Use the full precision of their
5648 machine mode for bitsize types.
5649
0c011bc3
L
56502009-04-06 H.J. Lu <hongjiu.lu@intel.com>
5651
5652 * config/i386/i386.md: Revert 2 accidental checkins.
5653
b6837b94 56542009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 5655 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
5656 H.J. Lu <hongjiu.lu@intel.com>
5657
5658 Atom pipeline model, tuning and insn selection.
5659 * config.gcc (atom): Add atom config options and target.
5660
5661 * config/i386/atom.md: New.
5662
5663 * config/i386/i386.c (atom_cost): New cost.
5664 (m_ATOM): New macro flag.
5665 (initial_ix86_tune_features): Set m_ATOM.
5666 (x86_accumulate_outgoing_args): Likewise.
5667 (x86_arch_always_fancy_math_387): Likewise.
5668 (processor_target): Add Atom cost.
5669 (cpu_names): Add Atom cpu name.
5670 (override_options): Set Atom ISA.
5671 (ix86_issue_rate): New case PROCESSOR_ATOM.
5672 (ix86_adjust_cost): Likewise.
5673
5674 * config/i386/i386.h (TARGET_ATOM): New target macro.
5675 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
5676 (TARGET_OPT_AGU): New target option.
5677 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
5678 (processor_type): Add PROCESSOR_ATOM.
5679
5680 * config/i386/i386.md (cpu): Add new value "atom".
5681 (use_carry, movu): New attr.
5682 (atom.md): Include atom.md.
5683 (adddi3_carry_rex64): Set attr "use_carry".
5684 (addqi3_carry): Likewise.
5685 (addhi3_carry): Likewise.
5686 (addsi3_carry): Likewise.
5687 (*addsi3_carry_zext): Likewise.
5688 (subdi3_carry_rex64): Likewise.
5689 (subqi3_carry): Likewise.
5690 (subhi3_carry): Likewise.
5691 (subsi3_carry): Likewise.
5692 (x86_movdicc_0_m1_rex64): Likewise.
5693 (*x86_movdicc_0_m1_se): Likewise.
5694 (x86_movsicc_0_m1): Likewise.
5695 (*x86_movsicc_0_m1_se): Likewise.
5696 (*adddi_1_rex64): Emit add insn as much as possible.
5697 (*addsi_1): Likewise.
5698 (return_internal): Set atom_unit.
5699 (return_internal_long): Likewise.
5700 (return_pop_internal): Likewise.
5701 (*rcpsf2_sse): Set atom_sse_attr attr.
5702 (*qrt<mode>2_sse): Likewise.
5703 (*prefetch_sse): Likewise.
5704
5705 * config/i386/i386-c.c (ix86_target_macros_internal): New case
5706 PROCESSOR_ATOM.
5707 (ix86_target_macros_internal): Likewise.
5708
5709 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
5710 (*prefetch_sse_rex): Likewise.
5711 (sse_rcpv4sf2): Likewise.
5712 (sse_vmrcpv4sf2): Likewise.
5713 (sse_sqrtv4sf2): Likewise.
5714 (<sse>_vmsqrt<mode>2): Likewise.
5715 (sse_ldmxcsr): Likewise.
5716 (sse_stmxcsr): Likewise.
5717 (*sse_sfence): Likewise.
5718 (sse2_clflush): Likewise.
5719 (*sse2_mfence): Likewise.
5720 (*sse2_lfence): Likewise.
5721 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
5722 (<sse>_movup<ssemodesuffixf2c>): Likewise.
5723 (avx_movdqu<avxmodesuffix>): Likewise.
5724 (avx_lddqu<avxmodesuffix>): Likewise.
5725 (sse2_movntv2di): Change attr "type" to "ssemov".
5726 (sse2_movntsi): Likewise.
5727 (rsqrtv8sf2): Change attr "type" to "sseadd".
5728 (sse3_addsubv2df3): Set attr "atom_unit".
5729 (sse3_h<plusminus_insn>v4sf3): Likewise.
5730 (*sse2_pmaddwd): Likewise.
5731 (*vec_extractv2di_1_rex64): Likewise.
5732 (*vec_extractv2di_1_avx): Likewise.
5733 (sse2_psadbw): Likewise.
5734 (ssse3_phaddwv8hi3): Likewise.
5735 (ssse3_phaddwv4hi3): Likewise.
5736 (ssse3_phadddv4si3): Likewise.
5737 (ssse3_phadddv2si3): Likewise.
5738 (ssse3_phaddswv8hi3): Likewise.
5739 (ssse3_phaddswv4hi3): Likewise.
5740 (ssse3_phsubwv8hi3): Likewise.
5741 (ssse3_phsubwv4hi3): Likewise.
5742 (ssse3_phsubdv4si3): Likewise.
5743 (ssse3_phsubdv2si3): Likewise.
5744 (ssse3_phsubswv8hi3): Likewise.
5745 (ssse3_phsubswv4hi3): Likewise.
5746 (ssse3_pmaddubsw128): Likewise.
5747 (sse3_pmaddubsw: Likewise.
5748 (ssse3_palignrti): Likewise.
5749 (ssse3_palignrdi): Likewise.
5750
53e350d3
GP
57512009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
5752
5753 * doc/install.texi (Specific): Fix two cross-references to MinGW.
5754
439ef907
RG
57552009-04-06 Richard Guenther <rguenther@suse.de>
5756
5757 PR tree-optimization/28868
5758 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
5759 of which PHI results we inserted.
5760 (insert_into_preds_of_block): Record inserted PHIs.
5761 (eliminate): Eliminate redundant PHI nodes.
5762 (init_pre): Init inserted_phi_names.
5763
4bad83f5
RG
57642009-04-06 Richard Guenther <rguenther@suse.de>
5765
5766 PR tree-optimization/39643
5767 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
5768 IMAGPART_EXPRs of complex constants.
5769 (execute_fold_all_builtins): If we folded a call queue
5770 TODO_update_address_taken.
5771
570c4247
JH
57722009-04-06 Jan Hubicka <jh@suse.cz>
5773
5774 PR middle-end/39659
5775 * except.c (remove_unreachable_regions): Propagate may_contain_throw
5776 flag.
5777
a460d7a1
AS
57782009-04-06 Andrew Stubbs <ams@codesourcery.com>
5779
5780 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
5781 delay slot.
5782 (ic_invalidate_array): Likewise.
5783
60839f5d 57842009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
5785
5786 * calls.c (emit_library_call_value_1): Fix a problem with parameter
5787 alignment for library calls.
5788
7d253f6e
DS
57892009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
5790
5791 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
5792 (mingw32 tm clause use_gcc_stdint): Set to wrap.
5793 * config/i386/mingw-stdint.h: New file.
5794
941c3614
RB
57952009-04-05 Richard Guenther <rguenther@suse.de>
5796
5797 PR tree-optimization/39648
5798 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
5799 our &A vs. &A[0] IL deficiencies.
5800
12633413
JH
58012009-04-04 Jan Hubicka <jh@suse.cz>
5802
941c3614
RB
5803 * except.c (sjlj_find_directly_reachable_regions): Be ready for
5804 removed toplevel regions.
12633413
JH
5805 (sjlj_mark_call_sites): Likewise.
5806
bb2aaded
DK
58072009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
5808
5809 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
5810 (cygwin tm clause use_gcc_stdint): Set to wrap.
5811 * config/i386/cygwin-stdint.h: New file.
5812
86290011
RG
58132009-04-04 Richard Guenther <rguenther@suse.de>
5814
5815 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
5816 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
5817 single-argument PHIs if we are in loop-closed SSA form.
5818 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
5819 for the pre-condition.
5820 (slpeel_tree_peel_loop_to_edge): Likewise.
5821 (vect_build_loop_niters): Take an optional sequence to append stmts.
5822 (vect_generate_tmps_on_preheader): Likewise.
5823 (vect_do_peeling_for_loop_bound): Take extra guards for the
5824 pre-condition.
5825 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
5826 the cost model check.
5827 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 5828 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
5829 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
5830 (vect_do_peeling_for_loop_bound): Likewise.
5831 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
5832 loop bound only record extra pre-conditions, do not apply loop
5833 versioning.
5834
5eeeac64
RG
58352009-04-04 Richard Guenther <rguenther@suse.de>
5836
5837 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
5838 renaming code.
5839
1ff7d06b
JH
58402009-04-04 Jan Hubicka <jh@suse.cz>
5841
5842 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
5843 last_basic_block for size of bb->index indexed array.
5844 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
5845 compute_out, link_btr_uses, build_btr_def_use_webs,
5846 build_btr_def_use_webs, migrate_btr_defs): Likewise.
5847
14925fcd
JH
58482009-04-04 Jan Hubicka <jh@suse.cz>
5849
5850 * except.c (remove_eh_handler_and_replace): Break out from ...
5851 (remove_eh_handler): ... here.
5852 (bring_to_root): New function.
5853 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
5854 handled ones, bring others to root of tree.
5855
4e6d1743
JH
58562009-04-04 Jan Hubicka <jh@suse.cz>
5857
4cb735f7
JH
5858 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
5859 (all_phis_safe_to_merge): New function.
5860 (update_info): New structure.
5861 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
5862 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 5863
c6803d43
RG
58642009-04-04 Richard Guenther <rguenther@suse.de>
5865
5866 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
5867 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
5868 (append_vuse): Likewise.
5869
54f5943c
JJ
58702009-04-04 Jakub Jelinek <jakub@redhat.com>
5871
5872 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
5873 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
5874 instead of REG_UNSAVED for DW_CFA_undefined.
5875 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
5876 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
5877 outermost frame.
5878
aad2bccb
RE
58792009-04-04 Richard Earnshaw <rearnsha@arm.com>
5880
5881 PR target/39501
5882 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
5883 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
5884 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
5885
aa7069aa
RG
58862009-04-04 Richard Guenther <rguenther@suse.de>
5887
5888 PR tree-optimization/8781
5889 PR tree-optimization/37892
5890 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
5891 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
5892 (valueize_refs): Call it for *& valueizations.
5893 (shared_reference_ops_from_ref): Rename to ...
5894 (valueize_shared_reference_ops_from_ref): ... this and valueize.
5895 (shared_reference_ops_from_call): Rename to ...
5896 (valueize_shared_reference_ops_from_call): ... this and valueize.
5897 (vn_reference_lookup): Update.
5898 (visit_reference_op_call): Likewise.
5899 * tree-ssa-pre.c (phi_translate_1): Fold *&.
5900 (eliminate): Value-replace the call address in call statements.
5901
cd15ad3e
RG
59022009-04-04 Richard Guenther <rguenther@suse.de>
5903
5904 PR tree-optimization/39636
5905 * tree-ssa-forwprop.c
5906 (forward_propagate_addr_into_variable_array_index): Check for
5907 GIMPLE_ASSIGN before accessing the rhs code.
5908
462f3262
JM
59092009-04-03 Jason Merrill <jason@redhat.com>
5910
5911 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
5912
6adb807e
SE
59132009-04-03 Steve Ellcey <sje@cup.hp.com>
5914
5915 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
5916 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
5917 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
5918 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
5919 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
5920 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
5921 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
5922 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
5923 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
5924 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
5925 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
5926 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
5927 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
5928 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
5929 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
5930 Use fr_reg_or_fp01_operand instead of fr_register_operand
5931
5932 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
5933 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
5934 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
5935
174b3107
VM
59362009-04-03 Vladimir Makarov <vmakarov@redhat.com>
5937
b844e5d8
L
5938 PR rtl-optimization/39607
5939 PR rtl-optimization/39631
7a715bba
UB
5940
5941 Revert:
2ba9daa7 5942
174b3107
VM
5943 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
5944 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
5945 instead of DF_LR_OUT.
5946 * ira-lives.c (process_bb_node_lives): Ditto.
5947 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
5948 instead of DF_LR_{OUT,IN}.
5949 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
5950 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
5951
535b544a
SB
59522009-04-03 Steven Bosscher <steven@gcc.gnu.org>
5953
5954 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
5955 (execute_lower_omp): Always run but take the short way out if -fopenmp
5956 is not given.
5957 (gate_lower_omp): Remove, forcing the pass manager to always run the
5958 pass and always set PROP_gimple_lomp.
5959 (pass_lower_omp): Remove gate function.
5960 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
5961 PROP_trees. Instead, require it.
5962 * ipa-cp.c (pass_ipa_cp): Likewise.
5963 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
5964 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
5965 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
5966 and PROP_gimple_leh.
5967
5006671f
RG
59682009-04-03 Richard Guenther <rguenther@suse.de>
5969
5970 PR middle-end/13146
5971 PR tree-optimization/23940
5972 PR tree-optimization/33237
5973 PR middle-end/33974
5974 PR middle-end/34093
5975 PR tree-optimization/36201
5976 PR tree-optimization/36230
5977 PR tree-optimization/38049
5978 PR tree-optimization/38207
5979 PR tree-optimization/38230
5980 PR tree-optimization/38301
5981 PR tree-optimization/38585
5982 PR middle-end/38895
5983 PR tree-optimization/38985
5984 PR tree-optimization/39299
5985 * tree-ssa-structalias.h: Remove.
5986 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
5987 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
5988 (struct vuse_element_d): Remove.
5989 (struct vuse_vec_d): Likewise.
5990 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
5991 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
5992 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
5993 VUSE_ELEMENT_VAR): Likewise.
5994 (struct voptype_d): Likewise.
5995 (NUM_VOP_FREE_BUCKETS): Likewise.
5996 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
5997 (struct stmt_operands_d): Remove.
5998 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
5999 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6000 VDEF_NUM, VDEF_VECT): Likewise.
6001 (copy_virtual_operands): Remove.
6002 (operand_build_cmp): Likewise.
6003 (create_ssa_artificial_load_stmt): Likewise.
6004 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
6005 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
6006 vuse_index and mayuse_index members. Pack and move done and iter_type
6007 members to the front.
6008 (SSA_OP_VMAYUSE): Remove.
6009 (SSA_OP_VIRTUAL_USES): Adjust.
6010 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
6011 (unlink_stmt_vdef): Declare.
6012 (add_to_addressable_set): Remove.
6013 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
6014 (vrp_visit_stmt): Likewise.
6015 * doc/tree-ssa.texi (Alias analysis): Update.
6016 * doc/invoke.texi (max-aliased-vops): Remove docs.
6017 (avg-aliased-vops): Likewise.
6018 * tree-into-ssa.c (syms_to_rename): Remove.
6019 (need_to_update_vops_p): Likewise.
6020 (need_to_initialize_update_ssa_p): Rename to ...
6021 (update_ssa_initialized_fn): ... this. Track function we are
6022 initialized for.
6023 (symbol_marked_for_renaming): Simplify.
6024 (add_new_name_mapping): Do not set need_to_update_vops_p.
6025 (dump_currdefs): Use SYMS_TO_RENAME.
6026 (rewrite_update_stmt): Always walk all uses/defs.
6027 (dump_update_ssa): Adjust.
6028 (init_update_ssa): Take function argument. Track what we are
6029 initialized for.
6030 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
6031 (create_new_def_for): Initialize for cfun, assert we are initialized
6032 for cfun.
6033 (mark_sym_for_renaming): Simplify.
6034 (mark_set_for_renaming): Do not initialize update-ssa.
6035 (need_ssa_update_p): Simplify. Take function argument.
6036 (name_mappings_registered_p): Assert we ask for the correct function.
6037 (name_registered_for_update_p): Likewise.
6038 (ssa_names_to_replace): Likewise.
6039 (release_ssa_name_after_update_ssa): Likewise.
6040 (update_ssa): Likewise. Use SYMS_TO_RENAME.
6041 (dump_decl_set): Do not print a newline.
6042 (debug_decl_set): Do it here.
6043 (dump_update_ssa): And here.
6044 * tree-ssa-loop-im.c (move_computations): Adjust.
6045 (movement_possibility): Likewise.
6046 (determine_max_movement): Likewise.
6047 (gather_mem_refs_stmt): Likewise.
6048 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6049 or NAME_MEMORY_TAG.
6050 * tree-complex.c (update_all_vops): Remove.
6051 (expand_complex_move): Adjust.
6052 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6053 Simplify test for memory referencing statement. Exclude
6054 non-invariant ADDR_EXPRs.
6055 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6056 * tree-loop-distribution.c (generate_memset_zero): Adjust.
6057 (rdg_flag_uses): Likewise.
6058 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6059 related code.
6060 (tree_optimize_tail_calls_1): Also split the
6061 edge from the entry block if we have degenerate PHI nodes in
6062 the first basic block.
6063 * tree.c (init_ttree): Remove memory-tag related code.
6064 (tree_code_size): Likewise.
6065 (tree_node_structure): Likewise.
6066 (build7_stat): Re-write to be build6_stat.
6067 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6068 (SSA_VAR_P): Adjust.
6069 (struct tree_memory_tag): Remove.
6070 (struct tree_memory_partition_tag): Likewise.
6071 (union tree_node): Adjust.
6072 (build7): Re-write to be build6.
6073 * tree-pass.h (pass_reset_cc_flags): Remove.
6074 (TODO_update_address_taken): New flag.
6075 (pass_simple_dse): Remove.
6076 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6077 * params.h (MAX_ALIASED_VOPS): Remove.
6078 (AVG_ALIASED_VOPS): Likewise.
6079 * omp-low.c (expand_omp_taskreg): Update SSA form.
6080 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6081 aliases the lhs in a copy stmt.
6082 * tree-ssa-dse.c (struct address_walk_data): Remove.
6083 (memory_ssa_name_same): Likewise.
6084 (memory_address_same): Likewise.
6085 (get_kill_of_stmt_lhs): Likewise.
6086 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
6087 unused stores. Look through PHI nodes into post-dominated regions.
6088 (dse_optimize_stmt): Simplify. Properly remove stores.
6089 (tree_ssa_dse): Compute dominators.
6090 (execute_simple_dse): Remove.
6091 (pass_simple_dse): Likewise.
6092 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6093 gimple_loaded_syms and gimple_stored_syms computation.
6094 * toplev.c (dump_memory_report): Dump alias and pta stats.
6095 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6096 (vn_reference_eq): Likewise.
6097 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6098 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6099 valueize_vuses): Remove.
6100 (get_def_ref_stmt_vuses): Simplify. Rename to ...
6101 (get_def_ref_stmt_vuse): ... this.
6102 (vn_reference_lookup_2): New function.
6103 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6104 walking equivalent vuses. Simplify.
6105 (vn_reference_lookup): Likewise.
6106 (vn_reference_insert): Likewise.
6107 (vn_reference_insert_pieces): Likewise.
6108 (visit_reference_op_call): Simplify.
6109 (visit_reference_op_load): Likewise.
6110 (visit_reference_op_store): Likewise.
6111 (init_scc_vn): Remove shared_lookup_vuses initialization.
6112 (free_scc_vn): Remove shared_lookup_vuses freeing.
6113 (sort_vuses, sort_vuses_heap): Remove.
6114 (get_ref_from_reference_ops): Export.
6115 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6116 vector with single vuse pointer.
6117 (vn_reference_lookup_pieces, vn_reference_lookup,
6118 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6119 (shared_vuses_from_stmt): Remove.
6120 (get_ref_from_reference_ops): Declare.
6121 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6122 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6123 memory-tag related code.
6124 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6125 (likely_value): Add comment, skip static-chain of call statements.
6126 (surely_varying_stmt_p): Adjust.
6127 (gimplify_and_update_call_from_tree): Likewise.
6128 (execute_fold_all_builtins): Do not rebuild alias info.
6129 (gimplify_and_update_call_from_tree): Properly update VOPs.
6130 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6131 (copy_ref_info): Remove memory-tag related code.
6132 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6133 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6134 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6135 computation.
6136 * tree-ssa-dom.c (gimple_p): Remove typedef.
6137 (eliminate_redundant_computations): Adjust.
6138 (record_equivalences_from_stmt): Likewise.
6139 (avail_expr_hash): Likewise.
6140 (avail_expr_eq): Likewise.
7a715bba 6141 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
6142 (stmt_makes_single_load): Likewise.
6143 (stmt_makes_single_store): Likewise.
6144 * tree-ssa-alias.c: Rewrite completely.
6145 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6146 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6147 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6148 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6149 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6150 Remove public functions.
6151 (pass_reset_cc_flags): Remove.
6152 (pass_build_alias): Move ...
6153 * tree-ssa-structalias.c (pass_build_alias): ... here.
6154 * tree-ssa-alias.c (may_be_aliased): Move ...
6155 * tree-flow-inline.h (may_be_aliased): ... here.
6156 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6157 count_uses_and_derefs): Move ...
6158 * gimple.c: ... here.
6159 * gimple.h (count_uses_and_derefs): Declare.
6160 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6161 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6162 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6163 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6164 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6165 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6166 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6167 New functions.
6168 * tree-dfa.c (refs_may_alias_p): Move ...
6169 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
6170 * tree-ssa-alias.h: New file.
6171 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6172 (statement_sink_location): Likewise.
6173 * opts.c (decode_options): Do not adjust max-aliased-vops or
6174 avg-aliased-vops values.
6175 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6176 (TV_CALL_CLOBBER): Likewise.
6177 (TV_FLOW_SENSITIVE): Likewise.
6178 (TV_FLOW_INSENSITIVE): Likewise.
6179 (TV_MEMORY_PARTITIONING): Likewise.
6180 (TV_ALIAS_STMT_WALK): New timevar.
6181 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6182 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6183 (get_address_description): Remove memory-tag related code.
6184 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6185 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6186 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6187 and immediate uses in statements. Document.
6188 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6189 (dump_symbols): Remove.
6190 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6191 * alias.c (get_deref_alias_set): New function split out from ...
6192 (get_alias_set): ... here.
6193 * alias.h (get_deref_alias_set): Declare.
6194 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6195 type parameter. Remove restrict pointer handling. Create a
6196 ref-all pointer in case type-based alias sets do not conflict.
6197 (vect_analyze_data_refs): Remove SMT related code.
6198 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6199 (vectorizable_load): Likewise.
6200 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6201 (DR_SYMBOL_TAG, DR_VOPS): Remove.
6202 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6203 Ignore vops and SMTs.
6204 (dr_analyze_alias): Likewise..
6205 (free_data_ref): Likewise.
6206 (create_data_ref): Likewise.
6207 (analyze_all_data_dependences): Likewise.
6208 (get_references_in_stmt): Adjust.
6209 * tree-flow-inline.h (gimple_aliases_computed_p,
6210 gimple_addressable_vars, gimple_call_clobbered_vars,
6211 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6212 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6213 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6214 gimple_mem_ref_stats): Remove.
6215 (gimple_vop): New function.
6216 (op_iter_next_use): Remove vuses and mayuses cases.
6217 (op_iter_next_def): Remove vdefs case.
6218 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6219 (clear_and_done_ssa_iter): Do not set removed fields.
6220 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
6221 Assert we are not iterating over vuses or vdefs if not also
6222 iterating over uses or defs.
6223 (op_iter_init_use): Likewise.
6224 (op_iter_init_def): Likewise.
6225 (op_iter_next_vdef): Remove.
6226 (op_iter_next_mustdef): Likewise.
6227 (op_iter_init_vdef): Likewise.
6228 (compare_ssa_operands_equal): Likewise.
6229 (link_use_stmts_after): Handle vuse operand.
6230 (is_call_used): Use is_call_clobbered.
6231 (is_call_clobbered): Global variables are always call clobbered,
6232 query the call-clobbers bitmap.
6233 (mark_call_clobbered): Ignore global variables.
6234 (clear_call_clobbered): Likewise.
6235 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6236 virtual operands sanity check.
6237 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6238 Remove.
6239 (TARGET_MEM_REF): Remove TMR_TAG operand.
6240 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6241 Remove call-clobber related code.
6242 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
6243 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6244 partitions or escape reason.
6245 (get_single_def_stmt, get_single_def_stmt_from_phi,
6246 get_single_def_stmt_with_phi): Remove.
6247 (dump_referenced_vars): Tidy.
6248 (get_ref_base_and_extent): Allow bare decls.
6249 (collect_dfa_stats): Adjust.
6250 * graphite.c (rename_variables_in_stmt): Adjust.
6251 (graphite_copy_stmts_from_block): Likewise.
6252 (translate_clast): Likewise.
6253 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6254 (EXPR_DIES): New.
6255 (translate_vuse_through_block): Use the oracle.
6256 (phi_translate_1): Adjust.
6257 (value_dies_in_block_x): Use the oracle. Cache the outcome
6258 in EXPR_DIES.
6259 (valid_in_sets): Check if the VUSE for
6260 a REFERENCE is available.
6261 (eliminate): Do not remove stmts during elimination,
6262 instead queue and remove them afterwards.
6263 (do_pre): Do not rebuild alias info.
6264 (pass_pre): Run TODO_rebuild_alias before PRE.
6265 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6266 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6267 (mark_all_v_defs_stmt): Remove.
6268 (mark_all_v_defs_seq): Adjust.
6269 (sra_replace): Likewise.
6270 (scalarize_use): Likewise.
6271 (scalarize_copy): Likewise.
6272 (scalarize_init): Likewise.
6273 (scalarize_ldst): Likewise.
6274 (todoflags): Remove.
6275 (tree_sra): Do not rebuild alias info.
6276 (tree_sra_early): Adjust.
6277 (pass_sra): Run TODO_update_address_taken before SRA.
6278 * tree-predcom.c (set_alias_info): Remove.
6279 (prepare_initializers_chain): Do not call it.
6280 (mark_virtual_ops_for_renaming): Adjust.
6281 (mark_virtual_ops_for_renaming_list): Remove.
6282 (initialize_root_vars): Adjust.
6283 (initialize_root_vars_lm): Likewise.
6284 (prepare_initializers_chain): Likewise.
6285 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6286 (may_propagate_copy_into_stmt): Likewise.
6287 (merge_alias_info): Do nothing for now.
6288 (propagate_tree_value_into_stmt): Adjust.
6289 (stmt_may_generate_copy): Likewise.
6290 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6291 not mark symbols for renaming.
6292 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6293 with the same statement, make sure to update the new pointed-to one.
6294 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6295 call statements, do not mark symbols for renaming.
6296 (mark_operand_necessary): Dump something.
6297 (ref_may_be_aliased): New function.
6298 (mark_aliased_reaching_defs_necessary_1): New helper function.
6299 (mark_aliased_reaching_defs_necessary): Likewise.
6300 (mark_all_reaching_defs_necessary_1): Likewise.
6301 (mark_all_reaching_defs_necessary): Likewise.
6302 (propagate_necessity): Do not process virtual PHIs. For
6303 non-aliased loads mark all reaching definitions as necessary.
6304 For aliased loads and stores mark the immediate dominating
6305 aliased clobbers as necessary.
6306 (visited): New global static.
6307 (perform_tree_ssa_dce): Free visited bitmap after propagating
6308 necessity.
6309 (remove_dead_phis): Perform simple dead virtual PHI removal.
6310 (remove_dead_stmt): Properly unlink virtual operands when
6311 removing stores.
6312 (eliminate_unnecessary_stmts): Schedule PHI removal after
6313 stmt removal.
6314 * tree-ssa-ter.c (is_replaceable_p): Adjust.
6315 (process_replaceable): Likewise.
6316 (find_replaceable_in_bb): Likewise.
6317 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6318 based on the single gimple vop.
6319 (verify_flow_insensitive_alias_info): Remove.
6320 (verify_flow_sensitive_alias_info): Likewise.
6321 (verify_call_clobbering): Likewise.
6322 (verify_memory_partitions): Likewise.
6323 (verify_alias_info): Likewise.
6324 (verify_ssa): Adjust..
6325 (execute_update_addresses_taken): Export. Update SSA
6326 manually. Optimize only when optimizing. Use a local bitmap.
6327 (pass_update_address_taken): Remove TODO_update_ssa, add
6328 TODO_dump_func.
6329 (pass_update_address_taken): Just use TODO_update_address_taken.
6330 (init_tree_ssa): Do not initialize addressable_vars.
6331 (verify_ssa): Verify new VUSE / VDEF properties.
6332 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6333 Do not call verify_alias_info.
6334 (delete_tree_ssa): Clear the VUSE, VDEF operands.
6335 Do not free the loaded and stored syms bitmaps. Reset the escaped
6336 and callused solutions. Do not free addressable_vars.
6337 Remove memory-tag related code.
6338 (warn_uninitialized_var): Aliases are always available.
6339 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6340 * lambda-code.c (can_put_in_inner_loop): Adjust.
6341 (can_put_after_inner_loop): Likewise.
6342 (perfect_nestify): Likewise.
6343 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6344 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6345 (vectorizable_conversion): Do not mark symbols for renaming.
6346 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6347 (expand_call_inline): Unlink the calls virtual operands before
6348 replacing it.
6349 (tree_function_versioning): Do not call update_ssa if we are not
6350 updating clones. Simplify.
6351 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6352 (propagate_with_phi): Likewise..
6353 * tree-outof-ssa.c (create_temp): Remove memory tag and call
6354 clobber code. Assert we are not aliased or global.
6355 * tree-flow.h: Include tree-ssa-alias.h
6356 (enum escape_type): Remove.
6357 (struct mem_sym_stats_d): Likewise.
6358 (struct mem_ref_stats_d): Likewise.
6359 (struct gimple_df): Add vop member. Remove global_var,
6360 call_clobbered_vars, call_used_vars, addressable_vars,
6361 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
6362 escaped and callused members.
6363 (struct ptr_info_def): Remove all members, add points-to solution
6364 member pt.
6365 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6366 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6367 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6368 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6369 (tree-ssa-alias.o): Likewise.
6370 (toplev.o): Add tree-ssa-alias.h
6371 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6372 * gimple.c (gimple_set_bb): Fix off-by-one error.
6373 (is_gimple_reg): Do not handle memory tags.
6374 (gimple_copy): Also copy virtual operands.
6375 Delay updating the statement. Do not reset loaded and stored syms.
6376 (gimple_set_stored_syms): Remove.
6377 (gimple_set_loaded_syms): Likewise.
6378 (gimple_call_copy_skip_args): Copy the virtual operands
6379 and mark the new statement modified.
6380 * tree-ssa-structalias.c (may_alias_p): Remove.
6381 (set_uids_in_ptset): Take the alias set to prune with as
6382 parameter. Fold in the alias test of may_alias_p.
6383 (compute_points_to_sets): Compute whether a ptr is dereferenced
6384 in a local sbitmap.
6385 (process_constraint): Deal with &ANYTHING on the lhs, reject all
6386 other ADDRESSOF constraints on the lhs.
6387 (get_constraint_for_component_ref): Assert that we don't get
6388 ADDRESSOF constraints from the base of the reference.
6389 Properly generate UNKNOWN_OFFSET for DEREF if needed.
6390 (struct variable_info): Remove collapsed_to member.
6391 (get_varinfo_fc): Remove.
6392 (new_var_info): Do not set collapsed_to.
6393 (dump_constraint): Do not follow cycles.
6394 (dump_constraint_graph): Likewise.
6395 (build_pred_graph): Likewise.
6396 (build_succ_graph): Likewise.
6397 (rewrite_constraints): Likewise.
6398 (do_simple_structure_copy): Remove.
6399 (do_rhs_deref_structure_copy): Remove.
6400 (do_lhs_deref_structure_copy): Remove.
6401 (collapse_rest_of_var): Remove.
6402 (do_structure_copy): Re-implement.
6403 (pta_stats): New global variable.
6404 (dump_pta_stats): New function.
6405 (struct constraint_expr): Make offset signed.
6406 (UNKNOWN_OFFSET): Define special value.
6407 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
6408 (solution_set_expand): New helper function split out from ...
6409 (do_sd_constraint): ... here.
6410 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
6411 (do_ds_constraint): Likewise.
6412 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
6413 and CALLUSED = *CALLUSED.
6414 (set_union_with_increment): Make inc argument signed.
6415 (type_safe): Remove.
6416 (get_constraint_for_ptr_offset): Handle unknown and negative
6417 constant offsets.
6418 (first_vi_for_offset): Handle offsets before start. Bail
6419 out early for offsets beyond the variable extent.
6420 (first_or_preceding_vi_for_offset): New function.
6421 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
6422 Together with ESCAPED = *ESCAPED this properly computes reachability.
6423 (find_what_var_points_to): New function.
6424 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
6425 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
6426 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
6427 pt_solutions_intersect): New functions.
6428 (compute_call_used_vars): Remove.
6429 (compute_may_aliases): New main entry into PTA computation.
6430 * gimple.h (gimple_p): New typedef.
6431 (struct gimple_statement_base): Remove references_memory_p.
6432 (struct gimple_statement_with_memory_ops_base): Remove
6433 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
6434 members.
6435 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
6436 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
6437 gimple_set_references_memory): Remove.
6438 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
6439 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
6440 New functions.
6441 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
6442 (verify_expr): Allow RESULT_DECL.
6443 (gimple_duplicate_bb): Do not copy virtual operands.
6444 (gimple_duplicate_sese_region): Adjust.
6445 (gimple_duplicate_sese_tail): Likewise.
6446 (mark_virtual_ops_in_region): Remove.
6447 (move_sese_region_to_fn): Do not call it.
6448 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
6449 and pass_simple_dse.
6450 (execute_function_todo): Handle TODO_update_address_taken,
6451 call execute_update_addresses_taken for TODO_rebuild_alias.
6452 (execute_todo): Adjust.
6453 (execute_one_pass): Init dump files early.
6454 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
6455 call-clobbered.
6456 (create_general_new_stmt): Clear vops.
6457 * tree-ssa-reassoc.c (get_rank): Adjust.
6458 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
6459 symbols for renaming.
6460 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
6461 (PARAM_AVG_ALIASED_VOPS): Likewise.
6462 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
6463 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 6464 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
6465 (operand_build_cmp, copy_virtual_operands,
6466 create_ssa_artificial_load_stmt, add_to_addressable_set,
6467 gimple_add_to_addresses_taken): Remove public functions.
6468 (unlink_stmt_vdef): New function.
6469
457d1d00
AM
64702009-04-03 Alan Modra <amodra@bigpond.net.au>
6471
6472 * config.gcc (powerpc-*-linux*): Merge variants.
6473
e19da24c 64742009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 6475 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
6476
6477 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
6478 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
6479 cop0_sp_offset.
6480 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
6481 keep_interrupts_masked_p, use_debug_exception_return_p.
6482 (mips_attribute_table): Add interrupt, use_shadow_register_set,
6483 keep_interrupts_masked, use_debug_exception_return.
6484 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
6485 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
6486 New functions.
6487 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
6488 (mips_print_operand): Process COP0 registers to print $0 .. $31
6489 correctly for GAS to process.
6490 (mips_interrupt_extra_call_saved_reg_p): New function.
6491 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
6492 extra registers.
6493 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
6494 (mips_compute_frame_info): Add supports for interrupt context that
6495 includes doubleword accumulators and COP0 registers.
6496 (mips_for_each_saved_acc): New function.
6497 (mips_for_each_saved_gpr_and_fpr): Change the function name from
6498 mips_for_each_saved_reg.
6499 (mips_save_reg): Save accumulators.
6500 (mips_kernel_reg_p): A new for_each_rtx callback.
6501 (mips_expand_prologue): Support interrupt handlers.
6502 (mips_restore_reg): Restore accumulators.
6503 (mips_expand_epilogue): Support interrupt handlers.
6504 (mips_can_use_return_insn): Return false for interrupt handlers.
6505 (mips_epilogue_uses): New function.
6506 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
6507 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
6508 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
6509 cop0_move): New instructions.
6510 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
6511 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
6512 defines.
6513 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
6514 New defines.
6515 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
6516 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
6517 interrupt handlers, we use K0 as the temporary register.
6518 (EPILOGUE_USES): Change to a function call.
6519 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
6520 handlers, we use K0 as the temporary register.
2ba9daa7 6521
e19da24c
CF
6522 * doc/extend.texi (Function Attributes): Document interrupt,
6523 use_shadow_register_set, keep_interrupts_masked,
6524 use_debug_exception_return for MIPS attributes.
6525
aa1ca044
AM
65262009-04-03 Alan Modra <amodra@bigpond.net.au>
6527
6528 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
6529 Remove a number of t-files from tmake_file.
6530 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
6531 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
6532 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6533 target_prototype, not TARGET_PROTOTYPE.
6534 (LINK_OS_GNU_SPEC): Define.
6535 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
6536 and darwin-ldoubdle.c.
6537
14fdc613
MM
65382009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
6539
6540 PR driver/39293
6541 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
6542 (cpp_options): Ditto.
6543 (default_compilers): Ditto.
6544 (display_help): Ditto.
6545 (process_command): Ditto.
6546 (do_spec_1): Ditto.
6547 (set_input): Use lbasename instead of duplicate code.
6548 (save_temps_prefix): New static for -save-temps=obj.
6549 (save_temps_length): Ditto.
2ba9daa7 6550
14fdc613
MM
6551 * doc/invoke.texi (-save-temps=obj): Document new variant to
6552 -save-temps switch.
6553
d3aa398e
JL
65542009-04-02 Jeff Law <law@redhat.com>
6555
6556 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
6557 variable.
6558
83f0ccb8
L
65592009-04-02 H.J. Lu <hongjiu.lu@intel.com>
6560
6561 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
6562 * configure: Regenerated.
6563
dcb6e951
RAE
65642009-04-02 Rafael Avila de Espindola <espindola@google.com>
6565
6566 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
6567 share the argument list.
6568
d85478c2
RAE
65692009-04-02 Rafael Avila de Espindola <espindola@google.com>
6570
6571 Merge
6572
6573 2009-02-12 Diego Novillo <dnovillo@google.com>
6574
83f0ccb8
L
6575 * varpool.c (debug_varpool): New.
6576 * cgraph.h (debug_varpool): Declare.
d85478c2 6577
34f42a49
JH
65782009-04-02 Jan Hubicka <jh@suse.cz>
6579
6580 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
6581 pass.
6582
a4747b4a
L
65832009-04-02 H.J. Lu <hongjiu.lu@intel.com>
6584
6585 * config/i386/i386.c (ix86_abi): Move initialization to ...
6586 (override_options): Here.
6587
63a9de54
CB
65882009-04-02 Christian Bruel <christian.bruel@st.com>
6589
6590 * config/sh/sh.c (sh_dwarf_register_span): New function.
6591 (TARGET_DWARF_REGISTER_SPAN): Define.
6592 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 6593
2f0fa28e
IR
65942009-04-02 Ira Rosen <irar@il.ibm.com>
6595
6596 PR tree-optimization/39595
2ba9daa7 6597 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
6598 interleaved loads group is not greater than the SLP group size.
6599
bbf7ce11
RAE
66002009-04-02 Rafael Avila de Espindola <espindola@google.com>
6601
6602 * builtins.c (is_builtin_name): New.
6603 (called_as_built_in): Use is_builtin_name.
6604 * tree.h (is_builtin_name): New.
6605 * varasm.c (incorporeal_function_p): Use is_builtin_name
6606
47e4dfcf
AS
66072009-04-02 Andrew Stubbs <ams@codesourcery.com>
6608
6609 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
6610
d0940d56
DS
66112009-04-02 Dodji Seketeli <dodji@redhat.com>
6612
6613 PR c++/26693
532bfb0a 6614 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
6615 * c-common.c (set_underlying_type): ... here.
6616 Also, make sure the function properly sets TYPE_STUB_DECL() on
6617 the newly created typedef variant type.
6618 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
6619 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
6620 points.
d0940d56 6621
bf1cbdc6
RG
66222009-04-02 Richard Guenther <rguenther@suse.de>
6623
6624 PR tree-optimization/37221
6625 * tree-flow.h (degenerate_phi_result): Declare.
6626 * tree-ssa-dom.c (degenerate_phi_result): Export.
6627 * tree-scalar-evolution.c (analyze_initial_condition): If
6628 the initial condition is defined by a degenerate PHI node
6629 use the degenerate value.
6630
87cfb32c
EB
66312009-04-01 Eric Botcazou <ebotcazou@adacore.com>
6632
6633 PR rtl-optimization/39588
6634 * combine.c (merge_outer_ops): Do not set the constant when this
6635 is not necessary.
6636 (simplify_shift_const_1): Do not modify it either in this case.
6637
bbb6eae8
SB
66382009-04-01 Steven Bosscher <steven@gcc.gnu.org>
6639
6640 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
6641 tuning is deprecated if -mtune value is set to an Itanium1 variant.
6642
839a3b8a
JJ
66432009-04-01 Janis Johnson <janis187@us.ibm.com>
6644
6645 PR c/29027
6646 * c-lex.c (interpret_float): Default (no suffix) is double.
6647
667e8acb
XDL
66482009-04-1 Xinliang David Li <davidxl@google.com>
6649
6650 * config/i386/i386.c (legitimate_constant_p): Recognize
6651 all one vector constant.
6652
60839f5d 66532009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6654
60839f5d 6655 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
6656 Change #include order to silence two warnings.
6657
60839f5d 66582009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6659
60839f5d 6660 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
6661 (ASM_SPEC): Pass -k to the assembler for PIC code.
6662
60839f5d 66632009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6664
60839f5d
EB
6665 * config.gcc: Add vax-*-linux* to the switch.
6666 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
6667 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
6668
60839f5d 66692009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6670
60839f5d 6671 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 6672 Use predicate macros instead of GET_CODE() == foo.
60839f5d 6673 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
6674 ashlsi3, rotrsi3, <unnamed>): Likewise.
6675
60839f5d 66762009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6677
60839f5d 6678 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 6679 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
6680 * config/vax/constraints.md: Likewise.
6681 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6682 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
6683 * config/vax/predicates.md: Likewise.
6684 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 6685 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
6686 * config/vax/vax.h: Likewise.
6687 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 6688
60839f5d 66892009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6690
60839f5d 6691 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
6692 (indirectable_address_p, adjacent_operands_p): Add spaces around
6693 braces.
60839f5d 6694 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 6695
60839f5d 66962009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6697
60839f5d 6698 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
6699 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
6700 index_term_p, reg_plus_index_p, legitimate_address_p,
6701 vax_mode_dependent_address_p): Update comments to match functions
6702 modified by the recent int->bool conversion.
6703
60839f5d 67042009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6705
60839f5d
EB
6706 * config/vax/builtins.md: Update copyright message.
6707 * config/vax/constraints.md: Likewise.
6708 * config/vax/netbsd-elf.h: Likewise.
6709 * config/vax/predicates.md: Likewise.
6710 * config/vax/vax-protos.h: Likewise.
6711 * config/vax/vax.c: Likewise.
6712 * config/vax/vax.h: Likewise.
6713 * config/vax/vax.md: Likewise.
6714 * config/vax/vax.opt: Likewise.
c4e75102 6715
60839f5d 67162009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6717
60839f5d 6718 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 6719 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
6720 * config/vax/constraints.md (B, R): Likewise.
6721 * config/vax/predicates.md (external_memory_operand,
c4e75102 6722 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
6723 * config/vax/vax.c (vax_output_int_add): Likewise.
6724 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
6725 untyped_call): Likewise.
6726
60839f5d 67272009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 6728
7a715bba
UB
6729 * config/vax/predicates.md: New file.
6730 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
6731 external_const_operand, nonsymbolic_operand, external_memory_operand,
6732 indirect_memory_operand, indexed_memory_operand,
6733 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
6734 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
6735 predicate.
7a715bba
UB
6736 * config/vax/constraints.md: New file.
6737 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
6738 New constraint.
6739 * config/vax/builtins.md: New file.
6740 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
6741 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
6742 jbbccisi): Define.
c4e75102
MT
6743 * config/vax/vax.opt (mqmath): Add option.
6744 * config/vax/vax.md (isfx): Extend with DI.
6745 (VAXintQH, VAXintQHSD): Define.
6746 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
6747 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
6748 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
6749 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
6750 (movdi): Update constraints and use vax_output_int_move().
6751 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
6752 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
6753 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
6754 nonlocal_goto): New.
6755 (mov<mode>): Extend accepted operand types.
6756 (subdi3_old): Rename from subdi3, change update constraints and use
6757 a new implementation.
60839f5d 6758 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
6759 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
6760 MOVE_RATIO, CLEAR_RATIO): Define.
6761 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
6762 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
6763 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 6764 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
6765 (split_quadword_operands): Make static and really allow variable
6766 splitting.
6767 (print_operand_address): Update for PIC generation.
6768 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
6769 indexable_address_p, fixup_mathdi_operand,
6770 vax_expand_addsub_di_operands, adjacent_operands_p): New.
6771 (vax_float_literal, legitimate_constant_p,
6772 indirectable_constant_address_p, index_term_p,
6773 reg_plus_index_p): Return bool instead of int.
6774 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
6775 where needed.
6776 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
6777 generation.
6778 (vax_output_conditional_branch): Indent.
6779 (legitimate_constant_address_p, indirectable_constant_address_p,
6780 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
6781 vax_mode_dependent_address_p): Return bool instead of int, update for
6782 PIC generation.
6783 * config/vax/vax-protos.h (legitimate_constant_address_p,
6784 legitimate_constant_p, legitimate_address_p,
6785 vax_mode_dependent_address_p): Change declaration to bool.
6786 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
6787 vax_expand_addsub_di_operands, vax_output_int_subtract,
6788 vax_output_movmemsi): Declare.
6789 (split_quadword_operands, vax_float_literal): Delete declaration.
6790 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
6791 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
6792 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
6793 ASM_OUTPUT_DWARF_PCREL): Define.
6794 (ASM_SPEC): Change definition to allow PIC generation.
6795
9332c6eb
L
67962009-04-01 Steve Ellcey <sje@cup.hp.com>
6797
6798 * doc/sourcebuild.texi: Update front-end requirements.
6799
d93e052c
JJ
68002009-04-01 Jakub Jelinek <jakub@redhat.com>
6801
6802 PR target/39226
6803 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
6804 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
6805 (booldi3_internal3): Use boolean_or_operator instead of
6806 boolean_operator.
6807
6ccb2a4a
JM
68082009-04-01 Joseph Myers <joseph@codesourcery.com>
6809
6810 PR c/39605
6811 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
6812 declarator whose size is not an integer constant expression but
6813 folds to an integer constant, then treat it as a constant
6814 subsequently.
6815
299b87f8
RG
68162009-04-01 Richard Guenther <rguenther@suse.de>
6817
6818 * fold-const.c (fold_plusminus_mult_expr): Do not fold
6819 i * 4 + 2 to (i * 2 + 1) * 2.
6820
b85eb797
JJ
68212009-04-01 Jakub Jelinek <jakub@redhat.com>
6822
6823 PR c/37772
6824 * c-parser.c (c_parser_asm_statement): Skip until close paren and
6825 return if c_parser_asm_string_literal returned NULL.
6826
235e1fe8
NC
68272009-04-01 Nick Clifton <nickc@redhat.com>
6828
6829 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
6830 already defined.
6831 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
6832 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
6833 other typedefs to avoid conflicts with libgcc2.c. Define labels
6834 to gain 16-bit bit-manipulation functions from libgcc2.c and then
6835 include it.
6836 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
6837 to gain 16-bit trapping arithmetic functions from libgcc2.c and
6838 then include it.
6839
d6868399
RAE
68402009-04-01 Rafael Avila de Espindola <espindola@google.com>
6841
7a715bba
UB
6842 * varasm.c (default_function_rodata_section): Declare DOT as
6843 const char*.
d6868399 6844
73d21f56 68452009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 6846 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
6847
6848 PR/39492
6849 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
6850 Make object_name unique for each process.
6851
03742a9b
JJ
68522009-04-01 Jakub Jelinek <jakub@redhat.com>
6853
6854 PR other/39591
6855 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
6856 addressable variables in the parallel that could go out of scope while
6857 running queued tasks.
6858
4223ff5f
AS
68592009-04-01 Anatoly Sokolov <aesok@post.ru>
6860
6861 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
6862 (CASE_VALUES_THRESHOLD): Redefine.
6863 * config/avr/avr.c (avr_override_options): Remove initialization of
6864 avr_case_values_threshold variable.
6865 (avr_case_values_threshold): Remove variable. Add new function.
6866 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
6867 * config/avr/avr.opt (mno-tablejump): Remove option.
6868 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
6869
e893f6f3
DD
68702009-04-01 DJ Delorie <dj@redhat.com>
6871
6872 * varasm.c (default_function_rodata_section): Don't assume
6873 anything about where the first '.' in the section name is.
6874
b246d100
AM
68752009-04-01 Alan Modra <amodra@bigpond.net.au>
6876
6877 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
6878 rs6000_emit_stack_tie.
6879
d3e37a9e
ILT
68802009-03-31 Ian Lance Taylor <iant@google.com>
6881
6882 * tree-eh.c (tree_remove_unreachable_handlers): Compare
6883 gimple_code with GIMPLE_RESX, not RESX.
6884
c1b61fca
JM
68852009-03-31 Joseph Myers <joseph@codesourcery.com>
6886
6887 * c-common.c (c_get_ident): New.
7a715bba 6888 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 6889
c2d2ad48
BE
68902009-04-01 Ben Elliston <bje@au.ibm.com>
6891
6892 * config/rs6000/sysv4.opt (msdata): Improve option description.
6893
13d1a6e7
SE
68942009-03-31 Steve Ellcey <sje@cup.hp.com>
6895
6896 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
6897 (divdf3_internal_lat): Remove.
6898 (divxf3_internal_lat): Remove.
6899 (divxf3_internal_thr): Remove.
6900 (divxf): Use divxf3_internal.
6901 * config/ia64/div.md (divsf3_internal_lat): New.
6902 (divdf3_internal_lat): New.
6903 (divxf3_internal): New.
6904
207bf79d
JM
69052009-03-31 Joseph Myers <joseph@codesourcery.com>
6906
6907 PR c/448
6908 * Makefile.in (USE_GCC_STDINT): Define.
6909 (stmp-int-hdrs): Install stdint.h if applicable.
6910 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
6911 if known.
6912 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
6913 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
6914 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6915 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6916 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6917 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6918 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6919 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6920 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6921 (c_common_nodes_and_builtins): Initialize
6922 underlying_wchar_type_node. Do not initialize
6923 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
6924 nodes for new types.
6925 (c_stddef_cpp_builtins): Define macros for new types.
6926 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
6927 Remove.
6928 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
6929 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
6930 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
6931 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
6932 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
6933 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
6934 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
6935 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
6936 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
6937 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
6938 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
6939 int16_type_node, int32_type_node, int64_type_node,
6940 uint8_type_node, uint16_type_node, c_uint32_type_node,
6941 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
6942 int_least32_type_node, int_least64_type_node,
6943 uint_least8_type_node, uint_least16_type_node,
6944 uint_least32_type_node, uint_least64_type_node,
6945 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
6946 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
6947 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
6948 uintptr_type_node): Define.
6949 * c-cppbuiltin.c (builtin_define_constants,
6950 builtin_define_type_minmax): New.
6951 (builtin_define_stdint_macros): Define more macros.
6952 (c_cpp_builtins): Define more limit macros.
6953 (type_suffix): New.
6954 (builtin_define_type_max): Define in terms of
6955 builtin_define_type_minmax. Remove is_long parameter. All
6956 callers changed.
6957 * config.gcc (use_gcc_stdint): Define.
6958 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
6959 Add newlib-stdint.h for generic targets.
6960 * config/glibc-stdint.h, config/newlib-stdint.h,
6961 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
6962 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
6963 * config/score/score.h (UINTPTR_TYPE): Define.
6964 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
6965 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
6966 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6967 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6968 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6969 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6970 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6971 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6972 * config/spu/spu.h (STDINT_LONG32): Define.
6973 * configure.ac (use_gcc_stdint): Substitute.
6974 * configure: Regenerate.
6975 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
6976 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
6977 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
6978 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
6979 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
6980 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
6981 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
6982 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
6983 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
6984 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
6985 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
6986 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
6987 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
6988 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
6989 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
6990 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
6991 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
6992 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
6993 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
6994 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
6995 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
6996 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
6997 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6998 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6999 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7000 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7001 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7002 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7003 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
7004
ed853664
BS
70052009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
7006
7007 * loop-iv.c (suitable_set_for_replacement): Renamed from
7008 simplify_using_assignment; changed to return bool and to accept new
7009 args DEST and SRC. Return true iff we find a source/destination pair
7010 that can be used to make a replacement, and fill SRC and DEST if so.
7011 Remove arg ALTERED. Don't deal with altered regs here. All callers
7012 changed.
7013 (simplify_using_initial_values): Deal with altered regs here and track
7014 more precisely the effect they have on the validity of our expression.
7015
1569e190
BS
7016 * loop-iv.c (simplify_using_condition): A condition of the form
7017 (EQ REG CONST) can be used to simply make a substitution.
7018 (simplify_using_initial_values): Keep track of conditions we have seen
7019 and keep using them to simplify new expressions, while applying the
7020 same substitutions to them as to the expression.
7021
1d1eb80c
BS
7022 * simplify-rtx.c (simplify_relational_operation_1): Simplify
7023 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
7024 GEU/LTU reversed.
7025
28af33b0
BS
7026 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
7027 changed. Use this when trying to improve the upper bound.
7028 Generate the comparison by using simplify_gen_relational.
7029
b30321cd
BS
7030 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
7031
60081874
BS
7032 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
7033 functions.
2ba9daa7 7034 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
7035 replace_in_expr to make replacements. Call replace_single_def_regs
7036 once on the initial version of the expression.
7037
bebc6e07
RR
70382009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7039
fcb82ab0 7040 PR target/27237
bebc6e07 7041 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 7042
6b12efe9
RG
70432009-03-31 Richard Guenther <rguenther@suse.de>
7044
7045 PR middle-end/31029
7046 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7047 equality comparisons. Fold C - X CMP X if C % 2 == 1.
7048
108f6c2f
RG
70492009-03-31 Richard Guenther <rguenther@suse.de>
7050
7051 * tree.h (div_if_zero_remainder): Declare.
7052 * fold-const.c (div_if_zero_remainder): Export.
7053 * tree-ssa-forwprop.c
7054 (forward_propagate_addr_into_variable_array_index): Handle
7055 constant array index addition outside of the variable index.
7056
8f612190
JM
70572009-03-31 Joseph Myers <joseph@codesourcery.com>
7058
7059 PR target/39592
7060 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7061 define_splits, floatunssi<mode>2): Require x87 conversions from
7062 DImode to be permitted.
7063
47580d22
JM
70642009-03-31 Joseph Myers <joseph@codesourcery.com>
7065
7066 PR preprocessor/15638
7067 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7068
ba4d8f9d
RG
70692009-03-31 Richard Guenther <rguenther@suse.de>
7070
7071 PR middle-end/23401
7072 PR middle-end/27810
7073 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7074 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7075 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7076 a separate statement.
7077 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7078 (lookup_tmp_var): Likewise.
7079 (is_gimple_formal_tmp_or_call_rhs): Remove.
7080 (is_gimple_reg_or_call_rhs): Rename to ...
7081 (is_gimple_reg_rhs_or_call): ... this.
7082 (is_gimple_mem_or_call_rhs): Rename to ...
7083 (is_gimple_mem_rhs_or_call): ... this.
7084 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
7085 DECL_GIMPLE_REG_P only if is_formal is true.
7086 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
7087 for non-proper post-modify expression gimplification.
7088 (gimplify_self_mod_expr): For post-modify expressions gimplify
7089 the lvalue to a minimal lvalue.
7090 (rhs_predicate_for): Remove formal temp case.
7091 (gimplify_modify_expr_rhs): Likewise.
7092 (gimplify_addr_expr): Use is_gimple_reg.
7093 (gimplify_expr): Remove formal temp cases.
7094 (gimple_regimplify_operands): Likewise.
7095 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7096 and FILTER_EXPR like constants.
7097 * gimple.c (walk_gimple_op): Fix val_only initialization, use
7098 is_gimple_reg.
7099 (is_gimple_formal_tmp_rhs): Remove.
7100 (is_gimple_reg_rhs): Remove special casing.
7101 (is_gimple_mem_rhs): Fix.
7102 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7103 (is_gimple_formal_tmp_var): Remove.
7104 (is_gimple_formal_tmp_reg): Likewise.
7105 (is_gimple_min_lval): Allow invariant component ref parts.
7106 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7107 is_gimple_formal_tmp_reg): Remove declarations.
7108 * tree-cfg.c (verify_expr): Verify that variables with address
7109 taken do not have DECL_GIMPLE_REG_P set.
7110 * tree-mudflap.c (mf_build_check_statement_for): Use
7111 force_gimple_operand instead of gimplify_expr.
7112
8de9b877
AZ
71132009-03-31 Ayal Zaks <zaks@il.ibm.com>
7114
7115 * modulo-sched.c (sms_schedule_by_order): Pass the actual
7116 schedulable rows to compute_split_row.
7117
b5e3caf2
BE
71182009-03-31 Ben Elliston <bje@au.ibm.com>
7119
7120 PR target/31635
7121 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7122 OPT_mvrsave.
7123
9752c4ad
AM
71242009-03-31 Alan Modra <amodra@bigpond.net.au>
7125
7126 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7127 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7128 * configure: Regenerate.
7129 * config.in: Regenerate.
7130 * config/rs6000/rs6000.opt (mtls-markers): Add.
7131 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7132 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7133 (tls_ld_aix, tls_ld_sysv): Likewise.
7134 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7135 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7136
b597d1b6
AM
71372009-03-31 Alan Modra <amodra@bigpond.net.au>
7138
7139 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7140
a203a221
JH
71412009-03-30 Jan Hubicka <jh@suse.cz>
7142
b597d1b6
AM
7143 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7144 out of RESX.
7145 (tree_remove_unreachable_handlers): Cleanup EH predecestor
7146 detection and label handling.
a203a221 7147
5b0c0b2c
VM
71482009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7149
7150 * ira-int.h (ira_allocno): Rename left_conflicts_num to
7151 left_conflicts_size.
7152 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7153 ALLOCNO_LEFT_CONFLICTS_SIZE.
7154
7155 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7156 remove_allocno_from_bucket_and_push,
7157 allocno_spill_priority_compare, push_allocnos_to_stack,
7158 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7159 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7160 (setup_allocno_left_conflicts_num): Ditto. Rename to
7161 setup_allocno_left_conflicts_size.
7162 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7163 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7164 setup_allocno_left_conflicts_size instead of
7165 setup_allocno_left_conflicts_num.
7166
7167 * ira-build.c (ira_create_allocno): Use
7168 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7169 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 7170
9a48a93f
VM
71712009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7172
7173 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7174 instead of DF_LR_OUT.
7175
7176 * ira-lives.c (process_bb_node_lives): Ditto.
7177
7178 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7179 instead of DF_LR_{OUT,IN}.
7180
7181 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7182
7183 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7184
4c936d4f
JH
71852009-03-30 Jan Hubicka <jh@suse.cz>
7186
7187 * except.c (label_to_region_map): Fix thinko.
7188
f4d9f129
SE
71892009-03-30 Steve Ellcey <sje@cup.hp.com>
7190
7191 PR middle-end/38237
7192 * tree.h (tree_find_value): New declaration.
7193 * tree.c (tree_find_value): New function.
7194 * varasm.c (assemble_external): Avoid duplicate entries on lists.
7195
b3f27c15
JJ
71962009-03-30 Jakub Jelinek <jakub@redhat.com>
7197
7198 PR debug/39563
7199 * c-decl.c (struct c_binding): Add locus field.
7200 (bind): Add locus argument, set locus field from it.
7201 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7202 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7203 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7204 implicitly_declare, undeclared_variable, lookup_label,
7205 declare_label, c_make_fname_decl, c_builtin_function,
7206 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7207 bind callers.
7208
ad41bd84 72092009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
7210
7211 PR target/38781
7212 * config/i386/i386.c (classify_argument): Check total size of
7213 structure.
7214
133f9369
MJ
72152009-03-30 Martin Jambor <mjambor@suse.cz>
7216
7217 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7218 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7219 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7220 respectively.
7221
7222 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7223 seen_variable_array_ref while also traversing a union.
7224
7225 * tree-inline.c (optimize_inline_calls): Do not call
7226 cgraph_node_remove_callees.
7227 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7228 (pass_remove_cgraph_callee_edges): New variable.
7229 * passes.c (init_optimization_passes): Add
7230 pass_remove_cgraph_callee_edges after early inlining and before all
7231 late intraprocedural passes.
7232
7233 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7234
1190f2eb
PB
72352009-03-30 Paolo Bonzini <bonzini@gnu.org>
7236
7237 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7238 Fix typos in names.
7239
fedc1775
PB
72402009-03-30 Paolo Bonzini <bonzini@gnu.org>
7241
fcb82ab0
UB
7242 * combine.c (simplify_comparison): Use have_insn_for.
7243 * dojump.c (do_jump): Likewise.
fedc1775 7244
65c5ae8b
PB
72452009-03-30 Paolo Bonzini <bonzini@gnu.org>
7246
7247 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7248 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7249 sparc_compare_op0 like sparc_compare_emitted used to be handled.
7250 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7251 instead of sparc_compare_emitted.
7252 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7253 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7254 instead of sparc_compare_emitted.
7255
d25aa7ab
PB
72562009-03-30 Paolo Bonzini <bonzini@gnu.org>
7257
7258 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7259 enter/exit cfglayout mode.
7260 (pass_partition_block): Require it.
7261 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7262 (combine_instructions): Track basic blocks instead of labels.
7263 (update_cfg_for_uncondjump): New.
7264 (try_combine): Use it. Update jumps after rescanning.
7265 (pass_combine): Require PROP_cfglayout.
7266 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7267
9c9e26f5
PB
72682009-03-30 Paolo Bonzini <bonzini@gnu.org>
7269
fcb82ab0
UB
7270 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7271 Provide/destroy PROP_cfglayout respectively.
7272 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7273 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 7274
28ddeea1
PB
72752009-03-30 Paolo Bonzini <bonzini@gnu.org>
7276
7277 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7278 fold_convert_const_fixed_from_fixed,
7279 fold_convert_const_fixed_from_int,
7280 fold_convert_const_fixed_from_real, fold_negate_const): Do not
7281 set TREE_CONSTANT_OVERFLOW.
7282 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7283 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7284
ebfd146a
IR
72852009-03-30 Ira Rosen <irar@il.ibm.com>
7286
7287 * tree-vect-loop-manip.c: New file.
7288 * tree-vectorizer.c: Update documentation and included files.
7289 (vect_loop_location): Make extern.
7290 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
7291 (rename_variables_in_bb, rename_variables_in_loop,
7292 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
7293 slpeel_update_phi_nodes_for_guard1,
7294 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7295 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7296 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 7297 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
7298 find_loop_location): Likewise.
7299 (new_stmt_vec_info): Move to tree-vect-stmts.c.
7300 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7301 get_vectype_for_scalar_type, vect_is_simple_use,
7302 supportable_widening_operation, supportable_narrowing_operation):
7303 Likewise.
7304 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
7305 (new_loop_vec_info, destroy_loop_vec_info,
7306 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
7307 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7308 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7309 (vect_supportable_dr_alignment): Likewise.
7310 * tree-vectorizer.h (tree-data-ref.h): Include.
7311 (vect_loop_location): Declare.
7312 Reorganize function declarations according to the new file structure.
7313 * tree-vect-loop.c: New file.
2ba9daa7 7314 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
7315 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7316 * tree-vect-data-refs.c: New file.
7317 * tree-vect-patterns.c (timevar.h): Don't include.
7318 * tree-vect-stmts.c: New file.
2ba9daa7 7319 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 7320 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
7321 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7322 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
7323 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7324 (tree-vect-analyze.o): Remove.
7325 (tree-vect-transform.o): Likewise.
7326 (tree-vect-data-refs.o): Add rule.
2ba9daa7 7327 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
7328 tree-vect-slp.o): Likewise.
7329 (tree-vect-patterns.o): Remove redundant dependencies.
7330 (tree-vectorizer.o): Likewise.
7331 * tree-vect-slp.c: New file.
7332
40a1cfba
RW
73332009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7334
7335 * optc-gen.awk: Warn if an option flag has multiple different
7336 help strings.
7337
a9a7a9a2
SP
73382009-03-30 Sebastian Pop <sebastian.pop@amd.com>
7339
7340 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7341 -floop-block): Document dependences on PPL, CLooG and Graphite.
7342
8ce94e44
JM
73432009-03-30 Joseph Myers <joseph@codesourcery.com>
7344
7345 PR rtl-optimization/323
7346 * c-common.c (c_fully_fold, convert_and_check,
7347 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7348 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7349 * c-common.def (EXCESS_PRECISION_EXPR): New.
7350 * c-cppbuiltin.c (builtin_define_float_constants): Define
7351 constants with enough digits for long double.
7352 * c-lex.c (interpret_float): Interpret constant with excess
7353 precision where appropriate.
7354 * c-opts.c (c_common_post_options): Set
7355 flag_excess_precision_cmdline. Give an error for
7356 -fexcess-precision=standard for C++ for processors where the
7357 option is significant.
7358 * c-parser.c (c_parser_conditional_expression): Handle excess
7359 precision in condition.
7360 * c-typeck.c (convert_arguments): Handle arguments with excess
7361 precision.
7362 (build_unary_op): Move excess precision outside operation.
7363 (build_conditional_expr): Likewise.
7364 (build_compound_expr): Likewise.
7365 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7366 (build_modify_expr): Handle excess precision in RHS.
7367 (convert_for_assignment): Handle excess precision in converted
7368 value.
7369 (digest_init, output_init_element, process_init_element): Handle
7370 excess precision in initializer.
7371 (c_finish_return): Handle excess precision in return value.
7372 (build_binary_op): Handle excess precision in operands and add
7373 excess precision as needed for operation.
7374 * common.opt (-fexcess-precision=): New option.
7375 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7376 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7377 For standard excess precision, output explicit conversion to and
7378 truncation from XFmode.
7379 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7380 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7381 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7382 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
7383 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
7384 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
7385 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
7386 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
7387 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
7388 define_splits, sqrt<mode>2): Disable where appropriate for
7389 standard excess precision.
7390 * convert.c (convert_to_real): Do not shorten arithmetic to type
7391 for which excess precision would be used.
7392 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
7393 * doc/invoke.texi (-fexcess-precision=): Document option.
7394 (-mfpmath=): Correct index entry.
7395 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
7396 flag_excess_precision): New.
7397 * langhooks.c (lhd_post_options): Set
7398 flag_excess_precision_cmdline.
7399 * opts.c (common_handle_option): Handle -fexcess-precision=.
7400 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
7401 init_excess_precision): New.
7402 (lang_dependent_init_target): Call init_excess_precision.
7403 * tree.c (excess_precision_type): New.
7404 * tree.h (excess_precision_type): Declare.
7405
1e57bf47
JM
74062009-03-30 Joseph Myers <joseph@codesourcery.com>
7407
7408 PR c/35235
7409 * c-typeck.c (build_component_ref): Do not copy qualifiers from
7410 non-lvalue to component.
7411
148e4216
JM
74122009-03-29 Joseph Myers <joseph@codesourcery.com>
7413
7414 PR preprocessor/34695
7415 * Makefile.in (c-opts.o): Depend on c-tree.h.
7416 * c-common.c: Move down include of diagnostic.h.
7417 (done_lexing, c_cpp_error): New.
7418 * c-common.h (done_lexing): Declare.
7419 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
7420 (parse_in).
7421 * c-opts.c: Include c-tree.h.
7422 (c_common_init_options): Set preprocessor error callback.
7423 (c_common_handle_option): Do not set preprocessor
7424 inhibit_warnings, warnings_are_errors, warn_system_headers,
7425 pedantic_errors or inhibit_warnings flags.
7426 (c_common_post_options): Do not check cpp_errors (parse_in).
7427 (c_common_finish): Do not output dependencies if there were
7428 errors. Do not check return value of cpp_finish.
7429 * c-ppoutput.c (pp_file_change): Set input_location.
7430 * c-tree.h (c_cpp_error): Declare.
7431 * diagnostic.c (diagnostic_set_info_translated): Also initialize
7432 override_column.
7433 (diagnostic_build_prefix): Check override_column.
7434 * diagnostic.h (diagnostic_info): Add override_column field.
7435 (diagnostic_override_column): Define.
7436
2ec5deb5
PB
74372009-03-28 Paolo Bonzini <bonzini@gnu.org>
7438
ba20e309
UB
7439 * c-common.c (c_expand_expr, c_staticp): Remove.
7440 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
7441 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
7442 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
7443 * c-gimplify.c (gimplify_compound_literal_expr,
7444 optimize_compound_literals_in_ctor): Remove.
7445 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
7446 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
7447 * c-semantics.c (emit_local_var): Remove.
7448
7449 * langhooks-def.h (lhd_expand_expr): Remove.
7450 * langhooks.c (lhd_expand_expr): Remove.
7451 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
7452
7453 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
7454 handling from c-semantics.c; don't call into langhook.
7455 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
7456 * gimplify.c (gimplify_compound_literal_expr,
7457 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
7458 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
7459 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
7460 as was done in c-gimplify.c.
7461 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
7462 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
7463 Move from c-common.h.
7464 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
7465
7466 * tree.c (staticp): Do not call langhook.
7467 * langhooks.c (lhd_staticp): Delete.
7468 * langhooks-def.h (lhd_staticp): Delete prototype.
7469 (LANG_HOOKS_STATICP): Delete.
7470 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
7471
ba20e309
UB
7472 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
7473 instead of DECL_STMTs.
2ec5deb5 7474
928c19bb
JM
74752009-03-29 Joseph Myers <joseph@codesourcery.com>
7476
7477 PR c/456
7478 PR c/5675
7479 PR c/19976
7480 PR c/29116
7481 PR c/31871
7482 PR c/35198
7483 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
7484 void_type_node.
7485 (fold_call_expr): Return a NOP_EXPR from folding rather than the
7486 contained expression.
ba20e309 7487 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
7488 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
7489 conditional expressions for C.
7490 (decl_constant_value_for_optimization): Move from
ba20e309 7491 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
7492 whether optimizing and that the expression is a VAR_DECL not of
7493 array type instead of doing such checks in the caller. Do not
7494 check pedantic. Call gcc_unreachable for C++.
7495 * c-common.def (C_MAYBE_CONST_EXPR): New.
7496 * c-common.h (c_fully_fold, c_save_expr,
7497 decl_constant_value_for_optimization): New prototypes.
7498 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7499 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7500 EXPR_INT_CONST_OPERANDS): Define.
7501 * c-convert.c (convert): Strip nops from expression.
7502 * c-decl.c (groktypename): Take extra parameters expr and
7503 expr_const_operands. Update call to grokdeclarator.
7504 (start_decl): Update call to grokdeclarator. Add statement for
7505 expressions used in type of decl.
7506 (grokparm): Update call to grokdeclarator.
7507 (push_parm_decl): Update call to grokdeclarator.
7508 (build_compound_literal): Add parameter non_const and build a
7509 C_MAYBE_COSNT_EXPR if applicable.
7510 (grokdeclarator): Take extra parameters expr and
7511 expr_const_operands. Track expressions used in declaration
7512 specifiers and declarators. Fold array sizes and track whether
7513 they are constant expressions and whether they are integer
7514 constant expressions.
7515 (parser_xref_tag): Set expr and expr_const_operands fields in
7516 return value.
7517 (grokfield): Update call to grokdeclarator.
7518 (start_function): Update call to grokdeclarator.
7519 (build_null_declspecs): Set expr and expr_const_operands fields in
7520 return value.
7521 (declspecs_add_type): Handle expressions in typeof specifiers.
7522 * c-parser.c (c_parser_declspecs): Set expr and
7523 expr_const_operands fields for declaration specifiers.
7524 (c_parser_enum_specifier): Likewise.
7525 (c_parser_struct_or_union_specifier): Likewise.
7526 (c_parser_typeof_specifier): Likewise. Update call to
7527 groktypename. Fold expression as needed. Return expressions with
7528 type instead of adding statements.
7529 (c_parser_attributes): Update calls to c_parser_expr_list.
7530 (c_parser_statement_after_labels): Fold expression before passing
7531 to objc_build_throw_stmt.
7532 (c_parser_condition): Fold expression.
7533 (c_parser_asm_operands): Fold expression.
7534 (c_parser_conditional_expression): Use c_save_expr. Update call
7535 to build_conditional_expr.
7536 (c_parser_alignof_expression): Update call to groktypename.
7537 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
7538 original_code. Fold expression argument of va_arg. Create
7539 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
7540 argument to va_arg. Update calls to groktypename. Fold array
7541 index for offsetof. Verify that first argument to
7542 __builtin_choose_expr has integer type.
7543 (c_parser_postfix_expression_after_paren_type): Update calls to
7544 groktypename and build_compound_literal. Handle expressions with
7545 side effects in type name.
7546 (c_parser_postfix_expression_after_primary): Update call to
7547 c_parser_expr_list. Set original_code for calls to
7548 __builtin_constant_p.
7549 (c_parser_expr_list): Take extra parameter fold_p. Fold
7550 expressions if requested.
7551 (c_parser_objc_type_name): Update call to groktypename.
7552 (c_parser_objc_synchronized_statement): Fold expression.
7553 (c_parser_objc_receiver): Fold expression.
7554 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
7555 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
7556 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
7557 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
7558 (struct c_typespec): Add elements expr and expr_const_operands.
7559 (struct c_declspecs): Add elements expr and expr_const_operands.
7560 (groktypename, build_conditional_expr, build_compound_literal):
7561 Update prototypes.
7562 (in_late_binary_op): Declare.
7563 * c-typeck.c (note_integer_operands): New function.
7564 (in_late_binary_op): New variable.
7565 (decl_constant_value_for_broken_optimization): Move to c-common.c
7566 and rename to decl_constant_value_for_optimization.
7567 (default_function_array_conversion): Do not strip nops.
7568 (default_conversion): Do not call
7569 decl_constant_value_for_broken_optimization.
7570 (build_array_ref): Do not fold result.
7571 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
7572 result when operand is a VLA.
7573 (c_expr_sizeof_type): Update call to groktypename. Handle
7574 expressions included in type name. Use C_MAYBE_CONST_EXPR for
7575 result when operand names a VLA type.
7576 (build_function_call): Update call to build_compound_literal.
7577 Only fold result for calls to __builtin_* functions. Strip
7578 NOP_EXPR from INTEGER_CST returned from such functions. Fold
7579 the function designator.
7580 (convert_arguments): Fold arguments. Update call to
7581 convert_for_assignment.
7582 (build_unary_op): Handle increment and decrement of
7583 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
7584 decrement earlier. Fold operand of increment and decrement.
7585 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
7586 built for integer operand. Wrap returns that are INTEGER_CSTs
7587 without being integer constant expressions or that have integer
7588 constant operands without being INTEGER_CSTs.
7589 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
7590 (build_conditional_expr): Add operand ifexp_bcp. Track whether
7591 result is an integer constant expression or can be used in
7592 unevaluated parts of one and avoid folding and wrap as
7593 appropriate. Fold operands before possibly doing -Wsign-compare
7594 warnings.
7595 (build_compound_expr): Wrap result for C99 if operands can be used
7596 in integer constant expressions.
7597 (build_c_cast): Update call to digest_init. Do not ignore
7598 overflow from casting floating-point constants to integers. Wrap
7599 results that could be confused with integer constant expressions,
7600 null pointer constants or floating-point constants.
7601 (c_cast_expr): Update call to groktypename. Handle expressions
7602 included in type name.
7603 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
7604 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
7605 Update calls to convert_for_assignment.
7606 (convert_for_assignment): Take new parameter
7607 null_pointer_constant. Do not strip nops or call
7608 decl_constant_value_for_broken_optimization. Set
7609 in_late_binary_op for conversions to boolean.
7610 (store_init_value): Update call to digest_init.
7611 (digest_init): Take new parameter null_pointer_constant. Do not
7612 call decl_constant_value_for_broken_optimization. pedwarn for
7613 initializers not constant expressions. Update calls to
7614 convert_for_assignment.
7615 (constructor_nonconst): New.
7616 (struct constructor_stack): Add nonconst element.
7617 (really_start_incremental_init, push_init_level, pop_init_level):
7618 Handle constructor_nonconst and nonconst element.
7619 (set_init_index): Call constant_expression_warning for array
7620 designators.
7621 (output_init_element): Fold value. Set constructor_nonconst as
7622 applicable. pedwarn for initializers not constant expressions.
7623 Update call to digest_init. Call constant_expression_warning
7624 where constant initializers are required.
7625 (process_init_element): Use c_save_expr.
7626 (c_finish_goto_ptr): Fold expression.
7627 (c_finish_return): Fold return value. Update call to
7628 convert_for_assignment.
7629 (c_start_case): Fold switch expression.
7630 (c_process_expr_stmt): Fold expression.
7631 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 7632 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
7633 (build_binary_op): Track whether results are integer constant
7634 expressions or may occur in such, disable folding and wrap results
7635 as applicable. Fold operands for -Wsign-compare warnings unless
7636 in_late_binary_op.
7637 (c_objc_common_truthvalue_conversion): Handle results folded to
7638 integer constants that are not integer constant expressions.
7639 * doc/extend.texi: Document when typeof operands are evaluated,
7640 that condition of __builtin_choose_expr is an integer constant
7641 expression, and more about use of __builtin_constant_p in
7642 initializers.
7643
5babbcc0
RG
76442009-03-29 Richard Guenther <rguenther@suse.de>
7645
7646 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
7647 propagate addresses of array references.
7648
0340f2ba
SB
76492009-03-29 Steven Bosscher <steven@gcc.gnu.org>
7650
7651 * regmove.c (perhaps_ends_bb_p): Remove.
7652 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
7653 from INSN and check that the main loop stays within that basic block.
7654 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
7655 (regmove_forward_pass): Split out from regmove_optimize. Use
7656 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
7657 (regmove_backward_pass): Split out from regmove_optimize. Use
7658 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
7659 (regmove_optimize): Simplify.
7660
eeae74a1
L
76612009-03-29 H.J. Lu <hongjiu.lu@intel.com>
7662
7663 PR target/39545
7664 * config/i386/i386.c (classify_argument): Ignore flexible array
7665 member in struct and warn ABI change.
7666
a24078b2
L
76672009-03-29 H.J. Lu <hongjiu.lu@intel.com>
7668
7669 * config/i386/i386-protos.h (ix86_agi_dependent): New.
7670
7671 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
7672 (ix86_adjust_cost): Updated.
7673
a8da523f
JH
76742009-03-29 Jan Hubicka <jh@suse.cz>
7675
7676 PR middle-end/28850
7677 * tree-pass.h (pass_cleanup_eh): New function.
7678 (remove_unreachable_regions): Break code handling RTL
7679 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
7680 that can not be reached by runtime.
7681 (can_be_reached_by_runtime): New function.
7682 (label_to_region_map): New function.
7683 (num_eh_regions): New function.
7684 (rtl_remove_unreachable_regions): New function.
7685 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
7686 (remove_eh_region): New function.
7687 * except.h: Include sbitmap and vecprim.
7688 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
7689 num_eh_regions): Declare.
7690 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 7691 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
7692 * tree-eh.c (tree_remove_unreachable_handlers): New function.
7693 (tree_empty_eh_handler_p): New function.
7694 (cleanup_empty_eh): New function.
7695 (cleanup_eh): New function.
7696 (pass_cleanup_eh): New function.
7697
98f358e5
JH
76982009-03-29 Jan Hubicka <jh@suse.cz>
7699
7700 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
7701 for removed regions.
7702
13a9fa44
JH
77032009-03-29 Jan Hubicka <jh@suse.cz>
7704
7705 * except.c (dump_eh_tree): Dump all datastructures.
7706
e38cf733
JH
77072009-03-29 Jan Hubicka <jh@suse.cz>
7708
7709 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
7710 (duplicate_eh_regions_1): Likewise.
7711 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
7712 vector; call EH verification.
7713 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7714 Be ready for region being removed.
7715
12802c2b
JH
77162009-03-29 Jan Hubicka <jh@suse.cz>
7717
7718 * bitmap.c (bitmap_last_set_bit): New function.
7719 * bitmap.h (bitmap_last_set_bit): Declare.
7720
4ea80a41
DA
77212009-03-29 David Ayers <ayers@fsfe.org>
7722
7723 PR objc/27377
7724 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
7725 by calling objc_compare_types and surpress warnings about
7726 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 7727
4ea80a41 77282009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
7729
7730 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
7731 call initialize_inline_failed.
7732 (initialize_inline_failed): Move it from here ...
7733 * cgraph.c (initialize_inline_failed): ... to here.
7734 (cgraph_create_edge): Call initialize_inline_failed rather than
7735 setting inline_failed directly.
7736
7fb0ee07
BE
77372009-03-29 Ben Elliston <bje@au.ibm.com>
7738
7739 PR target/32542
7740 * sysv4.opt (msdata): Improve comment.
7741 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
7742 * sysv4.h (SVR4_ASM_SPEC): Likewise.
7743
0be77bf2
BE
77442009-03-29 Ben Elliston <bje@au.ibm.com>
7745
7746 PR target/30451
7747 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
7748 load and store attributes.
7749
593812b6
BE
77502009-03-29 Ben Elliston <bje@au.ibm.com>
7751
7752 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
7753 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
7754 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
7755 * doc/extend.texi (X86 Built-in Functions): Add index entries for
7756 __builtin_infq and __builtin_huge_valq.
7757
8272d11d
AS
77582009-03-28 Anatoly Sokolov <aesok@post.ru>
7759
7760 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
7761 atmega8m1 devices.
7762 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7763 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
7764
74fe548b
XDL
77652009-03-28 Xinliang David Li <davidxl@google.com>
7766
2ba9daa7 7767 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
7768 (do_dbg_cnt): New function.
7769
33977f81
JH
77702009-03-28 Jan Hubicka <jh@suse.cz>
7771
7772 Merge from pretty-ipa:
7773
7774 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 7775
33977f81
JH
7776 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
7777 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
7778 * passes.c (function_called_by_processed_nodes_p): New.
7779 * ipa-pure-const.c (check_call): Fix handling of operands.
7780 (analyze_function): Dump debug output for skipped bodies.
7781 (local_pure_const): Use function_called_by_processed_nodes_p.
7782 * dwarf2out.c (reference_to_unused): Use output.
7783 * passes.c (do_per_function_toporder): Likewise.
7784
7785 2008-11-12 Jan Hubicka <jh@suse.cz>
7786
7787 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
7788 * ipa-pure-const.c (funct_state_d): Add can throw field; make
7789 state_set_in_source enum
7790 (check_decl): Ignore memory tags; do not set fake looping flags;
7791 dump diagnostics.
7792 (check_operand, check_tree, check_rhs_var, check_lhs_var,
7793 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
7794 (check_call, analyze_function): Rewrite.
7795 (check_stmt): New.
7796 (add_new_function): Update call of analyze_function.
7797 (generate_summary): Add call of analyze_function.
7798 (propagate): Propagate can_throw; handle state_set_in_source correctly.
7799 (local_pure_const): New function.
7800 (pass_local_pure_const): New pass.
7801 * ipa-inline.c (inline_transform): Set after_inlining.
7802 * tree-eh.c (stmt_can_throw_external): New.
7803 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
7804 work with aliasing built.
7805 * tree-flow.h (stmt_can_throw_external): New.
7806 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
7807 and local pure/const pass in early and late optimization queue.
ba20e309 7808
617f3897
MJ
78092009-03-28 Martin Jambor <mjambor@suse.cz>
7810
7811 * fold-const.c (get_pointer_modulus_and_residue): New parameter
7812 allow_func_align.
7813 (fold_binary): Allow function decl aligment consideration is the
7814 second argument is integer constant one.
7815 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
7816 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
7817 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
7818
fe89fbc5
JH
78192009-03-28 Jan Hubicka <jh@suse.cz>
7820
7821 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
7822 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
7823 * function.h (rtl_data): Add nothrow flag.
7824 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
7825 set DECL_NOTHROW for AVAILABLE functions.
7826
574872ff
JJ
78272009-03-28 Jakub Jelinek <jakub@redhat.com>
7828
b3bf8855
JJ
7829 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
7830 following vector keyword has expansion starting with pixel or bool
7831 keyword, expand vector to __vector and pixel or bool to __pixel or
7832 __bool.
7833
574872ff
JJ
7834 PR c++/39554
7835 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
7836 warn_if_disallowed_function_p): Removed.
7837 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
7838 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
7839 warning_if_disallowed_function_p.
7840 * flags.h (warn_if_disallowed_function_p,
7841 warn_disallowed_functions): Removed.
7842 * common.opt (Wdisallowed-function-list=): Removed.
7843 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
7844
b005da11
RG
78452009-03-28 Richard Guenther <rguenther@suse.de>
7846
7847 PR tree-optimization/38723
7848 * tree-ssa-pre.c (compute_avail): Add all default definitions to
7849 the entry block.
7850
1de812a6
JH
78512009-03-28 Jan Hubicka <jh@suse.cz>
7852
7853 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
7854 test introduced by my previous patch.
7855
fbb789d4
RG
78562009-03-28 Richard Guenther <rguenther@suse.de>
7857
7858 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
7859 the PHIs value undefined.
7860
6f1873a1
JH
78612009-03-28 Jan Hubicka <jh@suse.cz>
7862
7863 * tree-pass.h (pass_fixup_cfg): New pass.
7864 * ipa-inline.c (inline_transform): Set
7865 always_inline_functions_inlined/after_inlining.
7866 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
7867 (pass_fixup_cfg): New pass.
7868 * passes.c (init_optimization_passes): Add fixup_cfg.
7869
17021bc8
RG
78702009-03-28 Richard Guenther <rguenther@suse.de>
7871
7872 PR tree-optimization/38458
7873 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
7874 argument use the arguments copy-of value.
7875
e8114fba
RG
78762009-03-28 Richard Guenther <rguenther@suse.de>
7877
7878 PR tree-optimization/38180
7879 * tree-ssa-ccp.c (get_default_value): Simplify.
7880 (likely_value): Likewise.
7881 (surely_varying_stmt_p): Properly handle VOP case.
7882 (ccp_initialize): Likewise.
7883 (ccp_fold): Handle propagating through *&.
7884 (fold_const_aggregate_ref): Also handle decls.
7885
257eb6e3
JH
78862009-03-28 Jan Hubicka <jh@suse.cz>
7887
7888 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
7889 * cgraph.h (cgraph_node): Likewise.
7890 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
7891 (cgraph_reset_node): Use process flag.
7892 (cgraph_mark_functions_to_output): Likewise.
7893 (cgraph_expand_function): Likewise.
7894 (cgraph_expand_all_functions): Likewise.
7895 (cgraph_output_in_order): Likewise.
7896 * dwarf2out.c (reference_to_unused): Likewise.
7897 * passes.c do_per_function_toporder): Likewise.
7898
61a05df1
JH
78992009-03-28 Jan Hubicka <jh@suse.cz>
7900
7901 Bring from lto-branch:
ba20e309 7902
61a05df1
JH
7903 2008-09-03 Doug Kwan <dougkwan@google.com>
7904
7905 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
7906 enums instead of reason strings.
7907 * cgraph.c (cgraph_create_edge): Same.
7908 (cgraph_inline_failed_string): New function.
7909 * cgraph.h (cgraph_inline_failed_t): New enum type.
7910 (cgraph_inline_failed_string): New prototype.
7911 (struct cgraph_edge): Change type of INLINED_FAILED from constant
7912 char pointer to cgraph_inline_failed_t.
7913 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
7914 (cgraph_default_inline_p): Ditto.
60839f5d 7915 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
7916 to cgraph_inline_failed_t pointer.
7917 * cif-code.def: New file.
7918 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
7919 reason string.
7920 (cgraph_check_inline_limits): Change type of REASON to pointer to
7921 cgraph_inline_failed_t. Replace reason strings with enums.
7922 (cgraph_default_inline_p): Ditto.
7923 (cgraph_recursive_inlining_p): Ditto.
7924 (update_caller_keys): Change type of FAILED_REASON to
7925 cgraph_inline_failed_t.
7926 (cgraph_set_inline_failed): Change type of REASON to pointer to
7927 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
7928 convert enums to strings for text output.
7929 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
7930 to be of type cgraph_inline_failed_t. Replace reason strings with
7931 enums. Call cgraph_inline_failed_string to covert enums
7932 to strings for text output.
7933 (cgraph_decide_inlining): Replace reason strings with enums.
7934 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
7935 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
7936 for text output.
7937 * tree-inline.c (expand_call_inline): Change type of REASON
7938 to cgraph_inline_failed_t. Replace reason strings with enums.
7939 Call cgraph_inline_failed_string for text output.
7940 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
7941 (cgraph.o): Ditto.
7942
144e8aac
JH
79432009-03-28 Jan Hubicka <jh@suse.cz>
7944
7945 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
7946 cgraph_clone_node): Remove master clone handling.
7947 (cgraph_is_master_clone, cgraph_master_clone): Remove.
7948 * cgraph.h (master_clone): Remove.
7949 (cgraph_is_master_clone, cgraph_master_clone): Remove.
7950 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
7951 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
7952
4a371c8d
JH
79532009-03-28 Jan Hubicka <jh@suse.cz>
7954
7955 * cgraph.c (cgraph_function_body_availability): Functions declared
7956 inline are always safe to assume that it is not going to be replaced.
7957
6cdb0ee3
RG
79582009-03-28 Richard Guenther <rguenther@suse.de>
7959
7960 PR tree-optimization/38513
7961 * tree-ssa-pre.c (eliminate): Remove redundant stores.
7962 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
7963 EXC_PTR_EXPR and FILTER_EXPR.
7964 (get_ref_from_reference_ops): Likewise.
7965
8ca1fd76
RG
79662009-03-28 Richard Guenther <rguenther@suse.de>
7967
7968 PR tree-optimization/38968
7969 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
7970 Use FLOOR_MOD_EXPR to compute misalignment.
7971
a254e44d
RG
79722009-03-28 Richard Guenther <rguenther@suse.de>
7973
7974 PR tree-optimization/37795
7975 * tree.h (combine_comparisons): Declare.
7976 * fold-const.c (combine_comparisons): Export.
7977 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
7978 comparisons.
7979 (ifcombine_iforif): Use combine_comparisons.
7980
a8ee227c
JH
79812009-03-28 Jan Hubicka <jh@suse.cz>
7982
7983 * tree-eh.c (inlinable_call_p): New function.
7984 (make_eh_edges): Use it.
7985 (verify_eh_edges): Use it.
7986 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
7987 * except.c (reachable_next_level): Add inlinable_function argument
7988 (sjlj_find_directly_reachable_regions): Update.
7989 (add_reachable_handler): Do not set saw_any_handlers.
7990 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
7991 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7992 Add new inlinable call parameter.
7993 (can_throw_internal, can_throw_external): Update.
7994 * except.h (can_throw_internal_1, can_throw_external_1,
7995 foreach_reachable_handler): Update declaration.
7996
52c0e446
JM
79972009-03-28 Joseph Myers <joseph@codesourcery.com>
7998
7999 * config/arm/t-arm-coff, config/h8300/coff.h,
8000 config/i386/i386-aout.h, config/i386/i386-coff.h,
8001 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8002 config/pdp11/2bsd.h, config/rs6000/aix41.h,
8003 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
8004 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
8005 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
8006 sys-types.h: Remove.
8007 * Makefile.in: Remove protoize and fixproto support and references
8008 in comments.
8009 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
8010 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
8011 Remove.
8012 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
8013 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
8014 unprotoize$(exeext).
8015 (rest.encap): Don't depend on $(STMP_FIXPROTO)
8016 (.PHONY): Don't depend on proto.
8017 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
8018 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
8019 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
8020 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
8021 build/gen-protos.o, build/scan.o, xsys-protos.h,
8022 build/fix-header$(build_exeext), build/fix-header.o,
8023 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
8024 stmp-install-fixproto): Remove.
8025 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
8026 SYSCALLS.c or fixproto files.
8027 (install-common): Don't install protoize.
8028 (install-headers-tar, install-headers-cpio, install-headers-cp):
8029 Don't depend on $(STMP_FIXPROTO).
8030 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
8031 install fixproto files or write out fixproto settings.
8032 (uninstall): Don't uninstall protoize.
8033 * config.gcc (use_fixproto): Remove.
8034 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
8035 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
8036 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
8037 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
8038 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
8039 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8040 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8041 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8042 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8043 * config/t-vxworks (STMP_FIXPROTO): Remove.
8044 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8045 STMP_FIXPROTO): Remove.
8046 * config.in, configure: Regenerate.
8047 * crtstuff.c (gid_t, uid_t): Don't undefine.
8048 * doc/install.texi: Change m68k-coff to m68k-elf in example.
8049 (arm-*-coff, arm-*-aout: Remove target entries.
8050 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8051 Remove mention of AIX 4.1.
8052 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8053 * doc/invoke.texi (Running Protoize): Remove.
8054 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8055 (Protoize Caveats): Remove.
8056 * tsystem.h: Update comments on headers assumed to exist.
8057
20a07f44
VM
80582009-03-27 Vladimir Makarov <vmakarov@redhat.com>
8059
8060 * genautomata.c: Add a new year to the copyright. Add a new
8061 reference.
8062 (struct insn_reserv_decl): Add comments for member bypass_list.
8063 (find_bypass): Remove.
8064 (insert_bypass): New.
8065 (process_decls): Use insert_bypass.
8066 (output_internal_insn_latency_func): Output all bypasses with the
8067 same input insn in one switch case.
8068
8069 * rtl.def (define_bypass): Describe bypass choice.
8070 * doc/md.texi (define_bypass): Ditto.
8071
3a0d06c1
RB
80722009-03-27 Richard Guenther <rguenther@suse.de>
8073
8074 * gimplify.c (mark_addressable): Export.
8075 * tree-flow.h (mark_addressable): Declare.
8076 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8077 * tree-ssa.c (verify_phi_args): Verify that address taken
8078 variables have TREE_ADDRESSABLE set.
8079
80802009-03-27 Richard Guenther <rguenther@suse.de>
8081
8082 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8083 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
8084 Do not mark decls TREE_ADDRESSABLE.
8085 (build_fold_addr_expr): Adjust.
8086 (fold_addr_expr): Remove.
8087 (fold_unary): Use build_fold_addr_expr.
8088 (fold_comparison): Likewise.
8089 (split_address_to_core_and_offset): Likewise.
8090 * coverage.c (tree_coverage_counter_addr): Mark the array decl
8091 TREE_ADDRESSABLE.
8092 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8093 (gimplify_modify_expr_to_memcpy): Mark source and destination
8094 addressable.
8095 * omp-low.c (create_omp_child_function): Mark the object decl
8096 TREE_ADDRESSABLE.
8097 (lower_rec_input_clauses): Mark the var we take the address of
8098 TREE_ADDRESSABLE.
8099 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8100
2ac26e15
L
81012009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8102
8103 PR middle-end/39315
8104 * cfgexpand.c (expand_one_stack_var_at): Change alignment
8105 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8106
472c7fbd
RG
81072009-03-27 Richard Guenther <rguenther@suse.de>
8108
8109 PR tree-optimization/39120
8110 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8111 constraints.
8112 (handle_lhs_call): Process return constraints. Add escape
8113 constraints if necessary.
8114 (handle_const_call): Fill out return constraints. Make nested
8115 case more precise. Avoid consttmp if possible.
8116 (handle_pure_call): Fill out return constraints. Avoid
8117 callused if possible.
8118 (find_func_aliases): Simplify call handling.
8119
81202009-03-27 Richard Guenther <rguenther@suse.de>
8121
8122 PR tree-optimization/39120
8123 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8124 as a representative.
8125 (solve_graph): Do propagate CALLUSED.
8126 (handle_pure_call): Use a scalar constraint from CALLUSED for
8127 the return value.
8128 (find_what_p_points_to): CALLUSED shall not appear in poins-to
8129 solutions.
8130
d9223014
L
81312009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8132
8133 PR c/39323
8134 * c-common.c (handle_aligned_attribute): Properly check alignment
8135 overflow. Use (1U << i) instead of (1 << i).
8136
ba20e309 8137 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
8138
8139 * expr.h (get_mem_align_offset): Updated.
8140
8141 * tree.h (tree_decl_common): Change align to "unsigned int" and
8142 move it before pointer_alias_set.
8143
689b689c
L
81442009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8145 Jakub Jelinek <jakub@redhat.com>
8146
8147 PR target/38034
8148 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8149 gr_register_operand with gr_reg_or_0_operand.
8150 (cmpxchg_rel_di): Likewise.
8151 (sync_lock_test_and_set<mode>): Likewise.
8152
c619e982
L
81532009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8154
8155 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8156 (true_regnum): Likewise.
8157
8158 * rtlanal.c (subreg_info): Moved to ...
8159 * rtl.h (subreg_info): Here. New.
8160 (subreg_get_info): New.
8161
8162 * rtlanal.c (subreg_get_info): Make it extern.
8163
51212b32
L
81642009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8165
8166 PR target/39472
8167 * config/i386/i386.c (ix86_abi): New.
8168 (override_options): Handle -mabi=.
ba20e309 8169 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
8170 (ix86_call_abi_override): Likewise.
8171 (init_cumulative_args): Likewise.
8172 (function_arg_advance): Likewise.
8173 (function_arg_64): Likewise.
8174 (function_arg): Likewise.
8175 (ix86_pass_by_reference): Likewise.
8176 (ix86_function_value_regno_p): Likewise.
8177 (ix86_build_builtin_va_list_abi): Likewise.
8178 (setup_incoming_varargs_64): Likewise.
8179 (is_va_list_char_pointer): Likewise.
8180 (ix86_init_machine_status): Likewise.
ba20e309 8181 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
8182 (ix86_function_type_abi): Return enum calling_abi. Rewrite
8183 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 8184 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
8185 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
8186 with ix86_abi.
8187 (ix86_fn_abi_va_list): Updated.
8188
8189 * config/i386/i386.h (ix86_abi): New.
8190 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8191 (CONDITIONAL_REGISTER_USAGE): Likewise.
8192 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8193 (machine_function): Likewise.
8194
8195 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8196 with ix86_abi.
8197 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8198 (STACK_BOUNDARY): Likewise.
8199 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8200
8201 * config/i386/i386.opt (mabi=): New.
8202
8203 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8204 return enum calling_abi.
8205 (ix86_function_type_abi): Likewise.
8206 (ix86_function_abi): Removed.
8207
8208 * doc/invoke.texi: Document -mabi= option for x86.
8209
7338ea63
KG
82102009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8211
8212 * builtins.c (real_dconstp): Delete.
8213 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8214
68599f33
DS
82152009-03-27 Dodji Seketeli <dodji@redhat.com>
8216 Jakub Jelinek <jakub@redhat.com>
8217
8218 PR debug/37959
8219 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8220 (gen_subprogram_die): When a function is explicit, generate the
8221 DW_AT_explicit attribute.
8222 * langhooks.h (struct lang_hooks_for_decls): Add
8223 function_decl_explicit_p langhook.
8224 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8225 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8226
9f5e9983
JJ
82272009-03-27 Jakub Jelinek <jakub@redhat.com>
8228
64d7685c
JJ
8229 * builtins.c (fold_builtin_memory_op): Optimize memmove
8230 into memcpy if we can prove source and destination don't overlap.
8231
9f5e9983
JJ
8232 * tree-inline.c: Include gt-tree-inline.h.
8233 (clone_fn_id_num): New variable.
8234 (clone_function_name): New function.
8235 (tree_function_versioning): Use it.
8236 * Makefile.in (GTFILES): Add tree-inline.c.
8237
e54d52a8
MM
82382009-03-27 Mark Mitchell <mark@codesourcery.com>
8239
8240 * BASE-VER: Change to 4.5.0.
8241
e9d51dc6
XDL
82422009-03-27 Xinliang David Li <davidxl@google.com>
8243
8244 PR tree-optimization/39557
8245 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8246
4577cea1
XDL
82472009-03-27 Xinliang David Li <davidxl@google.com>
8248
8249 PR tree-optimization/39548
2ba9daa7 8250 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
8251 candidate check.
8252
0f7464f4
L
82532009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8254
8255 * c-common.c (pointer_int_sum): Use %wd on return from
8256 tree_low_cst.
8257
a8847a7f
L
82582009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8259
8260 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8261 on return from tree_low_cst.
8262
b0957daf
AP
82632009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
8264
8265 PR c++/36799
ba20e309
UB
8266 * ginclude/stdarg.h (va_copy): Define also for
8267 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 8268
a5f805df
MLI
82692009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8270
8271 PR c++/35652
8272 * builtins.h (c_strlen): Do not warn here.
8273 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8274 * c-common.c (pointer_int_sum): Take an explicit location.
8275 Warn about offsets out of bounds.
8276 * c-common.h (pointer_int_sum): Adjust declaration.
8277
6f401211
RW
82782009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8279
a5f805df
MLI
8280 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8281 markup glitch.
6f401211 8282
5a59b39e
JJ
82832009-03-26 Jakub Jelinek <jakub@redhat.com>
8284
8285 PR c++/39554
8286 * opts.c (warn_if_disallowed_function_p): Don't assume
8287 get_callee_fndecl must return non-NULL.
8288
d5f89b53
VM
82892009-03-26 Vladimir Makarov <vmakarov@redhat.com>
8290
8291 PR rtl-optimization/39522
8292 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8293 when reg_reloaded_valid is set.
8294
61238a79
UW
82952009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8296
8297 * config/spu/divv2df3.c: New file.
8298 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8299 (DPBIT_FUNCS): Filter out _div_df.
8300
03f8829b
BS
83012009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
8302
8303 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8304 a jump insn, count that jump in the distance to the loop start.
8305
9fdcdc74
KK
83062009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
8307
8308 PR target/39523
8309 * config/sh/sh.c (calc_live_regs): Fix condition for global
8310 registers except PIC_OFFSET_TABLE_REGNUM.
8311
46994828
KT
83122009-03-25 Kai Tietz <kai.tietz@onevision.com>
8313
8314 PR/39518
8315 * doc/invoke.texi (-mconsole): New.
8316 (-mcygwin): New.
8317 (-mno-cygwin): New.
8318 (-mdll): New.
8319 (-mnop-fun-dllimport): New.
8320 (-mthread): New.
8321 (-mwin32): New.
8322 (-mwindows): New.
8323 (sub section "i386 and x86-64 Windows Options"): New.
8324
60839f5d 83252009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
8326
8327 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8328 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8329
ae560440
RG
83302009-03-25 Richard Guenther <rguenther@suse.de>
8331
8332 PR middle-end/39497
8333 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8334 of -Wno-error.
8335
cd510f15
AM
83362009-03-25 Andrey Belevantsev <abel@ispras.ru>
8337
8338 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8339 neither of haifa/selective schedulers are working.
8340
44ab0f0e
RW
83412009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8342
8343 * doc/invoke.texi (Debugging Options): Fix description of
8344 -fno-merge-debug-strings.
8345
ad9646c7
HPN
83462009-03-24 Hans-Peter Nilsson <hp@axis.com>
8347
e6142656
HPN
8348 * config/cris/libgcc.ver: New version-script.
8349 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8350
ad9646c7
HPN
8351 * configure.ac <GAS features, nop mnemonic>: Add pattern
8352 crisv32-*-* for "nop".
ba20e309 8353 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
8354 * configure: Regenerate.
8355
09ac4473
IR
83562009-03-24 Ira Rosen <irar@il.ibm.com>
8357
8358 PR tree-optimization/39529
8359 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8360 mark_sym_for_renaming for the tag copied to the new vector
8361 pointer.
8362
d94a427e
AL
83632009-03-24 Arthur Loiret <aloiret@debian.org>
8364
ba20e309 8365 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
8366 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8367 EXTRA_SPEC_FUNCTIONS.
8368 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8369 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8370 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8371 -march and -mtune options.
8372
60839f5d 83732009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
8374
8375 * config/m68k/t-rtems: Add m5329 multilib.
8376
603f5959
DS
83772009-03-24 Dodji Seketeli <dodji@redhat.com>
8378 Jakub Jelinek <jakub@redhat.com>
8379
8380 PR debug/39524
8381 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8382 nodes.
8383
c5cdb03f
JJ
83842009-03-23 Jakub Jelinek <jakub@redhat.com>
8385
8386 PR c/39495
8387 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
8388 instead of c_parser_expression_conv, if original_code isn't one of the
8389 4 allowed comparison codes, fail.
8390
3691626c
RG
83912009-03-23 Richard Guenther <rguenther@suse.de>
8392
8393 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
8394 * tree.h (struct tree_type): Likewise.
8395 * reload.h (struct insn_chain): Likewise.
8396 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
8397 * function.h (struct function): Likewise.
8398 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
8399
88ccb72a
JJ
84002009-03-23 Jakub Jelinek <jakub@redhat.com>
8401
8402 PR tree-optimization/39516
8403 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
8404
60839f5d 84052009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 8406
2ba9daa7 8407 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
8408 should be set true if BITS_PER_WORD of target is bigger than 32
8409
f82162f8
HPN
84102009-03-22 Hans-Peter Nilsson <hp@axis.com>
8411
8412 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
8413 Translate -B-options to -rpath-link. Correct existing
8414 rpath-link and conditionalize on !nostdlib.
8415
048fd785
RW
84162009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8417
8418 * doc/extend.texi (Function Attributes, Variable Attributes):
8419 Fix typos.
8420 * doc/invoke.texi (Debugging Options, Optimize Options)
8421 (i386 and x86-64 Options, MCore Options): Likewise.
8422
6e75c1a9
JJ
84232009-03-20 Jakub Jelinek <jakub@redhat.com>
8424
8425 PR debug/37890
8426 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
8427 it for block local namespace aliases.
8428 (gen_decl_die): Pass context_die to gen_namespace_die.
8429
ea1199ee
JJ
84302009-03-19 Jakub Jelinek <jakub@redhat.com>
8431
8432 PR c/39495
8433 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
8434 minimum or maximum value.
8435
58929c10
AO
84362009-03-19 Alexandre Oliva <aoliva@redhat.com>
8437
8438 * reginfo.c (globalize_reg): Recompute derived reg sets.
8439
60839f5d 84402009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
8441
8442 PR target/39063
8443 * libgcc2.c (mprotect): Do not use signed arguments for
8444 VirtualProtect, use DWORD arguments. Also fix the 'may
8445 be used uninitialized' warning for the np variable.
8446
f57c2f04
JJ
84472009-03-19 Jakub Jelinek <jakub@redhat.com>
8448
8449 PR target/39496
8450 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
8451 functions using regparm calling conventions when not optimizing.
8452 (ix86_function_sseregparm): Similarly for sseregparm calling
8453 conventions.
8454
9e517d61
LF
84552009-03-19 Li Feng <nemokingdom@gmail.com>
8456
8457 PR middle-end/39500
8458 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
8459 dependence if the first conflict is after niter iterations.
8460
8ef20026
HPN
84612009-03-19 Hans-Peter Nilsson <hp@axis.com>
8462
8463 PR middle-end/38609
8464 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
8465 functions with dynamic stack-pointer adjustments.
8466
64e4a1a6
BE
84672009-03-19 Ben Elliston <bje@au.ibm.com>
8468
8469 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
8470 option; change to -msdata=data.
8471
9a0f3e86
RW
84722009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8473
8474 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
8475 and -fopenmp.
8476
09bc5979
EB
84772009-03-18 Eric Botcazou <ebotcazou@adacore.com>
8478
8479 PR target/35180
8480 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
8481
332459cd
SL
84822009-03-18 Sandra Loosemore <sandra@codesourcery.com>
8483
8484 * doc/invoke.texi (Code Gen Options): Expand discussion of
8485 -fno-common.
8486
8f5929e1
JJ
84872009-03-18 Jakub Jelinek <jakub@redhat.com>
8488
8489 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
8490 * matrix-reorg.c (struct matrix_info): Likewise.
8491 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
8492 * rtl.h (struct mem_attrs): Likewise.
8493 * df.h (struct df): Likewise.
8494 * tree-data-ref.h (struct data_dependence_relation): Likewise.
8495 * ira-int.h (struct ira_allocno): Likewise.
8496 * df-scan.c (struct df_collection_rec): Likewise.
8497 * ira.c (struct equivalence): Likewise.
8498 * function.c (struct temp_slot): Likewise.
8499 * cfgloop.h (struct loop): Likewise.
8500
d130d647
JJ
8501 PR debug/39485
8502 * function.c (use_register_for_decl): When not optimizing, disregard
8503 register keyword for variables with types containing methods.
8504
9968d233
SP
85052009-03-18 Sebastian Pop <sebastian.pop@amd.com>
8506
8507 PR middle-end/39447
8508 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
8509 (is_simple_operand): Call contains_component_ref_p before calling data
8510 reference analysis that would fail on COMPONENT_REFs.
8511
8512 * tree-vrp.c (search_for_addr_array): Fix formatting.
8513
69484bfd
RG
85142009-03-18 Richard Guenther <rguenther@suse.de>
8515
8516 * tree-vect-transform.c (vect_loop_versioning): Fold the
8517 generated comparisons.
8518 * tree-vectorizer.c (set_prologue_iterations): Likewise.
8519 (slpeel_tree_peel_loop_to_edge): Likewise.
8520
66811228
RW
85212009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8522
0631b69f
RW
8523 PR middle-end/37805
8524 * opts.c (print_specific_help): In addition to `undocumented',
8525 accept `separate' and `joined' flags if passed alone. Describe
8526 output by the first matched one of those.
8527 (common_handle_option): Skip over empty strings.
8528 * gcc.c (display_help): Fix help string for `--help='.
8529 * doc/invoke.texi (Option Summary, Overall Options): With
8530 `--help=', classes and qualifiers can both be repeated, but
8531 only the latter can be negated. One should not pass only
8532 negated qualifiers. Fix markup and examples.
8533
66811228
RW
8534 Revert
8535 2008-10-14 Jakub Jelinek <jakub@redhat.com>
8536 PR middle-end/37805
8537 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
8538 and -fhelp=separate.
8539
3c072c6b
JY
85402009-03-17 Jing Yu <jingyu@google.com>
8541
8542 PR middle-end/39378
80c65208
JY
8543 * function.h (struct rtl_data): Move is_thunk from here...
8544 (struct function): ...to here.
8545 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
8546 * varasm.c (assemble_start_function): Change is_thunk from crtl to
8547 cfun.
80c65208
JY
8548 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
8549 cfun.
8550 (alpha_does_function_need_gp, alpha_start_function): Likewise.
8551 (alpha_output_function_end_prologue): Likewise.
8552 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
8553 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
8554 (rs6000_output_function_epilogue): Likewise.
8555 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 8556
9ade279b
UB
85572009-03-17 Uros Bizjak <ubizjak@gmail.com>
8558
8559 PR target/39482
8560 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
8561 from different units in a single alternative.
8562 (*truncdfsf_i387): Ditto.
8563 (*truncxfsf2_mixed): Ditto.
8564 (*truncxfdf2_mixed): Ditto.
8565
16e60c17
JJ
85662009-03-17 Jakub Jelinek <jakub@redhat.com>
8567
98381eb4
JJ
8568 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
8569 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
8570
df5deb18
JJ
8571 PR debug/39474
8572 * tree-ssa-live.c (remove_unused_locals): Don't remove local
8573 unused non-artificial variables when not optimizing.
8574
a3f596ba
JJ
8575 PR debug/39471
8576 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
8577 DW_TAG_imported_module even if decl is IMPORTED_DECL with
8578 NAMESPACE_DECL in its DECL_INITIAL.
8579
6b2b8871
JJ
8580 PR middle-end/39443
8581 * optabs.c (set_user_assembler_libfunc): New function.
8582 * expr.h (set_user_assembler_libfunc): New prototype.
8583 * c-common.c: Include libfuncs.h.
8584 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
8585 for memcmp, memset, memcpy, memmove and abort.
8586 * Makefile.in (c-common.o): Depend on libfuncs.h.
8587
16e60c17
JJ
8588 PR debug/39412
8589 * dwarf2out.c (gen_inlined_enumeration_type_die,
8590 gen_inlined_structure_type_die, gen_inlined_union_type_die,
8591 gen_tagged_type_instantiation_die): Removed.
8592 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
8593 do nothing.
8594
4d936aca
JJ
85952009-03-17 Janis Johnson <janis187@us.ibm.com>
8596
8597 PR testsuite/38526
8598 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
8599 its use.
8600 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
8601 (check-parallel-%): Ditto.
8602 (check-consistency): Ditto.
8603
4e9b2e50
KT
86042009-03-17 Kai Tietz <kai.tietz@onevision.com>
8605
8606 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
8607 local variable rhs by NULL_TREE.
8608
21440b2d
L
86092009-03-17 H.J. Lu <hongjiu.lu@intel.com>
8610
8611 PR target/39477
9ade279b 8612 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 8613
d8905c6a
L
86142009-03-17 H.J. Lu <hongjiu.lu@intel.com>
8615
8616 PR target/39476
9ade279b 8617 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
8618
86192009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
8620
8621 PR target/39473
8622 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
8623 for ms->sysv ABI calls only in 64bit mode.
8624
8625 * config/i386/i386.md (untyped_call): Support 32bit.
8626
cdcabece
L
86272009-03-16 H.J. Lu <hongjiu.lu@intel.com>
8628
8629 * doc/extend.texi: Replace x86_65 with x86_64.
8630
97b4ba9f
JJ
86312009-03-16 Jakub Jelinek <jakub@redhat.com>
8632
8633 PR tree-optimization/39455
8634 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
8635 mismatches for POINTER_TYPE_P (type).
8636 (number_of_iterations_le): Likewise.
8637
60839f5d 86382009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
8639
8640 * config/picochip/picochip.c: Removed profiling support.
8641 * config/picochip/picochip.md: Removed profiling instruction.
8642 * config/picochip/picochip.h: Removed profiling builtin.
8643
f38095f3
JM
86442009-03-16 Joseph Myers <joseph@codesourcery.com>
8645
8646 * doc/install.texi (--with-host-libstdcxx): Document.
8647
2cb4817b
AS
86482009-03-14 Anatoly Sokolov <aesok@post.ru>
8649
8650 PR target/34299
8651 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
8652 generate a warning if the function name does not begin with
8653 "__vector" and the function has either the 'signal' or 'interrupt'
8654 attribute, from here to ...
8655 (avr_declare_function_name): ...here. New function.
8656 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
8657 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
8658
39b2ac74
JJ
86592009-03-14 Jakub Jelinek <jakub@redhat.com>
8660
8661 PR bootstrap/39454
8662 * cse.c (fold_rtx): Don't modify original const_arg1 when
8663 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
8664 separate variable instead.
8665 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
8666 from out of range shift counts.
8667 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
8668
ad41bd84 86692009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 8670
60839f5d 8671 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
8672 diagnostic.h with $(DIAGNOSTIC_H).
8673
ad41bd84 86742009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
8675
8676 PR target/39431
8677 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
8678 predicate.
8679 * config/i386/sync.md (sync_compare_and_swap<mode>,
8680 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
8681 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
8682 into a register.
8683 (sync_double_compare_and_swapdi_pic,
8684 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
8685 cmpxchg8b_pic_memory_operand instead of just memory_operand.
8686
122c59c7
L
86872009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8688
8689 PR target/39445
9ade279b 8690 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 8691
cec8874f
L
86922009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8693
8694 PR target/39327
8695 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8696 (avx_addsubv4df3): Likewise.
8697 (*avx_addsubv4sf3): Likewise.
8698 (sse3_addsubv4sf3): Likewise.
8699
bbb52802
L
87002009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8701
8702 PR target/38824
9ade279b 8703 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 8704
a812fb07
VM
87052009-03-12 Vladimir Makarov <vmakarov@redhat.com>
8706
8707 PR debug/39432
8708 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
8709 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
8710 registers for allocnos created from user-defined variables.
8711
4caab5ba
UW
87122009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8713
8714 PR target/39181
8715 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
8716 of non-integer mode as well.
8717
498e51ca
AN
87182009-03-11 Adam Nemet <anemet@caviumnetworks.com>
8719
8720 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
8721 for functions for which the parameter types are unknown.
8722
9bfaf89d
JJ
87232009-03-11 Jakub Jelinek <jakub@redhat.com>
8724
8725 PR target/39137
9ade279b 8726 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
8727 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
8728 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
8729 * config/i386/i386.c (ix86_local_alignment): For
8730 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
8731 long long variables on the stack to avoid dynamic realignment.
8732 Allow the first argument to be a decl rather than type.
8733 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
8734
18a3bdcb
NC
87352009-03-11 Nick Clifton <nickc@redhat.com>
8736
8737 PR target/5362
40190a76
NC
8738 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
8739 options.
8740 Add description to mno-lsim option.
8741 * config/mcore/mcore.h: Remove comment about deprecated m4align
8742 option.
8743 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
8744 * doc/invoke.texi: Add description of mno-lsim and
8745 mstack-increment options.
8746
18a3bdcb
NC
8747 * config/fr30/fr30.opt: Document the -mno-lsim option.
8748 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
8749 and -mno-lsim options.
8750
dc215785
UW
87512009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8752
8753 * fold-const.c (fold_comparison): Only call fold_inf_compare
8754 if the mode supports infinities.
8755
7716876b
JM
87562009-03-11 Jason Merrill <jason@redhat.com>
8757
8758 PR debug/39086
8759 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
8760 end already did. Notice GIMPLE_CALL modifications of the result.
8761 Don't copy debug information from an ignored decl or a decl from
8762 another function.
8763
ddef83d2
RG
87642009-03-10 Richard Guenther <rguenther@suse.de>
8765 Nathan Froyd <froydnj@codesourcery.com>
8766
8767 PR middle-end/37850
9ade279b 8768 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
8769 (__divMODE3): Likewise.
8770
9a9ba8d9
JJ
87712009-03-09 Jakub Jelinek <jakub@redhat.com>
8772
8773 PR tree-optimization/39394
8774 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
8775 DECL_SIZE_UNIT of variable length FIELD_DECLs.
8776
929b7fc3
AK
87772009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8778
8779 * recog.c (verfiy_changes): Disallow renaming of hard regs in
8780 inline asms for register asm ("") declarations.
8781
1803581d
EB
87822009-03-09 Eric Botcazou <ebotcazou@adacore.com>
8783
8784 * fold-const.c (fold_unary): Fix comment.
8785
8454d27e
JH
87862009-03-07 Jan Hubicka <jh@suse.cz>
8787
8788 PR target/39361
969a5433
JJ
8789 * tree-inline.c (setup_one_parameter): Do replacement of const
8790 argument by constant in SSA form.
8454d27e 8791
3a695389
UW
87922009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8793
8794 PR middle-end/38028
8795 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
8796 determine alignment passed to assign_stack_local.
8797 (assign_parms_unsplit_complex): Likewise.
8798 * except.c (sjlj_build_landing_pads): Likewise.
8799
9f0e7885
JJ
88002009-03-06 Jakub Jelinek <jakub@redhat.com>
8801
65401a0b
JJ
8802 PR middle-end/39360
8803 * tree-flow.h (add_referenced_var): Return bool instead of void.
8804 * tree-dfa.c (add_referenced_var): Return result of
8805 referenced_var_check_and_insert call.
8806 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
8807 of referenced_var_check_and_insert.
8808
9f0e7885 8809 PR debug/39372
9ade279b 8810 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
8811 (gen_variable_die): Emit DW_AT_location on abstract static variable's
8812 DIE, don't emit it if abstract origin already has it.
8813 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
8814 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
8815
3b664bd1
JBG
88162009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8817
ba20e309 8818 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
8819 detection.
8820 (write_tm_constrs_h): Indent generated code.
8821
d8f8ca80
RR
88222009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8823
8824 * doc/extend.texi (Function Attributes): Add documentation
8825 for isr attributes.
8826
6c3d550c
JJ
88272009-03-06 Jakub Jelinek <jakub@redhat.com>
8828
8829 PR debug/39387
8830 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
8831 take locus from its DECL_SOURCE_LOCATION instead of input_location.
8832
f9e96751
BS
88332009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
8834
8835 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
8836 the loop as bad.
8837
ee0ee7e2
JJ
88382009-03-05 Jakub Jelinek <jakub@redhat.com>
8839
8840 PR debug/39379
8841 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
8842 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
8843
6c6094f1
UB
88442009-03-05 Uros Bizjak <ubizjak@gmail.com>
8845
8846 * config/i386/i386.md (R8_REG, R9_REG): New constants.
8847 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
8848 constants instead of magic numbers.
8849 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
8850 (QI_REG_P): Ditto.
8851 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
8852 (x86_64_ms_abi_int_parameter_registers): Ditto.
8853 (x86_64_int_return_registers): Ditto.
09f8a8d3 8854 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
8855 (ix86_expand_call): Ditto for clobbered_registers array.
8856 (ix86_hard_regno_mode_ok): Ditto.
8857 (x86_extended_QIreg_mentioned_p): Ditto.
8858
b267bd41
R
88592009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
8860
6c6094f1 8861 PR tree-optimization/39349
1f3ad3f0
R
8862 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
8863
b267bd41
R
8864 * combine.c (gen_lowpart_for_combine): Use omode when generating
8865 clobber.
8866
1242bc9d
R
88672009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
8868
6c6094f1 8869 PR rtl-optimization/39235
1242bc9d
R
8870 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
8871
48f03606
ZD
88722009-03-04 Zdenek Dvorak <ook@ucw.cz>
8873
8874 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
8875
b505e785
RG
88762009-03-04 Richard Guenther <rguenther@suse.de>
8877
8878 PR tree-optimization/39362
8879 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
8880 that occur in abnormal PHIs should be varying.
8881
f017bf5e
ZD
88822009-03-04 Zdenek Dvorak <ook@ucw.cz>
8883
8884 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
8885 Extend comments.
8886 (simple_iv): Take loop as an argument instead of statement.
8887 * tree-scalar-evolution.h (simple_iv): Declaration changed.
8888 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
8889 to simple_iv.
8890 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
8891 Ditto.
8892 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
8893 * matrix-reorg.c (analyze_transpose): Ditto.
8894 * tree-data-ref.c (dr_analyze_innermost): Ditto.
8895 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
8896 * tree-predcom.c (ref_at_iteration): Ditto.
8897 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
8898
6a66f28e
RG
88992009-03-04 Richard Guenther <rguenther@suse.de>
8900
8901 PR tree-optimization/39358
8902 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
8903 escaped_id and callused_id.
8904 (solve_graph): Likewise.
8905
57e454ee
RG
89062009-03-04 Richard Guenther <rguenther@suse.de>
8907
8908 PR tree-optimization/39339
8909 * tree-sra.c (try_instantiate_multiple_fields): Make it
8910 no longer ICE on the above.
8911
a6fe9ed4
JM
89122009-03-03 Joseph Myers <joseph@codesourcery.com>
8913
8914 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
8915 that fits within Pmode.
8916
dc672951
SE
89172009-03-03 Steve Ellcey <sje@cup.hp.com>
8918
8919 PR middle-end/10109
8920 * tm.texi (LIBCALL_VALUE): Update description.
8921
8b9d598f
SE
89222009-03-03 Steve Ellcey <sje@cup.hp.com>
8923
8924 PR middle-end/34443
8925 * doc/extend.texi (section): Update description.
8926
13e4e36e
L
89272009-03-03 H.J. Lu <hongjiu.lu@intel.com>
8928
8929 PR middle-end/39345
8930 * tree-inline.c (remapped_type): New.
8931 (can_be_nonlocal): Call remapped_type instead of remap_type.
8932
067dd3c9
JJ
89332009-03-03 Jakub Jelinek <jakub@redhat.com>
8934
8935 PR fortran/39354
8936 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
8937 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
8938
9bd9f738
RG
89392009-03-03 Richard Guenther <rguenther@suse.de>
8940
8941 PR middle-end/39272
8942 * tree.c (tree_nonartificial_location): New function.
8943 * tree.h (tree_nonartificial_location): Declare.
8944 * builtins.c (expand_builtin_memory_chk): Provide location
8945 of the call location for artificial function pieces.
8946 (maybe_emit_chk_warning): Likewise.
8947 (maybe_emit_sprintf_chk_warning): Likewise.
8948 (maybe_emit_free_warning): Likewise.
8949 * expr.c (expand_expr_real_1): Likewise.
8950
f07049c8
JJ
89512009-03-03 Jakub Jelinek <jakub@redhat.com>
8952
8953 PR tree-optimization/39343
8954 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
8955 COMPONENT_REF t has ARRAY_TYPE.
8956
7d4fba4a
SP
89572009-03-02 Sebastian Pop <sebastian.pop@amd.com>
8958
8959 PR middle-end/39335
8960 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
8961 when the type precision of the induction variable should be
8962 larger than the type precision of nit.
8963 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
8964 * graphite.c (graphite_loop_normal_form): Same.
8965 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
8966
78168632
UB
89672009-03-02 Uros Bizjak <ubizjak@gmail.com>
8968
8969 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
8970 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 8971 numbers to describe clobbered registers.
78168632 8972 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
8973 * config/i386/mmx.md (mmx_emms): Ditto.
8974 (mmx_femms): Ditto.
78168632 8975
63553059
RS
89762009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
8977
8978 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
8979 of ABI_64.
8980
500a1f85
UW
89812009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8982
8983 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
8984 (spu_section_type_flags): New function.
8985
962aae34
UB
89862009-03-02 Uros Bizjak <ubizjak@gmail.com>
8987
8988 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
8989 reg_class_contents of FLOAT_REGS into a temporary.
8990
6dfb529c 89912009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 8992 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
8993
8994 PR tree-optimization/39318
8995 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
8996 information to the vectorized statement.
8997
6b5629db
UB
89982009-03-01 Uros Bizjak <ubizjak@gmail.com>
8999
434426d2
UB
9000 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9001 variable. Use defined names instead of magic constants for REX SSE
9002 registers.
6b5629db 9003
14e5b285
RG
90042009-03-01 Richard Guenther <rguenther@suse.de>
9005
9006 PR tree-optimization/39331
9007 * omp-low.c (lower_send_shared_vars): Do not receive new
9008 values for the reference of DECL_BY_REFERENCE parms or results.
9009
526d73ab
JH
90102009-03-01 Jan Hubicka <jh@suse.cz>
9011
9012 PR debug/39267
9013 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
9014 BLOCK_NONLOCALIZED_VAR): New macros.
9015 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
9016 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
9017 gen_decl_die): Add origin argument. Allow generation of die with
9018 origin at hand only.
526d73ab 9019 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
9020 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
9021 of gen_*.
526d73ab
JH
9022 (gen_block_die): Fix checking for unused blocks.
9023 (process_scope_var): Break out from .... ; work with origins only.
9024 (decls_for_scope) ... here; process nonlocalized list.
9025 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
9026 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
9027 vars.
526d73ab
JH
9028 (dump_scope_block): Dump them.
9029 * tree-inline.c (remap_decls): Handle nonlocalized vars.
9030 (remap_block): Likewise.
9031 (can_be_nonlocal): New predicate.
9032 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
9033
7a9d3fe8
RW
90342009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9035
9036 * configure: Regenerate.
9037
b3cdf3cb
RW
90382009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9039
a16d1645 9040 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 9041 Reuse help texts for duplicate options which do not have any.
a16d1645 9042
1156c176
RW
9043 * gcc.c (display_help): Document --version.
9044
033505fc
RW
9045 * gcc.c (main): If print_help_list and verbose_flag, ensure
9046 driver output comes before subprocess output.
9047
4d077054
RW
9048 * optc-gen.awk: Assign all remaining fields to help string,
9049 space-separated, for multi-line help in *.opt.
9050
a072f1cf
RW
9051 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9052 -Wno-pedantic-ms-format is for MinGW targets only.
9053
b3cdf3cb
RW
9054 * doc/options.texi (Option file format): Fix bad indentation,
9055 restoring dropped sentence.
9056
a3aadcc5
JH
90572009-02-28 Jan Hubicka <jh@suse.cz>
9058
9059 * tree-inline.c (tree_function_versioning): Output debug info.
9060
1cf5abb3
JH
90612009-02-28 Jan Hubicka <jh@suse.cz>
9062
9063 PR debug/39267
9064 * tree-inline.c (setup_one_parameter): Do not copy propagate
9065 arguments when not optimizing.
9066
c4d3f42f
L
90672009-02-28 H.J. Lu <hongjiu.lu@intel.com>
9068
9069 PR target/39327
9070 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9071 (avx_addsubv4df3): Likewise.
9072 (*avx_addsubv4sf3): Likewise.
9073 (sse3_addsubv4sf3): Likewise.
9074 (*avx_addsubv2df3): Likewise.
9075 (sse3_addsubv2df3): Likewise.
9076 (avx_unpckhps256): Correct item selectors.
9077 (avx_unpcklps256): Likewise.
9078 (avx_unpckhpd256): Likewise.
9079 (avx_unpcklpd256): Likewise.
9080
eb50f5f4
JH
90812009-02-28 Jan Hubicka <jh@suse.cz>
9082
9083 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9084 static vars.
9085 (copy_arguments_for_versioning): If var is declared don't declare it.
9086 (tree_function_versioning): First setup substitutions and then copy
9087 args.
9088
26140130
JH
90892009-02-27 Jan Hubicka <jh@suse.cz>
9090
9091 PR debug/39267
9092 * cgraph.h (varpool_output_debug_info): Remove.
9093 * cgraphunit.c (varpool_output_debug_info): Remove.
9094 * dwarf2out.c (deferred_locations_struct): New struct
9095 (deferred_locations): New type.
9096 (deferred_locations_list): New static var.
9097 (deffer_location): New function.
9098 (gen_variable_die): Use it.
9099 (decls_for_scope): Output info on local static vars.
9100 (dwarf2out_finish): Process deferred locations.
9101 * varpool.c (varpool_output_debug_info): Remove.
9102
cff7525f
JH
91032009-02-27 Jan Hubicka <jh@suse.cz>
9104
9105 PR debug/39267
9106 * tree.h (TREE_PROTECTED): Fix comment.
9107 (BLOCK_HANDLER_BLOCK): Remove.
9108 (struct tree_block): Remove handler_block add body_block.
9109 (inlined_function_outer_scope_p): New.
9110 (is_body_block): Remove.
9111 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9112 * dwarf2out.c (is_inlined_entry_point): Remove.
9113 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
9114 (gen_block_die): Use is_inlined_entry_point check. Remove body block
9115 code.
cff7525f
JH
9116 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9117 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
9118 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9119 block with multiple subblocks.
cff7525f
JH
9120 (dump_scope_block): Prettier output; dump more flags and info.
9121 (dump_scope_blocks): New.
9122 (remove_unused_locals): Use dump_scope_blocks.
9123 * tree-flow.h (dump_scope_blocks): Declare.
9124 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9125 * stmt.c (is_body_block): Remove.
9126 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9127 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9128
c20993b9
SP
91292009-02-27 Sebastian Pop <sebastian.pop@amd.com>
9130
9131 PR middle-end/39308
2ba9daa7 9132 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
9133 number_of_iterations_exit from a gcc_assert.
9134
e3cba5e5
AK
91352009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9136
60839f5d 9137 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
9138 jumps if COND is NULL.
9139 (find_cond_jump): New function.
9140 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 9141 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 9142
9dadeeb8
UB
91432009-02-26 Uros Bizjak <ubizjak@gmail.com>
9144
9145 * config/alpha/alpha.h (alpha_expand_mov): Return false if
9146 force_const_mem returns NULL_RTX.
9147
625d3251
EB
91482009-02-26 Jan Hubicka <jh@suse.cz>
9149
9150 PR debug/39267
9151 * cgraph.h (varpool_output_debug_info): Remove.
9152 * cgraphunit.c (varpool_output_debug_info): Remove.
9153 * dwarf2out.c (deferred_locations_struct): New struct
9154 (deferred_locations): New type.
9155 (deferred_locations_list): New static var.
9156 (deffer_location): New function.
9157 (gen_variable_die): Use it.
9158 (decls_for_scope): Output info on local static vars.
9159 (dwarf2out_finish): Process deferred locations.
9160 * varpool.c (varpool_output_debug_info): Remove.
9161
38432148 91622009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
9163
9164 PR rtl-optimization/39241
9165 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9166 to subreg_offset_representable_p.
9167
62d049cf
PB
91682009-02-25 Paolo Bonzini <bonzini@gnu.org>
9169
9170 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9171 execute function prototype. Get f and nregs from max_reg_num
9172 and get_insns. Remove the first backward pass as it's dead,
9173 guard the forward pass by flag_expensive_optimizations.
9174 (rest_of_handle_regmove): Delete.
9175 (pass_regmove): Replace it with regmove_optimize.
9176
f618d33e
MJ
91772009-02-25 Martin Jambor <mjambor@suse.cz>
9178
9179 PR tree-optimization/39259
9180 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 9181 calls_alloca function flags.
f618d33e
MJ
9182 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9183 calls are detected.
9184
c8a05f7c
PB
91852009-02-25 Paolo Bonzini <bonzini@gnu.org>
9186
9187 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9188 flags_set_1_rtx, flags_set_1_set): Delete.
9189 (regmove_optimize): Do not call mark_flags_life_zones.
9190
6d2538f5
JB
91912009-02-24 Julian Brown <julian@codesourcery.com>
9192
9193 PR target/35965
9194 * config/arm/arm.c (require_pic_register): Only set
9195 cfun->machine->pic_reg once per function.
9196
a2fa6772
SL
91972009-02-24 Sandra Loosemore <sandra@codesourcery.com>
9198
9199 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 9200 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 9201
5472de36
SE
92022009-02-24 Steve Ellcey <sje@cup.hp.com>
9203
9204 PR target/33785
9205 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9206
844216f3
RG
92072009-02-24 Richard Guenther <rguenther@suse.de>
9208
9209 PR debug/39285
9210 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9211
71adbef3 92122009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 9213 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
9214
9215 PR tree-optimization/39233
9216 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9217 from converting them to a generic type.
9218
f1a558e0
SP
92192009-02-23 Sebastian Pop <sebastian.pop@amd.com>
9220
9221 PR tree-optimization/39260
9222 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9223 contains a condition with a real type.
9224 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9225
d8028f2c
JM
92262009-02-23 Jason Merrill <jason@redhat.com>
9227
9228 PR c++/38880
9229 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9230 narrowing_initializer_constant_valid_p.
2ba9daa7 9231 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
9232 null_pointer_node for adding a pointer to itself.
9233
9283b513
JH
92342009-02-23 Jan Hubicka <jh@suse.cz>
9235
9236 PR c/12245
9dadeeb8
UB
9237 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9238 resizing.
9283b513 9239
61e04322
JH
92402009-02-23 Jan Hubicka <jh@suse.cz>
9241
9dadeeb8
UB
9242 PR tree-optimization/37709
9243 * tree.c (block_ultimate_origin): Move here from dwarf2out.
9244 * tree.h (block_ultimate_origin): Declare.
9245 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
9246 * tree-ssa-live.c (remove_unused_scope_block_p):
9247 Eliminate blocks containig no instructions nor live variables nor
9248 nested blocks.
9249 (dump_scope_block): New function.
9250 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 9251 enable dumping at TDF_DETAILS.
61e04322 9252
38432148 92532009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
9254
9255 * config/i386/i386.c (classify_argument): Don't allow COImode
9256 and OImode.
9257 (function_arg_advance_32): Don't allow OImode.
9258 (function_arg_32): Likewise.
9259 (function_value_32): Likewise.
9260 (return_in_memory_32): Likewise.
9261 (function_arg_64): Remove OImode comment.
9262
38432148 92632009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
9264
9265 PR target/39261
9266 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9267 ix86_expand_vector_set for V4DImode in 64bit mode only.
9268 (ix86_expand_vector_init_one_var): Likewise.
9269
dcd739a6
SP
92702009-02-21 Sebastian Pop <sebastian.pop@amd.com>
9271
9272 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9273
6c3b938d
RS
92742009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9275
8e361f23 9276 PR bootstrap/39257
6c3b938d
RS
9277 * loop-iv.c: Revert last change.
9278 * emit-rtl.c: Likewise.
9279
38432148 92802009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
9281
9282 PR target/39256
9283 * config/i386/i386.c (type_natural_mode): Remove an extra
9284 space in the warning message.
9285 (function_value_32): Handle 32-byte vector modes.
9286 (return_in_memory_32): Likewise.
9287
2ec62529
RS
92882009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9289
9290 * loop-iv.c (truncate_value): New function.
9291 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9292 of lowpart_subreg.
9293 (lowpart_subreg): Move to...
9294 * emit-rtl.c: ...here.
9295
ecb8c3cc 92962009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 9297
ecb8c3cc
DS
9298 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9299 accidental and undocumented change at revision 140860.
9300
ae46a823
JM
93012009-02-21 Joseph Myers <joseph@codesourcery.com>
9302
9303 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9304 take gimple_seq * arguments.
9305 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9306 types_compatible_p langhook.
9307
07d8efe3 93082009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 9309 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
9310
9311 * config/arm/arm.c (arm_builtin_va_list): New function.
9312 (arm_expand_builtin_va_start): Likewise.
9313 (arm_gimplify_va_arg_expr): Likewise.
9314 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9315 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9316 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9317 (va_list_type): New variable.
9318 (arm_mangle_type): Mangle va_list_type appropriately.
9319
b1fb9f56
JJ
93202009-02-20 Jakub Jelinek <jakub@redhat.com>
9321
9322 PR middle-end/39157
9323 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9324 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9325 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9326 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9327 parameter to 1000 for -O1 by default.
9328 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9329 parameter.
9330 * loop-invariant.c: Include params.h.
9331 (move_loop_invariants): Don't call move_single_loop_invariants on
9332 very large loops.
9333
5bc0807c
JM
93342009-02-20 Jaka Mocnik <jaka@xlab.si>
9335
9336 * calls.c (emit_library_call_value_1): Use slot_offset instead of
9337 offset when calculating bounds for indexing stack_usage_map. Fixes
9338 a buffer overflow with certain target setups.
9339
c69cd1f5
JJ
93402009-02-20 Jakub Jelinek <jakub@redhat.com>
9341
9342 PR target/39240
9343 * calls.c (expand_call): Clear try_tail_call if caller and callee
9344 disagree in promotion of function return value.
9345
09812622
JJ
93462009-02-19 Jakub Jelinek <jakub@redhat.com>
9347
9348 PR target/39175
9349 * c-common.c (c_determine_visibility): If visibility changed and
9350 DECL_RTL has been already set, call make_decl_rtl to update symbol
9351 flags.
9352
68017cb4
L
93532009-02-19 H.J. Lu <hongjiu.lu@intel.com>
9354
9355 PR c++/39188
9356 * varasm.c (assemble_variable): Don't check DECL_NAME when
9357 globalizing a variable.
9358
ab4194da
JM
93592009-02-19 Joseph Myers <joseph@codesourcery.com>
9360
9361 PR c/38483
9362 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9363 expression before any __builtin_trap call.
9364 * c-typeck.c (build_function_call): Convert and check function
9365 arguments before generating a call to a trap. Evaluate the
9366 function arguments before the trap.
9367
6b67572e
UB
93682009-02-19 Uros Bizjak <ubizjak@gmail.com>
9369
9370 PR target/39228
9371 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9372 (UNSPEC_FXAM_MEM): New unspec.
9373 (fxam<mode>2_i387_with_temp): New insn and split pattern.
9374 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
9375 memory using fxam<mode>2_i387_with_temp to remove excess precision.
9376
9e39dba6
RG
93772009-02-19 Richard Guenther <rguenther@suse.de>
9378
9379 PR tree-optimization/39207
9380 PR tree-optimization/39074
9381 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9382 storedanything_tree): New.
9383 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 9384 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
9385 (build_succ_graph): Add edges from STOREDANYTHING to all
9386 non-direct nodes.
9387 (init_base_vars): Initialize STOREDANYTHING.
9388 (compute_points_to_sets): Free substitution info after
9389 building the succ graph.
9390 (ipa_pta_execute): Likewise.
9391
9392 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
9393 field.
9394 (do_ds_constraint): Do not add to special var or non-pointer
9395 field solutions.
9396 (type_could_have_pointers): Split out from ...
9397 (could_have_pointers): ... here. For arrays use the element type.
9398 (create_variable_info_for): Initialize may_have_pointers.
9399 (new_var_info): Likewise.
9400 (handle_lhs_call): Make the HEAP variable unknown-sized.
9401 (intra_create_variable_infos): Use a type with pointers for
9402 PARM_NOALIAS, make it unknown-sized.
9403
fd7b2603
L
94042009-02-18 H.J. Lu <hongjiu.lu@intel.com>
9405
9406 PR target/39224
6b67572e 9407 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 9408
98b80692
JM
94092009-02-18 Jason Merrill <jason@redhat.com>
9410
9411 PR target/39179
9412 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
9413 value if DECL_EXTERNAL.
9414 * tree-sra.c (sra_walk_gimple_assign): Likewise.
9415 * target.h (gcc_target::binds_local_p): Clarify "module".
9416 * tree.h (TREE_PUBLIC): Clarify "module".
9417
0705d3f4
L
94182009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
9419
9420 PR target/38891
9421 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
9422 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
9423
bce08d50
L
94242009-02-17 H.J. Lu <hongjiu.lu@intel.com>
9425
9426 PR target/39082
9427 * c.opt (Wabi): Support C and ObjC.
9428 (Wpsabi): New.
9429
9430 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
9431
9432 * config/i386/i386.c (classify_argument): Warn once about the ABI
9433 change when passing union with long double.
9434
9435 * doc/invoke.texi: Update -Wabi for warning psABI changes.
9436
5600f233
JM
94372009-02-18 Joseph Myers <joseph@codesourcery.com>
9438
9439 PR c/35447
9440 * c-parser.c (c_parser_compound_statement): Always enter and leave
9441 a scope.
9442
8cd01fe6
JDA
94432009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9444
9445 PR target/34587
9446 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
9447
418df9d7
JJ
94482009-02-18 Jakub Jelinek <jakub@redhat.com>
9449
9450 PR tree-optimization/36922
9451 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
9452 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
9453 Likewise.
9454
082d2ebb
RS
94552009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9456
9457 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
9458 to 0 for EABI64.
9459
17de576c
RS
94602009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9461
9462 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
9463
6d8d5435
RS
94642009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9465
9466 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
9467 tree sharing.
9468
e69ff910
RB
94692009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
9470 Richard Sandiford <rdsandiford@googlemail.com>
9471
9472 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
9473 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
9474 (loongson_biadd): ...this.
9475
6b24ee26
RG
94762009-02-17 Richard Guenther <rguenther@suse.de>
9477
9478 PR tree-optimization/39202
9479 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
9480 a var make sure to follow existing collapses.
9481
91ab2c86
RG
94822009-02-17 Richard Guenther <rguenther@suse.de>
9483
9484 PR middle-end/39214
9485 * langhooks.c (lhd_print_error_function): Check for NULL block.
9486
73a63870
RG
94872009-02-17 Richard Guenther <rguenther@suse.de>
9488
9489 PR tree-optimization/39204
9490 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
9491 of the PHI arg.
9492
0e08f686
UB
94932009-02-17 Uros Bizjak <ubizjak@gmail.com>
9494
9495 * config/soft-fp/double.h: Update from glibc CVS.
9496
a60b7ddb
RG
94972009-02-17 Richard Guenther <rguenther@suse.de>
9498
9499 PR tree-optimization/39207
9500 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
9501 strict-aliasing warnings for pointers pointing to NULL.
9502
a47e20fd
JM
95032009-02-16 Joseph Myers <joseph@codesourcery.com>
9504
9505 PR c/35446
9506 * c-parser.c (c_parser_braced_init): Call pop_init_level when
9507 skipping until next close brace.
9508
50aab7dc
L
95092009-02-16 H.J. Lu <hongjiu.lu@intel.com>
9510
9511 PR target/37049
9512 * config/i386/i386.c (ix86_expand_push): Set memory alignment
9513 to function argument boundary.
9514
68e53db0
HS
95152009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
9516
9517 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
9518 in the lea_add. Reload eventually constraints it properly.
0d50d55a 9519 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
9520 "b", since it is not needed anymore.
9521
09e361bb
JJ
95222009-02-16 Jakub Jelinek <jakub@redhat.com>
9523
9524 * gthr-dce.h: Uglify function parameter and local variable names.
9525 * gthr-gnat.h: Likewise.
9526 * gthr-mipssde.h: Likewise.
9527 * gthr-nks.h: Likewise.
9528 * gthr-posix95.h: Likewise.
9529 * gthr-posix.h: Likewise.
9530 * gthr-rtems.h: Likewise.
9531 * gthr-single.h: Likewise.
9532 * gthr-solaris.h: Likewise.
9533 * gthr-tpf.h: Likewise.
9534 * gthr-vxworks.h: Likewise.
9535 * gthr-win32.h: Likewise.
9536
47f5a48f
L
95372009-02-15 H.J. Lu <hongjiu.lu@intel.com>
9538
9539 PR target/39196
9540 * config/i386/i386.md: Restrict the new peephole2 to move
9541 between MMX/SSE registers.
9542
68c9ab45
RG
95432009-02-15 Richard Guenther <rguenther@suse.de>
9544
9545 Revert
9546 2009-02-13 Richard Guenther <rguenther@suse.de>
9547
9548 * configure.ac: Enable LFS.
9549 * configure: Re-generate.
9550 * config.in: Likewise.
9551
d7815554
UW
95522009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9553
9554 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
9555 spu_srqwbyte, spu_srqwbytebc): Define.
9556 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
9557 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
9558 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
9559 "shrqby_<mode>"): New insn-and-split patterns.
9560 * config/spu/spu.c (expand_builtin_args): Determine and return
9561 number of operands using spu_builtin_description data.
9562 (spu_expand_builtin_1): Use it.
9563
c208436c
SE
95642009-02-13 Steve Ellcey <sje@cup.hp.com>
9565
9566 PR target/38056
9567 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
9568 TARGET_CONST_GP.
9569
c2e7ba7e
L
95702009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9571
9572 PR target/39149
9573 * config/i386/i386.c (override_options): Correct warning
6c6094f1 9574 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 9575
72f4e3a7
L
95762009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9577
9578 PR target/39152
9579 * config/i386/i386.md: Restrict the new peephole2 to move
9580 between the general purpose registers.
9581
53f648e2
L
95822009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9583
9584 PR target/39162
9585 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 9586 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
9587 (function_arg_advance): Updated.
9588 (function_arg): Likewise.
9589 (ix86_function_value): Likewise.
9590 (ix86_return_in_memory): Likewise.
9591 (ix86_sol10_return_in_memory): Likewise.
9592 (ix86_gimplify_va_arg): Likewise.
9593 (function_arg_32): Don't warn ABX ABI change here.
9594 (function_arg_64): Likewise.
9595
38432148 95962009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
9597
9598 * loop-iv.c (implies_p): In the final case, test that operands 0
9599 of the two comparisons match.
9600
dd2139e7
BS
9601 * config/bfin/bfin.c (find_prev_insn_start): New function.
9602 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
9603 (find_next_insn_start): Move.
9604
601b3e1a
RG
96052009-02-13 Richard Guenther <rguenther@suse.de>
9606
9607 * configure.ac: Enable LFS.
9608 * configure: Re-generate.
9609 * config.in: Likewise.
9610
f007042e
JM
96112009-02-13 Joseph Myers <joseph@codesourcery.com>
9612
9613 PR c/35444
9614 * c-parser.c (c_parser_parms_list_declarator): Discard pending
9615 sizes on syntax error after some arguments have been parsed.
9616
3f238e8b
JJ
96172009-02-12 Jakub Jelinek <jakub@redhat.com>
9618
9619 * doc/invoke.texi (-fira): Remove.
9620
328e13b7
L
96212009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9622
9623 * caller-save.c: Replace regclass.c with reginfo.c in comments.
9624 * recog.c: Likewise.
9625 * rtl.h: Likewise.
9626
c252db20
L
96272009-02-12 Uros Bizjak <ubizjak@gmail.com>
9628
9629 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
9630 (umul_ppmm): Likewise.
9631 (count_leading_zeros): Likewise.
9632 (count_trailing_zeros): Likewise.
9633 (UMUL_TIME): Likewise.
9634
96352009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9636
ba181049
UB
9637 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
9638 soft-fp/t-softfp to tmake_file.
c252db20
L
9639
9640 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
9641 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
9642 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
9643 IA64_BUILTIN_INFQ]: New.
c252db20
L
9644 (ia64_init_builtins): Initialize __builtin_infq,
9645 __builtin_fabsq and __builtin_copysignq if not HPUX.
9646 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
9647 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
9648
9649 * config/ia64/lib1funcs.asm (__divtf3): Define only if
9650 SHARED is defined.
9651 (__fixtfti): Likewise.
9652 (__fixunstfti): Likewise.
9653 (__floattitf): Likewise.
9654
9655 * config/ia64/libgcc-glibc.ver: New.
9656 * config/ia64/t-fprules-softfp: Likewise.
9657 * config/ia64/sfp-machine.h: Likewise.
9658
9659 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
9660 (LIBGCC2_TF_CEXT): Likewise.
9661 (TF_SIZE): Likewise.
9662 (TARGET_INIT_LIBFUNCS): Likewise.
9663
ba181049 9664 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 9665 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 9666
f13eae6a
L
96672009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9668
9669 * config/i386/i386.c (construct_container): Rewrite processing
9670 BLKmode with X86_64_SSE_CLASS.
9671
12019aec
L
96722009-02-12 Paolo Bonzini <bonzini@gnu.org>
9673
9674 PR target/39152
9675 * config/i386/i386.md: Replace simplify_replace_rtx with
9676 replace_rtx in the new peephole2.
9677
28c11eb3
NS
96782009-02-12 Nathan Sidwell <nathan@codesourcery.com>
9679
9680 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
9681 loop unrolling do not happen at -O2.
9682
c7b94907
MM
96832009-02-12 Michael Matz <matz@suse.de>
9684
9685 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
9686
61e98967
JJ
96872009-02-12 Jakub Jelinek <jakub@redhat.com>
9688
9689 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
9690 for -g3.
9691
a2a237b5
BE
96922009-02-12 Ben Elliston <bje@au.ibm.com>
9693
9694 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
9695 patterns when updating the back chain. Missed in the 2009-02-10
9696 change.
9697
853eda8d
JJ
96982009-02-11 Janis Johnson <janis187@us.ibm.com>
9699
9700 * doc/extend.texi (Decimal Floating Types): Update identifier of
9701 draft TR and list of missing support.
9702
3ad6b266
JJ
97032009-02-11 Jakub Jelinek <jakub@redhat.com>
9704
9705 PR middle-end/39154
9706 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
9707 bit to variable length decl's flags, add it also to its
9708 pointer replacement variable.
9709
b058b753
UB
97102009-02-11 Uros Bizjak <ubizjak@gmail.com>
9711 Jakub Jelinek <jakub@redhat.com>
9712
9713 PR target/39118
9714 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
9715 (memory_blockage): New expander.
9716 (*memory_blockage): New insn pattern.
9717 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
9718 instead of general blockage at the end of function prologue when
9719 frame pointer is used to access red zone area. Do not emit blockage
9720 when profiling, it is emitted in generic code.
9721 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
9722 function epilogue when frame pointer is used to access red zone area.
9723
bab64f23
PB
97242009-02-11 Paolo Bonzini <bonzini@gnu.org>
9725
0ce6dcfa 9726 PR target/38824
bab64f23
PB
9727 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
9728 by arithmetic with memory operands.
9729 * config/i386/predicates.md (commutative_operator): New.
9730
8fd94bda
JJ
97312009-02-10 Janis Johnson <janis187@us.ibm.com>
9732
9733 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
9734 bulleted lists.
9735
794511d2
EB
97362009-02-10 Eric Botcazou <ebotcazou@adacore.com>
9737
9738 * alias.h (record_alias_subset): Declare.
9739 * alias.c (record_alias_subset): Make global.
9740
6da7fc87
NC
97412009-02-10 Nick Clifton <nickc@redhat.com>
9742
9743 * tree-parloops.c: Change license to GPLv3.
9744 * ipa-struct-reorg.c: Change license to GPLv3.
9745 * ipa-struct-reorg.h: Change license to GPLv3.
9746
a03813c8
SE
97472009-02-10 Steve Ellcey <sje@cup.hp.com>
9748
9749 PR c/39084
9750 * c-decl.c (start_struct): Return NULL on error.
9751
fc3103e7
JJ
97522009-02-10 Jakub Jelinek <jakub@redhat.com>
9753
9b43d37b
JJ
9754 PR middle-end/39124
9755 * cfgloopmanip.c (remove_path): Call remove_bbs after
9756 cancel_loop_tree, not before it.
9757
fc3103e7 9758 PR target/39139
b058b753 9759 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
9760 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
9761 VAR_DECLs were seen.
9762 * tree-ssa-live.c (remove_unused_locals): Recompute
9763 cfun->has_local_explicit_reg_vars.
9764 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
9765 copies or clearings if cfun->has_local_explicit_reg_vars.
9766
dbf9ee15
UB
97672009-02-10 Uros Bizjak <ubizjak@gmail.com>
9768
9769 PR target/39118
9770 * config/i386/i386.c (expand_prologue): Emit blockage at the end
9771 of function prologue when frame pointer is used to access
9772 red zone area.
9773
bdec4dc7
RG
97742009-02-10 Richard Guenther <rguenther@suse.de>
9775
9776 PR middle-end/39127
9777 * gimplify.c (gimple_regimplify_operands): Always look if
9778 we need to create a temporary.
9779
7cae94fc
RG
97802009-02-10 Richard Guenther <rguenther@suse.de>
9781
9782 PR tree-optimization/39132
9783 * tree-loop-distribution.c (todo): New global var.
9784 (generate_memset_zero): Trigger TODO_rebuild_alias.
9785 (tree_loop_distribution): Return todo.
9786
a8800687
L
97872009-02-10 H.J. Lu <hongjiu.lu@intel.com>
9788
9789 PR target/39119
9790 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
9791 (x86_64_reg_class_name): Removed.
9792 (classify_argument): Return 0 if bytes > 32. Return 0 if the
9793 first one isn't X86_64_SSE_CLASS or any other ones aren't
9794 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
9795 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
9796 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
9797 and 3 X86_64_SSEUP_CLASS.
9798 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
9799 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
9800
d4bacef0
BE
98012009-02-10 Ben Elliston <bje@au.ibm.com>
9802
9803 * config/rs6000/rs6000.md (allocate_stack): Always use an update
9804 form instruction to update the stack back chain word, even if the
9805 user has disabled the generation of update instructions.
9806 (movdi_<mode>_update_stack): New.
9807 (movsi_update_stack): Likewise.
9808 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
9809 always use an update form instruction to update the stack back
9810 chain word.
9811
01d7d2f3
SP
98122009-02-09 Sebastian Pop <sebastian.pop@amd.com>
9813
9814 PR middle-end/38953
b058b753
UB
9815 * graphite.c (if_region_set_false_region): After moving a region in
9816 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
9817 (gloog): Remove wrong fix for PR38953.
9818
e41e2ab4
UW
98192009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9820
9821 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
9822 generation due to implicit sign extension.
9823
4bb07c5d
EB
98242009-02-09 Eric Botcazou <ebotcazou@adacore.com>
9825
9826 PR middle-end/38981
9827 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
9828 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
9829
f060a261
RG
98302009-02-09 Richard Guenther <rguenther@suse.de>
9831
9832 PR middle-end/35202
9833 * convert.c (convert_to_real): Disable (float)fn((double)x)
9834 to fnf(x) conversion if errno differences may occur and
9835 -fmath-errno is set.
9836
5a7e237c
AS
98372009-02-07 Anatoly Sokolov <aesok@post.ru>
9838
9839 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
9840 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9841 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9842
feab5a67
JM
98432009-02-06 Joseph Myers <joseph@codesourcery.com>
9844
9845 PR c/35434
9846 * c-common.c (handle_alias_attribute): Disallow attribute for
9847 anything not a FUNCTION_DECL or VAR_DECL.
9848
90ef2296
JJ
98492009-02-06 Janis Johnson <janis187@us.ibm.com>
9850
9851 PR c/39035
9852 * real.c (do_compare): Special-case compare of zero against
9853 decimal float value.
9854
1de2c900
JM
98552009-02-06 Joseph Myers <joseph@codesourcery.com>
9856
9857 PR c/36432
9858 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
9859 as indicating flexible array members unless the field itself is
9860 being declarared as the incomplete array.
9861
e901811a
JH
98622009-02-06 Jan Hubicka <jh@suse.cz>
9863
9864 PR tree-optimization/38844
9865 * ipa-inline.c (try_inline): Stop inlining recursion when edge
9866 is already inlined.
9867
3cfa762b
RG
98682009-02-06 Richard Guenther <rguenther@suse.de>
9869
9870 PR middle-end/38977
9871 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
9872 fork because we may expand it as __gcov_fork.
9873
8506528c
NC
98742009-02-06 Nick Clifton <nickc@redhat.com>
9875
dbf9ee15 9876 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 9877
85169114
PB
98782009-02-06 Paolo Bonzini <bonzini@gnu.org>
9879
9880 PR tree-optimization/35659
9881 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
9882 vn_phi_eq): Shortcut if hashcode does not match.
9883 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
9884 NULL operands.
9885 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
9886 and avoid iterative_hash_expr.
9887 (FOR_EACH_VALUE_ID_IN_SET): New.
9888 (value_id_compare): Remove.
9889 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
9890 sort expressions by value id.
9891
6d39673d
KK
98922009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
9893
9894 PR target/38991
9895 * config/sh/predicates.md (general_movsrc_operand): Don't check
9896 the subreg of system registers here.
9897
e6e1c050
JJ
98982009-02-05 Jakub Jelinek <jakub@redhat.com>
9899
9900 PR c++/39106
9901 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
9902 on the copied decl.
9903
65a74b5d
PB
99042009-02-05 Paolo Bonzini <bonzini@gnu.org>
9905
9906 PR rtl-optimization/39110
9907 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
9908 addresses, not aligned ones.
9909
08e14b2a
DB
99102009-02-05 Daniel Berlin <dberlin@dberlin.org>
9911 Richard Guenther <rguenther@suse.de>
9912
9913 PR tree-optimization/39100
9914 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
9915 comment says and add edges.
9916
5006381c
JM
99172009-02-05 Joseph Myers <joseph@codesourcery.com>
9918
9919 PR c/35435
9920 * c-common.c (handle_tls_model_attribute): Ignore attribute for
9921 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
9922
2ba9daa7 99232009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
9924
9925 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
9926 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
9927 register_bb_in_sese, new_sese, free_sese): Moved.
9928 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
9929 outermost_loop_in_scop, build_scop_iteration_domain,
9930 expand_scalar_variables_ssa_name, get_vdef_before_scop,
9931 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
9932 Use loop_in_sese_p instead of loop_in_scop_p.
9933 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
9934 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
9935 (scopdet_basic_block_info): Fix bug in scop detection.
9936 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
9937 eq_loop_to_cloog_loop): Remove.
9938 (nb_loops_around_loop_in_scop, nb_loop
9939 ref_nb_loops): Moved here...
9940 * graphite.h (ref_nb_loops): ... from here.
9941 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
9942 (loop_domain_dim, loop_iteration_vector_dim): Remove.
9943 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
9944 * testsuite/gcc.dg/graphite/scop-19.c: New
9945
48e8382e
PB
99462009-02-04 Paolo Bonzini <bonzini@gnu.org>
9947 Hans-Peter Nilsson <hp@axis.com>
9948
9949 PR rtl-optimization/37889
9950 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
9951 Move offset handling from PLUS to before the switch. Use new
9952 arguments when considering SYMBOL_REFs too.
9953 (rtx_addr_can_trap_p): Pass dummy offset and size.
9954 (enum may_trap_p_flags): Remove.
9955 (may_trap_p_1): Pass size from MEM_SIZE.
9956
9957 PR rtl-optimization/38921
9958 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
9959 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
9960 * rtlanal.c (may_trap_after_code_motion_p): Delete.
9961 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
9962
69349ea5
L
99632009-02-04 H.J. Lu <hongjiu.lu@intel.com>
9964
9965 AVX Programming Reference (January, 2009)
9966 * config/i386/sse.md (*vpclmulqdq): New.
9967
b545e411
JJ
99682009-02-04 Jakub Jelinek <jakub@redhat.com>
9969
9970 PR tree-optimization/38977
9971 PR gcov-profile/38292
bf9b2cc9 9972 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 9973
5b43bf05
HS
99742009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
9975
9976 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
9977 non-indexable addresses even before reload.
9978
062c4bb3
JM
99792009-02-03 Joseph Myers <joseph@codesourcery.com>
9980
9981 PR c/29129
9982 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
9983 as having variable size. Do not give an error for unnamed
9984 parameters with [*] declarators. Give a warning for type names
9985 with [*] declarators and mark them as variable size.
9986 * c-parser.c (c_parser_sizeof_expression): Do not give an error
9987 for sizeof applied to [*] type names.
9988
6175f578
AP
99892009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
9990
9991 PR C++/36607
9992 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
9993
d4f4bc84
JJ
99942009-02-03 Jakub Jelinek <jakub@redhat.com>
9995
9996 * gcc.c (process_command): Update copyright notice dates.
9997 * gcov.c (print_version): Likewise.
9998 * gcov-dump.c (print_version): Likewise.
9999 * mips-tfile.c (main): Likewise.
10000 * mips-tdump.c (main): Likewise.
10001
f6294de7
JM
100022009-02-03 Joseph Myers <joseph@codesourcery.com>
10003
10004 PR c/35433
10005 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
10006 for composite type involving a zero-length array type.
10007
754ccf7c
JJ
100082009-02-03 Jakub Jelinek <jakub@redhat.com>
10009
70f16287
JJ
10010 PR target/35318
10011 * function.c (match_asm_constraints_1): Skip over
10012 initial optional % in the constraint.
10013
754ccf7c
JJ
10014 PR inline-asm/39059
10015 * c-parser.c (c_parser_postfix_expression): If fixed point is not
10016 supported, don't accept FIXED_CSTs.
10017 * c-decl.c (finish_declspecs): Error if fixed point is not supported
10018 and _Sat is used without _Fract/_Accum. Set specs->type to
10019 integer_type_node for cts_fract/cts_accum if fixed point is not
10020 supported.
10021
965fdadf
CM
100222009-02-02 Catherine Moore <clm@codesourcery.com>
10023
dbf9ee15 10024 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 10025
2e8a796f
RS
100262009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
10027
10028 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
10029 (ABI_HAS_64BIT_SYMBOLS): Use it.
10030 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
10031
e0079468
PB
100322009-02-02 Paul Brook <paul@codesourcery.com>
10033
10034 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
10035
eca72963
JJ
100362009-02-02 Jakub Jelinek <jakub@redhat.com>
10037
10038 PR inline-asm/39058
10039 * recog.h (asm_operand_ok): Add constraints argument.
10040 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
10041 recurse on matching constraint.
10042 (check_asm_operands): Pass constraints as 3rd argument to
10043 asm_operand_ok. Don't look up matching constraint here.
10044 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10045 to asm_operand_ok.
10046
b5bde9ff
BE
100472009-02-02 Ben Elliston <bje@au.ibm.com>
10048
10049 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10050 TARGET_NARROW_VOLATILE_BITFIELD macro names.
10051
30f3e427
JDA
100522009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10053
be7659ba
JDA
10054 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10055 information. Remove some obsolete information. Reorganize.
10056
30f3e427
JDA
10057 * config/pa/fptr.c: Revert license to GPL 2.
10058 * config/pa/milli64.S: Likewise.
10059
3cbfaf98
DK
100602009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10061
10062 PR target/38904
10063 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
10064 LIBRARY name in, instead of hard-coding it.
10065 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
10066 extra target make frag to tmake_files according to EH model.
10067 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
10068 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
10069 frags that define makefile variable EH_MODEL appropriately.
10070 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
10071 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
10072 to "-sjlj" according to type of EH configured.
10073 (LIBGCC_SONAME): Concatenate it to shared library base name.
10074 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
10075 to "_sjlj" according to type of EH configured.
10076 (LIBGCC_SONAME): Concatenate it to shared library base name.
10077 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
10078 (SHLIB_LINK): Add missing semicolon to if-else construct.
10079 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10080 string value of "pe_dll" command-line option.
10081 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
10082 (SHLIB_SONAME): Use it when overriding t-cygming default.
10083 (SHLIB_IMPLIB): Override t-cygming default.
10084 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10085 string value of "pe_dll" command-line option.
10086
8d0b6068
DK
100872009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10088
10089 PR target/38952
10090 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 10091 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 10092
14c28276
RG
100932009-01-31 Richard Guenther <rguenther@suse.de>
10094
10095 PR tree-optimization/38937
10096 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10097 computing the transitive closure.
10098
5f4d82c2
RG
100992009-01-30 Richard Guenther <rguenther@suse.de>
10100
10101 PR tree-optimization/39041
10102 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10103 Propagate variable indices only if the types match for this stmt.
10104
d0728ae0
JJ
101052009-01-30 Jakub Jelinek <jakub@redhat.com>
10106
10107 PR target/39013
10108 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10109 inline but never defined.
10110
6b67572e 101112009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
10112
10113 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10114 (*insv_h_di_reg_extimm): New insn.
10115 (*insv_l<mode>_reg_extimm): New insn.
10116
101172009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
10118
10119 * config/picochip/picochip.c (flag_conserve_stack): set
10120 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10121 fconserve-stack. Reduce call-overhead used by inliner.
10122
9fec758d 101232009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
10124
10125 PR/38157
10126 * common.opt (flag_conserve_stack): Initialised to zero.
10127
7f1c539c
KT
101282009-01-30 Kai Tietz <kai.tietz@onevision.com>
10129
10130 PR/39002
10131 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10132 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10133 method.
10134
3631be48
L
101352009-01-29 H.J. Lu <hongjiu.lu@intel.com>
10136
10137 * ira-color.c (allocno_reload_assign): Update comments.
10138 * regmove.c (regmove_optimize): Likewise.
10139
10140 * ra.h: Removed.
10141
416ac4d4
RM
101422009-01-29 Robert Millan <rmh@aybabtu.com>
10143
60839f5d
EB
10144 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10145 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 10146 `MD_UNWIND_SUPPORT'.
60839f5d 10147 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 10148
d5e54bc1
KH
101492009-01-29 Kazu Hirata <kazu@codesourcery.com>
10150
10151 PR tree-optimization/39007
10152 * tree-loop-distribution.c (generate_builtin): Use
10153 recompute_dominator to compute the immediate dominator of the
10154 basic block just after the loop.
10155
38432148 101562009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
10157
10158 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10159 (ASM_OUTPUT_DWARF_PCREL): Define.
10160
38432148 101612009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
10162
10163 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10164 * doc/passes.texi: Remove entries about regclass, local-alloc, and
10165 global. Modify entries about regmove and IRA.
10166
10167 * ra-conflict.c: Remove the file.
10168
10169 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10170
10171 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10172 (pass_regclass_init): Rename to pass_reginfo_init.
10173
10174 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10175
10176 * toplev.h (flag_ira): Remove.
10177
10178 * caller-save.c (setup_save_areas): Remove flag_ira.
10179
bf9b2cc9 10180 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
10181
10182 * global.c: Remove the file.
10183
ba20e309 10184 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
10185
10186 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10187
10188 * regmove.c: Modify file description.
10189 (find_use_as_address, try_auto_increment): Define them only if
10190 AUTO_INC_DEC is defined.
10191 (replacement_quality, replace_in_call_usage, fixup_match_1,
10192 stable_and_no_regs_but_for_p): Remove.
10193 (reg_set_in_bb): Make it static.
10194 (regmove_optimize): Remove flag_ira and code which worked for
10195 !flag_ira.
10196
10197 * local-alloc.c: Remove the file.
10198
10199 * common.opt (fira): Remove.
10200
10201 * ira.c: Include except.h.
10202 (eliminable_regset): Move from global.c.
10203 (mark_elimination): Ditto. Remove flag_ira.
10204 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10205 equiv_mem_modified, validate_equiv_mem_from_store,
10206 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10207 contains_replace_regs, memref_referenced_p, memref_used_between_p,
10208 no_equiv, recorded_label_ref): Move from local-alloc.c.
10209 (update_equiv_regs): Ditto. Make it static.
10210 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 10211 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
10212 (build_insn_chain): Ditto. Make it static.
10213 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
10214 Rename to init_live_subregs.
10215 (gate_ira): Remove flag_ira.
10216
10217 * regclass.c: Rename reginfo.c. Change file description.
10218 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 10219 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
10220 (init_reg_sets_1): Remove code for evaluation of
10221 reg_class_superclasses and losing_caller_save_reg_set.
10222 (init_regs): Remove init_reg_autoinc.
10223 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10224 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 10225 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
10226 (pass_regclass_init): Rename to pass_reginfo_init. Modify
10227 corresponding entries.
10228 (dump_regclass, record_operand_costs, scan_one_insn,
10229 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10230 record_address_regs, auto_inc_dec_reg_p): Remove.
10231 (gt-regclass.h): Rename to gt-reginfo.h.
10232
10233 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 10234 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
10235
10236 * Makefile.in (RA_H): Remove.
10237 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10238 Rename regclass.o to reginfo.o.
10239 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
10240 gt-reginfo.h.
10241 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10242 (GTFILES): Rename regclass.c to reginfo.c.
10243
10244 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 10245 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
10246
10247 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10248 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10249 Remove flag_ira.
6b67572e 10250 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 10251
c95b2534 102522009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
10253
10254 PR middle-end/35854
10255 * doc/invoke.texi (rtl debug options): Complete rewrite.
10256 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10257 to auto_inc_dec".
10258 * mode-switching.c (pass_mode_switching): Rename pass from
10259 "mode-sw" to "mode_sw".
10260 * except.c (pass_convert_to_eh_ranges): Rename pass from
10261 "eh-ranges" to "eh_ranges".
10262 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10263 to "subreg1".
2ba9daa7
AS
10264
10265
72a54528
AM
102662009-01-29 Andrey Belevantsev <abel@ispras.ru>
10267 Alexander Monakov <amonakov@ispras.ru>
10268
10269 PR middle-end/38857
10270 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10271 register.
10272 (move_exprs_to_boundary): Change return type and pass through
10273 should_move from move_op. Relax assert. Update usage ...
10274 (schedule_expr_on_boundary): ... here. Use should_move instead of
10275 cant_move.
10276 (move_op_orig_expr_found): Indicate that insn was disconnected from
10277 stream.
10278 (code_motion_process_successors): Do not call after_merge_succs
10279 callback if original expression was not found when traversing any of
10280 the branches.
10281 (code_motion_path_driver): Change return type. Update prototype.
10282 (move_op): Update comment. Add a new parameter (should_move). Update
10283 prototype. Set *should_move based on indication provided by
10284 move_op_orig_expr_found.
10285
001b9eb6
PH
102862009-01-28 Pat Haugen <pthaugen@us.ibm.com>
10287
10288 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10289 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10290 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10291 * config/rs6000/rs6000.c (rs6000_override_options): Default
10292 avoid-indexed-addresses on for Power6, off for everything else.
10293 (avoiding_indexed_address_p): New function.
10294 (rs6000_legitimize_address): Use it.
10295 (rs6000_legitimate_address): Likewise.
10296 * config/rs6000/rs6000.md (movXX_updateX): Likewise
10297
59dc4898
KH
102982009-01-28 Kazu Hirata <kazu@codesourcery.com>
10299
10300 PR tree-optimization/38997
10301 * tree-loop-distribution.c (generate_memset_zero): Use
10302 POINTER_PLUS_EXPR for a pointer addition.
10303
07da44ab
AK
103042009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
10305
10306 * config/s390/s390.md (bswap<mode>2): New pattern added.
10307
cdc15d23
WG
103082009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10309
10310 * config/s390/s390.md (*tls_load_31): Added type attribute.
10311
d46f24b6
WG
103122009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10313
10314 * config/s390/s390.md: Fix a few comments.
10315
729e750f
WG
103162009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10317
10318 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10319 (*tm<mode>_full): Fixed z10prop attribute.
10320 (*tst<mode>_extimm): Fixed z10prop attribute.
10321 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10322 (*tstqiCCT_cconly): Fixed z10prop attribute.
10323 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10324 (*movsi_larl): Fixed z10prop attribute.
10325 (*movsi_zarch): Fixed z10prop attribute.
10326 (*movsi_eas): Fixed z10prop attribute.
10327 (*movhi): Fixed z10prop attribute.
10328 (*movqi): Fixed z10prop attribute.
10329 (*movstrictqi): Fixed z10prop attribute.
10330 (*mov<mode>): Fixed z10prop attribute.
10331 (*movcc): Fixed z10prop attribute.
10332 (*sethighpartdi_64): Fixed z10prop attribute.
10333 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10334 (*negdi2_sign_cc): Fixed z10prop attribute.
10335 (*negdi2_sign): Fixed z10prop attribute.
10336 (*absdi2_sign_cc): Fixed z10prop attribute.
10337 (*absdi2_sign): Fixed z10prop attribute.
10338 (*negabsdi2_sign_cc): Fixed z10prop attribute.
10339 (*negabsdi2_sign): Fixed z10prop attribute.
10340 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10341 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10342 (doloop_si64): Fixed z10prop attribute.
10343 (doloop_si31): Fixed z10prop attribute.
10344 (doloop_long): Fixed z10prop attribute.
10345 (indirect_jump): Fixed z10prop attribute.
10346 (nop): Fixed z10prop attribute.
10347 (main_base_64): Fixed z10prop attribute.
10348 (reload_base_64): Fixed z10prop attribute.
10349
c7789bfb
JJ
103502009-01-28 Jakub Jelinek <jakub@redhat.com>
10351
10352 PR rtl-optimization/38740
6b67572e
UB
10353 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10354 if !optimize.
c7789bfb
JJ
10355 * config/mips/mips.c (mips_reorg): Likewise.
10356
de081cfd
RG
103572009-01-28 Richard Guenther <rguenther@suse.de>
10358
10359 PR tree-optimization/38926
10360 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10361 with the correct value id to a value.
10362 (do_regular_insertion): Use the value number of edoubleprime
10363 for the value number of the expr.
10364
10365 Revert
10366 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 10367
d748c406
UB
10368 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10369 a PHI ask VN if it is already available.
10370 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10371 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 10372
a9d386a1
JJ
103732009-01-28 Jakub Jelinek <jakub@redhat.com>
10374
10375 PR middle-end/38934
10376 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10377 set to varying whenever max has TREE_OVERFLOW set, similarly
10378 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10379
97a170cd
RG
103802009-01-28 Richard Guenther <rguenther@suse.de>
10381
10382 PR middle-end/38908
10383 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
10384 uninitialized aggregate uses in call arguments.
10385
89ebafc6
PB
103862009-01-28 Paolo Bonzini <bonzini@gnu.org>
10387
10388 PR tree-optimization/38984
10389 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
10390 the nothing_id variable if -fno-delete-null-pointer-checks.
10391
bef3c57b
UB
103922009-01-28 Uros Bizjak <ubizjak@gmail.com>
10393
10394 PR target/38988
10395 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
10396 (set_got_offset_rex64): Ditto.
10397
0c6390fa
L
103982009-01-27 H.J. Lu <hongjiu.lu@intel.com>
10399
10400 PR target/38941
10401 * doc/extend.texi: Improve local variable with asm reg.
10402
bee6fa6d
AN
104032009-01-27 Adam Nemet <anemet@caviumnetworks.com>
10404
10405 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
10406 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
10407 was not supplied then set warn_packed_bitfield_compat to the
10408 default value of 1.
10409 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
10410 against 1.
10411
b5c3dfbb
RG
104122009-01-27 Richard Guenther <rguenther@suse.de>
10413
10414 PR tree-optimization/38503
10415 * cfgexpand.c (expand_gimple_basic_block): Ignore
10416 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
10417 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
10418 variables that cannot have TBAA applied.
10419 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
10420 statements.
10421
d748c406 104222009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
10423
10424 PR middle-end/38969
10425 * calls.c (initialize_argument_information): Do not wrap complex
10426 arguments in SAVE_EXPR.
10427
9112bb38
AT
104282009-01-26 Andreas Tobler <a.tobler@schweiz.org>
10429
10430 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 10431 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 10432
4757704f
RG
104332009-01-26 Richard Guenther <rguenther@suse.de>
10434
10435 PR tree-optimization/38745
10436 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
10437 from special handling.
10438
e3e6cff4
RG
104392009-01-26 Richard Guenther <rguenther@suse.de>
10440
10441 PR tree-optimization/38745
10442 * tree-ssa.c (execute_update_addresses_taken): Do not include
10443 variables that cannot possibly be a register in not_reg_needs.
10444 Do not clear TREE_ADDRESSABLE on vars that may not become
10445 registers.
10446 * tree-ssa.c (update_alias_info_1): Include those in the set
10447 of addressable vars.
10448
dc874b53
RG
104492009-01-26 Richard Guenther <rguenther@suse.de>
10450
10451 PR middle-end/38851
10452 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
10453 * tree-ssa-dse.c: Include langhooks.h
10454 (execute_simple_dse): Remove stores with zero size.
10455
849421a3
JJ
104562009-01-24 Jakub Jelinek <jakub@redhat.com>
10457
10458 PR c/38957
10459 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
10460 as PLUS_EXPR.
10461
82f70421
JB
104622009-01-24 Julian Brown <julian@codesourcery.com>
10463
10464 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
10465 config/arm/linux-atomic.c.
10466 * config/arm/linux-atomic.c: New.
10467
863412d6
EB
104682009-01-24 Eric Botcazou <ebotcazou@adacore.com>
10469
10470 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
10471 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
10472 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
10473
8c684300
L
104742009-01-24 H.J. Lu <hongjiu.lu@intel.com>
10475
10476 PR c/38938
93f1527a 10477 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
10478 properly.
10479
b840fb02
SP
104802009-01-24 Sebastian Pop <sebastian.pop@amd.com>
10481
10482 PR tree-optimization/38953
10483 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
10484 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
10485 (gloog): Split the exit of the scop when the scop exit is a loop exit.
10486 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
10487 changed the CFG.
10488
ecee559f
PB
104892009-01-24 Paul Brook <paul@codesourcery.com>
10490
10491 * config/arm/neon.md (neon_type): Move to arm.md.
10492 (neon_mov<VSTRUCT>): Add neon_type attribute.
10493 * config/arm/arm.md (neon_type): Move to here.
10494 (conds): Add "unconditioal" and use as default for NEON insns.
10495
61ad0914
BE
104962009-01-24 Ben Elliston <bje@au.ibm.com>
10497
10498 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
10499 void *' warning from -Wc++-compat.
10500 * Makefile.in (dominance.o-warn): Remove.
10501
38432148 105022009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
10503
10504 PR tree-optimization/38932
10505 * fold-const.c (fold_unary_ignore_overflow): New.
10506 * tree.h (fold_unary_ignore_overflow): Declare.
10507 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
10508 * tree-ssa-sccvn.c (visit_reference_op_load,
10509 simplify_unary_expression): Likewise.
10510
2cd36c22
AN
105112009-01-22 Adam Nemet <anemet@caviumnetworks.com>
10512
10513 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
10514 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
10515 regardless of their type.
10516 * c-common.c (handle_packed_attribute): Don't ignore packed on
10517 bitfields.
10518 * c.opt (Wpacked-bitfield-compat): New warning option.
10519 * stor-layout.c (place_field): Warn if offset of a field changed.
10520 * doc/extend.texi (packed): Mention the ABI change.
10521 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
10522 (Warning Options): Add it to the list.
10523
e4e624ab
L
105242009-01-22 H.J. Lu <hongjiu.lu@intel.com>
10525
10526 * c-opts.c (c_common_post_options): Fix a typo in comments.
10527
d0ea0759
SE
105282009-01-22 Steve Ellcey <sje@cup.hp.com>
10529
10530 PR middle-end/38615
10531 * gimplify.c (gimplify_init_constructor): Fix promotion of const
10532 variables to static.
10533 * doc/invoke.texi (-fmerge-all-constants): Update description.
10534
87673f84
UB
105352009-01-22 Uros Bizjak <ubizjak@gmail.com>
10536
10537 PR target/38931
10538 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
10539 (*movdi_1_rex64): Use type "mmx" for alternative 5.
10540
96339268
RE
105412009-01-22 Richard Earnshaw <rearnsha@arm.com>
10542
10543 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
10544 a word boundary.
10545 (LOCAL_ALIGNMENT): Similarly.
10546
442dc742 105472009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 10548 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
10549
10550 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
10551 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
10552 * config/arm/arm-tune.md: Regenerate.
10553 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
10554 -march=iwmmxt2.
10555
9b34732e
MS
105562009-01-22 Mark Shinwell <shinwell@codesourcery.com>
10557
10558 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
10559 version number to five.
10560
03c2a308
DS
105612009-01-22 Dodji Seketeli <dodji@redhat.com>
10562
10563 PR c++/38930
ba20e309 10564 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
10565 * c-common.c (set_underlying_type): Likewise.
10566 (is_typedef_decl ): Likewise
10567 * tree.h: Likewise
10568 (set_underlying_type): Likewise.
10569 (is_typedef_type): Likewise.
10570
1240d76e
VM
105712009-01-21 Vladimir Makarov <vmakarov@redhat.com>
10572
10573 PR middle-end/38587
10574 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
10575 crossing setjmps.
10576
b8a1087d
DK
105772009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
10578
10579 PR bootstrap/37660
10580 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
10581 (LIBGCC_SPEC): Don't define.
10582 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
10583
435da628
UB
105842009-01-21 Uros Bizjak <ubizjak@gmail.com>
10585
10586 PR rtl-optimization/38879
10587 * alias.c (base_alias_check): Unaligned access via AND address can
10588 alias all surrounding object types except those with sizes equal
10589 or wider than the size of unaligned access.
10590
d597b3ce
DS
105912009-01-21 Dodji Seketeli <dodji@redhat.com>
10592
10593 PR c++/26693
ba20e309 10594 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 10595 * c-common.c (set_underlying_type): ... here.
435da628 10596 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
10597 the newly created typedef variant type.
10598 (is_typedef_decl ): New entry point.
10599 * tree.h: Added a new member member_types_needing_access_check to
10600 struct tree_decl_non_common.
10601 (set_underlying_type): New entry point.
10602 (is_typedef_type): Likewise.
10603
71a6fe66
BM
106042009-01-21 Bingfeng Mei <bmei@broadcom.com>
10605
10606 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
10607 Check whether two instructions have memory references that
10608 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
10609 are helper functions for traversing.
10610 * alias.h (insn_alias_sets_confilict_p): New prototypes.
10611 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
10612 not to draw dependency edge for instructions with non-conflicting
10613 alias sets.
10614
5a248274
JM
106152009-01-20 Joseph Myers <joseph@codesourcery.com>
10616
10617 PR other/38758
6b67572e
UB
10618 * longlong.h: Update copyright years. Use soft-fp license notice.
10619 Sync __clz_tab declaration with glibc.
5a248274 10620
4b84f3de
SE
106212009-01-20 Steve Ellcey <sje@cup.hp.com>
10622
10623 PR target/30687
10624 * doc/extend.texi (syscall_linkage): New.
10625 (version_id): Modify.
10626
37348bf1 106272009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 10628 Richard Guenther <rguenther@suse.de>
37348bf1
AP
10629
10630 PR tree-optimization/38747
10631 PR tree-optimization/38748
10632 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
10633 conversion if the base address is an indirect reference and the
10634 aliasing sets could cause issues.
10635
d0a58904
SP
106362009-01-20 Sebastian Pop <sebastian.pop@amd.com>
10637
2ba9daa7 10638 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
10639 explaining why these options are not documented.
10640
71e7afb2
SP
106412009-01-20 Sebastian Pop <sebastian.pop@amd.com>
10642
10643 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
10644 gimple_call_lhs is NULL.
10645
38432148 106462009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
10647
10648 PR target/38868
10649 * emit-rtl.c (adjust_address_1): Make sure memref is never
10650 overwritten.
10651
cbb8dee3
BE
106522009-01-20 Ben Elliston <bje@au.ibm.com>
10653
10654 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 10655 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
10656 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10657 const qualifier from arg 2.
10658
72c66596
IS
106592009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
10660
435da628 10661 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 10662
f68211cd
VM
106632009-01-19 Vladimir Makarov <vmakarov@redhat.com>
10664
10665 PR c/38869
10666 * rtl.h (reinit_regs): New prototype.
10667 * regclass.c: Include ira.h.
10668 (reinit_regs): New.
10669 * Makefile.in (regclass.o): Add ira.h.
10670 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
10671
6e4f1168
L
106722009-01-18 H.J. Lu <hongjiu.lu@intel.com>
10673
10674 PR target/38736
10675 * c-common.c (handle_aligned_attribute): Use
10676 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
10677 default alignment value.
10678
10679 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
10680
10681 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
10682 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
10683
10684 * doc/extend.texi: Update __attribute__ ((aligned)). Document
10685 __BIGGEST_ALIGNMENT__.
10686
10687 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
10688
890065bf
RG
106892009-01-18 Richard Guenther <rguenther@suse.de>
10690
10691 PR tree-optimization/38819
10692 * tree-flow.h (operation_could_trap_helper_p): Declare.
10693 * tree-eh.c (operation_could_trap_helper_p): Export.
10694 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
10695 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
10696 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
10697 are about to insert a possibly trapping instruction and fail
10698 in this case.
10699
a729d731
AS
107002009-01-18 Andreas Schwab <schwab@suse.de>
10701
10702 * doc/install.texi (Configuration): Remove obsolete paragraph
10703 about use of --with-gnu-ld with --with-gnu-as.
10704
a640c13b
KH
107052009-01-18 Kazu Hirata <kazu@codesourcery.com>
10706
10707 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
10708 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
10709 Follow spelling conventions.
10710
dba2cc0c
BE
107112009-01-18 Ben Elliston <bje@au.ibm.com>
10712
10713 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
10714 C++ warning about implicit conversion from void * to struct
10715 bitmap_head_def *.
10716 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 10717 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 10718
2207a498
DK
107192009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
10720
10721 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
10722
8137e465
SP
107232009-01-17 Sebastian Pop <sebastian.pop@amd.com>
10724 Tobias Grosser <tobi.grosser@amd.com>
10725
10726 * graphite.c (graphite_trans_scop_block): Do not block single
10727 nested loops.
10728
5be1c58c
AO
107292009-01-16 Alexandre Oliva <aoliva@redhat.com>
10730
10731 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
10732 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
10733 test with assertion.
10734
786ce82d
RG
107352009-01-16 Richard Guenther <rguenther@suse.de>
10736
10737 PR tree-optimization/38835
10738 PR middle-end/36227
10739 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
10740 and INT + PTR -> (INT)(PTR p+ INT) folding.
10741 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
10742
c1cb09ad
AN
107432009-01-16 Adam Nemet <anemet@caviumnetworks.com>
10744
10745 PR target/38554
10746 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
10747 the subreg from a lowpart subreg if it is also casting the value.
10748
bcab4e19
SP
107492009-01-16 Sebastian Pop <sebastian.pop@amd.com>
10750 Tobias Grosser <tobi.grosser@amd.com>
10751
10752 * graphite.c (compare_prefix_loops): New.
10753 (build_scop_canonical_schedules): Rewritten.
10754 (graphite_transform_loops): Move build_scop_canonical_schedules
10755 after build_scop_iteration_domain.
10756
0b040072
SP
107572009-01-16 Sebastian Pop <sebastian.pop@amd.com>
10758 Tobias Grosser <tobi.grosser@amd.com>
10759
2ba9daa7 10760 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
10761 the dimension of the iteration domain. Do copy the domain
10762 only when it exists.
10763 (build_scop_conditions_1): Do not call add_conditions_to_domain.
10764 (add_conditions_to_constraints): New.
10765 (can_generate_code_stmt, can_generate_code): Removed.
10766 (gloog): Do not call can_generate_code.
10767 (graphite_transform_loops): Call add_conditions_to_constraints
10768 after building the iteration domain.
10769
56c6a499
JJ
107702009-01-16 Jakub Jelinek <jakub@redhat.com>
10771
10772 PR tree-optimization/38789
10773 * tree-ssa-threadedge.c
10774 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
10775 __builtin_constant_p.
10776
c95b2534 107772009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
10778
10779 * dce.c (delete_unmarked_insns): Reversed the order that insns are
10780 examined before deleting them.
2ba9daa7 10781
c433cb14
RE
107822009-01-16 Richard Earnshaw <rearnsha@arm.com>
10783
10784 * function.c (aggregate_value_p): Correctly extract the function
10785 type from CALL_EXPR_FN lookup.
10786
c95b2534 107872009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
10788
10789 * config/picochip/picochip.c (picochip_override_options): Revert
10790 CFI asm flag disable commited previously.
10791
c77bb78f
SP
107922009-01-15 Sebastian Pop <sebastian.pop@amd.com>
10793 Tobias Grosser <tobi.grosser@amd.com>
10794 Jan Sjodin <jan.sjodin@amd.com>
10795
10796 * graphite.c (scan_tree_for_params): On substractions negate
10797 all the coefficients of the term.
10798 (clast_to_gcc_expression_red): New. Handle reduction expressions
10799 of more than two operands.
10800 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
10801 (get_vdef_before_scop): Handle also the case of default definitions.
10802
574af2d6
RS
108032009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
10804
10805 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
10806 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
10807 Also use them when walking CALL_INSN_FUNCTION_USAGE.
10808
e939805b
L
108092009-01-15 H.J. Lu <hongjiu.lu@intel.com>
10810 Joey Ye <joey.ye@intel.com>
10811
10812 PR middle-end/37843
10813 * cfgexpand.c (expand_stack_alignment): Don't update stack
10814 boundary nor check incoming stack boundary here.
10815 (gimple_expand_cfg): Update stack boundary and check incoming
10816 stack boundary here.
10817
c95b2534 108182009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 10819
435da628 10820 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 10821
0196c95e
JJ
108222009-01-14 Jakub Jelinek <jakub@redhat.com>
10823
10824 PR rtl-optimization/38245
10825 * calls.c (expand_call): Add stack arguments to
10826 CALL_INSN_FUNCTION_USAGE even for pure calls (when
10827 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
10828 in regs and partially in memory or BLKmode arguments.
10829 (emit_library_call_value_1): Add stack arguments to
10830 CALL_INSN_FUNCTION_USAGE even for pure calls (when
10831 ACCUMULATE_OUTGOING_ARGS).
10832 * dce.c: Include tm_p.h.
10833 (find_call_stack_args): New function.
10834 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
10835 argument.
10836 (mark_insn): Call find_call_stack_args for CALL_Ps.
10837 (prescan_insns_for_dce): Walk insns backwards in bb rather than
10838 forwards. Allocate and free arg_stores bitmap if needed, pass it
10839 down to deletable_insn_p, don't mark stores set in arg_stores
10840 bitmap, clear the bitmap at the beginning of each bb.
10841 * Makefile.in (dce.o): Depend on $(TM_P_H).
10842
6df6bcfa
MM
108432009-01-14 Michael Meissner <gnu@the-meissners.org>
10844
10845 PR target/22599
435da628
UB
10846 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
10847 to make sure the insn is a conditional test (bug 22599). Reformat a
10848 few long lines.
6df6bcfa 10849
765ec70c
SP
108502009-01-14 Sebastian Pop <sebastian.pop@amd.com>
10851
10852 PR middle-end/38431
10853 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
10854 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
10855 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 10856 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
10857 scops have been code generated.
10858
7de2b688
BS
108592009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
10860 * doc/gty.texi (Invoking the garbage collector): Added new node
10861 and section documenting ggc_collect.
10862
10bd6c5c
RG
108632009-01-14 Richard Guenther <rguenther@suse.de>
10864
10865 PR tree-optimization/38826
10866 PR middle-end/38477
10867 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
10868 initialization notes only if we actually emitted a warning.
10869 (intra_create_variable_infos): Add constraints for a result decl
10870 that is passed by hidden reference.
10871 (build_pred_graph): Mark all related variables non-direct on
10872 address-taking.
10873
9c7c70ee
NC
108742009-01-14 Nick Clifton <nickc@redhat.com>
10875
10876 * ira-conflicts.c: Include addresses.h for the definition of
10877 base_reg_class.
435da628
UB
10878 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
10879 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 10880
cf0c2a60
VM
108812009-01-13 Vladimir Makarov <vmakarov@redhat.com>
10882
10883 PR target/38811
10884 * Makefile.in (ira-lives.o): Add except.h.
10885
10886 * ira-lives.c: Include except.h.
10887 (process_bb_node_lives): Process can_throw_internal.
10888
d3302fd3
JJ
108892009-01-13 Jakub Jelinek <jakub@redhat.com>
10890
10891 PR rtl-optimization/38774
10892 * combine.c (simplify_set): When undoing cc_use change, don't do
10893 PUT_CODE on the newly created comparison, but instead put back the
10894 old comparison.
10895
7ab23fd0
JM
108962009-01-13 Joseph Myers <joseph@codesourcery.com>
10897
10898 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
10899 values. Remove duplicate arm8 entry.
10900
f9344488
SP
109012009-01-13 Sebastian Pop <sebastian.pop@amd.com>
10902
10903 PR tree-optimization/38786
10904 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
10905 the SSA_NAME case of expand_scalar_variables_expr.
10906 Set the type of an expression to the type of its assign statement.
10907 (expand_scalar_variables_expr): Also gather the scalar computation
10908 used to index the memory access. Do not pass loop_p.
10909 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
10910 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
10911 the gimple_stmt_iterator where it inserts new code.
10912 Do not pass loop_p.
f9344488
SP
10913 (copy_bb_and_scalar_dependences): Do not pass loop_p.
10914 (translate_clast): Update call to copy_bb_and_scalar_dependences.
10915
2d8bb84d
SP
109162009-01-13 Sebastian Pop <sebastian.pop@amd.com>
10917
10918 * graphite.h (debug_value): Removed.
10919 * graphite.c (debug_value): Removed.
10920
ff128632
RE
109212009-01-13 Richard Earnshaw <rearnsha@arm.com>
10922
435da628
UB
10923 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
10924 ldrd/strd with two 32-bit instructions.
ff128632 10925
d5a0a47b
RE
109262009-01-13 Richard Earnshaw <rearnsha@arm.com>
10927
435da628
UB
10928 * config/arm/arm.c (struct processors): Pass for speed down into
10929 cost helper functions.
d5a0a47b
RE
10930 (const_ok_for_op): Handle COMPARE and inequality nodes.
10931 (arm_rtx_costs_1): Rewrite.
10932 (arm_size_rtx_costs): Update prototype.
10933 (arm_rtx_costs): Pass speed down to helper functions.
10934 (arm_slowmul_rtx_costs): Rework cost calculations.
10935 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
10936 (arm_9e_rtx_costs): Likewise.
10937
26d5bf5b
UB
109382009-01-13 Uros Bizjak <ubizjak@gmail.com>
10939
10940 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 10941 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
10942 (alpha_legitimize_address): Do not split local symbols wider than
10943 UNITS_PER_WORD into HIGH/LO_SUM parts.
10944
5d14e3d5
DS
109452009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
10946
10947 PR bootstrap/38580
10948 * gcc.c (process_command): Replace call to execvp with calls
10949 to pex_one and exit.
10950
33faafca
AS
109512009-01-03 Anatoly Sokolov <aesok@post.ru>
10952
10953 PR target/29141
10954 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
10955 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
10956 variant for devices with 3-byte PC.
ba20e309 10957 (__tablejump_elpm__): New.
33faafca 10958
634b5df5
JJ
109592009-01-12 Jakub Jelinek <jakub@redhat.com>
10960
10961 PR c/32041
10962 * c-parser.c (c_parser_postfix_expression): Allow `->' in
10963 offsetof member-designator, handle it as `[0].'.
10964
2842bb86
JDA
109652009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10966
10967 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
10968 function when not using named sections on targets with named sections
10969 if branch distance is less than 262132.
10970
76ee70f6
RE
109712009-01-12 Richard Earnshaw <rearnsha@arm.com>
10972
10973 * combine.c (combine_instructions): Recompute
10974 optimize_this_for_speed_p for each BB in the main combine loop.
10975
f56e675d
TB
109762009-01-12 Tomas Bily <tbily@suse.cz>
10977
10978 PR middlend/38385
26d5bf5b
UB
10979 * tree-loop-distribution.c (prop_phis): New function.
10980 (generate_builtin): Call prop_phis.
10981 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 10982
c2152239
JJ
109832009-01-12 Jakub Jelinek <jakub@redhat.com>
10984
10985 PR tree-optimization/38807
10986 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
10987 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
10988
0e510b3e
AN
109892009-01-11 Adam Nemet <anemet@caviumnetworks.com>
10990
10991 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
10992 subreg of op0 to the original op0.
10993
c95b2534 109942009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
10995
10996 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 10997
53a7ff9a
MS
109982009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
10999
11000 PR debug/7055
60839f5d 11001 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
11002 starting with digits.
11003
b3a796bc
JJ
110042009-01-10 Jakub Jelinek <jakub@redhat.com>
11005
11006 PR target/38695
11007 * config/arm/arm.c (arm_is_long_call_p): Don't call
11008 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
11009
b21b850e
SB
110102009-01-09 Steven Bosscher <steven@gcc.gnu.org>
11011
11012 * regrename.c (regrename_optimize): Fix dumping.
11013 (find_oldest_value_reg): Preserve REG_POINTER.
11014 (copy_hardreg_forward_1): Likewise.
11015
e0e10d3a
DN
110162009-01-09 Diego Novillo <dnovillo@google.com>
11017
bf9b2cc9 11018 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
11019 the restrictions on its use.
11020 (gimple_uid): Tidy.
11021 (gimple_set_uid): Tidy.
11022
c9da2ae8
JJ
110232009-01-09 Jakub Jelinek <jakub@redhat.com>
11024
11025 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
11026 zero guard even if align_bytes != 0 and count is smaller than
11027 size_needed.
11028
38432148 110292009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
11030
11031 PR rtl-optimization/38495
26d5bf5b 11032 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
11033 (add_range_and_copies_from_move_list): Print all added ranges.
11034 Add ranges to memory optimized destination.
11035
260fda3d
JJ
110362009-01-09 Jakub Jelinek <jakub@redhat.com>
11037
6f6278ad
JJ
11038 PR target/38686
11039 PR target/38708
11040 * config/i386/i386.c (override_options): Reject
11041 -mstringop-strategy=rep_8byte with -m32.
11042 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11043 to 1. Do count comparison against epilogue_size_needed at compile
11044 time even when count_exp was constant forced into register. For
11045 size_needed don't jump to epilogue, instead just avoid aligning
11046 and invoke the body algorithm. If need_zero_guard, add zero guard
11047 even if count is non-zero, but smaller than size_needed + number of
11048 bytes that could be stored for alignment.
11049 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11050 to 1. If need_zero_guard, add zero guard even if count is non-zero,
11051 but smaller than size_needed + number of bytes that could be stored
11052 for alignment. Compare size_needed with epilogue_size_needed instead
11053 of desired_align - align, don't adjust size_needed, pass
11054 epilogue_size_needed to the epilogue expanders.
11055
260fda3d 11056 PR c/35742
26d5bf5b 11057 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 11058
67b846fa
JDA
110592009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11060
11061 * pa.c (last_address): Change to unsigned.
11062 (update_total_code_bytes): Change argument to unsigned. Don't
11063 check if insn addresses are set.
11064 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11065 addresses are not set.
11066 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11067
91c82473
NC
110682009-01-09 Nick Clifton <nickc@redhat.com>
11069
11070 * config/sh/symbian.c: Replace uses of DECL_INLINE with
11071 DECL_DECLARED_INLINE_P.
11072
4017e262
JJ
110732009-01-09 Jakub Jelinek <jakub@redhat.com>
11074
0a49e5c2
JJ
11075 PR middle-end/38347
11076 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11077 GET_MODE (op0) in operand_subword_force calls.
11078
4017e262
JJ
11079 PR middle-end/38771
11080 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11081 fold_convert arg0 operands to TREE_TYPE (op0) first.
11082
7cd06356
VM
110832009-01-08 Vladimir Makarov <vmakarov@redhat.com>
11084
11085 * params.def (ira-max-conflict-table-size): Decrease default value
11086 to 1000.
11087
96867bbd
JJ
110882009-01-08 Jakub Jelinek <jakub@redhat.com>
11089
11090 PR tree-optimization/37031
11091 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11092 on parameter_set.
11093 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11094 allocate it using gc instead of heap, use VEC_quick_push instead of
11095 VEC_safe_push.
11096 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11097 instead of heap, use VEC_quick_push instead of VEC_safe_push.
11098 * tree-data-ref.h (struct access_matrix): Change matrix to gc
11099 allocated vector from heap allocated.
11100 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11101 * tree-loop-linear.c (linear_transform_loops): Allocate nest
11102 vector only after perfect_loop_nest_depth call.
11103
68f61c3d
SP
111042009-01-08 Sebastian Pop <sebastian.pop@amd.com>
11105 Jan Sjodin <jan.sjodin@amd.com>
11106
11107 PR tree-optimization/38559
11108 * graphite.c (debug_value, copy_constraint,
11109 swap_constraint_variables, scale_constraint_variable, ): New.
11110 (get_lower_bound, get_upper_bound): Removed.
11111 (graphite_trans_bb_strip_mine): Clean up this code that works
11112 only for constant number of iterations. Fully copy upper and
11113 lower bound constraints, not only the constant part of them.
11114 * graphite.h (debug_value): Declared.
11115
82567e33
IR
111162009-01-08 Ira Rosen <irar@il.ibm.com>
11117
11118 PR tree-optimization/37194
11119 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 11120 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
11121 outside cost in case of known number of iterations.
11122
7da13f1d
NF
111232009-01-07 Nathan Froyd <froydnj@codesourcery.com>
11124 Alan Modra <amodra@bigpond.net.au>
11125
11126 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11127 non-word-aligned REG+CONST addressing.
11128
c0f64575
UB
111292009-01-07 Uros Bizjak <ubizjak@gmail.com>
11130
11131 PR target/38706
11132 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11133 free_after_compilation when outputting a thunk.
11134 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11135 Do not call free_after_compilation here.
11136
301b6a4e
UB
111372009-01-07 Uros Bizjak <ubizjak@gmail.com>
11138
11139 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
11140 (ix86_valid_target_attribute_inner_p): Ditto.
11141
6a114766
JS
111422009-01-07 Jan Sjodin <jan.sjodin@amd.com>
11143
11144 PR tree-optimization/38492
11145 PR tree-optimization/38498
11146 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11147 * tree-chrec.h (scev_is_linear_expression): Declared.
11148 * graphite.c (graphite_cannot_represent_loop_niter): New.
11149 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11150 (graphite_loop_normal_form): Use gcc_assert.
11151 (scan_tree_for_params): Use CASE_CONVERT.
11152 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11153 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11154 Use gcc_assert. Discard scops that contain unhandled cases.
11155 (build_scop_conditions): Return a boolean status for unhandled cases.
11156 (strip_mine_profitable_p): Print the loop number, not its depth.
11157 (is_interchange_valid): Pass the depth of the loop nest, don't
11158 recompute it wrongly.
11159 (graphite_trans_bb_block): Same.
11160 (graphite_trans_bb_block): Print tentative of loop blocking.
11161 (graphite_trans_scop_block): Do not print that the loop has been
11162 blocked.
11163 (graphite_transform_loops): Do not handle scops that contain condition
11164 scalar phi nodes.
11165
65b82caa
L
111662009-01-07 H.J. Lu <hongjiu.lu@intel.com>
11167
11168 AVX Programming Reference (December, 2008)
11169 * config/i386/avxintrin.h (_mm256_stream_si256): New.
11170 (_mm256_stream_pd): Likewise.
11171 (_mm256_stream_ps): Likewise.
11172
11173 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11174 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11175 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11176 (bdesc_special_args): Add __builtin_ia32_movntdq256,
11177 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11178 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11179 (ix86_expand_special_args_builtin): Likewise.
11180
11181 * config/i386/sse.md (AVXMODEDI): New.
11182 (avx_movnt<mode>): Likewise.
11183 (avx_movnt<mode>): Likewise.
11184 (<sse>_movnt<mode>): Remove AVX support.
11185 (sse2_movntv2di): Likewise.
11186
cef158f9
RG
111872009-01-07 Richard Guenther <rguenther@suse.de>
11188
11189 PR middle-end/38751
11190 * fold-const.c (extract_muldiv): Remove obsolete comment.
11191 (fold_plusminus_mult_expr): Undo MINUS_EXPR
11192 to PLUS_EXPR canonicalization for the canonicalization.
11193
246cb5be
GP
111942009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
11195
11196 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11197 hosted cross-compilers generating less efficient code.
11198
84b9b872
RS
111992009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11200
11201 * function.h (rtl_data): Add a dbr_scheduled_p field.
11202 * reorg.c (dbr_schedule): Set it.
11203 (gate_handle_delay_slots): Check it.
11204 * config/mips/mips.c (mips_base_delayed_branch): Delete.
11205 (mips_reorg): Check flag_delayed_branch instead of
11206 mips_base_delayed_branch.
11207 (mips_override_options): Don't set mips_base_delayed_branch
11208 or flag_delayed_branch.
11209
ace984c8
RS
112102009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11211
11212 PR rtl-optimization/38426.
11213 * ira.c (ira): Set current_function_is_leaf earlier.
11214
7ad7809b
JJ
112152009-01-06 Jakub Jelinek <jakub@redhat.com>
11216
11217 PR rtl-optimization/38722
11218 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11219 too early, only set a flag and modify after last possible
11220 undo_all point.
11221
c52ec948
JJ
112222009-01-06 Janis Johnson <janis187@us.ibm.com>
11223
11224 PR c/34252
11225 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11226 * real.c (decimal_single_format): Correct values of emin and emax.
11227 (decimal_double_format): Ditto.
11228 (decimal_quad_format): Ditto.
11229 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11230 computation of DECnn_MIN and DECnn_MAX for corrected values of
11231 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
11232 __DECnn_MIN__, and adjust its computation for the corrected value
11233 of emin.
11234
300240e1
JH
112352009-01-06 Jan Hubicka <jh@suse.cz>
11236
11237 PR target/38744
435da628 11238 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 11239
271c069e
GP
112402009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
11241
11242 * doc/contrib.texi (Contributors): Slightly adjust the end note.
11243 Add Robert Clark to the list of testers.
11244
64e4c301 112452009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11246 Kai Tietz <kai.tietz@onevision.com>
64e4c301 11247
435da628
UB
11248 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11249 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 11250
7650b83e 112512009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11252 Kai Tietz <kai.tietz@onevision.com>
7650b83e 11253
435da628
UB
11254 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11255 for w64 ABI.
11256 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
11257 (ix86_nsaved_regs): Count only general purpose regs.
11258 (ix86_nsaved_sseregs): New.
11259 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11260 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
11261 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11262 general purpose regs.
7650b83e
JH
11263 (ix86_emit_save_sse_regs_using_mov): New.
11264 (ix86_expand_prologue): Save SSE regs if needed.
11265 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11266 (ix86_emit_restore_sse_regs_using_mov): New.
11267 (ix86_expand_epilogue): Save SSE regs if needed.
11268
9aa5c1b2 112692009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11270 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 11271
435da628
UB
11272 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11273 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11274 functions when accumulate outgoing args is off.
9aa5c1b2 11275
f7556aae
L
112762009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11277
11278 PR bootstrap/38742
11279 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11280 before using pseudos_have_intersected_live_ranges_p.
11281
11282 * ira-int.h (ira_assert): Always define.
11283
e47b7d04
L
112842009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11285
11286 AVX Programming Reference (December, 2008)
11287 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11288 (_mm256_permute2_pd): Likewise.
11289 (_mm_permute2_ps): Likewise.
11290 (_mm256_permute2_ps): Likewise.
11291 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11292 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11293
11294 * config/i386/i386.c (ix86_builtins): Remove
11295 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11296 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11297 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11298 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11299 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11300 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11301 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11302 __builtin_ia32_vpermil2ps256.
11303 (ix86_init_mmx_sse_builtins): Updated.
11304 (ix86_expand_args_builtin): Likewise.
11305
44b86471
JDA
113062009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11307
e47b7d04
L
11308 * pa.c (output_call): Relocate non-jump insns in the delay slot of
11309 long absolute calls when generating PA 2.0 code.
44b86471 11310
311aab06
VM
113112009-01-05 Vladimir Makarov <vmakarov@redhat.com>
11312
11313 PR rtl-optimization/38583
11314 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11315
11316 * params.def (ira-max-conflict-table-size): New.
11317
11318 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 11319
311aab06 11320 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 11321
311aab06
VM
11322 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11323 table. Report this. Return result of building.
11324 (ira_build_conflicts): Use ira_conflicts_p. Check result of
11325 building conflict table.
11326
301b6a4e 11327 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 11328 (ira_color): Use ira_conflicts_p.
2ba9daa7 11329
311aab06
VM
11330 * global.c: Include ira.h.
11331 (pseudo_for_reload_consideration_p, build_insn_chain): Use
11332 ira_conflicts_p.
11333
11334 * Makefile.in (global.o): Add ira.h.
2ba9daa7 11335
311aab06
VM
11336 * ira-build.c (mark_all_loops_for_removal,
11337 propagate_some_info_from_allocno): New.
11338 (remove_unnecessary_allocnos): Call
11339 propagate_some_info_from_allocno.
11340 (remove_low_level_allocnos): New.
11341 (remove_unnecessary_regions): Add parameter. Call
11342 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
11343 parameter to remove_unnecessary_regions.
11344 (ira_build): Remove all regions but root if the conflict table was
11345 not built. Update conflict hard regs for allocnos crossing calls.
11346
11347 * ira.c (ira_conflicts_p): New global.
11348 (ira): Define and use ira_conflicts_p.
11349
11350 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11351 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 11352 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 11353
5641785f
BE
113542009-01-06 Ben Elliston <bje@au.ibm.com>
11355
11356 * gengtype-lex.l (YY_NO_INPUT): Define.
11357
e4e5261f
AP
113582009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
11359
11360 PR c/34911
5641785f
BE
11361 * c-common.c (handle_vector_size_attribute): Also reject
11362 BOOLEAN_TYPE types.
e4e5261f 11363
7b10257f
SP
113642009-01-05 Sebastian Pop <sebastian.pop@amd.com>
11365
11366 PR tree-optimization/38492
11367 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
11368 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11369 rename_map_elt_info, eq_rename_map_elts,
11370 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
11371 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11372 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11373 (sese_build_livein_liveouts): New.
11374 (new_sese, free_sese): New.
11375 (new_scop): Call new_sese.
11376 (free_scop): Call free_sese.
11377 (rename_variables_from_edge, rename_phis_end_scop): Removed.
11378 (register_old_new_names): Renamed register_old_and_new_names.
11379 (register_scop_liveout_renames, add_loop_exit_phis,
11380 insert_loop_close_phis, struct igp,
11381 default_liveout_before_guard, add_guard_exit_phis,
11382 insert_guard_phis, copy_renames): New.
11383 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
11384 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
11385 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
11386 (scop_adjust_phis_for_liveouts): New.
11387 (gloog): Call scop_adjust_phis_for_liveouts.
11388
11389 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 11390 num_ver and livein.
7b10257f
SP
11391 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
11392 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
11393 (struct scop): Added field liveout_renames.
11394 (SCOP_LIVEOUT_RENAMES): New.
11395
9761fcc7
HJ
113962009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
11397
11398 PR tree-optimization/38510
11399 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
11400 (translate_clast): Call recompute_all_dominators before
11401 graphite_verify.
11402 (gloog): Call recompute_all_dominators before graphite_verify.
11403
114042009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 11405 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
11406
11407 PR tree-optimization/38500
11408 * graphite.c (create_sese_edges): Call fix_loop_structure after
11409 splitting blocks.
11410
c95b2534 114112009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
11412
11413 * config.gcc: Add m32r*-*-rtems*.
11414 * config/m32r/rtems.h: New file.
11415
fc0cd180
BE
114162009-01-05 Ben Elliston <bje@au.ibm.com>
11417
11418 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
11419 (.po.pox): Likewise.
11420 (po/gcc.pot): Likewise.
11421
3106d8e5
DM
114222009-01-04 David S. Miller <davem@davemloft.net>
11423
11424 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11425 (STARTING_FRAME_OFFSET): Always set to zero.
11426
0009b473
RS
114272009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11428
11429 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
11430 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
11431 fixed-point types, and vectors of the same.
11432
4f24c6d6
RS
114332009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11434
11435 * config/mips/sync.md (*mb_barrier): Rename to...
11436 (*memory_barrier): ...this.
11437
1df48f5c
JW
114382009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
11439
11440 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 11441 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
11442 and put in alphabetical order. Fix 'target' name and put in order.
11443 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
11444 typos.
11445
1a8c13b3
UB
114462009-01-04 Uros Bizjak <ubizjak@gmail.com>
11447
11448 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
11449 (memory_barrier): Expand as unspec instead of unspec_volatile.
11450 Remove mem:BLK from insn operands. Use Pmode scratch register.
11451 (*memory_barrier): Define as unspec instead of unspec_volatile.
11452 Use (match_dup 0) as input operand.
11453
11454 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
11455 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
11456 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
11457 scratch register. Remove operand 1.
11458 (*stbar): Define as unspec instead of unspec_volatile.
11459 Use (match_dup 0) as input operand, remove (const_int 8).
11460 (*membar): Define as unspec instead of unspec_volatile.
11461 Use (match_dup 0) as input operand, remove input operand 2.
11462
11463 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
11464 (memory_barrier): Expand as unspec instead of unspec_volatile.
11465 Remove mem:BLK from insn operands. Use Pmode scratch register.
11466 (*memory_barrier): Define as unspec instead of unspec_volatile.
11467 Use (match_dup 0) as input operand.
11468
11469 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
11470 Remove mem:BLK from insn operands. Use Pmode scratch register.
11471 Set volatile flag on operand 0.
11472 (*memory_barrier): New insn pattern.
11473
11474 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
11475 insn operands.
11476 (*memory_barrier): Use (match_dup 0) as input operand.
11477
11478 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
11479 Remove mem:BLK from insn operands. Use Pmode scratch register.
11480 Set volatile flag on operand 0.
301b6a4e 11481 (*mb_internal): New insn pattern.
1a8c13b3
UB
11482
11483 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
11484
fb0703f7
SB
114852009-01-04 Steven Bosscher <steven@gcc.gnu.org>
11486
11487 PR middle-end/38586
11488 * function.c (struct temp_slot): Move to the section of the file
11489 that deals with temp slots. Remove field 'address'.
11490 (temp_slot_address_table): New hash table of address -> temp slot.
11491 (struct temp_slot_address_entry): New struct, items for the table.
11492 (temp_slot_address_compute_hash, temp_slot_address_hash,
11493 temp_slot_address_eq, insert_temp_slot_address): Support functions
11494 for the new table.
11495 (find_temp_slot_from_address): Rewrite to use the new hash table.
11496 (remove_unused_temp_slot_addresses): Remove addresses of temp
11497 slots that have been made available.
11498 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
11499 worker function for remove_unused_temp_slot_addresses.
11500 (assign_stack_temp_for_type): Don't clear the temp slot address list.
11501 Add the temp slot address to the address -> temp slot map.
11502 (update_temp_slot_address): Update via insert_temp_slot_address.
11503 (free_temp_slots): Call remove_unused_temp_slot_addresses.
11504 (pop_temp_slots): Likewise.
11505 (init_temp_slots): Allocate the address -> temp slot map, or empty
11506 the map if it is already allocated.
11507 (prepare_function_start): Initialize temp slot processing.
11508
b5a430f3
SB
115092009-01-04 Steven Bosscher <steven@gcc.gnu.org>
11510
11511 PR middle-end/38584
11512 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
11513 Calculate the size of all stack vars assuming no packing of stack
11514 vars will happen, replacing a quadratic algorithm with a linear one.
11515
5d560619
JJ
115162009-01-03 Jakub Jelinek <jakub@redhat.com>
11517
11518 PR target/38707
11519 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
11520 can't be used.
11521
953a7caa
DN
115222009-01-03 Diego Novillo <dnovillo@google.com>
11523
11524 * doc/contrib.texi: Update contributions.
11525
5f26a230
JJ
115262009-01-03 Jakub Jelinek <jakub@redhat.com>
11527
493aa551
JJ
11528 PR c++/38705
11529 * builtins.c (fold_builtin_memory_op): Give up if either operand
11530 is volatile. Set srctype or desttype to non-qualified version
11531 of the other type.
11532
5f26a230
JJ
11533 PR c/38700
11534 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
11535 and FUNCTION_DECLs.
11536
c95b2534 115372009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
11538
11539 PR rtl-optimization/35805
11540 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
11541 problem if fast dce is able to remove any instructions.
11542 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 11543
0b355794
MM
115442009-01-02 Mark Mitchell <mark@codesourcery.com>
11545
11546 PR 33649
11547 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
11548
0cf0d02b
JJ
115492009-01-02 Jakub Jelinek <jakub@redhat.com>
11550
11551 PR middle-end/38690
11552 * tree-flow.h (op_code_prio, op_prio): New prototypes.
11553 * tree-pretty-print.c (op_code_prio): New function.
11554 (op_prio): No longer static. Use op_code_prio.
11555 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
11556 Use op_prio and op_code_prio to determine if () should be
11557 printed around operand(s) or not.
11558
11559 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
11560 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
11561 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
11562 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
11563 pp_character instead of pp_string for single letter printing.
11564
e3606f3b
RS
115652009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
11566
11567 * doc/extend.texi: Fix '#pragma GCC option' typo.
11568
c95b2534 115692009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 11570
a5f061dc
RG
11571 * doc/install.texi (--enable-checking): Mention different
11572 default for stage1.
11573 (--enable-stage1-checking): Document.
00f39bd5 11574
26de0bcb
AP
115752009-01-01 Andrew Pinski <pinskia@gmail.com>
11576
11577 PR middle-end/30142
11578 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
11579 case to be an error.
11580
7a7d8fab
BE
115812009-01-02 Ben Elliston <bje@au.ibm.com>
11582
11583 * config/fp-bit.h (pack_d): Constify argument.
11584 * config/fp-bit.c (makenan): Constify return type. Remove casts.
11585 (isnan): Constify argument.
11586 (isinf): Likewise.
11587 (iszero): Likewise.
11588 (pack_d): Likewise.
11589 (_fpadd_parts): Constify return type.
11590 (_fpmul_parts): Likewise.
11591 (_fpdiv_parts): Likewise.
11592
b295aee2
JJ
115932009-01-01 Jakub Jelinek <jakub@redhat.com>
11594
11595 PR c/36489
11596 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
11597 warn about overwriting initializer with side-effects or
11598 -Woverride-init if !IMPLICIT.
11599 (output_init_element): Likewise. Pass IMPLICIT down to
11600 add_pending_init.
11601 (process_init_element): Add IMPLICIT argument. Pass it down
11602 to output_init_element.
11603 (push_init_element, pop_init_level, set_designator): Adjust
11604 process_init_element callers.
11605 (set_nonincremental_init, set_nonincremental_init_from_string):
11606 Adjust add_pending_init callers.
11607 (output_pending_init_elements): Adjust output_init_element callers.
11608 * c-tree.h (process_init_element): Adjust prototype.
11609 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
11610 process_init_element callers.
ad41bd84
JM
11611
11612\f
11613Copyright (C) 2009 Free Software Foundation, Inc.
11614
11615Copying and distribution of this file, with or without modification,
11616are permitted in any medium without royalty provided the copyright
11617notice and this notice are preserved.