]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Makefile.in (build/gencheck.o): Depend upon all-tree.def, not tree.def.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
bfefafc6
ILT
12009-05-13 Ian Lance Taylor <iant@google.com>
2
3 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4 tree.def.
5
286c4fcb
NS
62009-05-13 Nathan Sidwell <nathan@codesourcery.com>
7
8 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
9 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
10 multilibs.
11 * config/m68k/m68k.h (FL_UCLINUX): Define.
12
ebaa6ea7
JH
132009-05-13 Jan Hubicka <jh@suse.cz>
14
15 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
16
2b703e1a
KK
172009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
18
19 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
20 unless -fschedule-insns is specified.
21
c3537723
KK
222009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
23
24 PR target/39561
25 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
26 TARGET_EXPAND_CBRANCHDI4.
27 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
28 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
29 (cmpeqdi): Fix comment.
30
cdeed45a
KK
312009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
32
33 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
34 (sh_legitimate_address_p): Likewise.
35 * config/sh/sh.c (sh_legitimate_index_p): New.
36 (sh_legitimate_address_p): Likewise.
37 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
38 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
39 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
40 (MAYBE_BASE_REGISTER_RTX_P): New macro.
41 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
42 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
43 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
44 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
45 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
46
02f0b13a
JH
472009-05-12 Jan Hubicka <jh@suse.cz>
48
49 * tree-inline.c (estimate_operator_cost): Add operands;
50 when division happens by constant, it is cheap.
51 (estimate_num_insns): Loads and stores are not having cost of 0;
52 EH magic stuff is cheap; when computing runtime cost of switch,
53 use log2 base of amount of its cases; builtin_expect has cost of 0;
54 compute cost for moving return value of call.
55 (init_inline_once): Initialize time_based flags.
56 * tree-inline.h (eni_weights_d): Add time_based flag.
57
ecb7f6de
PB
582009-05-12 Paolo Bonzini <bonzini@gnu.org>
59
60 * df-core.c: Update head documentation.
61
c24151ce
MM
622009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
63
64 PR bootstrap/40118
65 * rs6000.c (rs6000_generate_compare): Use op1b instead of
66 shadowing exisiting variable op1.
67
fbdf817d
UB
682009-05-12 Uros Bizjak <ubizjak@gmail.com>
69
704bf7c8 70 PR target/37179
fbdf817d
UB
71 * config/i386/driver-i386.c (processor_signatures): New enum.
72 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
73 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
74 processor signature to detect geode processor.
75
5e8d1826
PB
762009-05-12 Paolo Bonzini <bonzini@gnu.org>
77
78 Revert:
79
80 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
81
82 * optabs.c (prepare_cmp_insn): Temporarily disable test that
83 causes spurious differences between trunk and cond-optab branch.
84
f90b7a5a
PB
852009-05-12 Paolo Bonzini <bonzini@gnu.org>
86
fbdf817d
UB
87 * dojump.c (compare_from_rtx): Delete.
88 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
89 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
90 if the comparison does not satisfy the predicate; test predicates for
91 operands 2 and 3 of a cstore pattern. Don't try cstore optab
92 further if one existing pattern fails.
fbdf817d 93 * expr.h (compare_from_rtx): Delete.
f90b7a5a 94 (prepare_operand): Declare it.
fbdf817d 95 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 96 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
97 HAVE_conditional_trap, emit_cmp_insn): Delete.
98 (can_compare_p): Delete cmp_optab case.
f90b7a5a 99 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
100 Accept other parameters by value.
101 (prepare_operand): Make non-static.
102 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
103 other parameters by value. Try to widen operands here based on
104 an optab_methods argument and looking at cbranch_optab.
105 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
106 loop. Use cbranch_optab directly.
107 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
108 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
109 assertion.
110 (emit_conditional_move, emit_conditional_add): Inline what's needed
111 of compare_from_rtx, using new prepare_cmp_insn for the rest.
112 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
113 with COMPARE. Move cmov_optab and cstore_optab above
114 with cbranch_optab, move cmp_optab down with ucmp_optab,
115 remove tst_otpab. Do not initialize trap_rtx.
116 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
117 for trap code. Do not check HAVE_conditional_trap. Use
118 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
119 * optabs.h (OTI_cmp): Mark as used only for libcalls.
120 (OTI_ctrap, ctrap_optab): New.
121 (tst_optab): Delete.
122 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
123 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
124 with lookup of ctrap_optab.
125 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
126 setcc_gen_code): Delete.
127 (ctrap_optab): New.
128
129 * combine.c (combine_simplify_rtx, simplify_set): Do not
130 special case comparing against zero for cc0 machines.
f90b7a5a
PB
131 * simplify-rtx.c (simplify_binary_operation_1): Never remove
132 COMPARE on cc0 machines.
133 (simplify_relational_operation): Return a new expression when
134 a COMPARE could be removed.
fbdf817d
UB
135 * final.c (final_scan_insn): Compare cc_status values
136 against LHS of a (compare FOO (const_int 0)) cc0 source.
137 Also check if cc_status.value is the full compare.
f90b7a5a 138
fbdf817d
UB
139 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
140 (cstoreMM4): Document.
f90b7a5a 141 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 142 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
143 (Dependent Patterns): Eliminate obsolete information referring to
144 the old jump optimization phase.
fbdf817d 145 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
146 of compares with 0 on cc0 machines.
147 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
148 avoiding references to cc0. Remove text about storing operands
149 in cmpMM.
150 * doc/tm.texi (Condition Codes): Include blurb on different
151 condition code representations, separate into subsections for
152 CC0, MODE_CC and conditional execution.
153
fbdf817d
UB
154 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
155 alpha_emit_setcc): Accept operands and a machine mode.
156 * config/alpha/alpha.c (alpha_emit_conditional_branch):
157 Get code/op0/op1 from operands, use machine mode argument
158 instead of alpha_compare.fp_p. Emit the branch here.
159 (alpha_emit_setcc): Likewise, and return boolean.
160 (alpha_emit_conditional_move): Likewise. Assert that
161 cmp_op_mode == cmp_mode, and simplify accordingly.
162 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
163 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
164 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
165 Delete.
166 (stack probe test): Use cbranchdi4.
167 * config/alpha/predicates.md (alpha_cbranch_operator): New.
168
169 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
170 * config/arc/arc.h (movsicc, movsfcc): Use it.
171 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
172 (cbranchsi4, cstoresi4): New.
173 (cmpsi, bCC and sCC expanders): Remove.
174
175 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
176 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
177 * config/arm/predicates.md (arm_comparison_operator): Only include
178 floating-point operators if there is a hardware floating-point unit.
179 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
180 deferring to cbranch_cc and cstore_cc respectively.
181 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
182 cbranch_cc, cstore_cc): New.
183 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 184 arm_compare_op1.
fbdf817d
UB
185 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
186
187 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
188 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
189 as an argument.
190 (adjust_insn_length): Adjust calls.
191 (avr_reorg): Handle (compare (foo) (const_int 0)).
192 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
193 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
194 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
195 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
196 (bCC): Remove.
197 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
198 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
199
fbdf817d
UB
200 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
201 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 202 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
203 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
204 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
205 (bfin_optimize_loop): Use cbranch expander.
206 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
207 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
208 (bfin_bimode_comparison_operator): ... this.
209 (bfin_direct_comparison_operator): New.
f90b7a5a 210
fbdf817d
UB
211 * config/cris/cris.c (cris_normal_notice_update_cc): Look
212 inside (compare FOO (const_int 0)).
213 (cris_rtx_costs): Handle ZERO_EXTRACT.
214 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
215 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
216 (*tstdi_v32): Delete.
217 (*cmpdi_non_v32): Add M alternative for operand 1.
218 (cmpsi, cmp<mode>): Make private.
219 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
220 with COMPARE.
221 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
222
223 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
224 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
225 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
226 (cc_reg_operand): New.
227 (any_cond): Delete.
fbdf817d
UB
228 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
229 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
230 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
231 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
232 crx_expand_scond): Delete.
233
234 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
235 (cbranchsi4): New.
236 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
237 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
238
239 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
240 cstoresi4, cstoresf4, cstoredf4): New.
241 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
242 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
243 Receive the entire operands array.
244 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
245 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
246 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
247 Get test/op0/op1 from the operands array.
248 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
249
250 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
251 (h8300_expand_store): New.
252 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
253 (const_int 0)).
254 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
255 (h8300_expand_store): New.
256 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
257 or do not try to produce (set (cc0) REG).
258 (peepholes): Wrap arguments with COMPARE. Add a peephole to
259 change a compare into a move to a scratch register. Disable some
260 peepholes when comparing with zero.
261 (tstsi, tsthi, tstsi, cmpqi): Make private.
262 (cmphi): Delete.
263 (bCC, sCC): Delete.
264 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
265 cstoresi4): New.
f90b7a5a
PB
266
267 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
268 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
269 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
270 (ix86_emit_i387_log1p): Use cbranchxf2.
271 (ix86_expand_setcc): Return void.
272 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
273 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
274 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
275 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
276 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
277 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
278 (sCC and bCC expanders): Remove.
279 (stack_protect_test): Use cbranchcc4.
280
fbdf817d
UB
281 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
282 Delete.
283 (ia64_expand_compare): Accept three rtx by reference and return void.
284 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
285 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
286 from *expr. Update *expr with the BImode comparison to do.
287 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
288 cmptf, bCC, sCC, conditional_trap): Delete.
289 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
290 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
291 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
292 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
293 * config/ia64/predicates.md (ia64_cbranch_operator): New.
294
295 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
296 type of last argument.
297 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
298 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
299 use machine mode argument instead of branch_type. Remove dead
300 code for floating-point comparisons.
301 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
302 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
303 Remove.
304 (cbranchsi4, cstoresi4): New.
305 * config/iq2000/predicates.md (reg_or_const_operand): New.
306
307 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
308 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
309 (b<code>_op): Rewrite to...
310 (bcc_op): ... this, using match_operator.
311 (s<code>_op): Rewrite to...
312 (scc_op): ... this, using match_operator.
313 (s<code>_24_op): Rewrite to...
314 (scc_op_24): ... this, using match_operator.
315 (s<code>_<mode>): Rewrite to...
316 (cstore<mode>4): ... this, using match_operator.
317 (s<code>_<mode>_24): Rewrite to...
318 (cstore<mode>4_24): ... this, using match_operator.
319 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
320 m32c_unpend_compare, m32c_expand_scc): Delete.
321 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
322 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
323 (m32c_expand_movcc): Change NE to EQ if necessary.
324 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
325
326 * config/m32r/m32r-protos.h (gen_cond_store): New.
327 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
328 (gen_cond_store): New, from sCC patterns.
329 (m32r_expand_block_move): Use cbranchsi4.
330 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
331 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
332 (cbranchsi4, cstoresi4): New.
333
334 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
335 Delete.
336 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 337 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
338 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
339 Delete.
340 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
341 cmphi, cmpqi, bCC): Delete.
342 (cbranchsi4, cbranchhi4, cbranchqi4): New.
343 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
344 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
345 sets with COMPARE.
346
347 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
348 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
349 * config/m68k/constraints.md (H): New.
350 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
351 the define_insn below.
352 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
353 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
354 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
355 patterns): Wrap RHS with COMPARE.
356 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
357 (*cmpdi_internal): Name this pattern.
358 (cmpdi): Change to define_insn.
359 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
360 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
361 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
362 predicate.
363 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
364 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
365 (conditional_trap): Change to...
366 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
367 (*conditional_trap): Use the ordered_comparison_operator and
368 const1_operand predicates.
369 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
370 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
371 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
372 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
373
374 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
375 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
376 (mcore_gen_compare): New.
377 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
378 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
379 (mcore_gen_compare): ... this.
380 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
381 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
382 (stack probe pattern): Use cbranchsi4.
383
384 * config/mips/predicates.md (mips_cstore_operator): New.
385 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
386 * config/mips/mips.md (any_cond): Delete.
387 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
388 always succeed.
389 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
390 fixuns_truncsfdi2): Use cbranch patterns.
391 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
392 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
393 Adjust call to mips_expand_conditional_branch.
394 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
395 cstore<GPR:mode>4.
396 * config/mips/mips-protos.h (mips_expand_conditional_branch,
397 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
398 * config/mips/mips.c (cmp_operands): Delete.
399 (mips_emit_compare): Get comparison operands from *op0/*op1.
400 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
401 that it succeeds. Use op0/op1 instead of cmp_operands.
402 (mips_expand_conditional_branch, mips_expand_conditional_move,
403 mips_expand_conditional_trap): Likewise.
404 (mips_block_move_loop): Use cbranch patterns.
405 * config/mips/mips.h (cmp_operands): Delete.
406
407 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
408 (mmix_gen_compare_reg): Just return a register in the right CC mode.
409 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
410 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
411 (*cmpcc_folded): Rename to...
412 (*cmpdi_folded): this.
413 (*cmpcc): Rename to...
414 (*cmps): ... this.
415 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
416 (bCC): Remove.
417 (cbranchdi4): New.
418 (cbranchdf4): New. Handle invalid comparisons here.
419 * config/mmix/predicates.md (float_comparison_operator): New.
420
421 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
422 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
423 * config/mn10300/mn10300.md (tst): Delete.
424 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
425 Name these patterns and wrap RHS in a compare.
426 (*cmpsi): Make this pattern private. Include tst.
427 (*cmpsf): Make this pattern private.
428 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
429 (compare with zero peepholes): Likewise.
430 (bCC): Remove.
431 (cbranchsi4, cbranchsf4): New.
432 (casesi): Use cbranchsi4.
433
434 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
435 hppa_branch_type): Delete.
436 (return_addr_rtx): Use cbranchsi4.
437 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
438 Emit CCFPmode comparison here.
439 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
440 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
441 hppa_branch_type): Delete.
442 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
443 (movsicc, movdicc): Remove references to hppa_compare_op0,
444 hppa_compare_op1 and compare_from_rtx.
445 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
446 (casesi): Use cbranchsi4.
447
448 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
449 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
450 * config/pdp11/pdp11.md (register_or_const0_operand): New.
451 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
452 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
453 (bCC): Delete.
454 (cbranchdf4, cbranchhi4, cbranchqi4): New.
455 (*branch, *branch_inverted): New.
456
457 * config/picochip/picochip.md (cbranchhi4): Use
458 ordered_comparison_operator.
459 (cmphi, bCC): Remove.
460
461 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
462 (trap_comparison_operator): Delete.
463 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
464 rs6000_emit_cbranch): Accept mode and operands.
465 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
466 rs6000_compare_fp_p): Delete.
467 (rs6000_generate_compare): Accept mode and comparison. Extract code
468 and op0/op1 from there. Replace references to rs6000_compare_op0
469 and rs6000_compare_op1.
470 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
471 extract result from passed operands.
472 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
473 extract loc from passed operands.
474 (rs6000_emit_cmove): Likewise.
475 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
476 rs6000_compare_fp_p): Delete.
477 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
478 (cbranch<GPR>4, cbranch<FP>4): New.
479 (cstore<mode>4): New. Consolidate here all choices about when to use
480 portable or specialized sCC sequences.
481 (stack_protect_test): Use cbranchsi4.
482 (conditional_trap): Replace with ctrap<GPR>4.
483 (conditional trap insn): Replace trap_comparison_operator with
484 ordered_comparison_operator.
485
486 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
487 (s390_emit_prologue): Use ctrap.
488 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
489 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
490 New predicates replacing...
491 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
492 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
493 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
494 (add<mode>cc): Do not use s390_compare_op0/op1.
495 (s<code>): Change to...
496 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
497 (seq): Change to...
498 (cstorecc4): ... this. Handle EQ or NE equally.
499 (*sne): Un-privatize for use in cstorecc4.
500 (b<code>): Change to...
501 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
502 (conditional_trap): Replace with...
503 (ctrap<GPR>4, ctrap<FP>4): ... these.
504 (stack_protect): Use cbranchcc4.
505
506 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
507 * config/score/score-protos.h (score_gen_cmp): Delete.
508 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
509 (score_block_move-loop): Use cbranchsi4.
510 * config/score/score.md (cbranchsi4): New.
511 (cmpsi, bCC): Delete.
512 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
513 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
514 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
515 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
516 * config/score/score3.h (score3_gen_cmp): Delete.
517 * config/score/score7.h (score7_gen_cmp): Delete.
518
519 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
520 (sh_emit_scc_to_t): ... this. Return void.
521 (from_compare): Rename to...
522 (sh_emit_compare_and_branch): ... this.
523 (sh_emit_compare_and_set): New.
524 (sh_expand_t_scc): Accept operands.
525 * config/sh/predicates.md (sh_float_comparison_operator): New.
526 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
527 (prepare_scc_operands): Rename to...
528 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
529 arguments.
530 (sh_emit_cheap_store_flag): New.
f90b7a5a 531 (sh_emit_set_t_insn): New.
fbdf817d
UB
532 (from_compare): Rename to...
533 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
534 handling of TARGET_SH2E floating point to avoid recursive call.
535 Generate branch here.
536 (sh_emit_compare_and_set): New.
537 (sh_expand_t_scc): Get op0/op1 from arguments.
538 (sh_emit_cheap_store_flag): New.
539 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
540 cases.
f90b7a5a 541 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
542 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
543 (movsicc, movdicc): Do nothing when it recreated operands from
544 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
545 prepare_scc_operands (now sh_emit_scc_to_t).
546 (udivdi3): Use cstoresi4.
547 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
548 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
549 (cbranchint4_media, cbranchfp4_media): New.
550 (casesi): Use cbranchdi4.
551 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
552 Delete.
553 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
554 (movnegt): Remove second operand.
555 (cbranchsf4, cbranchdf4): New.
556 (stack_protect): Use cbranchdi4/cbranchsi4.
557
558 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
559 (gen_compare_reg): Accept comparison, extract part of it to...
560 (gen_compare_reg_1): ... this.
561 (gen_compare_operator): Delete.
562 (gen_v9_scc): Accept separate destination, comparison code and arms.
563 Do not use sparc_compare_op0/sparc_compare_op1.
564 (emit_scc_insn, emit_conditional_branch_insn): New.
565 (emit_v9_brxx): Make static. Remove useless assertion.
566 (sparc_emit_float_lib_cmp): Return RTL instead of calling
567 emit_cmp_insn.
568 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
569 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
570 sparc_emit_float_lib_cmp): Adjust prototype.
571 (emit_scc_insn, emit_conditional_branch_insn): New.
572 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
573 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
574 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
575 iterators to the top.
576 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
577 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 578 snedi_special_trunc): Delete.
fbdf817d 579 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 580 and snedi_special_trunc.
fbdf817d
UB
581 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
582 cbranchdi4, cbranch<F:mode>4): New.
583 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
584 here. Use gen_compare_reg instead of gen_compare_operator.
585 (conditional_trap): Replace with...
586 (ctrapsi4, ctrapdi4): ... this.
587 (stack_protect_test): Use cbranchcc4.
588
589 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
590 argument to rtx.
591 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
592 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
593 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
594 from operands[0] or operands[3] depending on is_set.
595 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
596 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
597 cmpdf, bCC), sCC: Remove.
598 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
599 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
600 cstoredf4): New.
601 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
602 spu_emit_branch_or_set.
603
604 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
605 Add two arguments.
606 * config/stormy16/stormy16.h (xstormy16_compare_op0,
607 xstormy16_compare_op1): Delete.
608 * config/stormy16/stormy16.c (xstormy16_compare_op0,
609 xstormy16_compare_op1): Delete.
610 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
611 Adjust calls.
612 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
613 (cmphi, cmpsi, bCC): Remove.
614
615 * config/v850/v850.md (tstsi, cmpsi): Fold into...
616 (*cmpsi): ... this one.
617 (cbranchsi4, cstoresi4): New.
618 (bCC expanders): Delete.
619 (sCC insns): Fold into...
620 (*setcc): ... this one.
621 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
622 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
623 (movsicc): Simplify.
624 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
625
fbdf817d
UB
626 * config/vax/vax-protos.h (cond_name): New.
627 (vax_output_conditional_branch): Remove.
628 * config/vax/vax.c (cond_name): New.
629 (vax_output_conditional_branch): Remove.
630 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
631 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
632 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
633 (bit<VAXint>): Wrap source with (compare).
634 (b<code> and following unnamed pattern): Rename to *branch and
635 *branch_reversed. Change macroization to match_operator.
636 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
637
638 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
639 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
640 Change last argument to machine_mode.
641 (xtensa_expand_scc): Add machine_mode argument.
642 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
643 (gen_conditional_move, xtensa_expand_conditional_branch,
644 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
645 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
646 Adjust operand numbers.
647 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
648 Delete.
649 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
650 (cmpsi, cmpsf, b<code>, s<code>): Delete.
651 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 652
16670495
PB
6532009-05-12 Paolo Bonzini <bonzini@gnu.org>
654
655 * optabs.c (prepare_cmp_insn): Temporarily disable test that
656 causes spurious differences between trunk and cond-optab branch.
657
4a4a4e99
AO
6582009-05-12 Alexandre Oliva <aoliva@redhat.com>
659
660 PR target/37137
661 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
662
72b9acff
AO
6632009-05-12 Alexandre Oliva <aoliva@redhat.com>
664
665 * tree.c (iterative_hash_pointer): Delete.
666 (iterative_hash_expr): Short-circuit handling of NULL pointer.
667 Hash UIDs and versions of SSA names. Don't special-case built-in
668 function declarations.
669
b7dd69ac
ILT
6702009-05-11 Ian Lance Taylor <iant@google.com>
671
672 PR bootstrap/40103
673 * graphite.c: Force -Wc++-compat to only be a warning before
674 #including "cloog/cloog.h".
675
ed102b70
MJ
6762009-05-11 Martin Jambor <mjambor@suse.cz>
677
678 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
679
08f1af2e
JH
6802009-05-11 Jan Hubicka <jh@suse.cz>
681
682 * tree-ssa-loop-ivcanon.c: Include target.h
683 (struct loop_size): new structure.
684 (constant_after_peeling): New predicate.
685 (tree_estimate_loop_size): New function.
686 (estimated_unrolled_size): Rewrite for new estimates.
687 (try_unroll_loop_completely): Use new estimates.
688 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
689
a7d39bd3
AP
6902009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
691
692 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
693 libcpp interface change.
694 (spu_macro_to_expand): Likewise.
695
f5a1f0d0
PB
6962009-05-11 Paolo Bonzini <bonzini@gnu.org>
697
698 PR tree-optimization/40026
699 * gimplify.c (gimplify_init_constructor): Change initial conditional
700 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
701 optimize_compound_literals_in_ctor.
702
c260f01f
NS
7032009-05-11 Nathan Sidwell <nathan@codesourcery.com>
704
705 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
706 New devices.
707 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
708
df398a37
L
7092009-05-11 H.J. Lu <hongjiu.lu@intel.com>
710
711 * tree-vect-data-refs.c (vect_analyze_group_access): Use
712 HOST_WIDE_INT for gap.
713
4da39468
IR
7142009-05-11 Ira Rosen <irar@il.ibm.com>
715
716 PR tree-optimization/40074
717 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
718 account in group size and step comparison.
719
4effdf02
RG
7202009-05-11 Richard Guenther <rguenther@suse.de>
721
722 * passes.c (init_optimization_passes): Strip now incorrect comment.
723 (execute_function_todo): Do not set PROP_alias.
724 * tree-pass.h (PROP_alias): Remove.
725 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
726 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
727 * tree-nrv.c (pass_return_slot): Likewise.
728 * tree-object-size.c (pass_object_sizes): Likewise.
729 * tree-ssa-dom.c (pass_dominator): Likewise.
730 (pass_phi_only_cprop): Likewise.
731 * tree-ssa-dse.c (pass_dse): Likewise.
732 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
733 (pass_cselim): Likewise.
734 * tree-ssa-pre.c (pass_pre): Likewise.
735 (pass_fre): Likewise.
736 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
737 * tree-ssa-sink.c (pass_sink_code): Likewise.
738 * tree-stdarg.c (pass_stdarg): Likewise.
739 * tree-tailcall.c (pass_tail_calls): Likewise.
740 * tree-vrp.c (pass_vrp): Likewise.
741
24b97832
ILT
7422009-05-10 Ian Lance Taylor <iant@google.com>
743
744 * basic-block.h (enum profile_status): Break out of struct
745 control_flow_graph.
746 * cgraph.h (struct inline_summary): Break out of struct
747 cgraph_local_info.
748 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
749 of struct cgraph_order_sort.
fbdf817d 750 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
751 * cse.c (struct branch_path): Break out of struct
752 cse_basic_block_data.
753 * except.h (enum eh_region_type): Break out of struct eh_region.
754 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 755 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
756 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
757 ggc_pch_data.
fbdf817d
UB
758 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
759 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
760 * sched-int.h (enum post_call_group): New enum, broken out of
761 struct deps.
762 (struct deps_reg): Break out of struct deps.
763 * target.h (struct asm_int_op): Break out of struct gcc_target.
764 * tree-eh.c (struct goto_queue_node): Break out of struct
765 leh_tf_state.
766 * tree-inline.h (enum copy_body_cge_which): Break out of
767 copy_body_data.
768 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
769
770 * c-decl.c (in_struct, struct_types): New static variables.
771 (pushtag): Add loc parameter. Change all callers.
772 (lookup_tag): Add ploc parameter. Change all callers.
773 (check_compound_literal_type): New function.
774 (parser_xref_tag): Add loc parameter. Change all callers. If
775 -Wc++-compat, warn about struct/union/enum types defined within a
776 struct or union.
777 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
778 and loc parameters. Change all callers. Change error calls to
779 error_at, using loc. For a redefinition, if the location of the
780 original definition is known, report it. Set in_struct and
fbdf817d 781 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
782 (finish_struct): Add new parameters enclosing_in_struct and
783 enclosing_struct_types. Change all callers. Set
784 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
785 in the struct. If in a struct, add this struct to struct_types.
786 (start_enum): Add loc parameter. Change all callers. Use
787 error_at for errors, using loc. For a redefinition, if the
788 location of the original definition is known, report it. If in a
789 struct, add this enum type to struct_types. If -Wc++-compat warn
790 if in sizeof, typeof, or alignof.
fbdf817d
UB
791 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
792 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
793 (c_parser_enum_specifier): Get enum location for start_enum.
794 (c_parser_struct_or_union_specifier): Get struct location for
795 start_struct. Save in_struct and struct_types status between
796 start_struct and finish_struct.
797 (c_parser_cast_expression): Get location of cast.
798 (c_parser_alignof_expression): Get location of type.
799 (c_parser_postfix_expression): Likewise.
800 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
801 parameter. Change all callers. Call check_compound_literal_type.
802 Use type_loc for error about variable size type.
803 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
804 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
805 (c_cast_expr): Add loc parameter. Change all callers. If
806 -Wc++-compat, warn about defining a type in a cast.
807 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
808 (start_enum, start_struct, finish_struct): Update declarations.
809 (parser_xref_tag, c_cast_expr): Update declarations.
810 (check_compound_literal_type): Declare.
811
7a2738fa
BE
8122009-05-11 Ben Elliston <bje@au.ibm.com>
813
814 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
815 for recent libcpp interface change.
816 (rs6000_macro_to_expand): Likewise.
817
af618949
MM
8182009-05-10 Michael Matz <matz@suse.de>
819
820 PR target/40031
821 * config/arm/arm.c (require_pic_register): Emit on entry edge,
822 not at entry of function.
823
b7d7a473
RG
8242009-05-10 Richard Guenther <rguenther@suse.de>
825
826 PR tree-optimization/40081
827 Revert
828 * tree-sra.c (instantiate_element): Instantiate scalar replacements
829 using the main variant of the element type. Do not fiddle with
830 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
831
832 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
833 structs with volatile fields.
834
078c3644
JH
8352009-05-10 Jan Hubicka <jh@suse.cz>
836
837 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
838 (estimate_move_cost): Assert that it does not get called for
839 VOID_TYPE_P.
078c3644
JH
840 (estimate_num_insns): Skip VOID types in argument handling.
841 (optimize_inline_calls): Delete unreachable blocks and verify that
842 callgraph is valid.
843
39ff5a96
JH
8442009-05-10 Jan Hubicka <jh@suse.cz>
845
846 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
847 * cgraph.c (cgraph_mark_address_taken_node): New function.
848 (dump_cgraph_node): Dump new flag.
849 * cgraph.h (struct cgraph_node): Add address_taken.
850 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
851 * ipa.c (cgraph_postorder): Prioritize functions with address taken
852 since new direct calls can be born.
853
9a0c6187
JM
8542009-05-10 Joseph Myers <joseph@codesourcery.com>
855
856 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
857 tok->val.node.node.
858
4b685e14
JH
8592009-05-10 Jan Hubicka <jh@suse.cz>
860
861 PR middle-end/40084
fb0be169
EB
862 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
863 argument; rewrite.
4b685e14
JH
864 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
865 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
866 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
867 (fold_marked_statements): Update call to
868 cgraph_update_edges_for_call_stmt.
4b685e14 869
29d08eba
JM
8702009-05-10 Joseph Myers <joseph@codesourcery.com>
871
872 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
873 identifiers in diagnostics.
874 * config/arm/arm.c (arm_handle_fndecl_attribute,
875 arm_handle_isr_attribute): Likewise.
876 * config/avr/avr.c (avr_handle_progmem_attribute,
877 avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
878 Likewise.
879 * config/bfin/bfin.c (handle_int_attribute,
880 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
881 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
882 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
883 Likewise.
884 * config/darwin.c (darwin_handle_kext_attribute,
885 darwin_handle_weak_import_attribute): Likewise.
886 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
887 h8300_handle_eightbit_data_attribute,
888 h8300_handle_tiny_data_attribute): Likewise.
889 * config/i386/i386.c (ix86_handle_cconv_attribute,
890 ix86_handle_abi_attribute, ix86_handle_struct_attribute):
891 Likewise.
892 * config/i386/winnt.c (ix86_handle_shared_attribute,
893 ix86_handle_selectany_attribute): Likewise.
894 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
895 * config/m32c/m32c.c (function_vector_handler): Likewise.
896 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
897 m68hc11_handle_fntype_attribute): Likewise.
898 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
899 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
900 * config/mips/mips.c (mips_insert_attributes,
901 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
902 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
903 rs6000_handle_struct_attribute): Likewise.
904 * config/sh/sh.c (sh_insert_attributes,
905 sh_handle_resbank_handler_attribute,
906 sh_handle_interrupt_handler_attribute,
907 sh2a_handle_function_vector_handler_attribute,
908 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
909 Likewise.
910 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
911 * config/spu/spu.c (spu_handle_fndecl_attribute,
912 spu_handle_vector_attribute): Likewise.
913 * config/stormy16/stormy16.c
914 (xstormy16_handle_interrupt_attribute): Likewise.
915 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
916 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
917
f41c4af3
JM
9182009-05-10 Joseph Myers <joseph@codesourcery.com>
919
920 * pretty-print.h (struct pretty_print_info): Add
921 translate_identifiers.
922 (pp_translate_identifiers): New.
923 (pp_identifier): Only conditionally translate identifier to locale
924 character set.
925 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
926 (pp_base_tree_identifier): Only conditionally translate identifier
927 to locale character set.
928 * c-pretty-print.c (M_): Define.
929 (pp_c_type_specifier, pp_c_primary_expression): Mark English
930 fragments for conditional translation with M_.
931 * tree-pretty-print.c (maybe_init_pretty_print): Disable
932 identifier translation.
933
896d7dbd
RG
9342009-05-10 Richard Guenther <rguenther@suse.de>
935
936 PR tree-optimization/40081
937 * tree-sra.c (instantiate_element): Instantiate scalar replacements
938 using the main variant of the element type. Do not fiddle with
939 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
940
9a23acef
JH
9412009-05-09 Jan Hubicka <jh@suse.cz>
942
943 PR middle-end/40080
944 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
945 indirect calls; verify cgraph afterwards.
946
d563610d
JH
9472009-05-09 Jan Hubicka <jh@suse.cz>
948
949 PR bootstrap/40082
950 * ipa.c (update_inlined_to_pointer): New function.
951 (cgraph_remove_unreachable_nodes): Use it.
952
f08a18d0
JH
9532009-05-09 Jan Hubicka <jh@suse.cz>
954
955 * tree-eh.c (struct leh_state): Remove prev_try.
956 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
957 not track prev_try.
958 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
959 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
960 remove_eh_handler_and_replace, foreach_reachable_handler,
961 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
962 * except.h (struct eh_region): Remove eh_region_u_cleanup.
963 (gen_eh_region_cleanup): Update prototype.
964
0afd7219
JH
9652009-05-09 Jan Hubicka <jh@suse.cz>
966
967 PR middle-end/40043
968 * except.c (copy_eh_region): Always set prev_try.
969 (redirect_eh_edge_to_label): Find outer try.
970 (foreach_reachable_handler): When looking for prev try
971 handle case where previous try is not going to be taken.
972
ad6c0864
MM
9732009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
974
975 PR tree-optimization/40049
976 * tree-vect-stmts.c (vectorizable_operation): If the machine has
977 only vector/vector shifts, convert the type of the constant to the
978 appropriate type to avoid building incorrect trees, which
979 eventually have problems with garbage collection.
980
c94f9067
JM
9812009-05-08 Joseph Myers <joseph@codesourcery.com>
982
983 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
984 -1 for complex floating-point types if honoring signed zeros.
985
9187e02d
JH
9862009-05-08 Jan Hubicka <jh@suse.cz>
987
20acb8a2
EB
988 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
989 argument; handle correctly when profile is absent.
9187e02d
JH
990 (build_cgraph_edges): Update.
991 (rebuild_cgraph_edges): Update.
20acb8a2
EB
992 * cgraph.c: Do not include varray.h.
993 (cgraph_set_call_stmt_including_clones): New function.
994 (cgraph_create_edge_including_clones): Likewise
995 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
996 (cgraph_update_edges_for_call_stmt): Handle clones.
997 (cgraph_remove_node): Handle clone tree.
998 (cgraph_remove_node_and_inline_clones): New function.
999 (dump_cgraph_node): Dump clone tree.
1000 (cgraph_clone_node): Handle clone tree.
20acb8a2 1001 (clone_function_name): Bring here from tree-inline.c.
9187e02d 1002 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
1003 * cgraph.h (ipa_replace_map): Move here from ipa.h.
1004 (cgraph_clone_info): New function.
9187e02d 1005 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
1006 (cgraph_remove_node_and_inline_clones,
1007 cgraph_set_call_stmt_including_clones,
1008 cgraph_create_edge_including_clones,
1009 cgraph_create_virtual_clone): Declare.
9187e02d
JH
1010 (cgraph_function_versioning): Use VEC argument.
1011 (compute_call_stmt_bb_frequency): Update prototype.
1012 (cgraph_materialize_all_clones): New function.
1013 * ipa-cp.c (ipcp_update_cloned_node): Remove.
1014 (ipcp_create_replace_map): Update to VECtors.
1015 (ipcp_update_callgraph): Use virtual clones.
1016 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
1017 (ipcp_update_profiling): Do not update local profiling.
1018 (ipcp_insert_stage): Use VECtors and virtual clones.
1019 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
1020 (clone_of_p): New function.
1021 (cgraph_preserve_function_body_p): Use clone tree.
1022 (cgraph_optimize): Materialize clones.
1023 (cgraph_function_versioning): Update for VECtors.
1024 (save_inline_function_body): Use clone tree.
20acb8a2
EB
1025 (cgraph_materialize_clone): New function.
1026 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
1027 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
1028 * ipa.c: Include gimple.h.
1029 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
1030 * ipa-prop.c (ipa_note_param_call): Update call to
1031 compute_call_stmt_bb_frequencycall.
9187e02d 1032 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 1033 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
1034 (copy_bb): Handle updating of clone tree; add new edge when new call
1035 appears.
1036 (expand_call_inline): Be strict about every call having edge.
1037 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
1038 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
1039 (tree_function_versioning): Use VECtors; always remove unreachable
1040 blocks and fold conditionals.
1041 * tree-inline.h: Do not include varray.h.
9187e02d
JH
1042 (tree_function_versioning): Remove.
1043 * Makefile.in (GTFILES): Remove tree-inline.c
1044 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
1045 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
1046 tree.
9187e02d 1047
9b86d6bb
L
10482009-05-08 H.J. Lu <hongjiu.lu@intel.com>
1049 Andrew Morrow <acm@google.com>
1050
1051 PR c/36892
1052 * c-common.c (c_common_attribute_table): Permit deprecated
1053 attribute to take an optional argument.
1054 (handle_deprecated_attribute): If the optional argument to
1055 __attribute__((deprecated)) is not a string ignore the attribute
1056 and emit a warning.
1057
1058 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
1059 * c-typeck.c (build_component_ref): Likewise.
1060 (build_external_ref): Likewise.
1061
1062 * toplev.c (warn_deprecated_use): Add an attribute argument.
1063 Emit the message associated with __attribute__((deprecated)).
1064
1065 * toplev.h (warn_deprecated_use): Updated.
1066
1067 * doc/extend.texi: Document new optional parameter to
1068 __attribute__((deprecated))
1069
82ad047f
ME
10702009-05-08 Michael Eager <eager@eagercon.com>
1071
1072 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1073 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1074
788d3075
RG
10752009-05-08 Richard Guenther <rguenther@suse.de>
1076
1077 PR tree-optimization/40062
1078 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1079 Avoid exponential behavior.
1080
00952e97
PB
10812009-05-08 Paolo Bonzini <bonzini@gnu.org>
1082
1083 PR rtl-optimization/33928
1084 PR 26854
1085 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1086 process_uses, build_single_def_use_links): New.
1087 (update_df): Update use_def_ref.
1088 (forward_propagate_into): Use get_def_for_use instead of use-def
1089 chains.
1090 (fwprop_init): Call build_single_def_use_links and let it initialize
1091 dataflow.
1092 (fwprop_done): Free use_def_ref.
1093 (fwprop_addr): Eliminate duplicate call to df_set_flags.
1094 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
1095 df_rd_simulate_one_insn): New.
1096 (df_rd_bb_local_compute_process_def): Update head comment.
1097 (df_chain_create_bb): Use the new RD simulation functions.
1098 * df.h (df_rd_simulate_artificial_defs_at_top,
1099 df_rd_simulate_one_insn): New.
1100 * opts.c (decode_options): Enable fwprop at -O1.
1101 * doc/invoke.texi (-fforward-propagate): Document this.
1102
2ca862e9
JM
11032009-05-08 Joseph Myers <joseph@codesourcery.com>
1104
1105 PR c/24581
1106 * c-typeck.c (build_binary_op): Handle arithmetic between one real
1107 and one complex operand specially.
1108 * tree-complex.c (some_nonzerop): Do not identify a real value as
1109 zero if flag_signed_zeros.
1110
3e807ffc
PB
11112009-05-08 Paolo Bonzini <bonzini@gnu.org>
1112
1113 PR rtl-optimization/33928
7925c06c 1114 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 1115
1bfdbb29
PB
11162009-05-08 Paolo Bonzini <bonzini@gnu.org>
1117
1118 PR rtl-optimization/33928
e913423f
EB
1119 * loop-invariant.c (struct use): Add addr_use_p.
1120 (struct def): Add n_addr_uses.
1121 (struct invariant): Add cheap_address.
1122 (create_new_invariant): Set cheap_address.
1123 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
1124 (record_uses): Pass df_ref to record_use.
1125 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1126 used only as such.
1bfdbb29 1127
702cb2a0
KK
11282009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
1129
1130 * config/sh/sh.c: Do not include c-pragma.h.
1131
5e8df753
AP
11322009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
1133
1134 * config/spu/spu.c: Remove include of c-common.h.
1135
6ec637a4
JJ
11362009-05-07 Janis Johnson <janis187@us.ibm.com>
1137
1138 PR c/39037
1139 * c-common.h (mark_valid_location_for_stdc_pragma,
1140 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1141 clear_float_const_decimal64, float_const_decimal64_p): New.
1142 * c.opt (Wunsuffixed-float-constants): New.
1143 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1144 unsuffixed float constant, handle new warning.
1145 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1146 * c-decl.c (c_scope): New flag float_const_decimal64.
1147 (set_float_const_decimal64, clear_float_const_decimal64,
1148 float_const_decimal64_p): New.
1149 (push_scope): Set new flag.
1150 * c-parser.c (c_parser_translation_unit): Mark when it's valid
1151 to use STDC pragmas.
1152 (c_parser_external_declaration): Ditto.
1153 (c_parser_compound_statement_nostart): Ditto.
1154 * c-pragma.c (valid_location_for_stdc_pragma,
1155 mark_valid_location_for_stdc_pragma,
1156 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1157 handle_pragma_float_const_decimal64): New.
1158 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1159 * cp/semantics.c (valid_location_for_stdc_pragma_p,
1160 set_float_const_decimal64, clear_float_const_decimal64,
1161 float_const_decimal64_p): New dummy functions.
1162 * doc/extend.texi (Decimal Float): Remove statement that the
1163 pragma, and suffix for double constants, are not supported.
1164 * doc/invoke.texi (Warning Options): List new option.
1165 (-Wunsuffixed-float-constants): New.
1166
45b9b2e9
SB
11672009-05-08 Steven Bosscher <steven@gcc.gnu.org>
1168
1169 * config/i386/i386.c: Do not include c-common.h.
1170
e71da632
MH
11712009-05-07 Mark Heffernan <meheff@google.com>
1172
1173 * doc/invoke.texi (Debugging Options): Document change of debugging
1174 dump location.
e913423f 1175 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
1176 aux_base_name directory.
1177
fe4c7bc6
HS
11782009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1179
1180 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1181 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1182
3b3e44eb
RAE
11832009-05-07 Rafael Avila de Espindola <espindola@google.com>
1184
1185 * Makefile.in (install-plugin): Simplify a bit.
1186
fac41238
PB
11872009-05-07 Paolo Bonzini <bonzini@gnu.org>
1188
1189 * Makefile.in (OBJS-common): Add regcprop.o.
1190 (regcprop.o): New.
1191 * timevar.def (TV_CPROP_REGISTERS): New.
1192 * regrename.c (regrename_optimize): Return 0.
1193 (rest_of_handle_regrename): Delete.
1194 (pass_rename_registers): Point to regrename_optimize.
1195 (struct value_data_entry, struct value_data,
1196 kill_value_one_regno, kill_value_regno, kill_value,
1197 set_value_regno, init_value_data, kill_clobbered_value,
1198 kill_set_value, kill_autoinc_value, copy_value,
1199 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1200 replace_oldest_value_reg, replace_oldest_value_addr,
1201 replace_oldest_value_mem, copyprop_hardreg_forward_1,
1202 debug_value_data, validate_value_data): Move...
1203 * regcprop.c: ... here.
1204 (rest_of_handle_cprop): Delete.
1205 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1206
472e0df9
JJ
12072009-05-07 Jakub Jelinek <jakub@redhat.com>
1208
1209 PR middle-end/40057
1210 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1211 GEN_INT for 1 << bitnum.
1212 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1213 build_int_cst_type.
1214
0d50d55a
UB
12152009-05-07 Uros Bizjak <ubizjak@gmail.com>
1216
1217 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 1218 Remove wrong description of "nand" operation.
0d50d55a 1219
22f597f1
RG
12202009-05-06 Richard Guenther <rguenther@suse.de>
1221 Adam Nemet <anemet@caviumnetworks.com>
1222
1223 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1224 comment. Add that if LHS is not a gimple register, then RHS1 has
1225 to be a single object (GIMPLE_SINGLE_RHS).
1226
641cac0b
AN
12272009-05-06 Adam Nemet <anemet@caviumnetworks.com>
1228
1229 * expr.c (get_def_for_expr): Move it up in the file.
1230 (store_field): When expanding a bit-field store, look at the
1231 defining gimple stmt for the masking conversion.
1232
5a5c6435
JJ
12332009-05-06 Janis Johnson <janis187@us.ibm.com>
1234
1235 PR middle-end/39986
1236 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1237 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1238 32-bit memcpy into long.
1239
96474f36
JJ
12402009-05-06 Jakub Jelinek <jakub@redhat.com>
1241
1242 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1243 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1244 new_reg_loc_descr.
1245 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1246 instead of appending DW_OP_deref*.
1247
529ff441
MM
12482009-05-06 Michael Matz <matz@suse.de>
1249
1250 PR middle-end/40021
1251 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1252 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1253
9419a9fd
RAE
12542009-05-06 Rafael Avila de Espindola <espindola@google.com>
1255
1256 * Makefile.in (install-plugin): Fix srcdir handling.
1257
fff1894c
AB
12582009-05-06 Andrey Belevantsev <abel@ispras.ru>
1259
1260 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1261 when processing for not_regs_needed bitmap.
1262 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1263 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
1264 handling it for rhs.
1265
700ae70c
L
12662009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1267
ab3426a7 1268 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 1269 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
1270 * config/i386/predicates.md (incdec_operand): Likewise.
1271 (aligned_operand): Likewise.
1272 * config/i386/sse.md (divv8sf3): Likewise.
1273 (sqrtv8sf2): Likewise.
1274
67341fb5
L
12752009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1276
1277 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1278
1279 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1280
87946f42
L
12812009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1282
1283 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1284 ssemodesuffixf2c with avxmodesuffixf2c.
1285
1202aec1
JM
12862009-05-06 Joseph Myers <joseph@codesourcery.com>
1287
1288 PR c/40032
aa016ff7 1289 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 1290
6e57a01d
JJ
12912009-05-05 Jakub Jelinek <jakub@redhat.com>
1292
1293 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1294 (struct tree_base): Adjust spacing for 8 bit boundaries.
1295 (struct tree_decl_common): Add decl_by_reference_flag bit.
1296 (DECL_BY_REFERENCE): Adjust.
1297 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1298 print DECL_BY_REFERENCE bit.
1299 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1300 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1301 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1302 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
1303 unconditionally.
1304
32f579f6
JJ
1305 PR middle-end/39666
1306 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1307 range of the type, but default label is missing, add it with one
1308 of the existing labels instead of adding a new label for it.
1309
617ab743
JM
13102009-05-05 Joseph Myers <joseph@codesourcery.com>
1311
1312 * dwarf.h: Remove.
1313
bf016de8
RAE
13142009-05-05 Rafael Avila de Espindola <espindola@google.com>
1315
1316 * Makefile.in (enable_plugin, plugin_includedir): New.
1317 (install): Depend on install-plugin.
1318 (PLUGIN_HEADERS): New.
1319 (install-plugin): New.
1320 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1321
7f8fdb9f
RG
13222009-05-05 Richard Guenther <rguenther@suse.de>
1323
1324 PR tree-optimization/40022
1325 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1326 the only vuse.
1327 (phivn_valid_p): Fix tuplification error, simplify.
1328 (phiprop_insert_phi): Add dumps.
1329 (propagate_with_phi): Simplify.
1330
8d972839
RG
13312009-05-05 Richard Guenther <rguenther@suse.de>
1332
1333 PR middle-end/40023
aa016ff7 1334 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 1335
66ba9b0b
SZ
13362009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
1337
1338 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
1339 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1340 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1341 block_ultimate_origin): Rearrange the declarations line to match the
1342 comment that indicates the .c file which the functions are defined.
1343 (dwarf2out_*, set_decl_rtl): Add comment.
1344 (get_base_address): Adjust comment.
1345 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1346 declarations line and add comment.
1347 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 1348
4f1e4960
JM
13492009-05-04 Joseph Myers <joseph@codesourcery.com>
1350
1351 * attribs.c (decl_attributes): Use %qE for identifiers in
1352 diagnostics.
1353 * cgraphunit.c (verify_cgraph_node): Translate function names to
1354 locale character set in diagnostics.
1355 * coverage.c (get_coverage_counts): Use %qE for identifiers in
1356 diagnostics.
1357 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1358 Document that functions are named in UTF-8.
1359 * expr.c (expand_expr_real_1): Translate function names to locale
1360 character set in diagnostics.
1361 * gimplify.c (omp_notice_variable, omp_is_private,
1362 gimplify_scan_omp_clauses): Use %qE for identifiers in
1363 diagnostics.
1364 * langhooks.c (lhd_print_error_function): Translate function names
1365 to locale character set.
1366 * langhooks.h (decl_printable_name): Document that return value is
1367 in internal character set.
1368 * stmt.c: Include pretty-print.h
1369 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1370 diagnostics.
1371 (resolve_operand_name_1): Translate named operand name to locale
1372 character set.
1373 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1374 diagnostics.
1375 * toplev.c (announce_function): Translate function names to locale
1376 character set.
1377 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1378 (default_tree_printer): Use pp_identifier or translate identifiers
1379 to locale character set. Mark "<anonymous>" for translation.
1380 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1381 for identifiers in diagnostics.
1382 * tree.c (handle_dll_attribute): Use %qE for identifiers in
1383 diagnostics.
1384 * varasm.c (output_constructor): Use %qE for identifiers in
1385 diagnostics.
1386
40540e68
RAE
13872009-05-04 Rafael Avila de Espindola <espindola@google.com>
1388
1389 * configure.ac: use ` ` instead of $()
1390 * configure: Regenerate.
1391
33fc884c
BE
13922009-05-05 Ben Elliston <bje@au.ibm.com>
1393
1394 * config/pa/linux-atomic.c: Eliminate conditional include of
1395 errno.h on non-LP64 systems to simplify build requirements.
1396
88388a52
JM
13972009-05-04 Joseph Myers <joseph@codesourcery.com>
1398
1399 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1400 diagnostics.
1401 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1402 and pass value to identifier_to_locale.
1403 (warn_variable_length_array): Make name a tree.
1404 (grokdeclarator): Separate diagnostic texts for named and unnamed
1405 declarators. Use %qE for named declarators.
1406 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
1407 diagnostics.
1408 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
1409 identifiers in diagnostics.
1410 * c-typeck.c (push_member_name, start_init): Pass identifiers to
1411 identifier_to_locale. Mark "anonymous" strings for translation.
1412
960c5c79
ME
14132009-05-04 Michael Eager <eager@eagercon.com>
1414
1415 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 1416 address for DImode/DFmode only if double-precision FP regs.
960c5c79 1417
d083fbba
ME
14182009-05-04 Michael Eager <eager@eagercon.com>
1419
1420 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
1421 TARGET_SINGLE_FLOAT check.
1422
c3ba8d32
ME
14232009-05-04 Michael Eager <eager@eagercon.com>
1424
1425 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
1426
edce9f18
ME
14272009-05-04 Michael Eager <eager@eagercon.com>
1428
1429 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
1430 * config/rs6000/t-xilinx: New
1431
506d7b68
PB
14322009-05-04 Paolo Bonzini <bonzini@gnu.org>
1433
e913423f 1434 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
1435 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
1436 * gcc/explow.c (memory_address): Use target hook.
1437 * gcc/targhooks.c (default_legitimize_address): New.
1438 * gcc/targhooks.h (default_legitimize_address): New.
1439 * gcc/target.h (legitimize_address): New.
1440 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
1441 (TARGET_INITIALIZER): Include it.
1442 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
1443
1444 * config/bfin/bfin-protos.h (legitimize_address): Remove.
1445 * config/bfin/bfin.c (legitimize_address): Remove.
1446 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
1447 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
1448 Remove.
506d7b68
PB
1449 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
1450 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
1451
1452 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
1453 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
1454 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
1455 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
1456 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
1457 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
1458 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
1459 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
1460 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
1461 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
1462 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
1463 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
1464 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
1465 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
1466 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
1467 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
1468 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
1469 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
1470 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
1471 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
1472 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
1473 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
1474 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
1475
1476 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
1477 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
1478 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
1479 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
1480 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
1481 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
1482 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
1483 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
1484 (thumb_legitimize_address): Delete.
1485 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
1486 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
1487 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
1488 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
1489 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
1490 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
1491 Delete.
1492 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
1493 Delete.
506d7b68
PB
1494
1495 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
1496 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
1497 * config/m32r/m32r.c (m32r_legitimize_address): New.
1498 * config/m68k/m68k.c (m68k_legitimize_address): New.
1499 * config/score/score.c (score_legitimize_address): Standardize.
1500 * config/score/score3.c (score3_legitimize_address): Standardize.
1501 * config/score/score3.h (score3_legitimize_address): Adjust.
1502 * config/score/score7.c (score7_legitimize_address): Standardize.
1503 * config/score/score7.h (score7_legitimize_address): Adjust.
1504 * config/sh/sh.c (sh_legitimize_address): New.
1505 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
1506
1507 * gcc/config/s390/s390.c (legitimize_address): Rename to...
1508 (s390_legitimize_address): ... this.
1509 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
1510 (sparc_legitimize_address): ... this.
1511 * gcc/config/i386/i386.c (legitimize_address): Rename to...
1512 (ix86_legitimize_address): ... this.
1513 * gcc/config/avr/avr.c (legitimize_address): Rename to...
1514 (avr_legitimize_address): ... this.
1515 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
1516 (mn10300_legitimize_address): ... this.
1517 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
1518 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
1519 (alpha_expand_mov): Adjust call.
1520
1521 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
1522 * config/spu/spu.c (spu_legitimize_address): Likewise.
1523 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
1524 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
1525
a3af5087
JM
15262009-05-04 Joseph Myers <joseph@codesourcery.com>
1527
1528 * intl.c (locale_encoding, locale_utf8): New.
1529 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
1530 * intl.h (locale_encoding, locale_utf8): Declare.
1531 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
1532 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
1533 New.
1534 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
1535 argument.
1536 (pp_tree_identifier): Define to call pp_base_tree_identifier.
1537 (pp_base_tree_identifier): Declare as function.
1538 (identifier_to_locale): Declare.
1539 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 1540 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 1541
ea5cd5f1
RG
15422009-05-04 Richard Guenther <rguenther@suse.de>
1543
1544 PR middle-end/40015
1545 * builtins.c (fold_builtin_memory_op): Do not decay to element
1546 type if the size matches the whole array.
1547
ddc2690a
KH
15482009-05-04 Kazu Hirata <kazu@codesourcery.com>
1549
1550 * expmed.c (synth_mult): When trying out a shift, pass the result
1551 of a signed shift.
1552
ef268d34
KH
15532009-05-04 Kazu Hirata <kazu@codesourcery.com>
1554
1555 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
1556 (shiftsub1_cost): New.
1557 (init_expmed): Compute shiftsub1_cost.
1558 (synth_mult): Optimize multiplications by constants of the form
1559 -(2^^m-1) for some constant positive integer m.
1560
255d3827
RG
15612009-05-03 Richard Guenther <rguenther@suse.de>
1562
1563 PR c/39983
1564 * c-typeck.c (array_to_pointer_conversion): Do not built
1565 ADDR_EXPRs of arrays of pointer-to-element type.
1566 * c-gimplify.c (c_gimplify_expr): Revert change fixing
1567 up wrong ADDR_EXPRs after-the-fact.
1568 * c-common.c (strict_aliasing_warning): Strip pointer
1569 conversions for obtaining the original type.
1570 * builtins.c (fold_builtin_memset): Handle array types.
1571 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
1572 and array types
1573
16c33770
RG
15742009-05-03 Richard Guenther <rguenther@suse.de>
1575
1576 PR middle-end/23329
1577 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
1578 Do not lose casts from array types with unknown extent to array
1579 types with known extent.
1580 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
1581 alias set compatibility.
1582
62a67c94
MLI
15832009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
1584
1585 * flags.h (extra_warnings): Delete.
1586 * toplev.c (process_options): Handle Wuninitialized here.
1587 * opts.c (extra_warnings): Delete.
1588 (set_Wextra): Delete.
1589 (common_handle_option): -Wextra can be handled automatically.
1590 * c-opts.c (c_common_handle_option): Delete obsolete code.
1591 (c_common_post_options): Simplify comment.
1592 * common.opt (W): Add Var.
1593 (Wextra): Add Var.
1594 (Wuninitialized): Initialize to -1.
1595
8c7926c4
AN
15962009-05-03 Adam Nemet <anemet@caviumnetworks.com>
1597 Richard Guenther <rguenther@suse.de>
1598
1599 * expr.c (get_def_for_expr): New function.
1600 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
1601 SSA rather than trees.
1602 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
1603 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
1604
fa5da7de
JM
16052009-05-03 Joseph Myers <joseph@codesourcery.com>
1606
1607 * c-common.c (reswords): Add _Imaginary.
1608 * c-common.c (enum rid): Add RID_IMAGINARY.
1609
2ddd5020
PB
16102009-05-03 Paolo Bonzini <bonzini@gnu.org>
1611
1612 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
1613 Patch by Richard Guenther.
1614
aea88c05
AS
16152009-05-03 Anatoly Sokolov <aesok@post.ru>
1616
1617 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
1618 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1619 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
1620 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
1621 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
1622 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
1623 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
1624 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
1625 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
1626 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
1627 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
1628 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
1629 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
1630 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
1631 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
1632 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
1633 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
1634 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
1635
85e59f3a
RG
16362009-05-02 Richard Guenther <rguenther@suse.de>
1637
1638 PR tree-optimization/39940
1639 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
1640 doing so.
1641
4636b850
RG
16422009-05-02 Richard Guenther <rguenther@suse.de>
1643
1644 PR middle-end/40001
1645 * tree-ssa.c (execute_update_addresses_taken): Properly check
1646 if we can mark a variable DECL_GIMPLE_REG_P.
1647 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
1648 back to the end of the function.
1649 (is_gimple_reg_type): Remove complex type special casing.
1650 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
1651 if not optimizing.
1652
5e10cb5a
BE
16532009-05-02 Ben Elliston <bje@au.ibm.com>
1654
1655 * doc/collect2.texi (Collect2): Document search path behaviour
1656 when configured with --with-ld.
1657
048bf48b
JH
16582009-05-02 Jan Hubicka <jh@suse.cz>
1659
1660 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
1661 parameter; update callers.
aa016ff7
UB
1662 (coalesce_cost_edge): EH edges are costier because they needs
1663 splitting even if not critical and even more costier when there are
1664 multiple EH predecestors.
048bf48b 1665
d5c5f9ab
JH
16662009-05-02 Jan Hubicka <jh@suse.cz>
1667
1668 * except.c (remove_eh_handler_and_replace): Handle updating after
1669 removing TRY blocks.
1670
2ed1959a
EB
16712009-05-02 Eric Botcazou <ebotcazou@adacore.com>
1672
1673 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
1674
d363a7e7
SB
16752009-05-02 Steven Bosscher <steven@gcc.gnu.org>
1676
1677 * varasm.c: Do not include c-pragma.h.
1678 * attribs.c: Do not incude c-common.h.
1679
9c3d55b4
MM
16802009-05-01 Michael Matz <matz@suse.de>
1681
1682 * calls.c (initialize_argument_information): Handle SSA names like
1683 decls with a non MEM_P DECL_RTL.
1684
ea264ca5
SB
16852009-05-01 Steven Bosscher <steven@gcc.gnu.org>
1686
1687 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
1688 * ipa-utils.c: Likewise.
1689 * ipa-type-escape.c: Likewise.
1690 * cgraphunit.c Do not include c-common.h.
1691 * ipa-pure-const.c: Likewise.
1692 * tree-if-conv.c: Likewise.
1693 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
1694 * ipa-struct-reorg.c: Likewise.
1695 * tree-nomudflap.c: Likewise.
1696 * tree-ssa-structalias.c: Likewise.
1697
6c5d4d1a
SB
16982009-05-01 Steven Bosscher <steven@gcc.gnu.org>
1699
1700 * store-motion.c: Many cleanups to make this pass a first-class
1701 citizen instead of an appendix to gcse load motion. Add TODO list
1702 to make this pass faster/cleaner/better.
1703
1704 (struct ls_expr): Post gcse.c-split cleanups.
1705 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
1706 "stores" field to "avail_stores".
1707 (pre_ldst_mems): Rename to store_motion_mems.
1708 (pre_ldst_table): Rename to store_motion_mems_table.
1709 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
1710 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
1711 (ldst_entry): Rename to st_expr_entry, update users.
1712 (free_ldst_entry): Rename to free_st_expr_entry, update users.
1713 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
1714 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
1715 update caller.
6c5d4d1a
SB
1716 (first_ls_expr): Rename to first_st_expr, update users.
1717 (next_ls_expr): Rename to next_st_expr, update users.
1718 (print_ldst_list): Rename to print_store_motion_mems. Print names of
1719 fields properly for store motion instead of names inherited from load
1720 motion in gcse.c.
1721 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
1722 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
1723 are done with it.
1724
1725 (ae_kill): Rename to st_kill, update users.
1726 (ae_gen): Rename to st_avloc, update users.
1727 (transp): Rename to st_transp, update users.
1728 (pre_insert_map): Rename to st_insert_map, update users.
1729 (pre_delete_map): Rename to st_delete_map, update users.
1730 (insert_store, build_store_vectors, free_store_memory,
1731 one_store_motion_pass): Update for abovementioned changes.
1732
1733 (gcse_subst_count, gcse_create_count): Remove.
1734 (one_store_motion_pass): New statistics counters "n_stores_deleted"
1735 and "n_stores_created", local variables.
1736
1737 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
1738 use for_each_rtx.
1739
1740 (regvec, compute_store_table_current_insn): Remove.
1741 (reg_set_info, reg_clear_last_set): Remove.
1742 (compute_store_table): Use DF caches instead of local dataflow
1743 solvers.
1744
b02cec6e
JM
17452009-05-01 Joseph Myers <joseph@codesourcery.com>
1746
1747 * c-objc-common.c (c_tree_printer): Print identifiers with
1748 pp_identifier, not pp_string. Mark "({anonymous})" for
1749 translation.
1750 * c-pretty-print.c (pp_c_ws_string): New.
1751 (pp_c_cv_qualifier, pp_c_type_specifier,
1752 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
1753 pp_c_storage_class_specifier, pp_c_function_specifier,
1754 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
1755 pp_c_primary_expression, pp_c_postfix_expression,
1756 pp_c_unary_expression, pp_c_shift_expression,
1757 pp_c_relational_expression, pp_c_equality_expression,
1758 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
1759 use pp_string and pp_c_ws_string in place of pp_identifier and
1760 pp_c_identifier for non-identifiers. Mark English strings for
1761 translation.
1762 * c-pretty-print.h (pp_c_ws_string): Declare.
1763
cd533689
PP
17642009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
1765 Roland McGrath <roland@redhat.com>
1766
aa016ff7 1767 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
1768 (ENABLE_LD_BUILDID): New configuration option.
1769 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
1770 (LINK_BUILDID_SPEC): New macro.
1771 (init_spec): If defined, prepend it between LINK_EH_SPEC and
1772 link_spec.
1773 * doc/install.texi: Document --enable-linker-build-id option.
1774 * configure: Rebuild.
1775 * config.in: Rebuild.
1776
ba6adec4
AN
17772009-04-30 Adam Nemet <anemet@caviumnetworks.com>
1778
1779 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
1780 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
1781 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
1782 MIPS_GP_SAVE_AREA_SIZE.
1783 * config/mips/mips.c (struct mips_frame_info): Update comment
1784 before arg_pointer_offset and hard_frame_pointer_offset.
1785 (mips_compute_frame_info): Update diagram before function: to
1786 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
1787 indicate the position of frame_pointer_rtx with -fstack-protector and
1788 to show args_size. Don't allocate cprestore area for leaf functions
1789 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
1790 cprestore_size.
1791 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
1792
48f5b722
MM
17932009-04-30 Michael Matz <matz@suse.de>
1794
ba6adec4
AN
1795 PR tree-optimization/39955
1796 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 1797
b65d6744
DK
17982009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
1799
1800 * ira.c (setup_cover_and_important_classes): Use safe macro
1801 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
1802 directly.
1803 * genpreds.c (write_tm_preds_h): Output suitable definition of
1804 REG_CLASS_FOR_CONSTRAINT.
1805
f136c8ae
RAE
18062009-04-30 Rafael Avila de Espindola <espindola@google.com>
1807
1808 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
1809 instead of an int.
1810 * bitmap.c (bitmap_descriptor): Likewise.
1811 * ggc-common.c (loc_descriptor): Likewise.
1812 * varray.c (varray_descriptor): Likewise.
1813 * vec.c (vec_descriptor): Likewise.
1814
43fcece8 18152009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
1816
1817 * Makefile.in (dce.o): Add $(EXCEPT_H).
1818 * dce.c: Include except.h and delete redundant vector definitions.
1819 (deletable_insn_p): Return false for non-call insns that can throw
1820 if DF is running.
1821
df35c271
SB
18222009-04-30 Steven Bosscher <steven@gcc.gnu.org>
1823
1824 * gcse.c (ae_gen): Remove.
1825 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
1826 and make non-static function to make it available in store-motion.c.
1827 Update call sites with search-and-replace.
1828 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
1829 extract_mentioned_regs, extract_mentioned_regs_helper,
1830 find_moveable_store, compute_store_table, load_kills_store, find_loads,
1831 store_killed_in_insn, store_killed_after, store_killed_before,
1832 build_store_vectors, insert_insn_start_basic_block, insert-store,
1833 remove_reachable_equiv_notes, replace_store_insn, delete_store,
1834 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
1835 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
1836 * store-motion.c: ...new file. Also copy data structures from gcse.c
1837 and clean up to remove parts not used by store motion.
1838 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
1839 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
1840
f711a87a
RR
18412009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1842
1843 PR target/38571
1844 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
1845 when optimizing for size.
1846
fa5ed76e
HPN
18472009-04-30 Hans-Peter Nilsson <hp@axis.com>
1848
1849 * gcse.c (gcse_constant_p): Fix typo in last change.
1850
0acbbdb0
RAE
18512009-04-30 Rafael Avila de Espindola <espindola@google.com>
1852
1853 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
1854
82f5c05d
AK
18552009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
1856
1857 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
1858
6d8f135b
JW
18592009-04-29 James E. Wilson <wilson@codesourcery.com>
1860
1861 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
1862 CONST_HIGH_PART result.
1863
c21ca196
AS
18642009-04-29 Anatoly Sokolov <aesok@post.ru>
1865
1866 * config/avr/avr.c (initial_elimination_offset): Rename to
1867 avr_initial_elimination_offset.
1868 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
1869 change return type to bool.
1870 (avr_can_eliminate): New function.
1871 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
1872 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
1873 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 1874 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
1875 avr_initial_elimination_offset.
1876 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
1877 (avr_initial_elimination_offset): Define.
1878
2a34bece 18792009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 1880 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
1881
1882 PR rtl-optimization/39938
1883 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
1884 * cfgrtl.c: Include insn-attr.h.
1885 (rest_of_pass_free_cfg): New function.
1886 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
1887 * resource.c (init_resource_info): Remove call to df_analyze.
1888
5dc7911e
RG
18892009-04-29 Richard Guenther <rguenther@suse.de>
1890
1891 PR target/39943
1892 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
1893 allow conversion to signed integers.
1894
1fe479fd
RG
18952009-04-29 Richard Guenther <rguenther@suse.de>
1896
1897 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
1898 shifts of floating point vectors if the shift amount is
1899 a constant multiple of the element size.
1900
8e001680
AK
19012009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
1902 Michael Matz <matz@suse.de>
1903
1904 PR middle-end/39927
1905 PR bootstrap/39929
1906 * tree-outof-ssa.c (emit_partition_copy): New function.
1907 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
1908 insert_part_to_rtx_on_edge): Perform the partition base var
1909 copy using emit_partition_copy.
1910 (insert_value_copy_on_edge): Convert constants to the right mode.
1911 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
1912 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
1913
e50e3081
BS
19142009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1915
1916 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
1917 scan backwards to try to find a constant to initialize it.
1918
4e5d521b
BS
1919 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
1920 insn before the loop_end instruction, don't look past labels.
1921
7c90021d
RG
19222009-04-29 Richard Guenther <rguenther@suse.de>
1923
1924 PR middle-end/39937
1925 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
1926 loose type conversions.
1927 (forward_propagate_addr_expr): Fix tuplification bug. Remove
1928 stmts only if there are no uses of its definition.
1929
97a988bc
BS
19302009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1931
1932 * config/bfin/bfin.h (splitting_loops): Declare.
1933 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
1934 Reorder bit definitions to be ascending.
1935 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
1936 * config/bfin/bfin.c (splitting_loops): New variable.
1937 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
1938 (struct loop_info): Remove members INIT and LOOP_INIT.
1939 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
1940 the LSETUP sequence. Allow LC to be loaded from any register, but
1941 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
1942 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
1943 set to 1.
1944 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
1945 of reload_completed.
aa016ff7 1946
97a988bc
BS
1947 From Jie Zhang:
1948 * config/bfin/bfin.md (movsi_insn): Refine constraints.
1949
0c463e16
RAE
19502009-04-29 Rafael Avila de Espindola <espindola@google.com>
1951
1952 * Makefile.in (PLUGIN_VERSION_H): New.
1953 (OBJS-common): Remove plugin-version.o.
1954 (plugin.o): Depend on (PLUGIN_VERSION_H).
1955 (plugin-version.o): Remove.
1956 * configure: Regenerate
1957 * configure.ac: Create plugin-version.h.
1958 * gcc-plugin.h (plugin_gcc_version): Remove.
1959 (plugin_default_version_check): Change signature.
1960 * plugin-version.c: Remove.
1961 * plugin.c: Include plugin-version.h.
1962 (str_plugin_gcc_version_name): Remove.
1963 (try_init_one_plugin): Pass gcc version to plugin_init.
1964 (plugin_default_version_check): Both gcc and plugin versions are now
1965 arguments.
1966
307e7eab
BS
19672009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1968
1969 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
1970 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
1971 Remove special case testing for last insn of inner loops. Don't fail
1972 if the loop ends with a jump, emit an extra nop instead.
307e7eab 1973
c5d96723
BS
1974 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
1975 DREGS rather than comparing directly. Remove code that tries to
1976 account for latencies.
1977
de0b4ad5
RG
19782009-04-29 Richard Guenther <rguenther@suse.de>
1979
1980 PR tree-optimization/39941
1981 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
1982 eliminating an indirect call.
1983
3a19701a
RG
19842009-04-29 Richard Guenther <rguenther@suse.de>
1985
1986 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
1987 parameter. Allow invariants as base if !require_lvalue.
1988 (verify_gimple_assign_single): Adjust.
1989
a0a31d1e
BS
19902009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1991
1992 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
1993 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
1994 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
1995 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
1996 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
1997 a VEC_SELECT.
aa016ff7
UB
1998 * config/bfin/bfin.c (bfin_expand_builtin,
1999 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 2000
795bd26a
RG
20012009-04-28 Richard Guenther <rguenther@suse.de>
2002
2003 * tree-vect-loop.c (get_initial_def_for_induction): Use
2004 correct types for pointer increment.
2005
04be270f
KG
20062009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2007
2008 * toplev.c (print_version): Update GMP version string calculation.
2009
e1a3b85c
EB
20102009-04-28 Eric Botcazou <ebotcazou@adacore.com>
2011
2012 PR rtl-optimization/39938
2013 * resource.c (init_resource_info): Add call to df_analyze.
2014
8224166e
UB
20152009-04-28 Uros Bizjak <ubizjak@gmail.com>
2016
2017 * config/alpha/alpha.md (usegp): Cast the result of
2018 alpha_find_lo_sum_using_gp to enum attr_usegp.
2019 * config/alpha/alpha.c (override_options): Remove end-of-structure
2020 marker element from cpu_table. Use array size of cpu_table to handle
2021 -mcpu and -mtune options.
2022 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2023
c5f0fe67
JM
20242009-04-28 Joseph Myers <joseph@codesourcery.com>
2025
2026 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
2027 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
2028 tune_32 and tune_64.
2029 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2030 support on PowerPC.
2031 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
2032 * config/rs6000/option-defaults.h: ... here. New file.
2033 (OPT_64, OPT_32): Define.
2034 (MASK_64BIT): Define to 0 if not already defined.
2035 (OPT_ARCH64, OPT_ARCH32): Define.
2036 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
2037 and tune_64.
2038
0c48a567
RR
20392009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2040
2041 * config/arm/arm.c (arm_override_options): Emit error on using
2042 fpa with AAPCS.
2043
f1028b9d
UB
20442009-04-28 Uros Bizjak <ubizjak@gmail.com>
2045
2046 PR rtl-optimization/39914
2047 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2048 registers for allocnos created from user-defined variables only
2049 when not optimizing.
2050
e0dd989a
RG
20512009-04-28 Richard Guenther <rguenther@suse.de>
2052
2053 PR middle-end/39937
2054 * fold-const.c (fold_binary): Use distribute_real_division only
2055 on float types.
2056
9a17c91d
SE
20572009-04-28 Steve Ellcey <sje@cup.hp.com>
2058
2059 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
2060 add hpux-stdint.h to tm_file.
2061 (hppa[12]*-*-hpux11*): Ditto.
2062 (ia64*-*-hpux*): Ditto.
2063 * config/hpux-stdint.h: New.
60839f5d 2064 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 2065 __STDC_EXT__ for all compiles.
60839f5d
EB
2066 * config/pa/pa-hpux.h: Ditto.
2067 * config/pa/pa-hpux10.h: Ditto.
2068 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 2069
af04e659
CM
20702009-04-28 Catherine Moore <clm@codesourcery.com>
2071
2072 * debug.h (set_name): Add comment.
2073
04ef80ce
AP
20742009-04-28 Andrew Pinski <pinskia@gmail.com>
2075
2076 PR target/39929
2077 * config/darwin.c (machopic_gen_offset): Check
2078 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2079 * config/arm/arm.c (require_pic_register): Likewise.
2080
65ad77af
PB
20812009-04-28 Paolo Bonzini <bonzini@gnu.org>
2082
8224166e
UB
2083 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2084 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2085 m32c_promote_prototypes): Delete.
65ad77af 2086
1b15a008
MM
20872009-04-28 Michael Matz <matz@suse.de>
2088
2089 PR middle-end/39922
2090 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2091 constants.
2092
7569a6cc
RG
20932009-04-28 Richard Guenther <rguenther@suse.de>
2094
f1028b9d 2095 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 2096
ead204d9
RR
20972009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2098
2099 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2100 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2101 * config/arm/arm-tune.md: Regenerate.
2102
f2c45f08 21032009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 2104
f2c45f08
AM
2105 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2106 block if there are complex incoming edges.
2107 (sel_merge_blocks): Remove useless assert.
2108 (sel_redirect_edge_and_branch): Check that edge was redirected.
2109 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2110 (sel_find_rgns): Delete declaration.
2111 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2112 the region when it is not a preheader.
2113
7a00d767
UB
21142009-04-28 Uros Bizjak <ubizjak@gmail.com>
2115
2116 PR c/39323
2117 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2118
448ee662
RG
21192009-04-28 Richard Guenther <rguenther@suse.de>
2120
2121 * tree.h (SSA_NAME_VALUE): Remove.
2122 (struct tree_ssa_name): Remove value_handle member.
2123 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2124 array for jump threading.
2125 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2126 SSA_NAME_VALUEs.
2127 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2128 * tree-flow.h (threadedge_initialize_values): Declare.
2129 (threadedge_finalize_values): Likewise.
2130 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2131 (SSA_NAME_VALUE): Define.
2132 (threadedge_initialize_values): New function.
2133 (threadedge_finalize_values): Likewise.
2134 * tree-ssa-dom.c (ssa_name_values): New global variable.
2135 (SSA_NAME_VALUE): Define.
f1028b9d 2136 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 2137
8644a673
IR
21382009-04-28 Ira Rosen <irar@il.ibm.com>
2139
2140 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2141 Use REPORT_VECTORIZED_LOCATIONS instead
2142 REPORT_VECTORIZED_LOOPS.
2143 * tree-vectorizer.c (vect_verbosity_level): Make static.
2144 (vect_loop_location): Rename to vect_location.
2145 (vect_set_verbosity_level): Update comment.
2146 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2147 and vect_location.
2148 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2149 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2150 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
2151 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2152 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 2153 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 2154 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
2155 REPORT_UNVECTORIZED_LOCATIONS.
2156 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2157 and vect_used_in_loop and to vect_unused_in_scope and
2158 vect_used_in_scope.
2159 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2160 (vect_verbosity_level): Remove declaration.
2161 (vect_analyze_operations): Likewise.
2162 (vect_analyze_stmt): Declare.
2163 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2164 REPORT_UNVECTORIZED_LOCATIONS.
2165 (vect_get_loop_niters): Fix indentation.
2166 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2167 (vect_analyze_loop_operations): New function.
2168 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2169 vect_analyze_operations.
2170 (vect_is_simple_reduction): Use new names.
2171 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
2172 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2173 to specify whether the data references can be a part of interleaving
2174 chain.
8644a673
IR
2175 (vect_analyze_data_ref_dependence): Use new names.
2176 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2177 (vect_create_addr_base_for_vector_ref): Remove redundant code.
2178 * tree-vect-patterns.c (widened_name_p): Use new names.
2179 (vect_recog_dot_prod_pattern): Likewise.
2180 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2181 (process_use, vect_mark_stmts_to_be_vectorized,
2182 vect_model_simple_cost, vect_model_store_cost,
2183 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2184 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2185 vectorizable_operation, vectorizable_type_demotion,
2186 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2187 vectorizable_condition): Likewise.
2188 (vect_analyze_operations): Split into vect_analyze_loop_operations
2189 and ...
2190 (vect_analyze_stmt): ... new function.
2191 (new_stmt_vec_info): Use new names.
2192 (vect_is_simple_use): Use new names and fix comment.
2193 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2194 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2195
b91322f2
UB
21962009-04-28 Uros Bizjak <ubizjak@gmail.com>
2197
2198 PR target/39911
2199 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2200 and integer modes for x87 operands. Do not ICE for unsupported size,
2201 generate error instead. Generate error for unsupported operand types.
2202 ['z']: Do not handle HImode memory operands specially. Warning
2203 for floating-point operands. Fallthru to 'Z' for unsupported operand
2204 types. Do not ICE for unsupported size, generate error instead.
2205 (output_387_binary_op): Use %Z to output operands.
2206 (output_fp_compare): Ditto.
2207 (output_387_reg_move): Ditto.
2208
b2ed71b6
BE
22092009-04-28 Ben Elliston <bje@au.ibm.com>
2210
2211 PR c++/35652
2212 Revert:
2213
2214 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2215
2216 * builtins.c (c_strlen): Do not warn here.
2217 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2218 * c-common.c (pointer_int_sum): Take an explicit location.
2219 Warn about offsets out of bounds.
2220 * c-common.h (pointer_int_sum): Adjust declaration.
2221
81f40b79
ILT
22222009-04-27 Ian Lance Taylor <iant@google.com>
2223
2224 * collect2.c (is_ctor_dtor): Change type of ret field in struct
2225 names to symkind.
2226 * dce.c (run_fast_df_dce): Change type of old_flags to int.
2227 * df-core.c (df_set_flags): Change return type to int. Change
2228 type of old_flags to int.
2229 (df_clear_flags): Likewise.
2230 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2231 (df_get_conditional_uses): Likewise.
2232 * df.h (df_set_flags, df_clear_flags): Update declarations.
2233 * dwarf2out.c (struct indirect_string_node): Change type of form
2234 field to enum dwarf_form.
2235 (AT_string_form): Change return type to enum dwarf_form.
2236 * fixed-value.c (fixed_compare): Add cast to enum type.
2237 * fwprop.c (update_df): Change 0 to VOIDmode.
2238 * gensupport.c: Change 0 to UNKNOWN.
2239 * gimple.h (gimple_cond_code): Add cast to enum type.
2240 * haifa-sched.c (reemit_notes): Add cast to enum type.
2241 * hooks.c (hook_int_void_no_regs): Remove function.
2242 * hooks.h (hook_int_void_no_regs): Remove declaration.
2243 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 2244 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
2245 * real.c (real_arithmetic): Add cast to enum type.
2246 (real_compare): Likewise.
2247 * target.h (struct gcc_target): Change return type of
2248 branch_target_register_class to enum reg_class.
2249 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2250 default_branch_target_register_class.
7a00d767 2251 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 2252 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 2253 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
2254 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2255 cast to int.
2256 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2257 ERROR_MARK.
2258 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2259 vect_uninitialized_def. Change 0 to ERROR_MARK.
2260 * tree-vect-stmts.c (supportable_widening_operation): Don't
2261 initialize icode1 and icode2.
7a00d767 2262 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
2263 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2264 and to STD_C89.
2265 (cmn_err_flag_specs): Change 0 to STD_C89.
2266 (cmn_err_char_table): Likewise.
2267 * config/arm/arm.c (get_arm_condition_code): Change type of code
2268 to enum arm_cond_code.
2269 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2270 (IWMMXT_BUILTIN2): Likewise.
2271 (neon_builtin_type_bits): Don't define typedef.
2272 (neon_builtin_datum): Change type of bits field to int.
2273 (arm_expand_neon_args): Add cast to enum type.
2274 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2275 TLS_MODEL_NONE.
2276 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
2277 casts to enum type.
2278 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2279 MIPS_FP_COND_f.
2280 * config/mips/mips.md (jal_macro): Return enum constant.
2281 (single_insn): Likewise.
2282 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2283 CODE_FOR_nothing.
2284 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2285 casts to enum type.
2286 * config/s390/s390.c (s390_tune_flags): Change type to int.
2287 (s390_arch_flags): Likewise.
7a00d767 2288 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
2289 * config/s390/s390.h (s390_tune_flags): Update declaration.
2290 (s390_arch_flags): Likewise.
2291 * config/sh/sh.c (prepare_move_operands): Compare
2292 tls_symbolic_operand result with enum constant.
2293 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2294 (sh_expand_prologue): Add cast to enum type.
2295 (sh_expand_epilogue): Likewise.
2296 (tls_symbolic_operand): Change return type to enum tls_model.
2297 (fpscr_set_from_mem): Add cast to enum type.
2298 (legitimize_pic_address): Compare tls_symbolic_operand result with
2299 enum constant.
2300 (sh_target_reg_class): Change return type to enum reg_class.
2301 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2302 PROCESSOR_xxx.
7a00d767
UB
2303 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2304 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
2305 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2306 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2307 (delayed_branch, tls_call_delay): Likewise.
2308 (eligible_for_sibcall_delay): Likewise.
2309 (eligible_for_return_delay): Likewise.
2310 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2311 (spu_expand_builtin_1): Likewise.
2312
2313 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2314 for all types of conversions.
2315 (output_init_element): Issue -Wc++-compat warning if needed when
2316 initializing a bitfield with enum type.
2317 * c-parser.c (c_parser_expression): Set original_type to
2318 original_type of right hand operand of comman operator.
2319
e4ae5e77
RW
23202009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2321
2322 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2323 grammar nits.
7a00d767 2324 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
2325 * doc/cpp.texi (Standard Predefined Macros)
2326 (Implementation-defined behavior): Likewise.
7a00d767 2327 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
2328 * doc/gimple.texi (GIMPLE Exception Handling)
2329 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 2330 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
2331 * doc/invoke.texi (Warning Options, Optimize Options)
2332 (AVR Options, Darwin Options): Likewise.
2333 (Optimize Options): Reformulate -fwhole-program description.
2334 * doc/loop.texi (Lambda): Likewise.
2335 * doc/md.texi (Output Template, Define Constraints)
2336 (Standard Names, Insn Splitting): Likewise.
2337 * doc/options.texi (Option properties): Likewise.
2338 * doc/passes.texi (Tree-SSA passes): Likewise.
2339 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2340 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2341 (File Names and DBX): Likewise.
2342 * doc/trouble.texi (Incompatibilities): Likewise.
2343
1883802f 23442009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
2345
2346 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2347 instruction is correct.
2348
1883802f 23492009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
2350
2351 Allow non-constant arguments to conversion intrinsics.
2352 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2353 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2354 * spu.c (print_operand): Handle 'v' and 'w'.
2355 (exp2_immediate_p, spu_gen_exp2): Define.
2356 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2357 spu_convtf_1): Update parameter descriptions.
7a00d767 2358 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
2359 * constraints.md ('v', 'w'): New.
2360 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2361 Remove.
2362 (i2f, I2F): New define_mode_attr.
2363 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2364 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2365 fixuns_truncv4sfv4si2): Update to use mode attribute.
2366 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2367 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2368 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2369 patterns for combine.
2370
5f39ad47
SB
23712009-04-27 Steven Bosscher <steven@gcc.gnu.org>
2372
2373 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2374 (cprop, hoist, pre, store_motion): New debug counters.
2375 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2376 is not an RTL pass anymore.
2377 (pass_profiling): Remove extern decl for pass removed in 2005.
2378 (pass_gcse, pass_jump_bypass): Remove.
2379 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2380 to 0 for clean state.
2381 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2382 * cse.c (gate_handle_cse_after_global_opts,
2383 rest_of_handle_cse_after_global_opts): New functions.
2384 (pass_cse_after_global_opts): New pass, does local CSE.
2385 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2386 (TV_CPROP): New timevar.
2387 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2388 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2389 (gcse_main, recompute_all_luids): Remove.
2390 (compute_hash_table_work): Call max_reg_num instead of reading
2391 max_gcse_regno.
2392 (cprop_jump): Don't set run_jump_opt_after_gcse.
2393 (constprop_register): Always allow to alter jumps.
2394 (cprop_insn): Likewise.
2395 (do_local_cprop): Likewise.
2396 (local_cprop_pass): Likewise. Return non-zero if something changed.
2397 (cprop): Remove function, fold interesting bits into one_cprop_pass.
2398 (find_implicit_sets): Add note about missed optimization opportunity.
2399 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2400 pass_rtl_cprop execute function.
2401 Don't bother tracking the pass number, each pass gets its own dumpfile
2402 now anyway.
2403 Always allow to alter jumpsand bypass jumps.
2404 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
2405 will just find no suitable set.
2406 (pre_edge_insert): Fix dumping, this function is for PRE only.
2407 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
2408 pass_rtl_pre execute function.
2409 (hoist_code): Return non-zero if something changed. Keep track of
2410 substitutions and insertions for statistics gathering similar to PRE.
2411 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
2412 called from the pass_rtl_hoist execute function. Show pass statistics.
2413 (compute_store_table): Use max_reg_num directly instead of using the
2414 formerly global max_gcse_regno.
2415 (build_store_vectors): Likewise.
2416 (replace_store_insn): Fix dumping.
2417 (store_motion): Rename to ...
2418 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
2419 pass, called from the pass_rtl_store_motion execute function. Keep
2420 track of substitutions and insertions for statistics gathering similar
2421 to PRE.
2422 (bypass_jumps): Remove, fold interesting bits into ...
2423 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
2424 from the pass_rtl_cprop execute function.
2425 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
2426 pass_jump_bypass): Remove.
2427 (gate_handle_gcse, rest_of_handle_gcse): Remove.
2428 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
2429 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
2430 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
2431 (gate_rtl_store_motion, execute_rtl_store_motion,
2432 pass_rtl_store_motion): New.
2433 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
2434 make it clear that -fcse-skip-blocks is a no-op for backward compat.
2435 * passes.c (init_optimization_passes): Remove pass_gcse and
2436 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
2437 and cse_after_global_opts in place of pass_gcse. Schedule cprop
2438 instead of pass_jump_bypass.
2439
c685de4a
RG
24402009-04-27 Richard Guenther <rguenther@suse.de>
2441
2442 PR middle-end/39928
2443 * gimplify.c (gimplify_expr): If we are required to create
2444 a temporary make sure it ends up as register.
2445
72d41f29
L
24462009-04-27 H.J. Lu <hongjiu.lu@intel.com>
2447
2448 PR target/39903
2449 * config/i386/i386.c (construct_container): Don't call
2450 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
2451 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
2452
e97809c6
MM
24532009-04-27 Michael Matz <matz@suse.de>
2454
2455 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
2456 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
2457 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
2458 (dump_replaceable_exprs): Take a bitmap.
2459 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
2460 array.
2461 (expand_gimple_basic_block): Likewise.
2462 * tree-ssa-ter.c (struct temp_expr_table_d): Make
2463 replaceable_expressions member a bitmap.
2464 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
2465 (mark_replaceable): Likewise.
2466 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
2467 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
2468
211ca15c
RG
24692009-04-27 Richard Guenther <rguenther@suse.de>
2470
2471 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
2472 (verify_stmts): Dispatch to gimple/type verification code.
2473 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
2474 issue with call argument types.
2475
fca5f3d1
MM
24762009-04-27 Michael Matz <matz@suse.de>
2477
2478 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
2479 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
2480 to above.
2481
a1fa3e79 24822009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 2483 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
2484
2485 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
2486 a label's basic block.
2487 (mark_target_live_regs): Tidy and rework obsolete comments.
2488 Change back DF problem to LIVE. If a label starts a basic block,
2489 assume that all registers that used to be live then still are.
2490 (init_resource_info): If a label starts a basic block, set its
2491 BLOCK_FOR_INSN accordingly.
2492 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
2493
33b223c0
RG
24942009-04-27 Richard Guenther <rguenther@suse.de>
2495
2496 * tree-flow-inline.h (function_ann): Remove.
2497 (get_function_ann): Likewise.
2498 * tree-dfa.c (create_function_ann): Remove.
2499 * tree-flow.h (struct static_var_ann_d): Remove.
2500 (struct function_ann_d): Likewise.
2501 (union tree_ann_d): Remove fdecl member.
2502 (function_ann_t): Remove.
2503 (function_ann, get_function_ann, create_function_ann): Remove
2504 declarations.
2505
e3136fa2
UB
25062009-04-27 Uros Bizjak <ubizjak@gmail.com>
2507
2508 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
2509
f87c9042
JH
25102009-04-27 Jan Hubicka <jh@suse.cz>
2511
2512 * ipa-pure-const.c (struct funct_state_d): New fields
2513 state_previously_known, looping_previously_known; remove
2514 state_set_in_source.
2515 (analyze_function): Use new fields.
2516 (propagate): Avoid assumption that state_set_in_source imply
2517 nonlooping.
2518
2519 * tree-ssa-loop-niter.c (finite_loop_p): New function.
2520 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
2521 * cfgloop.h (finite_loop_p): Declare.
2522
33abd718
MM
25232009-04-26 Michael Matz <matz@suse.de>
2524
e3136fa2 2525 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 2526
ddc34084
MM
25272009-04-26 Michael Matz <matz@suse.de>
2528
2529 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
2530 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
2531 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
2532 pass_mark_used_blocks): Remove.
2533 * tree-optimize.c (pass_free_datastructures,
2534 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
2535 * passes.c (init_optimization_passes): Don't call
2536 pass_mark_used_blocks, remove dead code.
2537
1fec7ed4
L
25382009-04-26 H.J. Lu <hongjiu.lu@intel.com>
2539
2540 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
2541 * tree-ssa-live.h (register_ssa_partition): Likewise.
2542
4e3825db
MM
25432009-04-26 Michael Matz <matz@suse.de>
2544
2545 Expand from SSA.
2546 * builtins.c (fold_builtin_next_arg): Handle SSA names.
2547 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
2548 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
2549 SSA names.
2550 (compare_pairs): Swap cost comparison.
2551 (coalesce_ssa_name): Don't use change_partition_var.
2552 * tree-nrv.c (struct nrv_data): Add modified member.
2553 (finalize_nrv_r): Set it.
2554 (tree_nrv): Use it to update statements.
2555 (pass_nrv): Require PROP_ssa.
2556 * tree-mudflap.c (mf_decl_cache_locals,
2557 mf_build_check_statement_for): Use make_rename_temp.
2558 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
2559 * alias.c (find_base_decl): Handle SSA names.
2560 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
2561 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
2562 * rtl.h (set_reg_attrs_for_parm): Declare.
2563 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
2564 to "optimized", remove unused locals at finish.
2565 (execute_free_datastructures): Make global, call
2566 delete_tree_cfg_annotations.
2567 (execute_free_cfg_annotations): Don't call
2568 delete_tree_cfg_annotations.
2569
2570 * ssaexpand.h: New file.
2571 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 2572 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
2573 (expand_expr_real_1): Expand SSA names.
2574 * cfgexpand.c (toplevel): Include ssaexpand.h.
2575 (SA): New global variable.
2576 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
2577 (SSAVAR): New macro.
2578 (set_rtl): New helper function.
2579 (add_stack_var): Deal with SSA names, use set_rtl.
2580 (expand_one_stack_var_at): Likewise.
2581 (expand_one_stack_var): Deal with SSA names.
2582 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
2583 before unique numbers.
2584 (expand_stack_vars): Use set_rtl.
2585 (expand_one_var): Accept SSA names, add asserts for them, feed them
2586 to above subroutines.
2587 (expand_used_vars): Expand all partitions (without default defs),
2588 then only the local decls (ignoring those expanded already).
2589 (expand_gimple_cond): Remove edges when jumpif() expands an
2590 unconditional jump.
2591 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
2592 or remove abnormal edges. Ignore insns setting the LHS of a TERed
2593 SSA name.
2594 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
2595 members of SA; deal with PARM_DECL partitions here; expand
2596 all PHI nodes, free tree datastructures and SA. Commit instructions
2597 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
2598 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
2599 info and statements at start, collect garbage at finish.
2600 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
2601 (VAR_ANN_PARTITION) Remove.
2602 (change_partition_var): Don't declare.
2603 (partition_to_var): Always return SSA names.
2604 (var_to_partition): Only accept SSA names.
2605 (register_ssa_partition): Only check argument.
2606 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
2607 member.
2608 (delete_var_map): Don't free it.
2609 (var_union): Only accept SSA names, simplify.
2610 (partition_view_init): Mark only useful SSA names as used.
2611 (partition_view_fini): Only deal with SSA names.
2612 (change_partition_var): Remove.
2613 (dump_var_map): Use ssa_name instead of partition_to_var member.
2614 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
2615 basic blocks.
2616 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
2617 (struct _elim_graph): New member const_dests; nodes member vector of
2618 ints.
2619 (set_location_for_edge): New static helper.
2620 (create_temp): Remove.
2621 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 2622 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
2623 (new_elim_graph): Allocate const_dests member.
2624 (clean_elim_graph): Truncate const_dests member.
2625 (delete_elim_graph): Free const_dests member.
2626 (elim_graph_size): Adapt to new type of nodes member.
2627 (elim_graph_add_node): Likewise.
2628 (eliminate_name): Likewise.
2629 (eliminate_build): Don't take basic block argument, deal only with
2630 partition numbers, not variables.
2631 (get_temp_reg): New static helper.
2632 (elim_create): Use it, deal with RTL temporaries instead of trees.
2633 (eliminate_phi): Adjust all calls to new signature.
2634 (assign_vars, replace_use_variable, replace_def_variable): Remove.
2635 (rewrite_trees): Only do checking.
2636 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
2637 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
2638 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
2639 contains_tree_r, MAX_STMTS_IN_LATCH,
2640 process_single_block_loop_latch, analyze_edges_for_bb,
2641 perform_edge_inserts): Remove.
2642 (expand_phi_nodes): New global function.
2643 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
2644 functions, initialize new parameter, remember partitions having a
2645 default def.
2646 (finish_out_of_ssa): New global function.
2647 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
2648 don't reset in_ssa_p here, don't disable TER when mudflap.
2649 (pass_del_ssa): Remove.
2650 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
2651 partition members.
2652 (execute_free_datastructures): Declare.
2653 * Makefile.in (SSAEXPAND_H): New variable.
2654 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
2655 * basic-block.h (commit_one_edge_insertion): Declare.
2656 * passes.c (init_optimization_passes): Move pass_nrv and
2657 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
2658 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
2659 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
2660 (redirect_branch_edge): Deal with super block when expanding, split
2661 out jump patching itself into ...
2662 (patch_jump_insn): ... here, new static helper.
2663
17c665a9
MM
26642009-04-26 Michael Matz <matz@suse.de>
2665
2666 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
2667 beyond num_ssa_names.
2668 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
2669 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
2670
92061771
JJ
26712009-04-26 Jakub Jelinek <jakub@redhat.com>
2672
ce372372
JJ
2673 PR inline-asm/39543
2674 * fwprop.c (forward_propagate_asm): New function.
2675 (forward_propagate_and_simplify): Propagate also into __asm, if it
2676 doesn't increase the number of referenced registers.
2677
92061771
JJ
2678 PR c/39889
2679 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
2680
26812009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
2682
2683 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
2684 note_nonlocal_vla_type for nonlocal VLAs.
2685 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
2686 contains_remapped_vars, remap_vla_decls): New functions.
2687 (convert_nonlocal_reference_stmt): If not optimizing, call
2688 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
2689 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
2690 if it wasn't found in var_map.
2691 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
2692 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
2693 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
2694 declare_vars.
2695 * gimplify.c (nonlocal_vlas): New variable.
2696 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
2697 referenced VLAs.
2698 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 2699
4561e242
JJ
2700 * dwarf2out.c (loc_descr_plus_const): New function.
2701 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
2702 mem_loc_descriptor, loc_descriptor_from_tree_1,
2703 descr_info_loc, gen_variable_die): Use it.
2704
a9548ddf
JJ
2705 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
2706 !TREE_STATIC VAR_DECLs.
2707 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
2708 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
2709 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
2710 DECL_BY_REFERENCE is valid.
2711 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
2712 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
2713 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
2714 Copy DECL_BY_REFERENCE.
2715 (struct nesting_copy_body_data): New type.
2716 (nesting_copy_decl): New function.
2717 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
2718 if they have variable length.
2719
10555d08
MM
27202009-04-26 Michael Matz <matz@suse.de>
2721
2722 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
2723 mark new temporaries for renaming.
2724
e11187cc
JM
27252009-04-26 Joseph Myers <joseph@codesourcery.com>
2726
2727 PR c/39581
2728 * c-decl.c (global_bindings_p): Return negative value.
2729 (c_variable_size): New. Based on variable_size from
2730 stor-layout.c.
2731 (grokdeclarator): Call c_variable_size not variable_size.
2732
f6a51d31
UB
27332009-04-26 Uros Bizjak <ubizjak@gmail.com>
2734
2735 * config/i386/i386.c (print_operand) ['z']: Fix typo.
2736
4b97723d
KT
27372009-04-26 Kai Tietz <kai.tietz@onevision.com>
2738
2739 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
2740 Redefine it to just use mingw/include.
2741 (ASM_SPEC): Rules for -m32 and -m64.
2742 (LINK_SPEC): Use Likewise.
2743 (SPEC_32): New define.
2744 (SPEC_64): Likewise.
2745 (SUB_LINK_SPEC): Likewise.
2746 (MULTILIB_DEFAULTS): New define.
2747 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
2748 Add multilib options.
2749 (MULTILIB_DIRNAMES): Likewise.
2750 (MULTILIB_OSDIRNAMES): Likewise.
2751 (LIBGCC): Likewise.
2752 (INSTALL_LIBGCC): Likewise.
2753
991d6621
JM
27542009-04-26 Joseph Myers <joseph@codesourcery.com>
2755
2756 PR c/39556
2757 * c-tree.h (enum c_inline_static_type): New.
2758 (record_inline_static): Declare.
2759 * c-decl.c (struct c_inline_static, c_inline_statics,
2760 record_inline_static, check_inline_statics): New.
2761 (pop_file_scope): Call check_inline_statics.
2762 (start_decl): Call record_inline_static instead of pedwarning
2763 directly for static in inline function.
2764 * c-typeck.c (build_external_ref): Call record_inline_static
2765 instead of pedwarning directly for static referenced in inline
2766 function.
2767
4a81774c
SB
27682009-04-26 Steven Bosscher <steven@gcc.gnu.org>
2769
2770 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
2771 not new but only being rescanned.
2772 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
2773 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
2774 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
2775 record_set_info, compute_set, grealloc): Remove.
2776 (recompute_all_luids): New function.
2777 (gcse_main): Don't compute sets, and don't do related memory
2778 allocations/free-ing. If something changed before the end of the
2779 pass, update LUIDs using recompute_all_luids.
2780 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
2781 (free_gcse_mem): Don't free it either.
2782 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
2783 Use the df insn LUIDs.
2784 (load_killed_in_block): Likewise.
2785 (compute_hash_table_work): Don't compute reg_set_in_block.
2786 (compute_transp): Use DF_REG_DEF_CHAINs.
2787 (local_cprop_pass): Don't use compute_sets and related functions.
2788 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
2789 Use get_max_uid() instead of max_cuid.
2790 (insert_insn_end_basic_block, pre_insert_copy_insn,
2791 update_ld_motion_stores): Don't try to
2792 keep reg_set tables up to date.
2793 (pre_insert_copies): Use df insn LUIDs.
2794 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
2795 (reg_set_info): Don't use extra bitmap argument.
2796 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
2797 information to compute regs_set_in_block.
2798 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
2799 (bypass_jumps): Don't use compute_sets and friends.
2800
e8f99a9d
RW
28012009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2802
2803 PR testsuite/39710
2804 * opts.c (undocumented_msg): Do not leave blank even with
2805 ENABLE_CHECKING.
2806
6895bac8
JM
28072009-04-25 Joseph Myers <joseph@codesourcery.com>
2808
2809 * c-decl.c (build_enumerator): Allow values folding to integer
2810 constants but not integer constant expressions with a pedwarn if
2811 pedantic.
2812
24070fcb
JM
28132009-04-25 Joseph Myers <joseph@codesourcery.com>
2814
2815 PR c/39582
2816 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
2817 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
2818 type is an integer constant.
2819
d6d89aa1
UB
28202009-04-25 Uros Bizjak <ubizjak@gmail.com>
2821
2822 PR target/39897
2823 * config/i386/i386.c (print_operand) ['z']: Revert handling of
2824 HImode operands.
2825
92f6fd0b
JM
28262009-04-25 Joseph Myers <joseph@codesourcery.com>
2827
2828 PR c/39564
2829 * c-decl.c (grokdeclarator): Diagnose declarations of functions
2830 with variably modified return type and no storage class
2831 specifiers, except for the case of nested functions. Distinguish
2832 extern declarations of functions with variably modified return
2833 types from those of objects with variably modified types.
2834
a3710436
JH
28352009-04-25 Jan Hubicka <jh@suse.cz>
2836
2837 * tree.c (list_equal_p): New function.
2838 * tree.h (list_equal_p): Declare.
2839 * coretypes.h (edge_def, edge, const_edge, basic_block_def
2840 basic_block_def, basic_block, const_basic_block): New.
2841 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
2842 (redirect_eh_edge): New function.
2843 (make_eh_edge_update_phi): EH edges are not abnormal.
2844 * except.c: Include tree-flow.h.
2845 (list_match): New function.
2846 (eh_region_replaceable_by_p): New function.
2847 (replace_region): New function.
2848 (hash_type_list): New function.
2849 (hash_eh_region): New function.
2850 (eh_regions_equal_p): New function.
2851 (merge_peers): New function.
2852 (remove_unreachable_regions): Verify EH tree when checking;
2853 merge peers.
2854 (copy_eh_region_1): New function.
2855 (copy_eh_region): New function.
2856 (push_reachable_handler): New function.
2857 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
2858 regions without label but with live RESX.
2859 * except.h (redirect_eh_edge_to_label): New.
2860 * tree-flow.h (redirect_eh_edge): New.
2861 * coretypes.h (edge_def, edge, const_edge, basic_block_def
2862 basic_block_def, basic_block, const_basic_block): Remove.
2863 * Makefile.in (except.o): Add dependency on tree-flow.h
2864 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
2865 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
2866 Remove.
2867
3764d512
EB
28682009-04-25 Eric Botcazou <ebotcazou@adacore.com>
2869
2870 PR bootstrap/39645
2871 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
2872 on the destination of memcpy.
2873
1c62e8f2
PB
28742009-04-25 Paolo Bonzini <bonzini@gnu.org>
2875
2876 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
2877 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
2878 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
2879
496a4ef5
JH
28802009-04-25 Jan Hubicka <jh@suse.cz>
2881
2882 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
2883 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
2884 to be reached by different label than left.
2885 (update_eh_edges): Update comment; remove edge_to_remove if possible
2886 and return true if suceeded.
2887 (cleanup_empty_eh): Accept sharing map; handle shared regions.
2888 (cleanup_eh): Compute sharing map.
2889 * except.c (remove_eh_handler_and_replace): Add argument if we should
2890 update regions.
2891 (remove_unreachable_regions): Update for label sharing.
2892 (label_to_region_map): Likewise.
2893 (get_next_region_sharing_label): New function.
2894 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
2895 prev_try pointers.
2896 (remove_eh_handler): Update.
2897 (remove_eh_region_and_replace_by_outer_of): New function.
2898 * except.h (struct eh_region): Add next_region_sharing_label.
2899 (remove_eh_region_and_replace_by_outer_of,
2900 get_next_region_sharing_label): Declare.
2901 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
2902
29032009-04-25 Jan Hubicka <jh@suse.cz>
2904
2905 * tree-cfg.c (split_critical_edges): Split also edges where we can't
2906 insert code even if they are not critical.
2907
29082009-04-25 Jan Hubicka <jh@suse.cz>
2909
2910 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2911 (gimple_can_remove_branch_p): EH edges won't remove branch by
2912 redirection.
2913 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
2914 updating of non-abnormal EH edges.
2915 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2916 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
2917 (split_critical_edges): Split also edges where emitting code on them
2918 will lead to splitting later.
2919
a3a5e3d1
UB
29202009-04-25 Uros Bizjak <ubizjak@gmail.com>
2921 H.J. Lu <hongjiu.lu@intel.com>
2922
2923 PR target/39590
2924 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
2925 the configured assembler supports fildq and fistpq mnemonics.
2926 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
2927 * configure: Regenerated.
2928 * config.in: Ditto.
2929
2930 * config/i386/i386.c (print_operand): Handle 'Z'.
2931 ['z']: Remove handling of special fild/fist suffixes.
2932 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
2933 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
2934 suffix of fild insn.
2935 (*floatsi<mode>2_vector_mixed): Ditto.
2936 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
2937 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
2938 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2939 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
2940 * config/i386/gas.h (GAS_MNEMONICS): Remove.
2941
23750d7f
BE
29422009-04-25 Ben Elliston <bje@au.ibm.com>
2943
2944 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
2945 the source of a set operation.
2946
e6ff3083
AS
29472009-04-25 Anatoly Sokolov <aesok@post.ru>
2948
2949 * target.h (struct gcc_target): Add case_values_threshold field.
2950 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
2951 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
2952 * targhooks.c (default_case_values_threshold): New function.
2953 * targhooks.h (default_case_values_threshold): Declare function.
2954 * stmt.c (expand_case): Use case_values_threshold target hook.
2955 * expr.h (case_values_threshold): Remove declartation.
2956 * expr.c (case_values_threshold): Remove function.
2957 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
2958
2959 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
2960 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2961 (avr_case_values_threshold): Declare as static.
2962 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
2963
2964 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
2965 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2966 (mn10300_case_values_threshold): New function.
2967
569c72fc
L
29682009-04-24 H.J. Lu <hongjiu.lu@intel.com>
2969
2970 * ira.c (setup_cover_and_important_classes): Add enum cast.
2971
ff3cb468
VM
29722009-04-24 Vladimir Makarov <vmakarov@redhat.com>
2973
2974 * genpreds.c (write_enum_constraint_num): Output definition of
2975 CONSTRAINT_NUM_DEFINED_P macro.
2976 * ira.c (setup_cover_and_important_classes): Use
2977 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
2978
4f7be849
DD
29792009-04-24 DJ Delorie <dj@redhat.com>
2980
2981 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
2982 __SH2A_SINGLE_ONLY__ also.
2983
735b94a7
SE
29842009-04-24 Steve Ellcey <sje@cup.hp.com>
2985
2986 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
2987 (movdf_internal): Ditto.
2988 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
2989 SFmode and DFmode constants.
2990 (ia64_print_operand): Add 'G' format for printing
2991 floating point constants.
2992
77a30264
RG
29932009-04-24 Richard Guenther <rguenther@suse.de>
2994
2995 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
2996 from unsigned additions.
2997
2b6da65c
JM
29982009-04-24 Joseph Myers <joseph@codesourcery.com>
2999
3000 * c-typeck.c (set_init_index): Allow array designators that are
3001 not integer constant expressions with a pedwarn if pedantic.
3002
f5a17c43
BS
30032009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3004
3005 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
3006 zero if no overlap in nonzero bits between the operands.
3007
32e8bb8e
ILT
30082009-04-24 Ian Lance Taylor <iant@google.com>
3009
3010 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
3011 (record_dead_and_set_regs): Likewise.
3012 * df.h (struct df_mw_hardreg): Change flags field to int.
3013 (struct df_base_ref): Likewise.
3014 (struct df): Change changeable_flags field to int.
3015 * df-scan.c (df_defs_record): Change clobber_flags to int.
3016 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
3017 constants rather than #define macros.
3018 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
3019 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
3020 (enum dwarf_calling_convention): Likewise.
3021 (enum dwarf_line_number_x_ops): Likewise.
3022 (enum dwarf_call_frame_info): Likewise.
3023 (enum dwarf_source_language): Likewise.
3024 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
3025 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
3026 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
3027 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
3028 * genrecog.c (maybe_both_true_2): Change c to int.
3029 (write_switch): Likewise. Add cast to enum type.
3030 * gimplify.c (gimplify_omp_for): Handle return values from
3031 gimplify_expr using MIN rather than bitwise or.
3032 (gimplify_expr): Add cast to enum type.
3033 * ipa-prop.c (update_jump_functions_after_inlining): Change
3034 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
3035 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
3036 Add casts to enum type.
32e8bb8e
ILT
3037 (setup_cover_and_important_classes): Change cl to int. Add casts
3038 to enum type.
3039 (setup_class_translate): Change cl and mode to int.
3040 (ira_init_once): Change mode to int.
3041 (free_register_move_costs): Likewise.
3042 (setup_prohibited_mode_move_regs): Add casts to enum type.
3043 * langhooks.c (add_builtin_function_common): Rework assertion that
3044 value fits bitfield.
3045 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
3046 * omega.c (omega_do_elimination): Avoid math on enum types.
3047 * optabs.c (expand_vec_shift_expr): Remove casts to int.
3048 * opts.c (set_debug_level): Change 2 to enum constant. Use new
3049 int local to handle integral_argment value.
3050 * regmove.c (try_auto_increment): Change PUT_MODE to
3051 PUT_REG_NOTE_KIND.
3052 * reload.c (push_secondary_reload): Add casts to enum type.
3053 (secondary_reload_class, find_valid_class): Likewise.
3054 * reload1.c (emit_input_reload_insns): Likewise.
3055 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
3056 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
3057 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
3058 constant.
3059 * tree.c (build_common_builtin_nodes): Add casts to enum type.
3060 * tree-complex.c (complex_lattice_t): Typedef to int rather than
3061 enum type.
3062 (expand_complex_libcall): Add casts to enum type.
3063 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3064 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3065 with ERROR_MARK, not NUM_TREE_CODES.
3066 (vect_create_epilog_for_reduction): Likewise.
3067 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 3068 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
3069 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3070 enum machine_mode.
3071 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3072 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 3073 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
3074 * var-tracking.c (get_init_value): Change return type to enum
3075 var_init_status.
3076 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3077 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3078 arm_fp_model.
3079 (arm_override_options): Add casts to enum type.
3080 (arm_emit_tls_decoration): Likewise.
3081 * config/i386/i386.c (ix86_function_specific_restore): Add casts
3082 to enum type.
3083 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3084 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3085 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3086 enum type.
3087 * config/s390/s390.c (code_for_builtin_64): Change to array of
3088 enum insn_code.
3089 (code_for_builtin_31): Likewise.
3090 (s390_expand_builtin): Change code_for_builtin to enum insn_code
3091 const *.
3092 * config/sparc/sparc.c (sparc_override_options): Change value
3093 field in struct code_model to enum cmodel. In initializer change
3094 0 to NULL and add cast to enum type.
3095
3096 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3097 Change all callers. Issue a -Wc++-compat warning using
3098 lhs_origtype if necessary.
3099 (convert_for_assignment): Issue -Wc++-compat warnings about
3100 invalid conversions to enum type on assignment.
3101 * c-common.h (build_modify_expr): Update declaration.
3102
ac4fc08a
NC
31032009-04-24 Nick Clifton <nickc@redhat.com>
3104
3105 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3106 (function_arg_advance): Likewise.
3107 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3108 5th alternative.
3109
f22e891a
AK
31102009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
3111
3112 * config/s390/constraints.md ('I', 'J'): Fix condition.
3113
ad58aabe
DN
31142009-04-24 Diego Novillo <dnovillo@google.com>
3115
3116 * gengtype-parse.c (parse_error): Add newline after message.
3117
879a4a01
L
31182009-04-24 H.J. Lu <hongjiu.lu@intel.com>
3119
3120 * config/i386/sse.md (avxmodesuffixs): Removed.
3121 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3122 (*avx_pinsr<ssevecsize>): This.
3123
f63426af
BS
31242009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3125
3126 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3127 follow chains of regs with a single definition, and allow expressions
3128 that are function_invariant_p.
ce72fe6c 3129 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 3130
30349c74
PB
31312009-04-24 Paolo Bonzini <bonzini@gnu.org>
3132
3133 PR middle-end/39867
3134 * fold-const.c (fold_cond_expr_with_comparison): When folding
3135 > and >= to MAX, make sure the MAX uses the same type as the
3136 comparison's operands.
3137
8d8256c1
NC
31382009-04-24 Nick Clifton <nickc@redhat.com>
3139
3140 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3141 addressing for DImode accesses.
3142 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 3143 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 3144
6216f94e
JJ
31452009-04-24 Jakub Jelinek <jakub@redhat.com>
3146
3147 PR rtl-optimization/39794
3148 * alias.c (canon_true_dependence): Add x_addr argument.
3149 * rtl.h (canon_true_dependence): Adjust prototype.
3150 * cse.c (check_dependence): Adjust canon_true_dependence callers.
3151 * cselib.c (cselib_invalidate_mem): Likewise.
3152 * gcse.c (compute_transp): Likewise.
3153 * dse.c (scan_reads_nospill): Likewise.
3154 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
3155 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3156 canon_base_addr of the group, plus optional offset.
3157 (struct group_info): Rename canon_base_mem to
3158 canon_base_addr.
3159 (get_group_info): Set canon_base_addr to canon_rtx of base, not
3160 canon_rtx of base_mem.
3161
6de7a512
PB
31622009-04-23 Paolo Bonzini <bonzini@gnu.org>
3163
3164 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3165 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3166
4a3a2376
UW
31672009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3168
3169 * config/spu/spu-builtins.h: Delete file.
3170
3171 * config/spu/spu.h (enum spu_builtin_type): Move here from
3172 spu-builtins.h.
3173 (struct spu_builtin_description): Likewise. Add GTY marker.
3174 Do not use enum spu_function_code or enum insn_code.
3175 (spu_builtins): Add extern declaration.
3176
3177 * config/spu/spu.c: Do not include "spu-builtins.h".
3178 (enum spu_function_code, enum spu_builtin_type_index,
3179 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3180 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3181 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3182 unsigned_V2DI_type_node): Move here from spu-builtins.h.
3183 (spu_builtin_types): Make static. Add GTY marker.
3184 (spu_builtins): Add extern declaration with GTY marker.
3185 Include "gt-spu.h".
3186
3187 * config/spu/spu-c.c: Do not include "spu-builtins.h".
3188 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3189 Check programmatically whether all parameters are scalar.
3190
3191 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3192
bbaba73f
EB
31932009-04-23 Eric Botcazou <ebotcazou@adacore.com>
3194
3195 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3196 assignment from the constructor either if the target is volatile.
3197
ee93c1c6
DJ
31982009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
3199
3200 * config/arm/arm.md (insv): Do not share operands[0].
3201
b2f21330
NS
32022009-04-23 Nathan Sidwell <nathan@codesourcery.com>
3203
3204 * config/vxlib-tls.c (active_tls_threads): Delete.
3205 (delete_hook_installed): New.
3206 (tls_delete_hook): Don't delete the delete hook.
3207 (tls_destructor): Delete it here.
3208 (__gthread_set_specific): Adjust installing the delete hook.
3209 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3210 __gthread_leave_tsd_dtor_context.
3211
4782dfa7
RAE
32122009-04-23 Rafael Avila de Espindola <espindola@google.com>
3213
3214 * c-format.c (gcc_tdiag_char_table): Add support for %E.
3215
bf758008
UB
32162009-04-23 Uros Bizjak <ubizjak@gmail.com>
3217
3218 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3219 enum type.
3220 (alpha_rtx_costs): Ditto.
3221 (emit_unlikely_jump): Use add_reg_note.
3222 (emit_frame_store_1): Ditto.
3223 (alpha_expand_prologue): Ditto.
3224 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3225 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3226
7323a100
NC
32272009-04-23 Nick Clifton <nickc@redhat.com>
3228
3229 * config/v850/v850.md (epilogue): Remove suppressed code.
3230 (return): Rename to return_simple and remove test of frame size.
3231 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3232 to gen_return_simple.
3233
360032ba
JY
32342009-04-22 Jing Yu <jingyu@google.com>
3235
3236 PR testsuite/39781
3237 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3238
53650abe
AP
32392009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
3240
3241 PR C/31499
3242 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3243 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
3244 value is a VECTOR_CST, the element type is the element type of the
3245 vector.
3246
89043e8a
DD
32472009-04-22 DJ Delorie <dj@redhat.com>
3248
3249 * config/m32c/m32c.h: Update GTY annotations to new syntax.
3250
023f059b
JJ
32512009-04-22 Jakub Jelinek <jakub@redhat.com>
3252
3253 * alias.c (find_base_term): Move around LO_SUM case, so that
3254 CONST falls through into PLUS/MINUS handling.
3255
2c0eba5a
JJ
3256 PR c/39855
3257 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3258 into 0, use omit_one_operand.
3259
9a461028
BE
32602009-04-23 Ben Elliston <bje@au.ibm.com>
3261
3262 * config/rs6000/linux-unwind.h (get_regs): Remove type
3263 puns. Change the type of `pc' to an array of unsigned ints and
3264 update all users. Constify frame24.
3265
653e2568
DD
32662009-04-22 DJ Delorie <dj@redhat.com>
3267
3268 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3269 declarations before code.
3270 (current_function_special_page_vector): Likewise.
3271 (m32c_expand_insv): Silence a warning.
3272
60839f5d 32732009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
3274
3275 * alias.c: Update GTY annotations to new syntax.
3276 * basic-block.h: Likewise.
3277 * bitmap.h: Likewise.
3278 * c-common.h: Likewise.
3279 * c-decl.c: Likewise.
3280 * c-parser.c: Likewise.
3281 * c-pragma.c: Likewise.
3282 * c-tree.h: Likewise.
3283 * cfgloop.h: Likewise.
3284 * cgraph.h: Likewise.
3285 * config/alpha/alpha.c: Likewise.
3286 * config/arm/arm.h: Likewise.
3287 * config/avr/avr.h: Likewise.
3288 * config/bfin/bfin.c: Likewise.
3289 * config/cris/cris.c: Likewise.
3290 * config/darwin.c: Likewise.
3291 * config/frv/frv.c: Likewise.
3292 * config/i386/i386.c: Likewise.
3293 * config/i386/i386.h: Likewise.
3294 * config/i386/winnt.c: Likewise.
3295 * config/ia64/ia64.h: Likewise.
3296 * config/iq2000/iq2000.c: Likewise.
3297 * config/mips/mips.c: Likewise.
3298 * config/mmix/mmix.h: Likewise.
3299 * config/pa/pa.c: Likewise.
3300 * config/pa/pa.h: Likewise.
3301 * config/rs6000/rs6000.c: Likewise.
3302 * config/s390/s390.c: Likewise.
3303 * config/sparc/sparc.c: Likewise.
3304 * config/xtensa/xtensa.c: Likewise.
3305 * cselib.h: Likewise.
3306 * dbxout.c: Likewise.
3307 * dwarf2out.c: Likewise.
3308 * except.c: Likewise.
3309 * except.h: Likewise.
3310 * fixed-value.h: Likewise.
3311 * function.c: Likewise.
3312 * function.h: Likewise.
3313 * gimple.h: Likewise.
3314 * integrate.c: Likewise.
3315 * optabs.c: Likewise.
3316 * output.h: Likewise.
3317 * real.h: Likewise.
3318 * rtl.h: Likewise.
3319 * stringpool.c: Likewise.
3320 * tree-data-ref.c: Likewise.
3321 * tree-flow.h: Likewise.
3322 * tree-scalar-evolution.c: Likewise.
3323 * tree-ssa-address.c: Likewise.
3324 * tree-ssa-alias.h: Likewise.
3325 * tree-ssa-operands.h: Likewise.
3326 * tree.c: Likewise.
3327 * tree.h: Likewise.
3328 * varasm.c: Likewise.
3329 * varray.h: Likewise.
3330 * vec.h: Likewise.
bf758008 3331 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
3332 * doc/gty.texi: Update GTY documentation to new syntax.
3333 * gengtype-lex.l: Enforce attribute-like syntax for GTY
3334 annotations on structs.
3335 * gengtype-parse.c: Likewise.
3336
a123d175
MH
33372009-04-22 Mark Heffernan <meheff@google.com>
3338
bf758008 3339 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 3340
4c7c486a
KH
33412009-04-22 Kazu Hirata <kazu@codesourcery.com>
3342
3343 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3344 where appropriate.
3345
6e782a29
KH
33462009-04-22 Kazu Hirata <kazu@codesourcery.com>
3347
3348 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3349 the same as a PLUS without a shift. Increase the cost of a
3350 CONST_INT in MULT.
3351
38d2336a
MLI
33522009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3353
3354 * Makefile.in: Update dependencies.
bf758008 3355 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
3356 * errors.h: Remove bogus comment about compatibility.
3357 (warning): Update declaration.
3358 * genautomata.c: Update all calls to warning.
3359 * gimple.c: Do not include errors.h. Include toplev.h.
3360 * tree-ssa-structalias.c: Do not include errors.h.
3361 * omega.c: Likewise.
3362 * tree-ssa-reassoc.c: Likewise.
3363 * config/spu/spu-c.c: Likewise.
3364 * config/spu/t-spu-elf: Update dependencies.
3365
aea4deba
RG
33662009-04-22 Richard Guenther <rguenther@suse.de>
3367
3368 PR tree-optimization/39824
3369 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3370 make sure the types are compatible.
3371
cfc93532
MLI
33722009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3373
3374 PR c++/14875
3375 * c-common.c (c_parse_error): Take a token_flags parameter.
3376 Use token_type for the token type instead.
3377 Pass token_flags to cpp_type2name.
3378 * c-common.h (c_parse_error): Update declaration.
3379 * c-parser.c (c_parser_error): Pass 0 as token flags.
3380
8632d02a
AB
33812009-04-22 Andrey Belevantsev <abel@ispras.ru>
3382
3383 PR rtl-optimization/39580
3384 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
3385
4c33221c
UW
33862009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3387
3388 * function.c (expand_function_end): Do not emit a jump to the "naked"
3389 return label for fall-through returns.
3390 * except.c (sjlj_emit_function_exit): Always place the call to the
3391 unregister function at the location installed by expand_function_end.
3392
9925bce0
RG
33932009-04-22 Richard Guenther <rguenther@suse.de>
3394
3395 PR tree-optimization/39845
3396 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3397 (gen_inbound_check): Likewise.
3398
24a40b35
NS
33992009-04-22 Nathan Sidwell <nathan@codesourcery.com>
3400
3401 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3402 padding for PPC.
3403 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
3404 * config/vxlib.c (__gthread_once): Add race guard for PPC.
3405
6c34a092
PB
34062009-04-22 Paolo Bonzini <bonzini@gnu.org>
3407
3408 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
3409 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
3410 shift counts to avoid out-of-bounds array accesses.
3411
baa48dfa
PB
34122009-04-22 Paolo Bonzini <bonzini@gnu.org>
3413
3414 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
3415 (Pmode): Move above.
3416
7d83f4f5
UB
34172009-04-22 Uros Bizjak <ubizjak@gmail.com>
3418
3419 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
3420 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
3421 GET_CODE macro. Use IN_RANGE macro where appropriate.
3422 * config/alpha/alpha.h: Ditto.
3423 * config/alpha/alpha.md: Ditto.
3424 * config/alpha/constraints.md: Ditto.
3425 * config/alpha/predicates.md: Ditto.
3426
3ad606bc
PB
34272009-04-22 Paolo Bonzini <bonzini@gnu.org>
3428
3429 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
3430 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3431 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3432 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3433 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3434 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3435 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3436 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3437 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3438 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3439 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3440 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3441 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3442 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3443 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3444 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3445 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3446 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3447 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3448 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3449 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3450 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3451 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3452 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3453 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3454 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3455 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3456
3cabd6d1
LB
34572009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3458
3459 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
3460 references from comments.
3461 * cfgbuild.c: (count_basic_blocks): Delete.
3462 (find_basic_blocks_1): Delete.
3463 (find_basic_blocks): Delete.
3464 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 3465 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
3466 * except.h (finish_eh_generation): Delete.
3467 * basic-block.h (find_basic_blocks): Delete.
3468 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
3469
270d1bcd
DK
34702009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
3471
3472 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
3473 (sdbout_parms): Likewise.
3474
b757d36f
KK
34752009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
3476
3477 * config/sh/sh.c (prepare_cbranch_operands): Use
3478 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
3479 (expand_cbranchdi4): Likewise.
3480 (from_compare): Add cast to enum type.
3481 (expand_cbranchsi4): Use add_reg_note.
3482 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
3483 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
3484 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
3485 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3486 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
3487 instead of CODE_FOR_nothing.
3488 (cbranchdi4): Likewise. Fix the order of arguments for
3489 gen_rtx_fmt_ee.
3490 (push_fpscr): Use add_reg_note.
3491 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
3492 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
3493
ad41bd84
JM
34942009-04-21 Joseph Myers <joseph@codesourcery.com>
3495
3496 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
3497 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3498 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3499 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
3500 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
3501 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
3502 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
3503 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
3504 config/alpha/x-vms, config/arc/t-arc,
3505 config/arm/README-interworking, config/arm/arm-c.c,
3506 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
3507 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
3508 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
3509 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
3510 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
3511 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
3512 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
3513 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
3514 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
3515 config/cris/t-elfmulti, config/crx/t-crx,
3516 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
3517 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
3518 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
3519 config/h8300/t-h8300, config/i386/athlon.md,
3520 config/i386/darwin-libgcc.10.4.ver,
3521 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
3522 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
3523 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
3524 config/i386/t-linux64, config/i386/t-nwld,
3525 config/i386/t-rtems-i386, config/i386/t-sol2-10,
3526 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
3527 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
3528 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
3529 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
3530 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
3531 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
3532 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
3533 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
3534 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
3535 config/m68k/t-uclinux, config/mcore/t-mcore,
3536 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
3537 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
3538 config/mips/crtn.asm, config/mips/irix-crti.asm,
3539 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
3540 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
3541 config/mips/mips-fixed.md, config/mips/sb1.md,
3542 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
3543 config/mips/t-iris6, config/mips/t-isa3264,
3544 config/mips/t-libgcc-mips16, config/mips/t-linux64,
3545 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
3546 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
3547 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
3548 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
3549 config/mn10300/t-linux, config/mn10300/t-mn10300,
3550 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
3551 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
3552 config/picochip/libgccExtras/clzsi2.asm,
3553 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
3554 config/rs6000/darwin-libgcc.10.4.ver,
3555 config/rs6000/darwin-libgcc.10.5.ver,
3556 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
3557 config/rs6000/t-aix43, config/rs6000/t-aix52,
3558 config/rs6000/t-darwin, config/rs6000/t-fprules,
3559 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
3560 config/rs6000/t-lynx, config/rs6000/t-netbsd,
3561 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
3562 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
3563 config/rs6000/t-rtems, config/rs6000/t-spe,
3564 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
3565 config/score/t-score-elf, config/sh/divcost-analysis,
3566 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
3567 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
3568 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
3569 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
3570 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
3571 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
3572 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
3573 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
3574 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
3575 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
3576 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
3577 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
3578 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
3579 limitx.h, version.c, xcoff.h: Add copyright and license notices.
3580 * config/h8300/genmova.sh: Include copyright and license notices
3581 in generated output.
3582 * config/h8300/mova.md: Regenerate.
3583 * doc/install.texi2html: Include word "Copyright" in copyright
3584 notice and use name "Free Software Foundation, Inc.".
3585 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3586 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3587 ChangeLog-2007, ChangeLog-2008: Correct dates.
3588
ca80e52b
EB
35892009-04-21 Eric Botcazou <ebotcazou@adacore.com>
3590
3591 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
3592 NE_EXPR operations as well.
3593 * c-parser.c (c_parser_condition): Do not set location information on
3594 the condition.
3595 (c_parser_conditional_expression): Likewise.
3596 (c_parser_binary_expression): Set location information on operators.
3597 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
3598 TRUTH_NOT_EXPR has been folded.
3599 * fold-const.c (fold_truth_not_expr): Copy location information from
3600 the incoming expression to the outgoing one.
3601 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
3602 recursive calls on the LHS of the operator but pass that of the
3603 operator to recursive calls on the RHS of the operator. Set it
3604 on the COND_EXPR.
3605 (shortcut_cond_expr): Set the locus of the operator on the second
3606 COND_EXPR and that of the expression on the first in degenerate cases.
3607 Pass the locus of the expression to calls to shortcut_cond_r.
3608 Set the locus of the 'then' block on the associated jump, if any.
3609 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
3610 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
3611 expression to call to gimplify_boolean_expr.
3612
35091630
KT
36132009-04-21 Kai Tietz <kai.tietz@onevision.com>
3614
3615 * config.gcc: Add additional configuration for
3616 i686-w64-mingw* and x86_64-w64-mingw* triplet.
3617 * config/i386/mingw-w64.h: New mingw-w64 specific header.
3618 (CPP_SPEC): Redefine for allowing -municode option.
3619 (STARTFILE_SPEC): Likewise.
3620 * config/i386/t-mingw-w64: New.
3621 * config/i386/mingw-w64.opt: New.
3622 (municode): Add new target option.
3623 * doc/invoke.texi (municode): Add documentation for new option.
3624
0267afc4
ILT
36252009-04-21 Ian Lance Taylor <iant@google.com>
3626
3627 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3628 Correct test for number of arguments.
3629 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
3630
2ba9daa7
AS
36312009-04-21 Andreas Schwab <schwab@linux-m68k.org>
3632
3633 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
3634 argument of emit_library_call.
3635
ad8a1ac0
RG
36362009-04-21 Richard Guenther <rguenther@suse.de>
3637
3638 PR middle-end/39829
3639 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
3640 inside VIEW_CONVERT_EXPRs.
3641
7156c8ab
MJ
36422009-04-21 Martin Jambor <mjambor@suse.cz>
3643
3644 * tree-switch-conversion.c (build_constructors): Split a long line.
3645 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
3646 (build_one_array): Create assigns of constants if possible, do not
3647 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
3648 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
3649 make_rename_temp. Do not call mark_symbols_for_renaming, call
3650 update_stmt.
3651 (gen_def_assigns): Do not call mark_symbols_for_renaming or
3652 find_new_referenced_vars, call update_stmt.
3653 (gen_inbound_check): Use create_tmp_var and create ssa names manually
3654 instead of calling make_rename_temp. Do not call
3655 find_new_referenced_vars or mark_symbols_for_renaming, call
3656 update_stmt.
3657
2970ccb3
RG
36582009-04-21 Richard Guenther <rguenther@suse.de>
3659
3660 PR tree-optimization/39827
7d83f4f5 3661 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
3662 (tree_ssa_phiprop): Pass the correct array size.
3663
47f402d1
UB
36642009-04-21 Uros Bizjak <ubizjak@gmail.com>
3665
3666 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
3667
1e4ae551
MLI
36682009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
3669
3670 PR 16202
3671 * c-typeck.c (lvalue_p): Move declaration ...
3672 * c-common.h (lvalue_p): ... to here.
3673 * c-common.c (candidate_equal_p): New.
3674 (add_tlist): Use it.
3675 (merge_tlist): Use it.
3676 (warn_for_collisions_1): Likewise.
3677 (warning_candidate_p): Accept more candidates.
3678 (verify_tree): A warning candidate can be an expression. Use
3679 candidate_equal_p.
3680
244609a6
BE
36812009-04-21 Ben Elliston <bje@au.ibm.com>
3682
3683 PR target/5267
3684 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3685 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
3686 options. Remove -mcall-solaris documentation.
3687
9c650d90
MLI
36882009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3689
3690 PR c++/13358
3691 * doc/invoke.texi (-Wlong-long): Update description.
3692 * c-lex (interpret_integer): Only warn if there was no previous
3693 overflow and -Wlong-long is enabled.
3694 * c-decl.c (declspecs_add_type): Drop redundant flags.
3695 * c.opt (Wlong-long): Init to -1.
3696 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
3697 and front-end warn_long_long. Wlong-long only depends on other
3698 flags if it is uninitialized.
3699 * c-parser.c (disable_extension_diagnostics): warn_long_long is
3700 the same for CPP and FE.
3701 (restore_extension_diagnostics): Likewise.
3702
bbbbb16a
ILT
37032009-04-20 Ian Lance Taylor <iant@google.com>
3704
3705 Fix enum conversions which are invalid in C++:
47f402d1
UB
3706 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
3707 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3708 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
3709 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 3710 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 3711 (dbxout_parms): Likewise.
47f402d1 3712 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
3713 (df_clear_flags): Likewise.
3714 * df-problems.c (df_rd_bb_local_compute_process_def): Change
3715 top_flag parameter to int.
3716 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
3717 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
3718 Remove cast.
bbbbb16a
ILT
3719 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
3720 (df_ref_create_structure, df_def_record_1): Likewise.
3721 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
3722 (df_notes_rescan): Change 0 to VOIDmode in function call.
3723 (df_get_call_refs, df_insn_refs_collect): Likewise.
3724 (df_bb_regs_collect): Likewise.
3725 (df_entry_block_defs_collect): Likewise.
3726 (df_exit_block_uses_collect): Likewise.
3727 * df.h: Update declarations.
3728 * double-int.c (double_int_divmod): Add cast to enum type.
3729 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
3730 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
3731 (based_loc_descr): Likewise.
3732 (loc_descriptor_from_tree_1): Change first_op and second_op to
3733 enum dwarf_location_atom. Add cast to enum type.
3734 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 3735 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
3736 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
3737 (do_store_flag): Likewise.
3738 * fixed-value.h (struct fixed_value): Change mode to enum
3739 machine_mode.
47f402d1 3740 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
3741 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
3742 function call.
3743 (insert_insn_decl, insert_decl, insert_state): Likewise.
3744 (automata_list_finish): Likewise.
3745 * genrecog.c (process_define_predicate): Add cast to enum type.
3746 * gensupport.c (init_predicate_table): Add cast to enum type.
3747 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
3748 function call.
3749 (gimple_build_call_1, gimple_build_label): Likewise.
3750 (gimple_build_goto, gimple_build_asm_1): Likewise.
3751 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 3752 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
3753 (enum fallback): Rename from enum fallback_t.
3754 (fallback_t): Typedef as int.
3755 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
3756 GSI_SAME_STMT in function call.
3757 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
3758 enum type.
3759 (setup_reg_class_relations): Likewise.
47f402d1 3760 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
3761 (setup_prohibited_class_mode_regs): Add cast to enum type.
3762 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 3763 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
3764 (record_address_regs): Change i to enum reg_class.
3765 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
3766 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
3767 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
3768 (GET_MODE_2XWIDER_MODE): Likewise.
3769 (GET_CLASS_NARROWEST_MODE): Likewise.
3770 * omp-low.c (expand_omp_for): Add cast to enum type.
3771 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
3772 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
3773 * postreload.c (reload_cse_simplify_operands): Change rclass local
3774 to enum reg_class.
3775 * predict.c (combine_predictions_for_insn): Change best_predictor
3776 and predictor to enum br_predictor.
3777 (combine_predictions_for_bb): Likewise.
3778 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
3779 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 3780 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
3781 * reginfo.c (init_move_cost): Add casts to enum type.
3782 (init_reg_sets_1, init_fake_stack_mems): Likewise.
3783 * regmove.c (regclass_compatible_p): Change class0 and class1 to
3784 enum reg_class.
3785 * reload.c (find_valid_class): Add casts to enum type.
3786 (push_reload): Change 0 to NO_REGS in function call.
3787 (find_reloads): Change this_alternative to array of enum
3788 reg_class. Remove some now-unnecessary casts.
3789 (make_memloc): Change 0 to VOIDmode in function call.
3790 * reload1.c (reload): Change 0 to VOIDmode in function call.
3791 (eliminate_regs_1, elimination_effects): Likewise.
3792 (eliminate_regs_in_insn): Likewise.
3793 (emit_input_reload_insns): Add cast to enum type.
3794 (delete_output_reload): Change 0 to VOIDmode in function call.
3795 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
3796 to enum type in function call.
3797 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
3798 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 3799 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
3800 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
3801 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
3802 (dump_function): Likewise.
3803 * tree-dump.h: Update declarations.
3804 * tree-pass.h: Update declarations.
3805 * varasm.c (assemble_integer): Change mclass to enum mode_class.
3806 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
3807 enum type.
3808 (arm_rtx_costs_1): Correct parenthesization.
3809 (arm_rtx_costs): Add casts to enum type.
3810 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
3811 (vfp_emit_fstmd): Use add_rg_note.
3812 (emit_multi_reg_push, emit_sfm): Likewise.
3813 (thumb_set_frame_pointer): Likewise.
3814 (arm_expand_prologue): Likewise.
3815 (arm_regno_class): Change return type to enum reg_class.
3816 (thumb1_expand_prologue): Use add_reg_note.
3817 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
3818 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
3819 in function call.
3820 * config/arm/gentune.sh: Add cast to enum type.
3821 * config/arm/arm-tune.md: Rebuild.
3822 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
3823 (ix86_split_fp_branch, predict_jump): Likewise.
3824 (ix86_expand_multi_arg_builtin): Change sub_code from enum
3825 insn_code to enum rtx_code.
3826 (ix86_builtin_vectorized_function): Add cast to enum type.
3827 * config/i386/i386.md (truncdfsf2): Change slot to enum
3828 ix86_stack_slot.
3829 (truncxf<mode>2, isinf<mode>2): Likewise.
3830 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
3831 enum type.
3832 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
3833 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
3834 (insert_bundle_state): Change 1 to INSERT in function call.
3835 (ia64_add_bundle_selector_before): Likewise.
3836 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
3837 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
3838 (restore_stack_nonlocal): Likewise.
3839 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
3840 function call.
3841 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
3842 function call.
3843 (mips_rtx_costs): Likewise.
3844 (mips_override_options): Add casts to enum type.
3845 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
3846 in function call.
3847 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
3848 (store_reg, set_reg_plus_d): Likewise.
3849 (hppa_expand_prologue, hppa_profile_hook): Likewise.
3850 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
3851 cast to enum type.
3852 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
3853 function call.
3854 (emit_unlikely_jump): Use add_reg_note.
3855 (rs6000_emit_allocate_stack): Likewise.
3856 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
3857 (output_toc): Change 1 to INSERT in function call.
3858 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
3859 (rs6000_initialize_trampoline): Likewise.
3860 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
3861 function call.
3862 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
3863 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
3864 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
3865 (save_gprs): Use add_reg_note.
3866 (s390_emit_prologue): Likewise.
47f402d1 3867 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3868 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
3869 (sparc_fold_builtin): Add cast to enum type.
3870 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
3871 enum insn_code.
3872 (spu_expand_prologue): Use add_reg_note.
47f402d1 3873 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3874
38752009-04-20 Ian Lance Taylor <iant@google.com>
3876
3877 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
3878 (c_parser_postfix_expression_after_primary): Get VEC for list of
3879 arguments. Get original types of arguments. Call
3880 build_function_call_vec.
3881 (cached_expr_list_1, cached_expr_list_2): New static variables.
3882 (c_parser_expr_list): Change return type to VEC *. Add
3883 p_orig_types parameter. Change all callers.
3884 (c_parser_release_expr): New static function.
3885 (c_parser_vec_to_tree_list): New static function.
3886 * c-typeck.c (build_function_call): Rewrite to build a VEC and
3887 call build_function_call_vec.
3888 (build_function_call_vec): New function, based on old
3889 build_function_call.
3890 (convert_arguments): Remove nargs and argarray parameters. Change
3891 values to a VEC. Add origtypes parameter.
47f402d1 3892 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
3893 (convert_for_assignment): Add origtype parameter. Change all
3894 callers. If warn_cxx_compat, check for conversion to an enum
3895 type when calling a function.
3896 (store_init_value): Add origtype parameter. Change all callers.
3897 (digest_init): Likewise.
3898 (struct init_node): Add origtype field.
3899 (add_pending_init): Add origtype parameter. Change all callers.
3900 (output_init_element): Likewise.
3901 (output_pending_init_elements): Pass origtype from init_node to
3902 output_init_element.
f28a61ab 3903 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
3904 output_init_element.
3905 (c_finish_return): Add origtype parameter. Change all callers.
3906 * c-common.c (sync_resolve_size): Change params to VEC *. Change
3907 caller.
3908 (sync_resolve_params): Likewise.
47f402d1 3909 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 3910 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 3911 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
3912 * c-decl.c (finish_decl): Add origtype parameter. Change all
3913 callers. Call build_function_call_vec rather than
3914 build_function_call for cleanup.
3915 * c-tree.h: Update declarations.
3916 * c-common.h: Update declarations.
3917 * stub-objc.c (objc_rewrite_function_call): Change parameter from
3918 params to first_param.
3919 * target.h (struct gcc_target): Change resolve_overloaded_builtin
3920 params parameter from tree to void *.
3921 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3922 Change arglist parameter to have type void *, and to be a pointer
3923 to a VEC.
3924 * config/rs6000/rs6000-protos.h
3925 (altivec_resolve_overloaded_builtin): Update declaration.
3926 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
3927 fnargs parameter to have type void *, and to be a pointer to a
3928 VEC. Call build_function_call_vec instead of
3929 build_function_call.
47f402d1 3930 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 3931
6ff078d4 39322009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 3933 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
3934 H.J. Lu <hongjiu.lu@intel.com>
3935
3936 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
3937
3938 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
3939 (IX86_LEA_PRIORITY): Likewise.
3940 (distance_non_agu_define): New function.
3941 (distance_agu_use): Likewise.
3942 (ix86_lea_for_add_ok): Likewise.
3943 (ix86_dep_by_shift_count): Likewise.
3944
3945 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
3946 should split for LEA.
3947
3948 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
3949 function.
3950 (ix86_dep_by_shift_count): Likewise.
3951
87a5b4cc
RG
39522009-04-20 Richard Guenther <rguenther@suse.de>
3953
3954 * expr.c (handled_component_p): Move ...
3955 * tree.h (handled_component_p): ... here.
3956 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
3957 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
3958 and REALPART_EXPR to be in one group.
3959
438c239d
RG
39602009-04-20 Richard Guenther <rguenther@suse.de>
3961
3962 * basic-block.h (get_all_dominated_blocks): Declare.
3963 * dominance.c (get_all_dominated_blocks): New function.
3964 * tree-cfg.c (get_all_dominated_blocks): Remove.
3965 (remove_edge_and_dominated_blocks): Adjust.
3966 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
3967 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
3968 instead of recursing.
3969
fed5ae11
DK
39702009-04-20 Doug Kwan <dougkwan@google.com>
3971
3972 * cgraph.h (cgraph_node_ptr): New type for vector functions.
3973 (struct cgraph_node_set_def): New type.
3974 (cgraph_node_set) New type. Also declare vector functions.
3975 (struct cgraph_node_set_element_def): New type.
3976 (cgraph_node_set_element): Ditto.
3977 (cgraph_node_set_iterator): New iterator type.
3978 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
3979 cgraph_node_set_remove, dump_cgraph_node_set,
3980 debug_cgraph_node_set): New prototypes.
3981 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
3982 cgraph_node_set_size): New inlines.
3983 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
3984 including cgraph.h.
3985 (struct ipa_opt_pass): Add struct cgraph_node_set_def
3986 argument to function 'write_summary'.
3987 * ipa.c: Include ggc.h.
3988 (hash_cgraph_node_set_element,
3989 eq_cgraph_node_set_element, cgraph_node_set_new,
3990 cgraph_node_set_add, cgraph_node_set_remove,
3991 cgraph_node_set_find, dump_cgraph_node_set,
3992 debug_cgraph_node_set): New functions.
3993 * Makefile.in (ipa.o): Add dependency on GGC_H.
3994
c4551b28
IR
39952009-04-20 Ira Rosen <irar@il.ibm.com>
3996
3997 PR tree-optimization/39675
2ba9daa7 3998 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
3999 check of the return code of vect_schedule_slp. Check that
4000 stmt_vec_info still exists for the statement, before checking its
4001 vectorization type.
c4551b28 4002
21a495fb
MM
40032009-04-20 Michael Matz <matz@suse.de>
4004
4005 * Makefile.in (generated_files): Take out $(simple_generated_c).
4006
8e208874
DK
40072009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
4008
4009 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
4010 (UINTPTR_TYPE): Likewise.
4011
a45e580b
JM
40122009-04-19 Joseph Myers <joseph@codesourcery.com>
4013
4014 PR c/37481
4015 * c-typeck.c (digest_init): Check for initializing an array with a
4016 string literal.
4017
20845d35
JM
40182009-04-19 Joseph Myers <joseph@codesourcery.com>
4019
4020 PR c/19771
4021 * c-semantics.c (pop_stmt_list): Propagate
4022 STATEMENT_LIST_HAS_LABEL to parent statement list.
4023
28143fdd
AN
40242009-04-19 Adam Nemet <anemet@caviumnetworks.com>
4025
4026 * config/mips/mips.h (mips_tune_attr): New macro.
4027 * config/mips/mips.md (cpu): Use it.
4028
da377db9
JM
40292009-04-19 Joseph Myers <joseph@codesourcery.com>
4030
4031 PR c/38243
4032 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
4033 declaring a tag.
4034
3baf459d
DN
40352009-04-19 Diego Novillo <dnovillo@google.com>
4036
4037 * toplev.c (compile_file): Move call to coverage_finish ...
4038 * cgraphunit.c (ipa_passes): ... here.
4039 Call cgraph_process_new_functions.
4040 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
4041 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
4042
b6fa5b01
JH
40432009-04-19 Jan Hubicka <jh@suse.cz>
4044
47f402d1
UB
4045 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
4046 cfun.
b6fa5b01
JH
4047 (dump_cgraph_node): Dump can throw external flag.
4048 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
4049
ca409efd
MLI
40502009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4051
4052 PR c/32061
4053 PR c++/36954
4054 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
4055 * common.opt (Wlogical-op): Move from here...
4056 * c.opt (Wlogical-op): ... to here.
4057 * c-typeck.c (parser_build_binary_op): Update call to
4058 warn_logical_operator.
4059 * c-opts.c (c_common_post_options): Enable warn_logical_op with
4060 extra_warnings.
4061 * c-common.c (warn_logical_op): Update.
4062 * c-common.h (warn_logical_op): Update declaration.
4063
9db4cdd3
EB
40642009-04-19 Eric Botcazou <ebotcazou@adacore.com>
4065
4066 * tree.c (protected_set_expr_location): Fix formatting.
4067
f37acdf9
JM
40682009-04-18 Joseph Myers <joseph@codesourcery.com>
4069
4070 PR c/27676
4071 * c-typeck.c (readonly_warning): new.
4072 (build_unary_op, build_modify_expr): Use readonly_warning for
4073 storing into something readonly but not const-qualified.
4074
2b4b7036
JM
40752009-04-18 Joseph Myers <joseph@codesourcery.com>
4076
4077 PR c/22367
4078 * c-typeck.c (build_unary_op): Check for taking address of
4079 expression of type void.
4080
3ce62965
JM
40812009-04-18 Joseph Myers <joseph@codesourcery.com>
4082
4083 PR c/35210
4084 * c-typeck.c (build_function_call): Check for calling a function
4085 with qualified void return types. Call require_complete_type when
4086 generating a trap.
4087
2505c5ed
JH
40882009-04-18 Jan Hubicka <jh@suse.cz>
4089
4090 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4091 Set nothrow flag.
4092 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4093 can_throw_external flag.
4094 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4095 * ipa-pure-const.c (ignore_edge): New function.
4096 (propagate): Compute order for NOTHROW computation; set NOTHROWs
4097 only over can_throw_external edges.
4098 (local_pure_const): Add nothrow flag.
4099 * ipa-utils.c (searchc): Add ignore_edge callback.
4100 (ipa_utils_reduced_inorder): Add ignore_edge callback.
4101 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4102 (set_nothrow_function_flags): Update cgraph.
4103 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4104
2586ba4b
RG
41052009-04-18 Richard Guenther <rguenther@suse.de>
4106
4107 PR middle-end/39804
4108 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4109 (fold_stmt): ... this and ...
4110 (fold_stmt_inplace): ... this.
4111 (fold_stmt_1): Fold references in calls and asms.
4112 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4113
1eefab17
KH
41142009-04-18 Kazu Hirata <kazu@codesourcery.com>
4115
4116 * tree-vrp.c (ssa_name_nonzero_p): Remove.
4117 * tree.h: Remove the prototype for ssa_name_nonzero_p.
4118
aa424b01
KH
41192009-04-18 Kazu Hirata <kazu@codesourcery.com>
4120
4121 * tree.c (function_args_count): Remove.
4122 * tree.h: Remove the prototype for function_args_count.
4123
613a896b
KH
41242009-04-18 Kazu Hirata <kazu@codesourcery.com>
4125
4126 * tree-iterator.c (expr_only): Remove.
4127 * tree.h: Remove the prototype for expr_only.
4128
579e694c
KH
41292009-04-18 Kazu Hirata <kazu@codesourcery.com>
4130
4131 * reginfo.c (cannot_change_mode_set_regs): Remove.
4132 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4133
ee7e3ad3
AS
41342009-04-08 Anatoly Sokolov <aesok@post.ru>
4135
4136 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4137 whether operands 0 and 1 overlaps.
4138
92ef7fb1
MLI
41392009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
4140
4141 PR middle-end/36902
4142 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4143 pointer. Use warning_at instead of warning.
4144 (search_for_addr_array): Likewise.
4145 (check_array_bounds): Likewise.
4146 (check_all_array_refs): Check that the incoming edge is not in the
4147 list of edges to be removed.
4148 (check_all_array_refs): Avoid the temporal pointer.
4149 (vrp_visit_cond_stmt): Fix typo.
4150 (simplify_switch_using_ranges): Handle the case where the switch
4151 index is an integer constant.
4152
0e097268
AN
41532009-04-18 Adam Nemet <anemet@caviumnetworks.com>
4154
4155 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4156
c782f1dd
KH
41572009-04-18 Kazu Hirata <kazu@codesourcery.com>
4158
4159 * doc/extend.texi, doc/invoke.texi: Fix typos.
4160
668fb0e8
CC
41612009-04-17 Cary Coutant <ccoutant@google.com>
4162
4163 * tree-flow-inline.h (get_lineno): Fix inverted test.
4164
4d4014c1
DN
41652009-04-17 Diego Novillo <dnovillo@google.com>
4166
4167 * tree-ssa-pre.c (create_expression_by_pieces): Remove
4168 assertion for AVAIL_OUT.
4169
2984e1b6
MF
41702009-04-17 Mike Frysinger <vapier@gentoo.org>
4171
4172 PR target/38627
4173 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4174 * config/sh/linux-atomic.asm: Likewise.
4175
9994a182
DN
41762009-04-17 Diego Novillo <dnovillo@google.com>
4177
4178 * except.c (debug_eh_tree): New.
4179 (struct eh_region, struct eh_status): Move ...
4180 * except.h: ... here.
4181 (add_type_for_runtime): Declare extern.
4182 (lookup_type_for_runtime): Likewise.
4183 (debug_eh_tree): Declare.
4184 * Makefile.in (GTFILES): List except.h before except.c
4185
07485407
DN
41862009-04-17 Diego Novillo <dnovillo@google.com>
4187
47f402d1 4188 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
4189 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4190 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4191 (find_vars_r): ... here.
4192 * tree-flow.h (find_referenced_vars_in): Declare.
4193 * tree-ssa-pre.c (create_expression_by_pieces): Assert
4194 that AVAIL_OUT exists for BLOCK.
4195 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4196 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4197 (tree-parloops.o): Likewise.
4198
4e53d196
SB
41992009-04-17 Simon Baldwin <simonb@google.com>
4200
4201 * toplev.c (default_tree_printer): Add handling for %E format.
4202
413d3aa8
DN
42032009-04-17 Diego Novillo <dnovillo@google.com>
4204
47f402d1
UB
4205 * tree-pretty-print.c (dump_generic_node): Add break after
4206 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
4207 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
4208 FUNCTION_TYPE together. Call print_struct_decl when printing
4209 structures and TDF_SLIM is not given.
413d3aa8
DN
4210 (print_struct_decl): Fix logic for detecting recursion.
4211
5a691e98
RAE
42122009-04-17 Rafael Avila de Espindola <espindola@google.com>
4213
4214 PR 31567
4215 * gcc.c (create_at_file): New.
4216 (compile_input_file_p): New.
4217 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4218 * main.c (main): Update call to toplev_main.
4219 * toplev.c (toplev_main): Change signature. Call expandargv.
4220 * toplev.h (toplev_main): Change signature.
4221
9eacf7a6
EB
42222009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4223
4224 * dwarf2out.c (field_byte_offset): Use the type size as the field size
4225 if the latter is not constant.
4226
58298177
DE
42272009-04-17 David Edelsohn <edelsohn@gnu.org>
4228
4229 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4230
5b4c43d7
EB
42312009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4232
4233 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4234 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4235
b51605c4
RG
42362009-04-17 Richard Guenther <rguenther@suse.de>
4237
4238 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4239 Handle component references view-converting an invariant address.
4240
9e3be889
AN
42412009-04-17 Adam Nemet <anemet@caviumnetworks.com>
4242
4243 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4244 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4245 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4246 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4247 Use @deftypevr rather than @deftypevar.
4248
7c3e9dc3
RG
42492009-04-17 Richard Guenther <rguenther@suse.de>
4250
47f402d1 4251 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
4252 (get_prop_source_stmt): Likewise.
4253 (can_propagate_from): Likewise.
4254
aca600aa
AS
42552009-04-17 Andrew Stubbs <ams@codesourcery.com>
4256
4257 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4258 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4259 (--with-multilib-list): Add default value.
4260 * configure: Regenerate.
4261 * Makefile.in (TM_ENDIAN_CONFIG): Define.
4262 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4263 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4264 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4265 Don't add default cpu to multilib list unnecessarily, but do enable
4266 the relevant compiler option..
4267 Add support for --with-multilib-list=<blank> and
4268 --with-multilib-list=!<somelib> to supress unwanted multilibs.
4269 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4270 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4271 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4272 TM_MULTILIB_CONFIG.
4273 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4274 (MULTILIB_OSDIRNAMES): New variable.
4275 * config/sh/t-1e: Delete file.
4276 * config/sh/t-mlib-sh1: Delete file.
4277 * config/sh/t-mlib-sh2: Delete file.
4278 * config/sh/t-mlib-sh2a: Delete file.
4279 * config/sh/t-mlib-sh2a-nofpu: Delete file.
4280 * config/sh/t-mlib-sh2a-single: Delete file.
4281 * config/sh/t-mlib-sh2a-single-only: Delete file.
4282 * config/sh/t-mlib-sh2e: Delete file.
4283 * config/sh/t-mlib-sh3e: Delete file.
4284 * config/sh/t-mlib-sh4: Delete file.
4285 * config/sh/t-mlib-sh4-nofpu: Delete file.
4286 * config/sh/t-mlib-sh4-single: Delete file.
4287 * config/sh/t-mlib-sh4-single-only: Delete file.
4288 * config/sh/t-mlib-sh4a: Delete file.
4289 * config/sh/t-mlib-sh4a-nofpu: Delete file.
4290 * config/sh/t-mlib-sh4a-single: Delete file.
4291 * config/sh/t-mlib-sh4a-single-only: Delete file.
4292 * config/sh/t-mlib-sh4al: Delete file.
4293 * config/sh/t-mlib-sh5-32media: Delete file.
4294 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4295 * config/sh/t-mlib-sh5-64media: Delete file.
4296 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4297 * config/sh/t-mlib-sh5-compact: Delete file.
4298 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4299 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4300 * doc/install.texi (Options specification): Add
4301 --with-multilib-list and --with-endian.
4302
cf8aba7f
RAE
43032009-04-17 Rafael Avila de Espindola <espindola@google.com>
4304
4305 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4306 REVISION_c.
4307 (OBJS-common): Add plugin-version.o.
4308 (plugin-version.o): New.
4309 * gcc-plugin.h (plugin_gcc_version): New.
4310 (plugin_default_version_check): New.
4311 (plugin_init_func, plugin_init): Add version argument.
4312 * plugin-version.c: New.
4313 * plugin.c (str_plugin_gcc_version_name): New.
4314 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4315 pass it to the init function.
4316 (plugin_default_version_check): New.
4317
61e20b90
RG
43182009-04-17 Richard Guenther <rguenther@suse.de>
4319
4320 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4321 for decl-vs-decl disambiguation.
4322
90c6fd8a
AK
43232009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
4324
4325 * config/s390/s390.h (s390_tune_attr): New macro definition.
4326 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4327
9fe9fe04
RG
43282009-04-17 Richard Guenther <rguenther@suse.de>
4329
4330 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4331 (fold_stmt_r): Likewise.
4332 (maybe_fold_reference): New function.
4333 (fold_gimple_assign): Handle cases fold_stmt_r did.
4334 (fold_stmt): Do not use fold_stmt_r.
4335 (fold_stmt_inplace): Likewise.
4336
7e673273
RG
43372009-04-17 Richard Guenther <rguenther@suse.de>
4338
4339 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4340 (record_equivalences_from_stmt): Remove useless checks and
4341 simplifications.
4342 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4343 the type is already suitable.
4344
fabf2749
PB
43452009-04-17 Paolo Bonzini <bonzini@gnu.org>
4346
4347 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4348
68f7b061
UB
43492009-04-17 Uros Bizjak <ubizjak@gmail.com>
4350
4351 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4352 (CMPtype): Define as __gcc_CMPtype.
4353
532bfb0a
AJ
43542009-04-17 Aurelien Jarno <aurelien@aurel32.net>
4355
4356 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4357 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4358
e3ac77ff
RG
43592009-04-17 Richard Guenther <rguenther@suse.de>
4360
4361 PR tree-optimization/39746
4362 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4363 special-casing for builtins and static variable use/def.
4364 (call_may_clobber_ref_p_1): Likewise.
4365
7072a650
ILT
43662009-04-16 Ian Lance Taylor <iant@google.com>
4367
4368 * df.h: Include "timevar.h".
4369 (struct df_problem): Change tv_id field to timevar_id_t.
4370 * tree-pass.h: Include "timevar.h".
4371 (struct opt_pass): Change tv_id field to timevar_id_t.
4372 * timevar.h (timevar_id_t): Define TV_NONE.
4373 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4374 TV_NONE rather than tv_id != 0.
4375 (execute_one_pass): Likewise.
4376 * Makefile.in (DF_H): Add $(TIMEVAR_H).
4377 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
4378 dependencies to $(TREE_PASS_H).
4379 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4380 to TV_NONE.
4381 (pass_branch_target_load_optimize2): Likewise.
4382 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4383 (pass_outof_cfg_layout_mode): Likewise.
4384 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4385 (pass_rebuild_cgraph_edges): Likewise.
4386 (pass_remove_cgraph_callee_edges): Likewise.
4387 * df-core.c (pass_df_initialize_opt): Likewise.
4388 (pass_df_initialize_no_opt): Likewise.
4389 (pass_df_finish): Likewise.
4390 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4391 * except.c (pass_set_nothrow_function_flags): Likewise.
4392 (pass_convert_to_eh_region_ranges): Likewise.
4393 * final.c (pass_compute_alignments): Likewise.
4394 * function.c (pass_instantiate_virtual_regs): Likewise.
4395 (pass_init_function): Likewise.
4396 (pass_leaf_regs): Likewise.
4397 (pass_match_asm_constraints): Likewise.
4398 * gimple-low.c (pass_lower_cf): Likewise.
4399 (pass_mark_used_blocks): Likewise.
4400 * init-regs.c (pass_initialize_regs): Likewise.
4401 * integrate.c (pass_initial_value_sets): Likewise.
4402 * ira.c (pass_ira): Likewise.
4403 * jump.c (pass_cleanup_barriers): Likewise.
4404 * omp-low.c (pass_expand_omp): Likewise.
4405 (pass_lower_omp): Likewise.
4406 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
4407 * recog.c (pass_split_all_insns): Likewise.
4408 (pass_split_after_reload): Likewise.
4409 (pass_split_before_regstack): Likewise.
4410 (pass_split_before_sched2): Likewise.
4411 (pass_split_for_shorten_branches): Likewise.
4412 * reginfo.c (pass_reginfo_init): Likewise.
4413 (pass_subregs_of_mode_init): Likewise.
4414 (pass_subregs_of_mode_finish): Likewise.
4415 * passes.c (pass_postreload): Likewise.
4416 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
4417 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
4418 (pass_warn_function_return): Likewise.
4419 (pass_warn_function_noreturn): Likewise.
4420 * tree-complex.c (pass_lower_complex): Likewise.
4421 (pass_lower_complex_O0): Likewise.
4422 * tree-if-conv.c (pass_if_conversion): Likewise.
4423 * tree-into-ssa.c (pass_build_ssa): Likewise.
4424 * tree-mudflap.c (pass_mudflap_1): Likewise.
4425 (pass_mudflap_2): Likewise.
4426 * tree-nomudflap.c (pass_mudflap_1): Likewise.
4427 (pass_mudflap_2): Likewise.
4428 * tree-nrv.c (pass_return_slot): Likewise.
4429 * tree-object-size.c (pass_object_sizes): Likewise.
4430 * tree-optimize.c (pass_all_optimizations): Likewise.
4431 (pass_early_local_passes): Likewise.
4432 (pass_all_early_optimizations): Likewise.
4433 (pass_cleanup_cfg): Likewise.
4434 (pass_cleanup_cfg_post_optimizing): Likewise.
4435 (pass_free_datastructures): Likewise.
4436 (pass_free_cfg_annotations): Likewise.
4437 (pass_fixup_cfg): Likewise.
4438 (pass_init_datastructures): Likewise.
4439 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
4440 (pass_late_warn_uninitialized): Likewise.
4441 (pass_update_address_taken): Likewise.
4442 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
4443 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
4444 (pass_cse_sincos): Likewise.
4445 (pass_convert_to_rsqrt): Likewise.
4446 * tree-ssa-structalias.c (pass_build_alias): Likewise.
4447 * tree-stdarg.c (pass_stdarg): Likewise.
4448 * tree-tailcall.c (pass_tail_recursion): Likewise.
4449 (pass_tail_calls): Likewise.
4450 * tree-vect-generic.c (pass_lower_vector): Likewise.
4451 (pass_lower_vector_ssa): Likewise.
4452 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
4453
0051ef59
JM
44542009-04-16 Joseph Myers <joseph@codesourcery.com>
4455
4456 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4457 XLR entry.
4458 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
4459 Handle -march=xlr.
4460 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
4461 logical and signext.
4462
b3f8558a
KK
44632009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
4464
4465 PR target/39767
4466 * config/sh/predicates.md (arith_operand): Check if the operand
4467 of TRUNCATE is a REG.
4468
f57597d9
KH
44692009-04-16 Kazu Hirata <kazu@codesourcery.com>
4470
4471 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4472 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4473
b172d063
KH
44742009-04-16 Kazu Hirata <kazu@codesourcery.com>
4475
4476 * tree-iterator.c (tsi_split_statement_list_after,
4477 tsi_split_statement_list_before): Remove.
4478 * tree-iterator.h: Remove the prototypes for
532bfb0a 4479 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 4480
78fe4f1f
KH
44812009-04-16 Kazu Hirata <kazu@codesourcery.com>
4482
4483 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
4484 * tree-ssa-propagate.h: Remove the prototype for
4485 stmt_makes_single_load.
4486
43dd3201
KH
44872009-04-16 Kazu Hirata <kazu@codesourcery.com>
4488
4489 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
4490 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
4491
4252a4aa
KH
44922009-04-16 Kazu Hirata <kazu@codesourcery.com>
4493
4494 * tree-iterator.c (EXPR_LAST_BODY): Remove.
4495
bfb69968
KH
44962009-04-16 Kazu Hirata <kazu@codesourcery.com>
4497
4498 * except.c (eh_region_outer_p): Remove.
4499 * except.h: Remove the prototype for eh_region_outer_p.
4500
c7db7fa5
KH
45012009-04-16 Kazu Hirata <kazu@codesourcery.com>
4502
4503 * function.c (current_function_assembler_name): Remove.
4504 * function.h: Remove the prototype for
4505 current_function_assembler_name.
4506
efc0b2bd
ILT
45072009-04-16 Ian Lance Taylor <iant@google.com>
4508
532bfb0a 4509 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
4510 (add_reg_note): Call alloc_reg_note.
4511 * rtl.h (alloc_reg_note): Declare.
4512 * combine.c (try_combine): Use alloc_reg_note.
4513 (recog_for_combine, move_deaths): Likewise.
4514 (distribute_notes): Use alloc_reg_note and add_reg_note.
4515 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
4516 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
4517 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
4518
6080348f
VM
45192009-04-16 Vladimir Makarov <vmakarov@redhat.com>
4520
4521 PR rtl-optimization/39762
4522 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
4523 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 4524 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 4525
6080348f
VM
4526 * ira-conflicts.c (process_regs_for_copy): Use function
4527 ira_get_register_move_cost instead of global
4528 ira_register_move_cost.
4529
4530 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
4531 color_pass, move_spill_restore, update_curr_costs): Ditto.
4532
4533 * ira-lives.c (process_single_reg_class_operands): Ditto.
4534
4535 * ira-emit.c (emit_move_list): Ditto.
4536
4537 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
4538 (record_reg_classes): Ditto. Use functions
4539 ira_get_register_move_cost and ira_get_may_move_cost instead of
4540 global vars ira_register_move_cost, ira_may_move_out_cost and
4541 ira_may_move_in_cost.
4542 (record_address_regs): Don't call ira_init_register_move_cost.
4543 Use function ira_get_may_move_cost instead of global
4544 ira_may_move_in_cost.
4545 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 4546 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 4547 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 4548
646bea10
RG
45492009-04-16 Richard Guenther <rguenther@suse.de>
4550
4551 * tree-cfg.c (verify_gimple_assign_binary):
4552 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
4553 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
4554 (create_general_new_stmt): Note that this function is broken.
4555
02e819ff
RAE
45562009-04-16 Rafael Avila de Espindola <espindola@google.com>
4557
4558 * common.opt (fhelp): Add Var(help_flag).
4559 * gcc-plugin.h (plugin_info): Add help.
4560 * plugin.c (plugin_name_args): Add help.
4561 (register_plugin_info): Set plugin->help.
4562 (print_help_one_plugin): New.
4563 (print_plugins_help): New.
4564 * plugin.h (print_plugins_help): New.
4565 * toplev.c (toplev_main): Call print_plugins_help if needed.
4566
ccacdf06
RG
45672009-04-16 Richard Guenther <rguenther@suse.de>
4568
4569 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
4570 (gimple_ior_addresses_taken_1): New function.
4571 (gimple_ior_addresses_taken): Likewise.
4572 * gimple.h (struct gimple_statement_with_ops_base): Remove
4573 addresses_taken member.
4574 (gimple_ior_addresses_taken): Declare.
4575 (gimple_addresses_taken, gimple_addresses_taken_ptr,
4576 gimple_set_addresses_taken): Remove.
4577 * ipa-reference.c (mark_address): New function.
4578 (scan_stmt_for_static_refs): Use it for marking addresses taken.
4579 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
4580 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
4581 (gimple_add_to_addresses_taken): Remove.
4582 (get_tmr_operands): Call mark_address_taken.
4583 (get_asm_expr_operands): Likewise.
4584 (get_expr_operands): Likewise.
4585 (build_ssa_operands): Do not clear the addresses_taken bitmap.
4586 (free_stmt_operands): Do not free it.
4587 * tree-ssa.c (delete_tree_ssa): Likewise.
4588 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
4589
346ef3fa
RG
45902009-04-16 Richard Guenther <rguenther@suse.de>
4591
4592 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
4593 (walk_stmt_load_store_ops): Likewise.
4594 * gimple.c (get_base_loadstore): New function.
4595 (walk_stmt_load_store_addr_ops): Likewise.
4596 (walk_stmt_load_store_ops): Likewise.
4597 * ipa-pure-const.c (check_op): Simplify.
4598 (check_load, check_store): New functions.
4599 (check_stmt): Use walk_stmt_load_store_ops.
4600 * ipa-reference.c (mark_load): Adjust signature.
4601 (mark_store): Likewise.
4602 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
4603
44e9f006
RAE
46042009-04-16 Rafael Avila de Espindola <espindola@google.com>
4605
4606 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
4607 (plugin_info): New.
4608 * opts.c (common_handle_option): Don't call print_version.
4609 * plugin.c (plugin_name_args): Add version.
4610 (register_plugin_info): New.
4611 (register_callback): Handle PLUGIN_INFO.
4612 (try_init_one_plugin): New.
4613 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
4614 if failed to init.
4615 (finalize_one_plugin): New.
4616 (finalize_plugins): New.
4617 (print_one_plugin): New.
4618 (print_plugins_versions): New.
4619 * plugin.h (print_plugins_versions): New.
4620 (finalize_plugins): New.
4621 * toplev.c (compile_file): Don't call initialize_plugins.
4622 (print_version): Call print_plugins_versions.
4623 (toplev_main): Call initialize_plugins. Print version if needed.
4624 Call finalize_plugins.
4625
41fd0f9b
RAE
46262009-04-16 Rafael Avila de Espindola <espindola@google.com>
4627
4628 * common.opt (fversion): New.
4629 * gcc.c (print_version): New.
4630 (process_command): Don't print the version. Just set print_version.
4631 (main): Print version. Call subprocesses if print_version and
4632 verbose_flag are set.
4633 * opts.c (common_handle_option): Handle OPT_fversion.
4634
550918ca 46352009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 4636 Ira Rosen <irar@il.ibm.com>
550918ca
RG
4637
4638 PR tree-optimization/39698
4639 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
4640 type of the reduction variable. Only generate the def if
4641 it is needed.
4642
4643 * omp-low.c (expand_omp_for_generic): When converting to a pointer
4644 make sure to first convert to an integer of the same precision.
4645 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
4646 the type of the evolution correctly in computing the new
4647 induction variable base.
4648
54634841
RG
46492009-04-16 Richard Guenther <rguenther@suse.de>
4650
4651 PR middle-end/39625
4652 * tree-cfg.c (make_blocks): Split statements with to-be
4653 abnormal SSA names on the lhs.
4654
b6fc2cdb
PB
46552009-04-16 Paolo Bonzini <bonzini@gnu.org>
4656
4657 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
4658 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
4659 * c-typeck.c (really_start_incremental_init): Likewise.
4660 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
4661 (TARGET_INITIALIZER): Remove it.
4662 * target.h (struct target): Remove vector_opaque_p.
4663 * tree.c (build_opaque_vector_type): New.
4664 * tree.h (TYPE_VECTOR_OPAQUE): New.
4665 (build_opaque_vector_type): Declare.
4666 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
4667 * config/rs6000/rs6000.c (build_opaque_vector_type,
4668 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
4669 (rs6000_init_builtins): Use build_opaque_vector_type for
4670 opaque_V4SI_type_node.
4671
a417cdd9
CM
46722009-04-15 Catherine Moore <clm@codesourcery.com>
4673
532bfb0a
AJ
4674 * debug.h (set_name): Declare.
4675 * dwarf2out.c (dwarf2out_set_name): Declare.
4676 (dwarf2_debug_hooks): Add set_name.
4677 (find_AT_string): New.
4678 (add_AT_string): Call find_AT_string.
4679 (dwarf2out_set_name): New.
4680 * cp/decl.c (grokdeclarator): Call set_name.
4681 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
4682 * debug.c (do_nothing_debug_hooks): Likewise.
4683 * dbxout.c (dbx_debug_hooks): Likewise.
4684 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 4685
60839f5d 46862009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 4687
532bfb0a
AJ
4688 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
4689 reg for single-precision FPU.
4690 * config/rs6000/rs6000.md (movsi_internal1): Only for
4691 !TARGET_SINGLE_FPU.
4692 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
4693 single-precision FP regs.
4694
ada39f0b
RG
46952009-04-15 Richard Guenther <rguenther@suse.de>
4696
4697 * omp-low.c (lower_rec_input_clauses): Build correct address
4698 expressions.
4699 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 4700 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
4701 (generate_memset_zero): Fix types.
4702 * tree-profile.c (prepare_instrumented_value): Correctly
4703 widen a pointer.
4704
6866c6e8
ILT
47052009-04-15 Ian Lance Taylor <iant@google.com>
4706
4707 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
4708 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
4709 for -Wall and for -Wc++-compat.
4710 (c_common_post_options): For C++, set warn_enum_compare if not
4711 already set.
4712 * c-tree.h (struct c_expr): Add field original_type.
4713 (build_external_ref): Update declaration.
4714 * c-parser.c (c_parser_braced_init): Set original_type.
4715 (c_parser_initelt): Likewise.
4716 (c_parser_expr_no_commas): Likewise.
4717 (c_parser_conditional_expression): Likewise.
4718 (c_parser_cast_expression): Likewise.
4719 (c_parser_unary_expression): Likewise. Pull setting of
4720 original_code to top of function.
4721 (c_parser_sizeof_expression): Set original_type.
4722 (c_parser_alignof_expression): Likewise.
4723 (c_parser_postfix_expression): Likewise. Pull setting of
4724 original_code to top of function.
532bfb0a 4725 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
4726 (c_parser_postfix_expression_after_primary): Likewise.
4727 (c_parser_expression): Likewise.
4728 * c-typeck.c (build_external_ref): Add type parameter. Change all
4729 callers.
4730 (c_expr_sizeof_expr): Set original_type field.
4731 (parser_build_unary_op): Likewise.
4732 (parser_build_binary_op): Likewise. Optionally warn about
4733 comparisons of enums of different types.
4734 (digest_init): Set original_type field.
4735 (really_start_incremental_init): Likewise.
4736 (push_init_level, pop_init_level): Likewise.
4737 * doc/invoke.texi (Warning Options): -Wenum-compare now
4738 supported in C.
4739
f116fecf
RG
47402009-04-15 Richard Guenther <rguenther@suse.de>
4741
4742 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
4743 out a necessary conversion.
4744 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
4745 names we didn't value number.
4746 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
4747
25e20805
RG
47482009-04-15 Richard Guenther <rguenther@suse.de>
4749
4750 PR tree-optimization/39764
4751 * tree-ssa-ccp.c (get_value): Canonicalize value with
4752 canonicalize_float_value.
4753
90cc3676
JH
47542009-04-15 Jan Hubicka <jh@suse.cz>
4755
4756 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
4757 Wrong version of patch.
4758
6d14c006
JH
47592009-04-15 Jan Hubicka <jh@suse.cz>
4760
4761 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
4762
5afaa917
NS
47632009-04-15 Nathan Sidwell <nathan@codesourcery.com>
4764
4765 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
4766 our distinct integral and vector types.
4767
3b482fca
RAE
47682009-04-15 Rafael Avila de Espindola <espindola@google.com>
4769
4770 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
4771 * init.c (build_vtbl_address): Remove call to assemble_external.
4772
6cd1d2e2
DJ
47732009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
4774
4775 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
4776 output for other floating point modes.
4777
dab71827
DN
47782009-04-14 Diego Novillo <dnovillo@google.com>
4779
4780 * diagnostic.c (diagnostic_report_diagnostic): Do not
4781 warn about loaded plugins for DK_ERROR and DK_WARNING.
4782 * c-decl.c (declspecs_add_type): Move call to
4783 invoke_plugin_callbacks ...
4784 * c-parser.c (c_parser_declspecs): ... here.
4785 * plugin.c (dump_active_plugins): Tidy output.
4786
68a607d8
DN
47872009-04-14 Diego Novillo <dnovillo@google.com>
4788 Le-Chun Wu <lcwu@google.com>
4789
4790 * configure.ac: Add --enable-plugin support.
4791 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
4792 * Makefile.in (PLUGIN_H): Define.
4793 Export ENABLE_PLUGIN and GMPINC to site.exp.
4794 Add PLUGINLIBS to link command.
4795 Add/modify dependencies for plugin.o and files including plugin.h.
4796 (plugin.o): New.
4797 * config.in: Regenerate.
2ba9daa7 4798
68a607d8
DN
4799 * opts.c (common_handle_option): Handle OPT_fplugin_ and
4800 OPT_fplugin_arg_.
4801
48022009-04-14 Le-Chun Wu <lcwu@google.com>
4803
4804 * tree-pass.h (register_one_dump_file): Add a prototype for
4805 register_one_dump_file.
4806 * toplev.c (compile_file): Call initialize_plugins.
4807 (do_compile): Call invoke_plugin_callbacks.
4808 (toplev_main): Call invoke_plugin_callbacks.
4809 * common.opt: Add -fplugin= and -fplugin-arg-.
4810 * gcc-plugin.h: New public header file for plugins to include.
4811 * plugin.c: New source file.
4812 * plugin.h: New internal header file.
4813 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 4814
68a607d8
DN
4815 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
4816
48172009-04-14 Diego Novillo <dnovillo@google.com>
4818
4819 * doc/plugins.texi: New.
4820 * doc/gccint.texi: Add reference to Plugins chapter.
4821 * doc/invoke.texi: Document -fplugin and -fplugin-arg
4822 * diagnostic.c (diagnostic_report_diagnostic): Warn about
4823 loaded plugins, if any.
4824 * timevar.def (TV_PLUGIN_INIT): Define.
4825 (TV_PLUGIN_RUN): Define.
4826 * plugin.c: Include timevar.h
4827 (plugins_active_p): New.
4828 (dump_active_plugins): New.
4829 (debug_active_plugins): New.
4830
50617257
JM
48312009-04-14 Joseph Myers <joseph@codesourcery.com>
4832
4833 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
4834 library paths.
4835 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
4836
b32f6fff
KH
48372009-04-14 Kazu Hirata <kazu@codesourcery.com>
4838
4839 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
4840 the same as a minus without a shift.
4841
85d04fa2
NC
48422009-04-14 Nick Clifton <nickc@redhat.com>
4843
4844 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
4845 comparisons with small integers will always produce a short
4846 branch.
4847
e495a0c8
RAE
48482009-04-14 Rafael Avila de Espindola <espindola@google.com>
4849
4850 Merge:
e495a0c8
RAE
4851 2008-12-19 Diego Novillo <dnovillo@google.com>
4852
532bfb0a 4853 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 4854
ad41bd84 48552009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
4856
4857 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
4858 verification.
4859 (verify_gimple_assign_binary): Likewise. Handle shifts and
4860 rotates correctly.
4861 (verify_gimple_phi): Print the mismatched argument position.
4862 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
4863 Fix types.
4864 (vect_update_init_of_dr): Likewise.
4865 * matrix-reorg.c (transform_access_sites): Do what the
4866 comment suggests.
4867 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
4868
60839f5d 48692009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
4870
4871 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
4872 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
4873 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 4874 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
4875 remove duplicate config
4876
b0e2d008
DR
48772009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
4878
4879 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
4880 file_name:line_number type locator of the call site.
2ba9daa7 4881
1244a8b7
VM
48822009-04-13 Vladimir Makarov <vmakarov@redhat.com>
4883
4884 * genautomata.c: Put blank after comma.
4885 (automaton_decls): New.
4886 (struct unit_usage): Add comments to member next.
4887 (store_alt_unit_usage): Keep the list ordered.
4888 (unit_present_on_list_p, equal_alternatives_p): New.
4889 (check_regexp_units_distribution): Check units distribution
4890 correctness correctly.
4891 (main): Don't write automata if error is found. Return correct
4892 exit code.
2ba9daa7 4893
1244a8b7
VM
4894 * config/m68k/cf.md (cfv4_ds): Remove.
4895 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
4896 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
4897
4898 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
4899 power4-load-ext, power4-store, power4-store-update,
4900 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
4901 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
4902 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
4903 power4-sqrt, power4-isync): Modify reservation to make correct
4904 unit distribution to automata.
4905
4906 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
4907 power5-store-update, power5-two, power5-three, power5-lmul,
4908 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 4909
f7dd1864
AN
49102009-04-13 Adam Nemet <anemet@caviumnetworks.com>
4911
4912 * except.c (pass_set_nothrow_function_flags): Set name and add
4913 TODO_dump_func.
4914 (set_nothrow_function_flags): Mention in the dump file when
4915 changing a function to nothrow.
4916
59a1171f
OS
49172009-04-13 Ozkan Sezer <sezeroz@gmail.com>
4918
4919 PR/39066
4920 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
4921 instead of unsigned long.
4922
934c2060
RR
49232009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4924
f7dd1864
AN
4925 * config/arm/arm.c (return_used_this_function): Remove.
4926 (arm_output_function_prologue): Remove use of
934c2060 4927 return_used_this_function.
f7dd1864 4928 (output_return_instruction): Replace use of
934c2060
RR
4929 return_used_this_function
4930 by cfun->machine->return_used_this_function.
f7dd1864
AN
4931 (arm_output_epilogue): Likewise.
4932 (arm_output_function_epilogue): Likewise.
4933 (thumb_unexpanded_epilogue): Likewise.
4934 * config/arm/arm.h (struct machine_function):
934c2060 4935 New member return_used_this_function.
f7dd1864 4936
ae5cc016
MM
49372009-04-12 Mark Mitchell <mark@codesourcery.com>
4938
4939 * doc/install.texi: Correct description of default directory for
4940 --with-gxx-include-dir.
4941
a0ce68df 49422009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
4943
4944 * fold-const.c (build_range_check): Properly deal with enumeral and
4945 boolean base types.
4946
3906a4a1
SB
49472009-04-12 Steven Bosscher <steven@gcc.gnu.org>
4948
4949 * doc/invoke.texi (max_gcse_passes): Remove documentation.
4950 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
4951 * params.h (MAX_GCSE_PASSES): Remove.
4952 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
4953 in sequence. Remove ability to run multiple passes.
4954 (bypass_jumps): Report run as third CPROP pass.
4955
efaadb93
AN
49562009-04-12 Adam Nemet <anemet@caviumnetworks.com>
4957
4958 PR middle-end/39651
4959 * except.c (can_throw_external): Look at each insn in a SEQUENCE
4960 when deciding whether the whole SEQUENCE can throw.
4961
4c48007b
UB
49622009-04-12 Uros Bizjak <ubizjak@gmail.com>
4963
4964 PR target/39740
4965 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
4966 offseted label references.
4967
b4104018
JH
49682009-04-11 Jan Hubicka <jh@suse.cz>
4969
4970 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
4971
32848948
RG
49722009-04-11 Richard Guenther <rguenther@suse.de>
4973
4974 PR middle-end/39732
4975 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
4976 return variables as TREE_ADDRESSABLE.
4977
8810712e
RG
49782009-04-11 Richard Guenther <rguenther@suse.de>
4979
4980 PR tree-optimization/39713
4981 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
4982 reference trees have SSA_NAME operands.
4983
fa78c0c1
RG
49842009-04-11 Richard Guenther <rguenther@suse.de>
4985
4986 PR c/39712
4987 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
4988 address expressions.
4989
4d722130
DK
49902009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
4991
4992 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
4993 match changes in Cygwin 1.7
4994 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
4995 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
4996
567a90f5
PB
49972009-04-10 Paolo Bonzini <bonzini@gnu.org>
4998
4999 PR tree-optimization/39701
5000 * doc/invoke.texi (Optimization Options): Document change in
5001 meaning and initialization of -fdelete-null-pointer-checks.
5002
1ad2f450
L
50032009-04-10 H.J. Lu <hongjiu.lu@intel.com>
5004
5005 PR middle-end/39701
5006 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5007
5008 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
5009 here.
5010
5011 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
5012
1afc5373
CF
50132009-04-10 Chao-ying Fu <fu@mips.com>
5014
5015 * doc/tm.texi (Instruction Output): Document
5016 TARGET_ASM_FINAL_POSTSCAN_INSN.
5017 * target.h (final_postscan_insn): New field in asm_out.
5018 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5019 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
5020 * final.c (final_scan_insn): Call
5021 targetm.asm_out.final_postscan_insn after outputting
5022 an asm macro and a normal instruction.
5023
5024 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
5025 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
5026 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
5027 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
5028 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5029
4d35e75c
PB
50302009-04-10 Paolo Bonzini <bonzini@gnu.org>
5031
5032 PR middle-end/39701
1ad2f450
L
5033 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
5034 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 5035
62c49b83
L
50362009-04-10 H.J. Lu <hongjiu.lu@intel.com>
5037
5038 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
5039
80558628
L
50402009-04-09 H.J. Lu <hongjiu.lu@intel.com>
5041
5042 PR target/39678
5043 * config/i386/i386.c (classify_argument): Handle SCmode with
5044 (bit_offset % 64) != 0.
5045
8c70d28b
SL
50462009-04-09 Sandra Loosemore <sandra@codesourcery.com>
5047
5048 * doc/invoke.texi (Optimize Options): Add cross-reference to
5049 -Q --help=optimizers examples.
5050
e1ff19bf
BE
50512009-04-10 Ben Elliston <bje@au.ibm.com>
5052
5053 PR target/36800
5054 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
5055 regalign for the reg == fpr and TDmode case.
5056
52daca75
DA
50572009-04-09 David Ayers <ayers@fsfe.org>
5058
5059 PR objc/29200
5060 * objc/objc-act.c (warn_with_method): Remove helper function.
5061 (check_duplicates): Call warning and inform directly.
5062 (really_start_method): Likewise.
5063
b45f0e58
PB
50642009-04-09 Paolo Bonzini <bonzini@gnu.org>
5065
5066 * expmed.c (expand_divmod): Always use a comparison for a division
5067 by a large unsigned integer.
5068
1ad2f450
L
5069 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5070 for things others than variables or functions as nonzero.
b45f0e58 5071
748086b7
JJ
50722009-04-09 Nick Clifton <nickc@redhat.com>
5073
5074 * unwind-compat.c: Change copyright header to refer to version
5075 3 of the GNU General Public License with version 3.1 of the
5076 GCC Runtime Library Exception and to point readers at the
7a715bba 5077 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
5078 * config/alpha/crtfastmath.c: Likewise.
5079 * config/alpha/linux-unwind.h: Likewise.
5080 * config/alpha/qrnnd.asm: Likewise.
5081 * config/alpha/vms-crt0-64.c: Likewise.
5082 * config/alpha/vms-crt0.c: Likewise.
5083 * config/alpha/vms-dwarf2.asm: Likewise.
5084 * config/alpha/vms-dwarf2eh.asm: Likewise.
5085 * config/alpha/vms-psxcrt0-64.c: Likewise.
5086 * config/alpha/vms-psxcrt0.c: Likewise.
5087 * config/alpha/vms_tramp.asm: Likewise.
5088 * config/arc/initfini.c: Likewise.
5089 * config/arc/lib1funcs.asm: Likewise.
5090 * config/arm/bpabi-v6m.S: Likewise.
5091 * config/arm/bpabi.S: Likewise.
5092 * config/arm/bpabi.c: Likewise.
5093 * config/arm/crti.asm: Likewise.
5094 * config/arm/crtn.asm: Likewise.
5095 * config/arm/ieee754-df.S: Likewise.
5096 * config/arm/ieee754-sf.S: Likewise.
5097 * config/arm/lib1funcs.asm: Likewise.
5098 * config/arm/libunwind.S: Likewise.
5099 * config/arm/linux-atomic.c: Likewise.
5100 * config/arm/mmintrin.h: Likewise.
5101 * config/arm/pr-support.c: Likewise.
5102 * config/arm/unaligned-funcs.c: Likewise.
5103 * config/arm/unwind-arm.c: Likewise.
5104 * config/arm/unwind-arm.h: Likewise.
5105 * config/avr/libgcc.S: Likewise.
5106 * config/bfin/crti.s: Likewise.
5107 * config/bfin/crtlibid.s: Likewise.
5108 * config/bfin/crtn.s: Likewise.
5109 * config/bfin/lib1funcs.asm: Likewise.
5110 * config/bfin/linux-unwind.h: Likewise.
5111 * config/cris/arit.c: Likewise.
5112 * config/cris/cris_abi_symbol.c: Likewise.
5113 * config/darwin-64.c: Likewise.
5114 * config/darwin-crt2.c: Likewise.
5115 * config/darwin-crt3.c: Likewise.
5116 * config/darwin.h: Likewise.
5117 * config/dbxelf.h: Likewise.
5118 * config/dfp-bit.c: Likewise.
5119 * config/dfp-bit.h: Likewise.
5120 * config/elfos.h: Likewise.
5121 * config/fixed-bit.c: Likewise.
5122 * config/fixed-bit.h: Likewise.
5123 * config/fp-bit.c: Likewise.
5124 * config/fp-bit.h: Likewise.
5125 * config/fr30/crti.asm: Likewise.
5126 * config/fr30/crtn.asm: Likewise.
5127 * config/fr30/lib1funcs.asm: Likewise.
5128 * config/freebsd-spec.h: Likewise.
5129 * config/frv/cmovd.c: Likewise.
5130 * config/frv/cmovh.c: Likewise.
5131 * config/frv/cmovw.c: Likewise.
5132 * config/frv/frvbegin.c: Likewise.
5133 * config/frv/frvend.c: Likewise.
5134 * config/frv/lib1funcs.asm: Likewise.
5135 * config/glibc-stdint.h: Likewise.
5136 * config/h8300/clzhi2.c: Likewise.
5137 * config/h8300/crti.asm: Likewise.
5138 * config/h8300/crtn.asm: Likewise.
5139 * config/h8300/ctzhi2.c: Likewise.
5140 * config/h8300/fixunssfsi.c: Likewise.
5141 * config/h8300/lib1funcs.asm: Likewise.
5142 * config/h8300/parityhi2.c: Likewise.
5143 * config/h8300/popcounthi2.c: Likewise.
5144 * config/i386/ammintrin.h: Likewise.
5145 * config/i386/att.h: Likewise.
5146 * config/i386/avxintrin.h: Likewise.
5147 * config/i386/biarch64.h: Likewise.
5148 * config/i386/bmmintrin.h: Likewise.
5149 * config/i386/cpuid.h: Likewise.
5150 * config/i386/cross-stdarg.h: Likewise.
5151 * config/i386/crtfastmath.c: Likewise.
5152 * config/i386/crtprec.c: Likewise.
5153 * config/i386/cygming-crtbegin.c: Likewise.
5154 * config/i386/cygming-crtend.c: Likewise.
5155 * config/i386/cygwin.asm: Likewise.
5156 * config/i386/emmintrin.h: Likewise.
5157 * config/i386/gmm_malloc.h: Likewise.
5158 * config/i386/gthr-win32.c: Likewise.
5159 * config/i386/i386.h: Likewise.
5160 * config/i386/immintrin.h: Likewise.
5161 * config/i386/linux-unwind.h: Likewise.
5162 * config/i386/linux64.h: Likewise.
5163 * config/i386/mm3dnow.h: Likewise.
5164 * config/i386/mmintrin-common.h: Likewise.
5165 * config/i386/mmintrin.h: Likewise.
5166 * config/i386/nmmintrin.h: Likewise.
5167 * config/i386/pmm_malloc.h: Likewise.
5168 * config/i386/pmmintrin.h: Likewise.
5169 * config/i386/smmintrin.h: Likewise.
5170 * config/i386/sol2-c1.asm: Likewise.
5171 * config/i386/sol2-ci.asm: Likewise.
5172 * config/i386/sol2-cn.asm: Likewise.
5173 * config/i386/sol2-gc1.asm: Likewise.
5174 * config/i386/tmmintrin.h: Likewise.
5175 * config/i386/unix.h: Likewise.
5176 * config/i386/w32-unwind.h: Likewise.
5177 * config/i386/wmmintrin.h: Likewise.
5178 * config/i386/x86-64.h: Likewise.
5179 * config/i386/x86intrin.h: Likewise.
5180 * config/i386/xmmintrin.h: Likewise.
5181 * config/ia64/crtbegin.asm: Likewise.
5182 * config/ia64/crtend.asm: Likewise.
5183 * config/ia64/crtfastmath.c: Likewise.
5184 * config/ia64/crti.asm: Likewise.
5185 * config/ia64/crtn.asm: Likewise.
5186 * config/ia64/fde-glibc.c: Likewise.
5187 * config/ia64/lib1funcs.asm: Likewise.
5188 * config/ia64/linux-unwind.h: Likewise.
5189 * config/ia64/quadlib.c: Likewise.
5190 * config/ia64/unwind-ia64.c: Likewise.
5191 * config/linux.h: Likewise.
5192 * config/m32c/m32c-lib1.S: Likewise.
5193 * config/m32c/m32c-lib2-trapv.c: Likewise.
5194 * config/m32c/m32c-lib2.c: Likewise.
5195 * config/m32r/initfini.c: Likewise.
5196 * config/m68hc11/larith.asm: Likewise.
5197 * config/m68hc11/m68hc11-crt0.S: Likewise.
5198 * config/m68k/cf.md: Likewise.
5199 * config/m68k/crti.s: Likewise.
5200 * config/m68k/crtn.s: Likewise.
5201 * config/m68k/lb1sf68.asm: Likewise.
5202 * config/m68k/linux-unwind.h: Likewise.
5203 * config/mcore/crti.asm: Likewise.
5204 * config/mcore/crtn.asm: Likewise.
5205 * config/mcore/lib1.asm: Likewise.
5206 * config/mips/linux-unwind.h: Likewise.
5207 * config/mips/loongson.h: Likewise.
5208 * config/mips/mips16.S: Likewise.
5209 * config/mmix/crti.asm: Likewise.
5210 * config/mmix/crtn.asm: Likewise.
5211 * config/pa/fptr.c: Likewise.
5212 * config/pa/hpux-unwind.h: Likewise.
5213 * config/pa/lib2funcs.asm: Likewise.
5214 * config/pa/linux-atomic.c: Likewise.
5215 * config/pa/linux-unwind.h: Likewise.
5216 * config/pa/milli64.S: Likewise.
5217 * config/pa/quadlib.c: Likewise.
5218 * config/pa/stublib.c: Likewise.
5219 * config/picochip/libgccExtras/adddi3.asm: Likewise.
5220 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5221 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5222 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5223 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5224 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5225 * config/picochip/libgccExtras/divmod15.asm: Likewise.
5226 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5227 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5228 * config/picochip/libgccExtras/longjmp.asm: Likewise.
5229 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5230 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5231 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5232 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5233 * config/picochip/libgccExtras/setjmp.asm: Likewise.
5234 * config/picochip/libgccExtras/subdi3.asm: Likewise.
5235 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5236 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5237 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5238 * config/rs6000/750cl.h: Likewise.
5239 * config/rs6000/altivec.h: Likewise.
5240 * config/rs6000/biarch64.h: Likewise.
5241 * config/rs6000/crtresfpr.asm: Likewise.
5242 * config/rs6000/crtresgpr.asm: Likewise.
5243 * config/rs6000/crtresxfpr.asm: Likewise.
5244 * config/rs6000/crtresxgpr.asm: Likewise.
5245 * config/rs6000/crtsavfpr.asm: Likewise.
5246 * config/rs6000/crtsavgpr.asm: Likewise.
5247 * config/rs6000/darwin-asm.h: Likewise.
5248 * config/rs6000/darwin-fallback.c: Likewise.
5249 * config/rs6000/darwin-fpsave.asm: Likewise.
5250 * config/rs6000/darwin-ldouble.c: Likewise.
5251 * config/rs6000/darwin-tramp.asm: Likewise.
5252 * config/rs6000/darwin-unwind.h: Likewise.
5253 * config/rs6000/darwin-vecsave.asm: Likewise.
5254 * config/rs6000/darwin-world.asm: Likewise.
5255 * config/rs6000/e500crtres32gpr.asm: Likewise.
5256 * config/rs6000/e500crtres64gpr.asm: Likewise.
5257 * config/rs6000/e500crtres64gprctr.asm: Likewise.
5258 * config/rs6000/e500crtrest32gpr.asm: Likewise.
5259 * config/rs6000/e500crtrest64gpr.asm: Likewise.
5260 * config/rs6000/e500crtresx32gpr.asm: Likewise.
5261 * config/rs6000/e500crtresx64gpr.asm: Likewise.
5262 * config/rs6000/e500crtsav32gpr.asm: Likewise.
5263 * config/rs6000/e500crtsav64gpr.asm: Likewise.
5264 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5265 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5266 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5267 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5268 * config/rs6000/eabi-ci.asm: Likewise.
5269 * config/rs6000/eabi-cn.asm: Likewise.
5270 * config/rs6000/eabi.asm: Likewise.
5271 * config/rs6000/linux-unwind.h: Likewise.
5272 * config/rs6000/linux64.h: Likewise.
5273 * config/rs6000/paired.h: Likewise.
5274 * config/rs6000/paired.md: Likewise.
5275 * config/rs6000/ppc64-fp.c: Likewise.
5276 * config/rs6000/ppu_intrinsics.h: Likewise.
5277 * config/rs6000/rs6000.h: Likewise.
5278 * config/rs6000/si2vmx.h: Likewise.
5279 * config/rs6000/sol-ci.asm: Likewise.
5280 * config/rs6000/sol-cn.asm: Likewise.
5281 * config/rs6000/spe.h: Likewise.
5282 * config/rs6000/spu2vmx.h: Likewise.
5283 * config/rs6000/sysv4.h: Likewise.
5284 * config/rs6000/tramp.asm: Likewise.
5285 * config/rs6000/vec_types.h: Likewise.
5286 * config/s390/linux-unwind.h: Likewise.
5287 * config/s390/tpf-unwind.h: Likewise.
5288 * config/score/crti.asm: Likewise.
5289 * config/score/crtn.asm: Likewise.
5290 * config/sh/crt1.asm: Likewise.
5291 * config/sh/crti.asm: Likewise.
5292 * config/sh/crtn.asm: Likewise.
5293 * config/sh/divtab-sh4-300.c: Likewise.
5294 * config/sh/divtab-sh4.c: Likewise.
5295 * config/sh/divtab.c: Likewise.
5296 * config/sh/lib1funcs-4-300.asm: Likewise.
5297 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5298 * config/sh/lib1funcs.asm: Likewise.
5299 * config/sh/lib1funcs.h: Likewise.
5300 * config/sh/linux-atomic.asm: Likewise.
5301 * config/sh/linux-unwind.h: Likewise.
5302 * config/sh/shmedia.h: Likewise.
5303 * config/sh/sshmedia.h: Likewise.
5304 * config/sh/ushmedia.h: Likewise.
5305 * config/sparc/crtfastmath.c: Likewise.
5306 * config/sparc/linux-unwind.h: Likewise.
5307 * config/sparc/sol2-c1.asm: Likewise.
5308 * config/sparc/sol2-ci.asm: Likewise.
5309 * config/sparc/sol2-cn.asm: Likewise.
5310 * config/spu/divmodti4.c: Likewise.
5311 * config/spu/divv2df3.c: Likewise.
5312 * config/spu/float_disf.c: Likewise.
5313 * config/spu/float_unsdidf.c: Likewise.
5314 * config/spu/float_unsdisf.c: Likewise.
5315 * config/spu/float_unssidf.c: Likewise.
5316 * config/spu/mfc_multi_tag_release.c: Likewise.
5317 * config/spu/mfc_multi_tag_reserve.c: Likewise.
5318 * config/spu/mfc_tag_release.c: Likewise.
5319 * config/spu/mfc_tag_reserve.c: Likewise.
5320 * config/spu/mfc_tag_table.c: Likewise.
5321 * config/spu/multi3.c: Likewise.
5322 * config/spu/spu_internals.h: Likewise.
5323 * config/spu/spu_intrinsics.h: Likewise.
5324 * config/spu/spu_mfcio.h: Likewise.
5325 * config/spu/vec_types.h: Likewise.
5326 * config/spu/vmx2spu.h: Likewise.
5327 * config/stormy16/stormy16-lib2.c: Likewise.
5328 * config/svr4.h: Likewise.
5329 * config/sync.c: Likewise.
5330 * config/v850/lib1funcs.asm: Likewise.
5331 * config/vxlib-tls.c: Likewise.
5332 * config/vxlib.c: Likewise.
5333 * config/vxworks-dummy.h: Likewise.
5334 * config/xtensa/crti.asm: Likewise.
5335 * config/xtensa/crtn.asm: Likewise.
5336 * config/xtensa/ieee754-df.S: Likewise.
5337 * config/xtensa/ieee754-sf.S: Likewise.
5338 * config/xtensa/lib1funcs.asm: Likewise.
5339 * config/xtensa/lib2funcs.S: Likewise.
5340 * config/xtensa/linux-unwind.h: Likewise.
5341 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5342 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5343 * coretypes.h: Likewise.
5344 * crtstuff.c: Likewise.
5345 * defaults.h: Likewise.
5346 * dwarf2.h: Likewise.
5347 * emutls.c: Likewise.
5348 * gbl-ctors.h: Likewise.
5349 * gcov-io.h: Likewise.
5350 * ginclude/float.h: Likewise.
5351 * ginclude/iso646.h: Likewise.
5352 * ginclude/stdarg.h: Likewise.
5353 * ginclude/stdbool.h: Likewise.
5354 * ginclude/stddef.h: Likewise.
5355 * ginclude/stdfix.h: Likewise.
5356 * ginclude/stdint-gcc.h: Likewise.
5357 * ginclude/tgmath.h: Likewise.
5358 * gthr-aix.h: Likewise.
5359 * gthr-dce.h: Likewise.
5360 * gthr-gnat.c: Likewise.
5361 * gthr-gnat.h: Likewise.
5362 * gthr-lynx.h: Likewise.
5363 * gthr-mipssde.h: Likewise.
5364 * gthr-nks.h: Likewise.
5365 * gthr-posix.c: Likewise.
5366 * gthr-posix.h: Likewise.
5367 * gthr-posix95.h: Likewise.
5368 * gthr-rtems.h: Likewise.
5369 * gthr-single.h: Likewise.
5370 * gthr-solaris.h: Likewise.
5371 * gthr-tpf.h: Likewise.
5372 * gthr-vxworks.h: Likewise.
5373 * gthr-win32.h: Likewise.
5374 * gthr.h: Likewise.
5375 * libgcc2.c: Likewise.
5376 * libgcc2.h: Likewise.
5377 * libgcov.c: Likewise.
5378 * tsystem.h: Likewise.
5379 * typeclass.h: Likewise.
5380 * unwind-c.c: Likewise.
5381 * unwind-compat.h: Likewise.
5382 * unwind-dw2-fde-compat.c: Likewise.
5383 * unwind-dw2-fde-darwin.c: Likewise.
5384 * unwind-dw2-fde-glibc.c: Likewise.
5385 * unwind-dw2-fde.c: Likewise.
5386 * unwind-dw2-fde.h: Likewise.
5387 * unwind-dw2.c: Likewise.
5388 * unwind-dw2.h: Likewise.
5389 * unwind-generic.h: Likewise.
5390 * unwind-pe.h: Likewise.
5391 * unwind-sjlj.c: Likewise.
5392 * unwind.inc: Likewise.
5393 * config/arm/neon-gen.ml: Change generated copyright header to
5394 refer to version 3 of the GNU General Public License with
5395 version 3.1 of the GCC Runtime Library Exception and to point
5396 readers at the COPYING3 and COPYING3.RUNTIME files and the
5397 FSF's license web page.
5398 * config/arm/arm_neon.h: Regenerate.
5399
54002009-04-09 Jakub Jelinek <jakub@redhat.com>
5401
5402 * config/cris/cris.md: Change copyright header to refer to version
5403 3 of the GNU General Public License.
5404 * doc/install.texi2html: Change copyright header to refer to version
5405 3 of the GNU General Public License and to point readers at the
5406 COPYING3 file and the FSF's license web page.
5407 * config/vax/linux.h: Likewise.
5408
4a77c72b
PB
54092009-04-09 Paolo Bonzini <bonzini@gnu.org>
5410
1ad2f450
L
5411 * config/i386/i386.md (cmpcc): New.
5412 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
5413 (sync_compare_and_swap_cc*): Delete.
5414
5415 * config/s390/s390.c (s390_compare_emitted): Remove.
5416 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
5417 s390_compare_emitted used to be handled. Assert that modes match.
5418 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
5419 refer to sync_compare_and_swap_ccsi.
5420 * config/s390/s390.h (s390_compare_emitted): Remove.
5421 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
5422 instead of s390_compare_emitted.
5423 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
5424 instead of s390_compare_emitted.
5425 * config/s390/s390.md (cmpcc): New.
5426 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
5427 CC_REGNUM, do not pretend it's set.
5428 (sync_compare_and_swap_cc*): Delete.
5429 * config/s390/predicates.md (cc_reg_operand): New.
5430
5431 * expr.c (sync_compare_and_swap_cc): Delete.
5432 * optabs.h (sync_compare_and_swap_cc): Delete.
5433 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
5434 is being used with can_compare_p.
5435 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
5436 (find_cc_set): New.
5437 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
5438 look for a MODE_CC set instead. Use emit_store_flag.
5439 (expand_compare_and_swap_loop): Likewise, with some additional
5440 complication to avoid a force_reg when useless. Use
5441 emit_cmp_and_jump_insns.
5442 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
5443 * doc/md.texi (sync_compare_and_swap_cc): Merge with
5444 sync_compare_and_swap documentation.
4a77c72b 5445
0c0efb33
JH
54462009-04-09 Jan Hubicka <jh@suse.cz>
5447
5448 * except.c (find_prev_try): Break out from ....
5449 (duplicate_eh_regions): ... here; properly update prev_try pointers
5450 when duplication part of tree.
5451 (dump_eh_tree): Improve dumping.
5452 (verify_eh_region): New.
5453 (verify_eh_tree): Use it.
5454
22a65a54
RG
54552009-04-06 Richard Guenther <rguenther@suse.de>
5456
5457 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
5458 &ARRAY addresses by adjusting their types and prepending
5459 a conversion.
5460 * tree-cfg.c (verify_gimple_assign_single): Verify that
5461 addresses are correct.
5462
f76968e6
RG
54632009-04-09 Richard Guenther <rguenther@suse.de>
5464
5465 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
5466 indices into an array reference if possible.
5467 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5468 Fold POINTER_PLUS_EXPR statements with invariant address.
5469
c90c5fb5
AM
54702009-04-09 Alan Modra <amodra@bigpond.net.au>
5471
5472 PR target/39634
5473 * config.gcc (powerpc64-*-linux*): Always build biarch.
5474
17cede2e
JM
54752009-04-09 Joseph Myers <joseph@codesourcery.com>
5476
5477 PR c/39613
5478 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5479 it and pedwarn if this results in an INTEGER_CST.
5480
a3337ea2
KG
54812009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5482
5483 * doc/install.texi: Update minimum GMP version. Remove obsolete
5484 text in MPFR section.
5485
ce9ba79b
JJ
54862009-04-08 Jakub Jelinek <jakub@redhat.com>
5487
5488 * dwarf2out.c (class_scope_p): New static inline.
5489 (class_or_namespace_scope_p): Use it.
5490 (gen_variable_die): Use DW_TAG_member tag for static data member
5491 declarations instead of DW_TAG_variable.
5492
4f0ae266
JJ
5493 PR middle-end/39573
5494 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
5495 variables.
5496
d27f0ddc
RG
54972009-04-08 Richard Guenther <rguenther@suse.de>
5498
5499 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
5500 valueize random data.
5501
557cc596
DE
55022009-04-08 David Edelsohn <edelsohn@gnu.org>
5503
5504 * config.gcc (aix tm_file): Add aix-stdint.h.
5505 (aix tm clause use_gcc_stdint): Set to wrap.
5506 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 5507
75ccc1e7
RG
55082009-04-08 Richard Guenther <rguenther@suse.de>
5509
5510 PR middle-end/36291
5511 * tree-dfa.c (add_referenced_var): Do not recurse into
5512 global initializers.
5513 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
5514 exposed variables.
5515 (fold_const_aggregate_ref): Likewise.
5516
c6963675
PB
55172009-04-08 Paolo Bonzini <bonzini@gnu.org>
5518
6c44cf79
L
5519 * recog.c (ordered_comparison_operator): New.
5520 * gensupport.c (std_preds): Add it.
c6963675
PB
5521 * doc/md.texi (Machine-Independent Predicates): Document it.
5522
6d07ad98
JH
55232009-04-08 Jan Hubicka <jh@suse.cz>
5524
5525 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
5526 * function.h (rtl_eh): Remove exception_handler_label_map.
5527 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
5528 remove_exception_handler_label, for_each_eh_label_1): Remove.
5529 (rtl_remove_unreachable_regions): Remove.
5530 (convert_from_eh_region_ranges): Do not remove unreachable regions.
5531 (find_exception_handler_labels): Don't build the hashtable.
5532 (maybe_remove_eh_handler): Remove.
5533 (for_each_eh_label): Rewrite to walk the tree.
5534 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
5535 * except.h (maybe_remove_eh_handler): Remove.
5536 * passes.c (init_optimization_passes): Schedule second EH cleanup
5537 before out-of-ssa.
5538 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
5539 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
5540
7ddf71e3
PB
55412009-04-08 Paolo Bonzini <bonzini@gnu.org>
5542
5543 * genoutput.c (validate_optab_operands): New.
5544 (gen_insn, gen_expand): Call it.
5545
5546 * genflags.c (gen_insn): Detect misused iterators.
5547 (main): Pass line_no to gen_insn, exit with status 1 on error.
5548
5549 * genextract.c (line_no): Make global.
5550 (VEC_safe_set_locstr): Change assertion to error message.
5551 (main): Exit with status 1 on error.
5552
4d84fe7c
JM
55532009-04-08 Joseph Myers <joseph@codesourcery.com>
5554
5555 PR c/39614
5556 PR c/39673
5557 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
5558 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
5559 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
5560 * c-convert.c (convert): Do not call fold on results of conversion
5561 functions when the result is a C_MAYBE_CONST_EXPR.
5562 * c-parser.c (c_parser_postfix_expression): Do not fold condition
5563 of __builtin_choose_expr.
5564 * c-typeck.c (remove_c_maybe_const_expr): New.
5565 (build_unary_op, build_conditional_expr, build_compound_expr,
5566 build_binary_op, c_objc_common_truthvalue_conversion): Call
5567 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
5568 integer operands.
5569
60839f5d 55702009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 5571
2ba9daa7 5572 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 5573 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 5574
8e481a2c
DS
55752009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
5576
5577 PR bootstrap/39660
5578 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
5579 mix declarations and code.
5580
ee618c17
BE
55812009-04-08 Ben Elliston <bje@au.ibm.com>
5582
5583 * gcc.c: Replace `CC' with `GCC' throughout.
5584
f2a758a2
L
55852009-04-07 H.J. Lu <hongjiu.lu@intel.com>
5586
5587 * doc/invoke.texi: Document Atom support.
5588
6ea2bd47
JM
55892009-04-07 Jason Merrill <jason@redhat.com>
5590
5591 PR c++/25185
5592 * c-common.h, c-common.c: Add flag_pretty_templates.
5593 * c-opts.c (c_common_handle_option): Set it.
5594 * c.opt: Add -fno-pretty-templates.
5595 * doc/invoke.texi (C++ Dialect Options): Likewise.
5596
fcb82ab0
UB
55972009-04-07 Uros Bizjak <ubizjak@gmail.com>
5598
5599 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
5600 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
5601 (ia64_expand_builtin): Likewise.
5602
dc5e7298
MJ
56032009-04-07 Martin Jambor <mjambor@suse.cz>
5604
5605 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
5606 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
5607 ADDR_EXPRS are include too.
5608
0609b355
RG
56092009-04-07 Richard Guenther <rguenther@suse.de>
5610
5611 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
5612 decls are only used if passes as parameters or if they are
5613 local statics and the call is not to a builtin.
5614 (call_may_clobber_ref_p_1): Likewise.
5615
d8e535fa
PB
56162009-04-07 Paolo Bonzini <bonzini@gnu.org>
5617
5618 * expr.c (do_store_flag): Remove last argument. Simplify code
5619 to avoid duplication of tests already done by can_compare_p.
5620 (expand_expr_real_1): Adjust caller.
5621
c3c64f50
PB
56222009-04-07 Paolo Bonzini <bonzini@gnu.org>
5623
fcb82ab0
UB
5624 * optabs.c (can_compare_p): Test the predicate of a
5625 cbranch and cstore pattern.
c3c64f50 5626
9a53bc17
PB
56272009-04-07 Paolo Bonzini <bonzini@gnu.org>
5628
fcb82ab0
UB
5629 * expr.c (convert_move): Use emit_store_flag instead of
5630 "emulating" it.
9a53bc17 5631
67b8f1c1
PB
56322009-04-07 Paolo Bonzini <bonzini@gnu.org>
5633
fcb82ab0
UB
5634 * config/i386/i386.c (ix86_compare_emitted): Remove.
5635 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
5636 ix86_compare_op0 like ix86_compare_emitted used to be handled.
5637 * config/i386/i386.h (ix86_compare_emitted): Remove.
5638 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
5639 instead of ix86_compare_emitted.
5640 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 5641
44509946
AS
56422009-04-07 Andrew Stubbs <ams@codesourcery.com>
5643
5644 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
5645 Add t-sysroot-suffix to tmake_file.
5646 * config/print-sysroot-suffix.sh: New file.
5647 * config/t-sysroot-suffix: New file.
5648
ca22d882
BE
56492009-04-07 Ben Elliston <bje@au.ibm.com>
5650
5651 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
5652 as the latter produces a warning when the target does not support
5653 infinity.
5654
95aac11b
BE
56552009-04-07 Ben Elliston <bje@au.ibm.com>
5656
5657 * dfp.c: Replace type punning assignments with memcpy throughout.
5658 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 5659
633dd061
AM
56602009-04-07 Alan Modra <amodra@bigpond.net.au>
5661
5662 PR target/39634
5663 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
5664 Include soft-fp/t-softfp after rs6000/t-linux64.
5665
fe0a25ec
EB
56662009-04-06 Eric Botcazou <ebotcazou@adacore.com>
5667
5668 * stor-layout.c (set_sizetype): Use the full precision of their
5669 machine mode for bitsize types.
5670
0c011bc3
L
56712009-04-06 H.J. Lu <hongjiu.lu@intel.com>
5672
5673 * config/i386/i386.md: Revert 2 accidental checkins.
5674
b6837b94 56752009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 5676 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
5677 H.J. Lu <hongjiu.lu@intel.com>
5678
5679 Atom pipeline model, tuning and insn selection.
5680 * config.gcc (atom): Add atom config options and target.
5681
5682 * config/i386/atom.md: New.
5683
5684 * config/i386/i386.c (atom_cost): New cost.
5685 (m_ATOM): New macro flag.
5686 (initial_ix86_tune_features): Set m_ATOM.
5687 (x86_accumulate_outgoing_args): Likewise.
5688 (x86_arch_always_fancy_math_387): Likewise.
5689 (processor_target): Add Atom cost.
5690 (cpu_names): Add Atom cpu name.
5691 (override_options): Set Atom ISA.
5692 (ix86_issue_rate): New case PROCESSOR_ATOM.
5693 (ix86_adjust_cost): Likewise.
5694
5695 * config/i386/i386.h (TARGET_ATOM): New target macro.
5696 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
5697 (TARGET_OPT_AGU): New target option.
5698 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
5699 (processor_type): Add PROCESSOR_ATOM.
5700
5701 * config/i386/i386.md (cpu): Add new value "atom".
5702 (use_carry, movu): New attr.
5703 (atom.md): Include atom.md.
5704 (adddi3_carry_rex64): Set attr "use_carry".
5705 (addqi3_carry): Likewise.
5706 (addhi3_carry): Likewise.
5707 (addsi3_carry): Likewise.
5708 (*addsi3_carry_zext): Likewise.
5709 (subdi3_carry_rex64): Likewise.
5710 (subqi3_carry): Likewise.
5711 (subhi3_carry): Likewise.
5712 (subsi3_carry): Likewise.
5713 (x86_movdicc_0_m1_rex64): Likewise.
5714 (*x86_movdicc_0_m1_se): Likewise.
5715 (x86_movsicc_0_m1): Likewise.
5716 (*x86_movsicc_0_m1_se): Likewise.
5717 (*adddi_1_rex64): Emit add insn as much as possible.
5718 (*addsi_1): Likewise.
5719 (return_internal): Set atom_unit.
5720 (return_internal_long): Likewise.
5721 (return_pop_internal): Likewise.
5722 (*rcpsf2_sse): Set atom_sse_attr attr.
5723 (*qrt<mode>2_sse): Likewise.
5724 (*prefetch_sse): Likewise.
5725
5726 * config/i386/i386-c.c (ix86_target_macros_internal): New case
5727 PROCESSOR_ATOM.
5728 (ix86_target_macros_internal): Likewise.
5729
5730 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
5731 (*prefetch_sse_rex): Likewise.
5732 (sse_rcpv4sf2): Likewise.
5733 (sse_vmrcpv4sf2): Likewise.
5734 (sse_sqrtv4sf2): Likewise.
5735 (<sse>_vmsqrt<mode>2): Likewise.
5736 (sse_ldmxcsr): Likewise.
5737 (sse_stmxcsr): Likewise.
5738 (*sse_sfence): Likewise.
5739 (sse2_clflush): Likewise.
5740 (*sse2_mfence): Likewise.
5741 (*sse2_lfence): Likewise.
5742 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
5743 (<sse>_movup<ssemodesuffixf2c>): Likewise.
5744 (avx_movdqu<avxmodesuffix>): Likewise.
5745 (avx_lddqu<avxmodesuffix>): Likewise.
5746 (sse2_movntv2di): Change attr "type" to "ssemov".
5747 (sse2_movntsi): Likewise.
5748 (rsqrtv8sf2): Change attr "type" to "sseadd".
5749 (sse3_addsubv2df3): Set attr "atom_unit".
5750 (sse3_h<plusminus_insn>v4sf3): Likewise.
5751 (*sse2_pmaddwd): Likewise.
5752 (*vec_extractv2di_1_rex64): Likewise.
5753 (*vec_extractv2di_1_avx): Likewise.
5754 (sse2_psadbw): Likewise.
5755 (ssse3_phaddwv8hi3): Likewise.
5756 (ssse3_phaddwv4hi3): Likewise.
5757 (ssse3_phadddv4si3): Likewise.
5758 (ssse3_phadddv2si3): Likewise.
5759 (ssse3_phaddswv8hi3): Likewise.
5760 (ssse3_phaddswv4hi3): Likewise.
5761 (ssse3_phsubwv8hi3): Likewise.
5762 (ssse3_phsubwv4hi3): Likewise.
5763 (ssse3_phsubdv4si3): Likewise.
5764 (ssse3_phsubdv2si3): Likewise.
5765 (ssse3_phsubswv8hi3): Likewise.
5766 (ssse3_phsubswv4hi3): Likewise.
5767 (ssse3_pmaddubsw128): Likewise.
5768 (sse3_pmaddubsw: Likewise.
5769 (ssse3_palignrti): Likewise.
5770 (ssse3_palignrdi): Likewise.
5771
53e350d3
GP
57722009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
5773
5774 * doc/install.texi (Specific): Fix two cross-references to MinGW.
5775
439ef907
RG
57762009-04-06 Richard Guenther <rguenther@suse.de>
5777
5778 PR tree-optimization/28868
5779 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
5780 of which PHI results we inserted.
5781 (insert_into_preds_of_block): Record inserted PHIs.
5782 (eliminate): Eliminate redundant PHI nodes.
5783 (init_pre): Init inserted_phi_names.
5784
4bad83f5
RG
57852009-04-06 Richard Guenther <rguenther@suse.de>
5786
5787 PR tree-optimization/39643
5788 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
5789 IMAGPART_EXPRs of complex constants.
5790 (execute_fold_all_builtins): If we folded a call queue
5791 TODO_update_address_taken.
5792
570c4247
JH
57932009-04-06 Jan Hubicka <jh@suse.cz>
5794
5795 PR middle-end/39659
5796 * except.c (remove_unreachable_regions): Propagate may_contain_throw
5797 flag.
5798
a460d7a1
AS
57992009-04-06 Andrew Stubbs <ams@codesourcery.com>
5800
5801 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
5802 delay slot.
5803 (ic_invalidate_array): Likewise.
5804
60839f5d 58052009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
5806
5807 * calls.c (emit_library_call_value_1): Fix a problem with parameter
5808 alignment for library calls.
5809
7d253f6e
DS
58102009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
5811
5812 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
5813 (mingw32 tm clause use_gcc_stdint): Set to wrap.
5814 * config/i386/mingw-stdint.h: New file.
5815
941c3614
RB
58162009-04-05 Richard Guenther <rguenther@suse.de>
5817
5818 PR tree-optimization/39648
5819 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
5820 our &A vs. &A[0] IL deficiencies.
5821
12633413
JH
58222009-04-04 Jan Hubicka <jh@suse.cz>
5823
941c3614
RB
5824 * except.c (sjlj_find_directly_reachable_regions): Be ready for
5825 removed toplevel regions.
12633413
JH
5826 (sjlj_mark_call_sites): Likewise.
5827
bb2aaded
DK
58282009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
5829
5830 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
5831 (cygwin tm clause use_gcc_stdint): Set to wrap.
5832 * config/i386/cygwin-stdint.h: New file.
5833
86290011
RG
58342009-04-04 Richard Guenther <rguenther@suse.de>
5835
5836 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
5837 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
5838 single-argument PHIs if we are in loop-closed SSA form.
5839 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
5840 for the pre-condition.
5841 (slpeel_tree_peel_loop_to_edge): Likewise.
5842 (vect_build_loop_niters): Take an optional sequence to append stmts.
5843 (vect_generate_tmps_on_preheader): Likewise.
5844 (vect_do_peeling_for_loop_bound): Take extra guards for the
5845 pre-condition.
5846 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
5847 the cost model check.
5848 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 5849 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
5850 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
5851 (vect_do_peeling_for_loop_bound): Likewise.
5852 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
5853 loop bound only record extra pre-conditions, do not apply loop
5854 versioning.
5855
5eeeac64
RG
58562009-04-04 Richard Guenther <rguenther@suse.de>
5857
5858 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
5859 renaming code.
5860
1ff7d06b
JH
58612009-04-04 Jan Hubicka <jh@suse.cz>
5862
5863 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
5864 last_basic_block for size of bb->index indexed array.
5865 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
5866 compute_out, link_btr_uses, build_btr_def_use_webs,
5867 build_btr_def_use_webs, migrate_btr_defs): Likewise.
5868
14925fcd
JH
58692009-04-04 Jan Hubicka <jh@suse.cz>
5870
5871 * except.c (remove_eh_handler_and_replace): Break out from ...
5872 (remove_eh_handler): ... here.
5873 (bring_to_root): New function.
5874 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
5875 handled ones, bring others to root of tree.
5876
4e6d1743
JH
58772009-04-04 Jan Hubicka <jh@suse.cz>
5878
4cb735f7
JH
5879 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
5880 (all_phis_safe_to_merge): New function.
5881 (update_info): New structure.
5882 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
5883 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 5884
c6803d43
RG
58852009-04-04 Richard Guenther <rguenther@suse.de>
5886
5887 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
5888 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
5889 (append_vuse): Likewise.
5890
54f5943c
JJ
58912009-04-04 Jakub Jelinek <jakub@redhat.com>
5892
5893 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
5894 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
5895 instead of REG_UNSAVED for DW_CFA_undefined.
5896 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
5897 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
5898 outermost frame.
5899
aad2bccb
RE
59002009-04-04 Richard Earnshaw <rearnsha@arm.com>
5901
5902 PR target/39501
5903 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
5904 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
5905 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
5906
aa7069aa
RG
59072009-04-04 Richard Guenther <rguenther@suse.de>
5908
5909 PR tree-optimization/8781
5910 PR tree-optimization/37892
5911 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
5912 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
5913 (valueize_refs): Call it for *& valueizations.
5914 (shared_reference_ops_from_ref): Rename to ...
5915 (valueize_shared_reference_ops_from_ref): ... this and valueize.
5916 (shared_reference_ops_from_call): Rename to ...
5917 (valueize_shared_reference_ops_from_call): ... this and valueize.
5918 (vn_reference_lookup): Update.
5919 (visit_reference_op_call): Likewise.
5920 * tree-ssa-pre.c (phi_translate_1): Fold *&.
5921 (eliminate): Value-replace the call address in call statements.
5922
cd15ad3e
RG
59232009-04-04 Richard Guenther <rguenther@suse.de>
5924
5925 PR tree-optimization/39636
5926 * tree-ssa-forwprop.c
5927 (forward_propagate_addr_into_variable_array_index): Check for
5928 GIMPLE_ASSIGN before accessing the rhs code.
5929
462f3262
JM
59302009-04-03 Jason Merrill <jason@redhat.com>
5931
5932 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
5933
6adb807e
SE
59342009-04-03 Steve Ellcey <sje@cup.hp.com>
5935
5936 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
5937 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
5938 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
5939 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
5940 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
5941 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
5942 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
5943 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
5944 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
5945 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
5946 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
5947 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
5948 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
5949 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
5950 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
5951 Use fr_reg_or_fp01_operand instead of fr_register_operand
5952
5953 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
5954 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
5955 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
5956
174b3107
VM
59572009-04-03 Vladimir Makarov <vmakarov@redhat.com>
5958
b844e5d8
L
5959 PR rtl-optimization/39607
5960 PR rtl-optimization/39631
7a715bba
UB
5961
5962 Revert:
2ba9daa7 5963
174b3107
VM
5964 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
5965 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
5966 instead of DF_LR_OUT.
5967 * ira-lives.c (process_bb_node_lives): Ditto.
5968 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
5969 instead of DF_LR_{OUT,IN}.
5970 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
5971 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
5972
535b544a
SB
59732009-04-03 Steven Bosscher <steven@gcc.gnu.org>
5974
5975 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
5976 (execute_lower_omp): Always run but take the short way out if -fopenmp
5977 is not given.
5978 (gate_lower_omp): Remove, forcing the pass manager to always run the
5979 pass and always set PROP_gimple_lomp.
5980 (pass_lower_omp): Remove gate function.
5981 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
5982 PROP_trees. Instead, require it.
5983 * ipa-cp.c (pass_ipa_cp): Likewise.
5984 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
5985 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
5986 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
5987 and PROP_gimple_leh.
5988
5006671f
RG
59892009-04-03 Richard Guenther <rguenther@suse.de>
5990
5991 PR middle-end/13146
5992 PR tree-optimization/23940
5993 PR tree-optimization/33237
5994 PR middle-end/33974
5995 PR middle-end/34093
5996 PR tree-optimization/36201
5997 PR tree-optimization/36230
5998 PR tree-optimization/38049
5999 PR tree-optimization/38207
6000 PR tree-optimization/38230
6001 PR tree-optimization/38301
6002 PR tree-optimization/38585
6003 PR middle-end/38895
6004 PR tree-optimization/38985
6005 PR tree-optimization/39299
6006 * tree-ssa-structalias.h: Remove.
6007 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
6008 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
6009 (struct vuse_element_d): Remove.
6010 (struct vuse_vec_d): Likewise.
6011 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
6012 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
6013 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
6014 VUSE_ELEMENT_VAR): Likewise.
6015 (struct voptype_d): Likewise.
6016 (NUM_VOP_FREE_BUCKETS): Likewise.
6017 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
6018 (struct stmt_operands_d): Remove.
6019 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
6020 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6021 VDEF_NUM, VDEF_VECT): Likewise.
6022 (copy_virtual_operands): Remove.
6023 (operand_build_cmp): Likewise.
6024 (create_ssa_artificial_load_stmt): Likewise.
6025 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
6026 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
6027 vuse_index and mayuse_index members. Pack and move done and iter_type
6028 members to the front.
6029 (SSA_OP_VMAYUSE): Remove.
6030 (SSA_OP_VIRTUAL_USES): Adjust.
6031 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
6032 (unlink_stmt_vdef): Declare.
6033 (add_to_addressable_set): Remove.
6034 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
6035 (vrp_visit_stmt): Likewise.
6036 * doc/tree-ssa.texi (Alias analysis): Update.
6037 * doc/invoke.texi (max-aliased-vops): Remove docs.
6038 (avg-aliased-vops): Likewise.
6039 * tree-into-ssa.c (syms_to_rename): Remove.
6040 (need_to_update_vops_p): Likewise.
6041 (need_to_initialize_update_ssa_p): Rename to ...
6042 (update_ssa_initialized_fn): ... this. Track function we are
6043 initialized for.
6044 (symbol_marked_for_renaming): Simplify.
6045 (add_new_name_mapping): Do not set need_to_update_vops_p.
6046 (dump_currdefs): Use SYMS_TO_RENAME.
6047 (rewrite_update_stmt): Always walk all uses/defs.
6048 (dump_update_ssa): Adjust.
6049 (init_update_ssa): Take function argument. Track what we are
6050 initialized for.
6051 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
6052 (create_new_def_for): Initialize for cfun, assert we are initialized
6053 for cfun.
6054 (mark_sym_for_renaming): Simplify.
6055 (mark_set_for_renaming): Do not initialize update-ssa.
6056 (need_ssa_update_p): Simplify. Take function argument.
6057 (name_mappings_registered_p): Assert we ask for the correct function.
6058 (name_registered_for_update_p): Likewise.
6059 (ssa_names_to_replace): Likewise.
6060 (release_ssa_name_after_update_ssa): Likewise.
6061 (update_ssa): Likewise. Use SYMS_TO_RENAME.
6062 (dump_decl_set): Do not print a newline.
6063 (debug_decl_set): Do it here.
6064 (dump_update_ssa): And here.
6065 * tree-ssa-loop-im.c (move_computations): Adjust.
6066 (movement_possibility): Likewise.
6067 (determine_max_movement): Likewise.
6068 (gather_mem_refs_stmt): Likewise.
6069 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6070 or NAME_MEMORY_TAG.
6071 * tree-complex.c (update_all_vops): Remove.
6072 (expand_complex_move): Adjust.
6073 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6074 Simplify test for memory referencing statement. Exclude
6075 non-invariant ADDR_EXPRs.
6076 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6077 * tree-loop-distribution.c (generate_memset_zero): Adjust.
6078 (rdg_flag_uses): Likewise.
6079 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6080 related code.
6081 (tree_optimize_tail_calls_1): Also split the
6082 edge from the entry block if we have degenerate PHI nodes in
6083 the first basic block.
6084 * tree.c (init_ttree): Remove memory-tag related code.
6085 (tree_code_size): Likewise.
6086 (tree_node_structure): Likewise.
6087 (build7_stat): Re-write to be build6_stat.
6088 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6089 (SSA_VAR_P): Adjust.
6090 (struct tree_memory_tag): Remove.
6091 (struct tree_memory_partition_tag): Likewise.
6092 (union tree_node): Adjust.
6093 (build7): Re-write to be build6.
6094 * tree-pass.h (pass_reset_cc_flags): Remove.
6095 (TODO_update_address_taken): New flag.
6096 (pass_simple_dse): Remove.
6097 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6098 * params.h (MAX_ALIASED_VOPS): Remove.
6099 (AVG_ALIASED_VOPS): Likewise.
6100 * omp-low.c (expand_omp_taskreg): Update SSA form.
6101 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6102 aliases the lhs in a copy stmt.
6103 * tree-ssa-dse.c (struct address_walk_data): Remove.
6104 (memory_ssa_name_same): Likewise.
6105 (memory_address_same): Likewise.
6106 (get_kill_of_stmt_lhs): Likewise.
6107 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
6108 unused stores. Look through PHI nodes into post-dominated regions.
6109 (dse_optimize_stmt): Simplify. Properly remove stores.
6110 (tree_ssa_dse): Compute dominators.
6111 (execute_simple_dse): Remove.
6112 (pass_simple_dse): Likewise.
6113 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6114 gimple_loaded_syms and gimple_stored_syms computation.
6115 * toplev.c (dump_memory_report): Dump alias and pta stats.
6116 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6117 (vn_reference_eq): Likewise.
6118 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6119 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6120 valueize_vuses): Remove.
6121 (get_def_ref_stmt_vuses): Simplify. Rename to ...
6122 (get_def_ref_stmt_vuse): ... this.
6123 (vn_reference_lookup_2): New function.
6124 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6125 walking equivalent vuses. Simplify.
6126 (vn_reference_lookup): Likewise.
6127 (vn_reference_insert): Likewise.
6128 (vn_reference_insert_pieces): Likewise.
6129 (visit_reference_op_call): Simplify.
6130 (visit_reference_op_load): Likewise.
6131 (visit_reference_op_store): Likewise.
6132 (init_scc_vn): Remove shared_lookup_vuses initialization.
6133 (free_scc_vn): Remove shared_lookup_vuses freeing.
6134 (sort_vuses, sort_vuses_heap): Remove.
6135 (get_ref_from_reference_ops): Export.
6136 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6137 vector with single vuse pointer.
6138 (vn_reference_lookup_pieces, vn_reference_lookup,
6139 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6140 (shared_vuses_from_stmt): Remove.
6141 (get_ref_from_reference_ops): Declare.
6142 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6143 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6144 memory-tag related code.
6145 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6146 (likely_value): Add comment, skip static-chain of call statements.
6147 (surely_varying_stmt_p): Adjust.
6148 (gimplify_and_update_call_from_tree): Likewise.
6149 (execute_fold_all_builtins): Do not rebuild alias info.
6150 (gimplify_and_update_call_from_tree): Properly update VOPs.
6151 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6152 (copy_ref_info): Remove memory-tag related code.
6153 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6154 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6155 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6156 computation.
6157 * tree-ssa-dom.c (gimple_p): Remove typedef.
6158 (eliminate_redundant_computations): Adjust.
6159 (record_equivalences_from_stmt): Likewise.
6160 (avail_expr_hash): Likewise.
6161 (avail_expr_eq): Likewise.
7a715bba 6162 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
6163 (stmt_makes_single_load): Likewise.
6164 (stmt_makes_single_store): Likewise.
6165 * tree-ssa-alias.c: Rewrite completely.
6166 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6167 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6168 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6169 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6170 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6171 Remove public functions.
6172 (pass_reset_cc_flags): Remove.
6173 (pass_build_alias): Move ...
6174 * tree-ssa-structalias.c (pass_build_alias): ... here.
6175 * tree-ssa-alias.c (may_be_aliased): Move ...
6176 * tree-flow-inline.h (may_be_aliased): ... here.
6177 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6178 count_uses_and_derefs): Move ...
6179 * gimple.c: ... here.
6180 * gimple.h (count_uses_and_derefs): Declare.
6181 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6182 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6183 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6184 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6185 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6186 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6187 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6188 New functions.
6189 * tree-dfa.c (refs_may_alias_p): Move ...
6190 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
6191 * tree-ssa-alias.h: New file.
6192 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6193 (statement_sink_location): Likewise.
6194 * opts.c (decode_options): Do not adjust max-aliased-vops or
6195 avg-aliased-vops values.
6196 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6197 (TV_CALL_CLOBBER): Likewise.
6198 (TV_FLOW_SENSITIVE): Likewise.
6199 (TV_FLOW_INSENSITIVE): Likewise.
6200 (TV_MEMORY_PARTITIONING): Likewise.
6201 (TV_ALIAS_STMT_WALK): New timevar.
6202 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6203 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6204 (get_address_description): Remove memory-tag related code.
6205 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6206 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6207 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6208 and immediate uses in statements. Document.
6209 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6210 (dump_symbols): Remove.
6211 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6212 * alias.c (get_deref_alias_set): New function split out from ...
6213 (get_alias_set): ... here.
6214 * alias.h (get_deref_alias_set): Declare.
6215 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6216 type parameter. Remove restrict pointer handling. Create a
6217 ref-all pointer in case type-based alias sets do not conflict.
6218 (vect_analyze_data_refs): Remove SMT related code.
6219 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6220 (vectorizable_load): Likewise.
6221 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6222 (DR_SYMBOL_TAG, DR_VOPS): Remove.
6223 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6224 Ignore vops and SMTs.
6225 (dr_analyze_alias): Likewise..
6226 (free_data_ref): Likewise.
6227 (create_data_ref): Likewise.
6228 (analyze_all_data_dependences): Likewise.
6229 (get_references_in_stmt): Adjust.
6230 * tree-flow-inline.h (gimple_aliases_computed_p,
6231 gimple_addressable_vars, gimple_call_clobbered_vars,
6232 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6233 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6234 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6235 gimple_mem_ref_stats): Remove.
6236 (gimple_vop): New function.
6237 (op_iter_next_use): Remove vuses and mayuses cases.
6238 (op_iter_next_def): Remove vdefs case.
6239 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6240 (clear_and_done_ssa_iter): Do not set removed fields.
6241 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
6242 Assert we are not iterating over vuses or vdefs if not also
6243 iterating over uses or defs.
6244 (op_iter_init_use): Likewise.
6245 (op_iter_init_def): Likewise.
6246 (op_iter_next_vdef): Remove.
6247 (op_iter_next_mustdef): Likewise.
6248 (op_iter_init_vdef): Likewise.
6249 (compare_ssa_operands_equal): Likewise.
6250 (link_use_stmts_after): Handle vuse operand.
6251 (is_call_used): Use is_call_clobbered.
6252 (is_call_clobbered): Global variables are always call clobbered,
6253 query the call-clobbers bitmap.
6254 (mark_call_clobbered): Ignore global variables.
6255 (clear_call_clobbered): Likewise.
6256 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6257 virtual operands sanity check.
6258 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6259 Remove.
6260 (TARGET_MEM_REF): Remove TMR_TAG operand.
6261 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6262 Remove call-clobber related code.
6263 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
6264 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6265 partitions or escape reason.
6266 (get_single_def_stmt, get_single_def_stmt_from_phi,
6267 get_single_def_stmt_with_phi): Remove.
6268 (dump_referenced_vars): Tidy.
6269 (get_ref_base_and_extent): Allow bare decls.
6270 (collect_dfa_stats): Adjust.
6271 * graphite.c (rename_variables_in_stmt): Adjust.
6272 (graphite_copy_stmts_from_block): Likewise.
6273 (translate_clast): Likewise.
6274 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6275 (EXPR_DIES): New.
6276 (translate_vuse_through_block): Use the oracle.
6277 (phi_translate_1): Adjust.
6278 (value_dies_in_block_x): Use the oracle. Cache the outcome
6279 in EXPR_DIES.
6280 (valid_in_sets): Check if the VUSE for
6281 a REFERENCE is available.
6282 (eliminate): Do not remove stmts during elimination,
6283 instead queue and remove them afterwards.
6284 (do_pre): Do not rebuild alias info.
6285 (pass_pre): Run TODO_rebuild_alias before PRE.
6286 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6287 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6288 (mark_all_v_defs_stmt): Remove.
6289 (mark_all_v_defs_seq): Adjust.
6290 (sra_replace): Likewise.
6291 (scalarize_use): Likewise.
6292 (scalarize_copy): Likewise.
6293 (scalarize_init): Likewise.
6294 (scalarize_ldst): Likewise.
6295 (todoflags): Remove.
6296 (tree_sra): Do not rebuild alias info.
6297 (tree_sra_early): Adjust.
6298 (pass_sra): Run TODO_update_address_taken before SRA.
6299 * tree-predcom.c (set_alias_info): Remove.
6300 (prepare_initializers_chain): Do not call it.
6301 (mark_virtual_ops_for_renaming): Adjust.
6302 (mark_virtual_ops_for_renaming_list): Remove.
6303 (initialize_root_vars): Adjust.
6304 (initialize_root_vars_lm): Likewise.
6305 (prepare_initializers_chain): Likewise.
6306 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6307 (may_propagate_copy_into_stmt): Likewise.
6308 (merge_alias_info): Do nothing for now.
6309 (propagate_tree_value_into_stmt): Adjust.
6310 (stmt_may_generate_copy): Likewise.
6311 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6312 not mark symbols for renaming.
6313 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6314 with the same statement, make sure to update the new pointed-to one.
6315 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6316 call statements, do not mark symbols for renaming.
6317 (mark_operand_necessary): Dump something.
6318 (ref_may_be_aliased): New function.
6319 (mark_aliased_reaching_defs_necessary_1): New helper function.
6320 (mark_aliased_reaching_defs_necessary): Likewise.
6321 (mark_all_reaching_defs_necessary_1): Likewise.
6322 (mark_all_reaching_defs_necessary): Likewise.
6323 (propagate_necessity): Do not process virtual PHIs. For
6324 non-aliased loads mark all reaching definitions as necessary.
6325 For aliased loads and stores mark the immediate dominating
6326 aliased clobbers as necessary.
6327 (visited): New global static.
6328 (perform_tree_ssa_dce): Free visited bitmap after propagating
6329 necessity.
6330 (remove_dead_phis): Perform simple dead virtual PHI removal.
6331 (remove_dead_stmt): Properly unlink virtual operands when
6332 removing stores.
6333 (eliminate_unnecessary_stmts): Schedule PHI removal after
6334 stmt removal.
6335 * tree-ssa-ter.c (is_replaceable_p): Adjust.
6336 (process_replaceable): Likewise.
6337 (find_replaceable_in_bb): Likewise.
6338 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6339 based on the single gimple vop.
6340 (verify_flow_insensitive_alias_info): Remove.
6341 (verify_flow_sensitive_alias_info): Likewise.
6342 (verify_call_clobbering): Likewise.
6343 (verify_memory_partitions): Likewise.
6344 (verify_alias_info): Likewise.
6345 (verify_ssa): Adjust..
6346 (execute_update_addresses_taken): Export. Update SSA
6347 manually. Optimize only when optimizing. Use a local bitmap.
6348 (pass_update_address_taken): Remove TODO_update_ssa, add
6349 TODO_dump_func.
6350 (pass_update_address_taken): Just use TODO_update_address_taken.
6351 (init_tree_ssa): Do not initialize addressable_vars.
6352 (verify_ssa): Verify new VUSE / VDEF properties.
6353 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6354 Do not call verify_alias_info.
6355 (delete_tree_ssa): Clear the VUSE, VDEF operands.
6356 Do not free the loaded and stored syms bitmaps. Reset the escaped
6357 and callused solutions. Do not free addressable_vars.
6358 Remove memory-tag related code.
6359 (warn_uninitialized_var): Aliases are always available.
6360 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6361 * lambda-code.c (can_put_in_inner_loop): Adjust.
6362 (can_put_after_inner_loop): Likewise.
6363 (perfect_nestify): Likewise.
6364 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6365 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6366 (vectorizable_conversion): Do not mark symbols for renaming.
6367 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6368 (expand_call_inline): Unlink the calls virtual operands before
6369 replacing it.
6370 (tree_function_versioning): Do not call update_ssa if we are not
6371 updating clones. Simplify.
6372 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6373 (propagate_with_phi): Likewise..
6374 * tree-outof-ssa.c (create_temp): Remove memory tag and call
6375 clobber code. Assert we are not aliased or global.
6376 * tree-flow.h: Include tree-ssa-alias.h
6377 (enum escape_type): Remove.
6378 (struct mem_sym_stats_d): Likewise.
6379 (struct mem_ref_stats_d): Likewise.
6380 (struct gimple_df): Add vop member. Remove global_var,
6381 call_clobbered_vars, call_used_vars, addressable_vars,
6382 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
6383 escaped and callused members.
6384 (struct ptr_info_def): Remove all members, add points-to solution
6385 member pt.
6386 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6387 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6388 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6389 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6390 (tree-ssa-alias.o): Likewise.
6391 (toplev.o): Add tree-ssa-alias.h
6392 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6393 * gimple.c (gimple_set_bb): Fix off-by-one error.
6394 (is_gimple_reg): Do not handle memory tags.
6395 (gimple_copy): Also copy virtual operands.
6396 Delay updating the statement. Do not reset loaded and stored syms.
6397 (gimple_set_stored_syms): Remove.
6398 (gimple_set_loaded_syms): Likewise.
6399 (gimple_call_copy_skip_args): Copy the virtual operands
6400 and mark the new statement modified.
6401 * tree-ssa-structalias.c (may_alias_p): Remove.
6402 (set_uids_in_ptset): Take the alias set to prune with as
6403 parameter. Fold in the alias test of may_alias_p.
6404 (compute_points_to_sets): Compute whether a ptr is dereferenced
6405 in a local sbitmap.
6406 (process_constraint): Deal with &ANYTHING on the lhs, reject all
6407 other ADDRESSOF constraints on the lhs.
6408 (get_constraint_for_component_ref): Assert that we don't get
6409 ADDRESSOF constraints from the base of the reference.
6410 Properly generate UNKNOWN_OFFSET for DEREF if needed.
6411 (struct variable_info): Remove collapsed_to member.
6412 (get_varinfo_fc): Remove.
6413 (new_var_info): Do not set collapsed_to.
6414 (dump_constraint): Do not follow cycles.
6415 (dump_constraint_graph): Likewise.
6416 (build_pred_graph): Likewise.
6417 (build_succ_graph): Likewise.
6418 (rewrite_constraints): Likewise.
6419 (do_simple_structure_copy): Remove.
6420 (do_rhs_deref_structure_copy): Remove.
6421 (do_lhs_deref_structure_copy): Remove.
6422 (collapse_rest_of_var): Remove.
6423 (do_structure_copy): Re-implement.
6424 (pta_stats): New global variable.
6425 (dump_pta_stats): New function.
6426 (struct constraint_expr): Make offset signed.
6427 (UNKNOWN_OFFSET): Define special value.
6428 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
6429 (solution_set_expand): New helper function split out from ...
6430 (do_sd_constraint): ... here.
6431 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
6432 (do_ds_constraint): Likewise.
6433 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
6434 and CALLUSED = *CALLUSED.
6435 (set_union_with_increment): Make inc argument signed.
6436 (type_safe): Remove.
6437 (get_constraint_for_ptr_offset): Handle unknown and negative
6438 constant offsets.
6439 (first_vi_for_offset): Handle offsets before start. Bail
6440 out early for offsets beyond the variable extent.
6441 (first_or_preceding_vi_for_offset): New function.
6442 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
6443 Together with ESCAPED = *ESCAPED this properly computes reachability.
6444 (find_what_var_points_to): New function.
6445 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
6446 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
6447 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
6448 pt_solutions_intersect): New functions.
6449 (compute_call_used_vars): Remove.
6450 (compute_may_aliases): New main entry into PTA computation.
6451 * gimple.h (gimple_p): New typedef.
6452 (struct gimple_statement_base): Remove references_memory_p.
6453 (struct gimple_statement_with_memory_ops_base): Remove
6454 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
6455 members.
6456 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
6457 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
6458 gimple_set_references_memory): Remove.
6459 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
6460 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
6461 New functions.
6462 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
6463 (verify_expr): Allow RESULT_DECL.
6464 (gimple_duplicate_bb): Do not copy virtual operands.
6465 (gimple_duplicate_sese_region): Adjust.
6466 (gimple_duplicate_sese_tail): Likewise.
6467 (mark_virtual_ops_in_region): Remove.
6468 (move_sese_region_to_fn): Do not call it.
6469 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
6470 and pass_simple_dse.
6471 (execute_function_todo): Handle TODO_update_address_taken,
6472 call execute_update_addresses_taken for TODO_rebuild_alias.
6473 (execute_todo): Adjust.
6474 (execute_one_pass): Init dump files early.
6475 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
6476 call-clobbered.
6477 (create_general_new_stmt): Clear vops.
6478 * tree-ssa-reassoc.c (get_rank): Adjust.
6479 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
6480 symbols for renaming.
6481 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
6482 (PARAM_AVG_ALIASED_VOPS): Likewise.
6483 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
6484 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 6485 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
6486 (operand_build_cmp, copy_virtual_operands,
6487 create_ssa_artificial_load_stmt, add_to_addressable_set,
6488 gimple_add_to_addresses_taken): Remove public functions.
6489 (unlink_stmt_vdef): New function.
6490
457d1d00
AM
64912009-04-03 Alan Modra <amodra@bigpond.net.au>
6492
6493 * config.gcc (powerpc-*-linux*): Merge variants.
6494
e19da24c 64952009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 6496 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
6497
6498 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
6499 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
6500 cop0_sp_offset.
6501 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
6502 keep_interrupts_masked_p, use_debug_exception_return_p.
6503 (mips_attribute_table): Add interrupt, use_shadow_register_set,
6504 keep_interrupts_masked, use_debug_exception_return.
6505 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
6506 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
6507 New functions.
6508 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
6509 (mips_print_operand): Process COP0 registers to print $0 .. $31
6510 correctly for GAS to process.
6511 (mips_interrupt_extra_call_saved_reg_p): New function.
6512 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
6513 extra registers.
6514 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
6515 (mips_compute_frame_info): Add supports for interrupt context that
6516 includes doubleword accumulators and COP0 registers.
6517 (mips_for_each_saved_acc): New function.
6518 (mips_for_each_saved_gpr_and_fpr): Change the function name from
6519 mips_for_each_saved_reg.
6520 (mips_save_reg): Save accumulators.
6521 (mips_kernel_reg_p): A new for_each_rtx callback.
6522 (mips_expand_prologue): Support interrupt handlers.
6523 (mips_restore_reg): Restore accumulators.
6524 (mips_expand_epilogue): Support interrupt handlers.
6525 (mips_can_use_return_insn): Return false for interrupt handlers.
6526 (mips_epilogue_uses): New function.
6527 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
6528 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
6529 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
6530 cop0_move): New instructions.
6531 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
6532 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
6533 defines.
6534 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
6535 New defines.
6536 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
6537 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
6538 interrupt handlers, we use K0 as the temporary register.
6539 (EPILOGUE_USES): Change to a function call.
6540 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
6541 handlers, we use K0 as the temporary register.
2ba9daa7 6542
e19da24c
CF
6543 * doc/extend.texi (Function Attributes): Document interrupt,
6544 use_shadow_register_set, keep_interrupts_masked,
6545 use_debug_exception_return for MIPS attributes.
6546
aa1ca044
AM
65472009-04-03 Alan Modra <amodra@bigpond.net.au>
6548
6549 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
6550 Remove a number of t-files from tmake_file.
6551 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
6552 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
6553 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6554 target_prototype, not TARGET_PROTOTYPE.
6555 (LINK_OS_GNU_SPEC): Define.
6556 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
6557 and darwin-ldoubdle.c.
6558
14fdc613
MM
65592009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
6560
6561 PR driver/39293
6562 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
6563 (cpp_options): Ditto.
6564 (default_compilers): Ditto.
6565 (display_help): Ditto.
6566 (process_command): Ditto.
6567 (do_spec_1): Ditto.
6568 (set_input): Use lbasename instead of duplicate code.
6569 (save_temps_prefix): New static for -save-temps=obj.
6570 (save_temps_length): Ditto.
2ba9daa7 6571
14fdc613
MM
6572 * doc/invoke.texi (-save-temps=obj): Document new variant to
6573 -save-temps switch.
6574
d3aa398e
JL
65752009-04-02 Jeff Law <law@redhat.com>
6576
6577 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
6578 variable.
6579
83f0ccb8
L
65802009-04-02 H.J. Lu <hongjiu.lu@intel.com>
6581
6582 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
6583 * configure: Regenerated.
6584
dcb6e951
RAE
65852009-04-02 Rafael Avila de Espindola <espindola@google.com>
6586
6587 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
6588 share the argument list.
6589
d85478c2
RAE
65902009-04-02 Rafael Avila de Espindola <espindola@google.com>
6591
6592 Merge
6593
6594 2009-02-12 Diego Novillo <dnovillo@google.com>
6595
83f0ccb8
L
6596 * varpool.c (debug_varpool): New.
6597 * cgraph.h (debug_varpool): Declare.
d85478c2 6598
34f42a49
JH
65992009-04-02 Jan Hubicka <jh@suse.cz>
6600
6601 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
6602 pass.
6603
a4747b4a
L
66042009-04-02 H.J. Lu <hongjiu.lu@intel.com>
6605
6606 * config/i386/i386.c (ix86_abi): Move initialization to ...
6607 (override_options): Here.
6608
63a9de54
CB
66092009-04-02 Christian Bruel <christian.bruel@st.com>
6610
6611 * config/sh/sh.c (sh_dwarf_register_span): New function.
6612 (TARGET_DWARF_REGISTER_SPAN): Define.
6613 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 6614
2f0fa28e
IR
66152009-04-02 Ira Rosen <irar@il.ibm.com>
6616
6617 PR tree-optimization/39595
2ba9daa7 6618 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
6619 interleaved loads group is not greater than the SLP group size.
6620
bbf7ce11
RAE
66212009-04-02 Rafael Avila de Espindola <espindola@google.com>
6622
6623 * builtins.c (is_builtin_name): New.
6624 (called_as_built_in): Use is_builtin_name.
6625 * tree.h (is_builtin_name): New.
6626 * varasm.c (incorporeal_function_p): Use is_builtin_name
6627
47e4dfcf
AS
66282009-04-02 Andrew Stubbs <ams@codesourcery.com>
6629
6630 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
6631
d0940d56
DS
66322009-04-02 Dodji Seketeli <dodji@redhat.com>
6633
6634 PR c++/26693
532bfb0a 6635 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
6636 * c-common.c (set_underlying_type): ... here.
6637 Also, make sure the function properly sets TYPE_STUB_DECL() on
6638 the newly created typedef variant type.
6639 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
6640 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
6641 points.
d0940d56 6642
bf1cbdc6
RG
66432009-04-02 Richard Guenther <rguenther@suse.de>
6644
6645 PR tree-optimization/37221
6646 * tree-flow.h (degenerate_phi_result): Declare.
6647 * tree-ssa-dom.c (degenerate_phi_result): Export.
6648 * tree-scalar-evolution.c (analyze_initial_condition): If
6649 the initial condition is defined by a degenerate PHI node
6650 use the degenerate value.
6651
87cfb32c
EB
66522009-04-01 Eric Botcazou <ebotcazou@adacore.com>
6653
6654 PR rtl-optimization/39588
6655 * combine.c (merge_outer_ops): Do not set the constant when this
6656 is not necessary.
6657 (simplify_shift_const_1): Do not modify it either in this case.
6658
bbb6eae8
SB
66592009-04-01 Steven Bosscher <steven@gcc.gnu.org>
6660
6661 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
6662 tuning is deprecated if -mtune value is set to an Itanium1 variant.
6663
839a3b8a
JJ
66642009-04-01 Janis Johnson <janis187@us.ibm.com>
6665
6666 PR c/29027
6667 * c-lex.c (interpret_float): Default (no suffix) is double.
6668
667e8acb
XDL
66692009-04-1 Xinliang David Li <davidxl@google.com>
6670
6671 * config/i386/i386.c (legitimate_constant_p): Recognize
6672 all one vector constant.
6673
60839f5d 66742009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6675
60839f5d 6676 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
6677 Change #include order to silence two warnings.
6678
60839f5d 66792009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6680
60839f5d 6681 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
6682 (ASM_SPEC): Pass -k to the assembler for PIC code.
6683
60839f5d 66842009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6685
60839f5d
EB
6686 * config.gcc: Add vax-*-linux* to the switch.
6687 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
6688 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
6689
60839f5d 66902009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6691
60839f5d 6692 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 6693 Use predicate macros instead of GET_CODE() == foo.
60839f5d 6694 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
6695 ashlsi3, rotrsi3, <unnamed>): Likewise.
6696
60839f5d 66972009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6698
60839f5d 6699 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 6700 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
6701 * config/vax/constraints.md: Likewise.
6702 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6703 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
6704 * config/vax/predicates.md: Likewise.
6705 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 6706 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
6707 * config/vax/vax.h: Likewise.
6708 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 6709
60839f5d 67102009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6711
60839f5d 6712 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
6713 (indirectable_address_p, adjacent_operands_p): Add spaces around
6714 braces.
60839f5d 6715 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 6716
60839f5d 67172009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6718
60839f5d 6719 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
6720 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
6721 index_term_p, reg_plus_index_p, legitimate_address_p,
6722 vax_mode_dependent_address_p): Update comments to match functions
6723 modified by the recent int->bool conversion.
6724
60839f5d 67252009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6726
60839f5d
EB
6727 * config/vax/builtins.md: Update copyright message.
6728 * config/vax/constraints.md: Likewise.
6729 * config/vax/netbsd-elf.h: Likewise.
6730 * config/vax/predicates.md: Likewise.
6731 * config/vax/vax-protos.h: Likewise.
6732 * config/vax/vax.c: Likewise.
6733 * config/vax/vax.h: Likewise.
6734 * config/vax/vax.md: Likewise.
6735 * config/vax/vax.opt: Likewise.
c4e75102 6736
60839f5d 67372009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6738
60839f5d 6739 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 6740 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
6741 * config/vax/constraints.md (B, R): Likewise.
6742 * config/vax/predicates.md (external_memory_operand,
c4e75102 6743 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
6744 * config/vax/vax.c (vax_output_int_add): Likewise.
6745 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
6746 untyped_call): Likewise.
6747
60839f5d 67482009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 6749
7a715bba
UB
6750 * config/vax/predicates.md: New file.
6751 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
6752 external_const_operand, nonsymbolic_operand, external_memory_operand,
6753 indirect_memory_operand, indexed_memory_operand,
6754 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
6755 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
6756 predicate.
7a715bba
UB
6757 * config/vax/constraints.md: New file.
6758 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
6759 New constraint.
6760 * config/vax/builtins.md: New file.
6761 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
6762 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
6763 jbbccisi): Define.
c4e75102
MT
6764 * config/vax/vax.opt (mqmath): Add option.
6765 * config/vax/vax.md (isfx): Extend with DI.
6766 (VAXintQH, VAXintQHSD): Define.
6767 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
6768 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
6769 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
6770 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
6771 (movdi): Update constraints and use vax_output_int_move().
6772 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
6773 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
6774 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
6775 nonlocal_goto): New.
6776 (mov<mode>): Extend accepted operand types.
6777 (subdi3_old): Rename from subdi3, change update constraints and use
6778 a new implementation.
60839f5d 6779 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
6780 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
6781 MOVE_RATIO, CLEAR_RATIO): Define.
6782 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
6783 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
6784 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 6785 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
6786 (split_quadword_operands): Make static and really allow variable
6787 splitting.
6788 (print_operand_address): Update for PIC generation.
6789 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
6790 indexable_address_p, fixup_mathdi_operand,
6791 vax_expand_addsub_di_operands, adjacent_operands_p): New.
6792 (vax_float_literal, legitimate_constant_p,
6793 indirectable_constant_address_p, index_term_p,
6794 reg_plus_index_p): Return bool instead of int.
6795 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
6796 where needed.
6797 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
6798 generation.
6799 (vax_output_conditional_branch): Indent.
6800 (legitimate_constant_address_p, indirectable_constant_address_p,
6801 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
6802 vax_mode_dependent_address_p): Return bool instead of int, update for
6803 PIC generation.
6804 * config/vax/vax-protos.h (legitimate_constant_address_p,
6805 legitimate_constant_p, legitimate_address_p,
6806 vax_mode_dependent_address_p): Change declaration to bool.
6807 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
6808 vax_expand_addsub_di_operands, vax_output_int_subtract,
6809 vax_output_movmemsi): Declare.
6810 (split_quadword_operands, vax_float_literal): Delete declaration.
6811 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
6812 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
6813 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
6814 ASM_OUTPUT_DWARF_PCREL): Define.
6815 (ASM_SPEC): Change definition to allow PIC generation.
6816
9332c6eb
L
68172009-04-01 Steve Ellcey <sje@cup.hp.com>
6818
6819 * doc/sourcebuild.texi: Update front-end requirements.
6820
d93e052c
JJ
68212009-04-01 Jakub Jelinek <jakub@redhat.com>
6822
6823 PR target/39226
6824 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
6825 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
6826 (booldi3_internal3): Use boolean_or_operator instead of
6827 boolean_operator.
6828
6ccb2a4a
JM
68292009-04-01 Joseph Myers <joseph@codesourcery.com>
6830
6831 PR c/39605
6832 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
6833 declarator whose size is not an integer constant expression but
6834 folds to an integer constant, then treat it as a constant
6835 subsequently.
6836
299b87f8
RG
68372009-04-01 Richard Guenther <rguenther@suse.de>
6838
6839 * fold-const.c (fold_plusminus_mult_expr): Do not fold
6840 i * 4 + 2 to (i * 2 + 1) * 2.
6841
b85eb797
JJ
68422009-04-01 Jakub Jelinek <jakub@redhat.com>
6843
6844 PR c/37772
6845 * c-parser.c (c_parser_asm_statement): Skip until close paren and
6846 return if c_parser_asm_string_literal returned NULL.
6847
235e1fe8
NC
68482009-04-01 Nick Clifton <nickc@redhat.com>
6849
6850 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
6851 already defined.
6852 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
6853 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
6854 other typedefs to avoid conflicts with libgcc2.c. Define labels
6855 to gain 16-bit bit-manipulation functions from libgcc2.c and then
6856 include it.
6857 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
6858 to gain 16-bit trapping arithmetic functions from libgcc2.c and
6859 then include it.
6860
d6868399
RAE
68612009-04-01 Rafael Avila de Espindola <espindola@google.com>
6862
7a715bba
UB
6863 * varasm.c (default_function_rodata_section): Declare DOT as
6864 const char*.
d6868399 6865
73d21f56 68662009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 6867 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
6868
6869 PR/39492
6870 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
6871 Make object_name unique for each process.
6872
03742a9b
JJ
68732009-04-01 Jakub Jelinek <jakub@redhat.com>
6874
6875 PR other/39591
6876 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
6877 addressable variables in the parallel that could go out of scope while
6878 running queued tasks.
6879
4223ff5f
AS
68802009-04-01 Anatoly Sokolov <aesok@post.ru>
6881
6882 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
6883 (CASE_VALUES_THRESHOLD): Redefine.
6884 * config/avr/avr.c (avr_override_options): Remove initialization of
6885 avr_case_values_threshold variable.
6886 (avr_case_values_threshold): Remove variable. Add new function.
6887 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
6888 * config/avr/avr.opt (mno-tablejump): Remove option.
6889 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
6890
e893f6f3
DD
68912009-04-01 DJ Delorie <dj@redhat.com>
6892
6893 * varasm.c (default_function_rodata_section): Don't assume
6894 anything about where the first '.' in the section name is.
6895
b246d100
AM
68962009-04-01 Alan Modra <amodra@bigpond.net.au>
6897
6898 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
6899 rs6000_emit_stack_tie.
6900
d3e37a9e
ILT
69012009-03-31 Ian Lance Taylor <iant@google.com>
6902
6903 * tree-eh.c (tree_remove_unreachable_handlers): Compare
6904 gimple_code with GIMPLE_RESX, not RESX.
6905
c1b61fca
JM
69062009-03-31 Joseph Myers <joseph@codesourcery.com>
6907
6908 * c-common.c (c_get_ident): New.
7a715bba 6909 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 6910
c2d2ad48
BE
69112009-04-01 Ben Elliston <bje@au.ibm.com>
6912
6913 * config/rs6000/sysv4.opt (msdata): Improve option description.
6914
13d1a6e7
SE
69152009-03-31 Steve Ellcey <sje@cup.hp.com>
6916
6917 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
6918 (divdf3_internal_lat): Remove.
6919 (divxf3_internal_lat): Remove.
6920 (divxf3_internal_thr): Remove.
6921 (divxf): Use divxf3_internal.
6922 * config/ia64/div.md (divsf3_internal_lat): New.
6923 (divdf3_internal_lat): New.
6924 (divxf3_internal): New.
6925
207bf79d
JM
69262009-03-31 Joseph Myers <joseph@codesourcery.com>
6927
6928 PR c/448
6929 * Makefile.in (USE_GCC_STDINT): Define.
6930 (stmp-int-hdrs): Install stdint.h if applicable.
6931 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
6932 if known.
6933 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
6934 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
6935 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6936 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6937 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6938 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6939 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6940 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6941 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6942 (c_common_nodes_and_builtins): Initialize
6943 underlying_wchar_type_node. Do not initialize
6944 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
6945 nodes for new types.
6946 (c_stddef_cpp_builtins): Define macros for new types.
6947 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
6948 Remove.
6949 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
6950 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
6951 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
6952 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
6953 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
6954 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
6955 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
6956 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
6957 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
6958 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
6959 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
6960 int16_type_node, int32_type_node, int64_type_node,
6961 uint8_type_node, uint16_type_node, c_uint32_type_node,
6962 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
6963 int_least32_type_node, int_least64_type_node,
6964 uint_least8_type_node, uint_least16_type_node,
6965 uint_least32_type_node, uint_least64_type_node,
6966 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
6967 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
6968 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
6969 uintptr_type_node): Define.
6970 * c-cppbuiltin.c (builtin_define_constants,
6971 builtin_define_type_minmax): New.
6972 (builtin_define_stdint_macros): Define more macros.
6973 (c_cpp_builtins): Define more limit macros.
6974 (type_suffix): New.
6975 (builtin_define_type_max): Define in terms of
6976 builtin_define_type_minmax. Remove is_long parameter. All
6977 callers changed.
6978 * config.gcc (use_gcc_stdint): Define.
6979 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
6980 Add newlib-stdint.h for generic targets.
6981 * config/glibc-stdint.h, config/newlib-stdint.h,
6982 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
6983 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
6984 * config/score/score.h (UINTPTR_TYPE): Define.
6985 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
6986 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
6987 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6988 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6989 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6990 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6991 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6992 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6993 * config/spu/spu.h (STDINT_LONG32): Define.
6994 * configure.ac (use_gcc_stdint): Substitute.
6995 * configure: Regenerate.
6996 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
6997 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
6998 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
6999 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
7000 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
7001 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
7002 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
7003 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
7004 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
7005 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
7006 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
7007 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
7008 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
7009 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
7010 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
7011 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
7012 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
7013 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
7014 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
7015 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
7016 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
7017 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
7018 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7019 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7020 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7021 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7022 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7023 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7024 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
7025
ed853664
BS
70262009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
7027
7028 * loop-iv.c (suitable_set_for_replacement): Renamed from
7029 simplify_using_assignment; changed to return bool and to accept new
7030 args DEST and SRC. Return true iff we find a source/destination pair
7031 that can be used to make a replacement, and fill SRC and DEST if so.
7032 Remove arg ALTERED. Don't deal with altered regs here. All callers
7033 changed.
7034 (simplify_using_initial_values): Deal with altered regs here and track
7035 more precisely the effect they have on the validity of our expression.
7036
1569e190
BS
7037 * loop-iv.c (simplify_using_condition): A condition of the form
7038 (EQ REG CONST) can be used to simply make a substitution.
7039 (simplify_using_initial_values): Keep track of conditions we have seen
7040 and keep using them to simplify new expressions, while applying the
7041 same substitutions to them as to the expression.
7042
1d1eb80c
BS
7043 * simplify-rtx.c (simplify_relational_operation_1): Simplify
7044 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
7045 GEU/LTU reversed.
7046
28af33b0
BS
7047 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
7048 changed. Use this when trying to improve the upper bound.
7049 Generate the comparison by using simplify_gen_relational.
7050
b30321cd
BS
7051 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
7052
60081874
BS
7053 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
7054 functions.
2ba9daa7 7055 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
7056 replace_in_expr to make replacements. Call replace_single_def_regs
7057 once on the initial version of the expression.
7058
bebc6e07
RR
70592009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7060
fcb82ab0 7061 PR target/27237
bebc6e07 7062 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 7063
6b12efe9
RG
70642009-03-31 Richard Guenther <rguenther@suse.de>
7065
7066 PR middle-end/31029
7067 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7068 equality comparisons. Fold C - X CMP X if C % 2 == 1.
7069
108f6c2f
RG
70702009-03-31 Richard Guenther <rguenther@suse.de>
7071
7072 * tree.h (div_if_zero_remainder): Declare.
7073 * fold-const.c (div_if_zero_remainder): Export.
7074 * tree-ssa-forwprop.c
7075 (forward_propagate_addr_into_variable_array_index): Handle
7076 constant array index addition outside of the variable index.
7077
8f612190
JM
70782009-03-31 Joseph Myers <joseph@codesourcery.com>
7079
7080 PR target/39592
7081 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7082 define_splits, floatunssi<mode>2): Require x87 conversions from
7083 DImode to be permitted.
7084
47580d22
JM
70852009-03-31 Joseph Myers <joseph@codesourcery.com>
7086
7087 PR preprocessor/15638
7088 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7089
ba4d8f9d
RG
70902009-03-31 Richard Guenther <rguenther@suse.de>
7091
7092 PR middle-end/23401
7093 PR middle-end/27810
7094 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7095 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7096 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7097 a separate statement.
7098 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7099 (lookup_tmp_var): Likewise.
7100 (is_gimple_formal_tmp_or_call_rhs): Remove.
7101 (is_gimple_reg_or_call_rhs): Rename to ...
7102 (is_gimple_reg_rhs_or_call): ... this.
7103 (is_gimple_mem_or_call_rhs): Rename to ...
7104 (is_gimple_mem_rhs_or_call): ... this.
7105 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
7106 DECL_GIMPLE_REG_P only if is_formal is true.
7107 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
7108 for non-proper post-modify expression gimplification.
7109 (gimplify_self_mod_expr): For post-modify expressions gimplify
7110 the lvalue to a minimal lvalue.
7111 (rhs_predicate_for): Remove formal temp case.
7112 (gimplify_modify_expr_rhs): Likewise.
7113 (gimplify_addr_expr): Use is_gimple_reg.
7114 (gimplify_expr): Remove formal temp cases.
7115 (gimple_regimplify_operands): Likewise.
7116 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7117 and FILTER_EXPR like constants.
7118 * gimple.c (walk_gimple_op): Fix val_only initialization, use
7119 is_gimple_reg.
7120 (is_gimple_formal_tmp_rhs): Remove.
7121 (is_gimple_reg_rhs): Remove special casing.
7122 (is_gimple_mem_rhs): Fix.
7123 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7124 (is_gimple_formal_tmp_var): Remove.
7125 (is_gimple_formal_tmp_reg): Likewise.
7126 (is_gimple_min_lval): Allow invariant component ref parts.
7127 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7128 is_gimple_formal_tmp_reg): Remove declarations.
7129 * tree-cfg.c (verify_expr): Verify that variables with address
7130 taken do not have DECL_GIMPLE_REG_P set.
7131 * tree-mudflap.c (mf_build_check_statement_for): Use
7132 force_gimple_operand instead of gimplify_expr.
7133
8de9b877
AZ
71342009-03-31 Ayal Zaks <zaks@il.ibm.com>
7135
7136 * modulo-sched.c (sms_schedule_by_order): Pass the actual
7137 schedulable rows to compute_split_row.
7138
b5e3caf2
BE
71392009-03-31 Ben Elliston <bje@au.ibm.com>
7140
7141 PR target/31635
7142 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7143 OPT_mvrsave.
7144
9752c4ad
AM
71452009-03-31 Alan Modra <amodra@bigpond.net.au>
7146
7147 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7148 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7149 * configure: Regenerate.
7150 * config.in: Regenerate.
7151 * config/rs6000/rs6000.opt (mtls-markers): Add.
7152 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7153 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7154 (tls_ld_aix, tls_ld_sysv): Likewise.
7155 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7156 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7157
b597d1b6
AM
71582009-03-31 Alan Modra <amodra@bigpond.net.au>
7159
7160 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7161
a203a221
JH
71622009-03-30 Jan Hubicka <jh@suse.cz>
7163
b597d1b6
AM
7164 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7165 out of RESX.
7166 (tree_remove_unreachable_handlers): Cleanup EH predecestor
7167 detection and label handling.
a203a221 7168
5b0c0b2c
VM
71692009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7170
7171 * ira-int.h (ira_allocno): Rename left_conflicts_num to
7172 left_conflicts_size.
7173 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7174 ALLOCNO_LEFT_CONFLICTS_SIZE.
7175
7176 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7177 remove_allocno_from_bucket_and_push,
7178 allocno_spill_priority_compare, push_allocnos_to_stack,
7179 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7180 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7181 (setup_allocno_left_conflicts_num): Ditto. Rename to
7182 setup_allocno_left_conflicts_size.
7183 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7184 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7185 setup_allocno_left_conflicts_size instead of
7186 setup_allocno_left_conflicts_num.
7187
7188 * ira-build.c (ira_create_allocno): Use
7189 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7190 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 7191
9a48a93f
VM
71922009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7193
7194 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7195 instead of DF_LR_OUT.
7196
7197 * ira-lives.c (process_bb_node_lives): Ditto.
7198
7199 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7200 instead of DF_LR_{OUT,IN}.
7201
7202 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7203
7204 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7205
4c936d4f
JH
72062009-03-30 Jan Hubicka <jh@suse.cz>
7207
7208 * except.c (label_to_region_map): Fix thinko.
7209
f4d9f129
SE
72102009-03-30 Steve Ellcey <sje@cup.hp.com>
7211
7212 PR middle-end/38237
7213 * tree.h (tree_find_value): New declaration.
7214 * tree.c (tree_find_value): New function.
7215 * varasm.c (assemble_external): Avoid duplicate entries on lists.
7216
b3f27c15
JJ
72172009-03-30 Jakub Jelinek <jakub@redhat.com>
7218
7219 PR debug/39563
7220 * c-decl.c (struct c_binding): Add locus field.
7221 (bind): Add locus argument, set locus field from it.
7222 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7223 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7224 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7225 implicitly_declare, undeclared_variable, lookup_label,
7226 declare_label, c_make_fname_decl, c_builtin_function,
7227 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7228 bind callers.
7229
ad41bd84 72302009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
7231
7232 PR target/38781
7233 * config/i386/i386.c (classify_argument): Check total size of
7234 structure.
7235
133f9369
MJ
72362009-03-30 Martin Jambor <mjambor@suse.cz>
7237
7238 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7239 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7240 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7241 respectively.
7242
7243 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7244 seen_variable_array_ref while also traversing a union.
7245
7246 * tree-inline.c (optimize_inline_calls): Do not call
7247 cgraph_node_remove_callees.
7248 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7249 (pass_remove_cgraph_callee_edges): New variable.
7250 * passes.c (init_optimization_passes): Add
7251 pass_remove_cgraph_callee_edges after early inlining and before all
7252 late intraprocedural passes.
7253
7254 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7255
1190f2eb
PB
72562009-03-30 Paolo Bonzini <bonzini@gnu.org>
7257
7258 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7259 Fix typos in names.
7260
fedc1775
PB
72612009-03-30 Paolo Bonzini <bonzini@gnu.org>
7262
fcb82ab0
UB
7263 * combine.c (simplify_comparison): Use have_insn_for.
7264 * dojump.c (do_jump): Likewise.
fedc1775 7265
65c5ae8b
PB
72662009-03-30 Paolo Bonzini <bonzini@gnu.org>
7267
7268 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7269 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7270 sparc_compare_op0 like sparc_compare_emitted used to be handled.
7271 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7272 instead of sparc_compare_emitted.
7273 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7274 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7275 instead of sparc_compare_emitted.
7276
d25aa7ab
PB
72772009-03-30 Paolo Bonzini <bonzini@gnu.org>
7278
7279 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7280 enter/exit cfglayout mode.
7281 (pass_partition_block): Require it.
7282 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7283 (combine_instructions): Track basic blocks instead of labels.
7284 (update_cfg_for_uncondjump): New.
7285 (try_combine): Use it. Update jumps after rescanning.
7286 (pass_combine): Require PROP_cfglayout.
7287 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7288
9c9e26f5
PB
72892009-03-30 Paolo Bonzini <bonzini@gnu.org>
7290
fcb82ab0
UB
7291 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7292 Provide/destroy PROP_cfglayout respectively.
7293 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7294 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 7295
28ddeea1
PB
72962009-03-30 Paolo Bonzini <bonzini@gnu.org>
7297
7298 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7299 fold_convert_const_fixed_from_fixed,
7300 fold_convert_const_fixed_from_int,
7301 fold_convert_const_fixed_from_real, fold_negate_const): Do not
7302 set TREE_CONSTANT_OVERFLOW.
7303 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7304 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7305
ebfd146a
IR
73062009-03-30 Ira Rosen <irar@il.ibm.com>
7307
7308 * tree-vect-loop-manip.c: New file.
7309 * tree-vectorizer.c: Update documentation and included files.
7310 (vect_loop_location): Make extern.
7311 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
7312 (rename_variables_in_bb, rename_variables_in_loop,
7313 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
7314 slpeel_update_phi_nodes_for_guard1,
7315 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7316 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7317 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 7318 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
7319 find_loop_location): Likewise.
7320 (new_stmt_vec_info): Move to tree-vect-stmts.c.
7321 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7322 get_vectype_for_scalar_type, vect_is_simple_use,
7323 supportable_widening_operation, supportable_narrowing_operation):
7324 Likewise.
7325 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
7326 (new_loop_vec_info, destroy_loop_vec_info,
7327 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
7328 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7329 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7330 (vect_supportable_dr_alignment): Likewise.
7331 * tree-vectorizer.h (tree-data-ref.h): Include.
7332 (vect_loop_location): Declare.
7333 Reorganize function declarations according to the new file structure.
7334 * tree-vect-loop.c: New file.
2ba9daa7 7335 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
7336 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7337 * tree-vect-data-refs.c: New file.
7338 * tree-vect-patterns.c (timevar.h): Don't include.
7339 * tree-vect-stmts.c: New file.
2ba9daa7 7340 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 7341 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
7342 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7343 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
7344 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7345 (tree-vect-analyze.o): Remove.
7346 (tree-vect-transform.o): Likewise.
7347 (tree-vect-data-refs.o): Add rule.
2ba9daa7 7348 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
7349 tree-vect-slp.o): Likewise.
7350 (tree-vect-patterns.o): Remove redundant dependencies.
7351 (tree-vectorizer.o): Likewise.
7352 * tree-vect-slp.c: New file.
7353
40a1cfba
RW
73542009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7355
7356 * optc-gen.awk: Warn if an option flag has multiple different
7357 help strings.
7358
a9a7a9a2
SP
73592009-03-30 Sebastian Pop <sebastian.pop@amd.com>
7360
7361 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7362 -floop-block): Document dependences on PPL, CLooG and Graphite.
7363
8ce94e44
JM
73642009-03-30 Joseph Myers <joseph@codesourcery.com>
7365
7366 PR rtl-optimization/323
7367 * c-common.c (c_fully_fold, convert_and_check,
7368 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7369 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7370 * c-common.def (EXCESS_PRECISION_EXPR): New.
7371 * c-cppbuiltin.c (builtin_define_float_constants): Define
7372 constants with enough digits for long double.
7373 * c-lex.c (interpret_float): Interpret constant with excess
7374 precision where appropriate.
7375 * c-opts.c (c_common_post_options): Set
7376 flag_excess_precision_cmdline. Give an error for
7377 -fexcess-precision=standard for C++ for processors where the
7378 option is significant.
7379 * c-parser.c (c_parser_conditional_expression): Handle excess
7380 precision in condition.
7381 * c-typeck.c (convert_arguments): Handle arguments with excess
7382 precision.
7383 (build_unary_op): Move excess precision outside operation.
7384 (build_conditional_expr): Likewise.
7385 (build_compound_expr): Likewise.
7386 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7387 (build_modify_expr): Handle excess precision in RHS.
7388 (convert_for_assignment): Handle excess precision in converted
7389 value.
7390 (digest_init, output_init_element, process_init_element): Handle
7391 excess precision in initializer.
7392 (c_finish_return): Handle excess precision in return value.
7393 (build_binary_op): Handle excess precision in operands and add
7394 excess precision as needed for operation.
7395 * common.opt (-fexcess-precision=): New option.
7396 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7397 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7398 For standard excess precision, output explicit conversion to and
7399 truncation from XFmode.
7400 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7401 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7402 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7403 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
7404 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
7405 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
7406 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
7407 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
7408 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
7409 define_splits, sqrt<mode>2): Disable where appropriate for
7410 standard excess precision.
7411 * convert.c (convert_to_real): Do not shorten arithmetic to type
7412 for which excess precision would be used.
7413 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
7414 * doc/invoke.texi (-fexcess-precision=): Document option.
7415 (-mfpmath=): Correct index entry.
7416 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
7417 flag_excess_precision): New.
7418 * langhooks.c (lhd_post_options): Set
7419 flag_excess_precision_cmdline.
7420 * opts.c (common_handle_option): Handle -fexcess-precision=.
7421 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
7422 init_excess_precision): New.
7423 (lang_dependent_init_target): Call init_excess_precision.
7424 * tree.c (excess_precision_type): New.
7425 * tree.h (excess_precision_type): Declare.
7426
1e57bf47
JM
74272009-03-30 Joseph Myers <joseph@codesourcery.com>
7428
7429 PR c/35235
7430 * c-typeck.c (build_component_ref): Do not copy qualifiers from
7431 non-lvalue to component.
7432
148e4216
JM
74332009-03-29 Joseph Myers <joseph@codesourcery.com>
7434
7435 PR preprocessor/34695
7436 * Makefile.in (c-opts.o): Depend on c-tree.h.
7437 * c-common.c: Move down include of diagnostic.h.
7438 (done_lexing, c_cpp_error): New.
7439 * c-common.h (done_lexing): Declare.
7440 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
7441 (parse_in).
7442 * c-opts.c: Include c-tree.h.
7443 (c_common_init_options): Set preprocessor error callback.
7444 (c_common_handle_option): Do not set preprocessor
7445 inhibit_warnings, warnings_are_errors, warn_system_headers,
7446 pedantic_errors or inhibit_warnings flags.
7447 (c_common_post_options): Do not check cpp_errors (parse_in).
7448 (c_common_finish): Do not output dependencies if there were
7449 errors. Do not check return value of cpp_finish.
7450 * c-ppoutput.c (pp_file_change): Set input_location.
7451 * c-tree.h (c_cpp_error): Declare.
7452 * diagnostic.c (diagnostic_set_info_translated): Also initialize
7453 override_column.
7454 (diagnostic_build_prefix): Check override_column.
7455 * diagnostic.h (diagnostic_info): Add override_column field.
7456 (diagnostic_override_column): Define.
7457
2ec5deb5
PB
74582009-03-28 Paolo Bonzini <bonzini@gnu.org>
7459
ba20e309
UB
7460 * c-common.c (c_expand_expr, c_staticp): Remove.
7461 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
7462 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
7463 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
7464 * c-gimplify.c (gimplify_compound_literal_expr,
7465 optimize_compound_literals_in_ctor): Remove.
7466 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
7467 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
7468 * c-semantics.c (emit_local_var): Remove.
7469
7470 * langhooks-def.h (lhd_expand_expr): Remove.
7471 * langhooks.c (lhd_expand_expr): Remove.
7472 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
7473
7474 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
7475 handling from c-semantics.c; don't call into langhook.
7476 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
7477 * gimplify.c (gimplify_compound_literal_expr,
7478 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
7479 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
7480 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
7481 as was done in c-gimplify.c.
7482 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
7483 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
7484 Move from c-common.h.
7485 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
7486
7487 * tree.c (staticp): Do not call langhook.
7488 * langhooks.c (lhd_staticp): Delete.
7489 * langhooks-def.h (lhd_staticp): Delete prototype.
7490 (LANG_HOOKS_STATICP): Delete.
7491 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
7492
ba20e309
UB
7493 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
7494 instead of DECL_STMTs.
2ec5deb5 7495
928c19bb
JM
74962009-03-29 Joseph Myers <joseph@codesourcery.com>
7497
7498 PR c/456
7499 PR c/5675
7500 PR c/19976
7501 PR c/29116
7502 PR c/31871
7503 PR c/35198
7504 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
7505 void_type_node.
7506 (fold_call_expr): Return a NOP_EXPR from folding rather than the
7507 contained expression.
ba20e309 7508 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
7509 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
7510 conditional expressions for C.
7511 (decl_constant_value_for_optimization): Move from
ba20e309 7512 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
7513 whether optimizing and that the expression is a VAR_DECL not of
7514 array type instead of doing such checks in the caller. Do not
7515 check pedantic. Call gcc_unreachable for C++.
7516 * c-common.def (C_MAYBE_CONST_EXPR): New.
7517 * c-common.h (c_fully_fold, c_save_expr,
7518 decl_constant_value_for_optimization): New prototypes.
7519 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7520 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7521 EXPR_INT_CONST_OPERANDS): Define.
7522 * c-convert.c (convert): Strip nops from expression.
7523 * c-decl.c (groktypename): Take extra parameters expr and
7524 expr_const_operands. Update call to grokdeclarator.
7525 (start_decl): Update call to grokdeclarator. Add statement for
7526 expressions used in type of decl.
7527 (grokparm): Update call to grokdeclarator.
7528 (push_parm_decl): Update call to grokdeclarator.
7529 (build_compound_literal): Add parameter non_const and build a
7530 C_MAYBE_COSNT_EXPR if applicable.
7531 (grokdeclarator): Take extra parameters expr and
7532 expr_const_operands. Track expressions used in declaration
7533 specifiers and declarators. Fold array sizes and track whether
7534 they are constant expressions and whether they are integer
7535 constant expressions.
7536 (parser_xref_tag): Set expr and expr_const_operands fields in
7537 return value.
7538 (grokfield): Update call to grokdeclarator.
7539 (start_function): Update call to grokdeclarator.
7540 (build_null_declspecs): Set expr and expr_const_operands fields in
7541 return value.
7542 (declspecs_add_type): Handle expressions in typeof specifiers.
7543 * c-parser.c (c_parser_declspecs): Set expr and
7544 expr_const_operands fields for declaration specifiers.
7545 (c_parser_enum_specifier): Likewise.
7546 (c_parser_struct_or_union_specifier): Likewise.
7547 (c_parser_typeof_specifier): Likewise. Update call to
7548 groktypename. Fold expression as needed. Return expressions with
7549 type instead of adding statements.
7550 (c_parser_attributes): Update calls to c_parser_expr_list.
7551 (c_parser_statement_after_labels): Fold expression before passing
7552 to objc_build_throw_stmt.
7553 (c_parser_condition): Fold expression.
7554 (c_parser_asm_operands): Fold expression.
7555 (c_parser_conditional_expression): Use c_save_expr. Update call
7556 to build_conditional_expr.
7557 (c_parser_alignof_expression): Update call to groktypename.
7558 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
7559 original_code. Fold expression argument of va_arg. Create
7560 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
7561 argument to va_arg. Update calls to groktypename. Fold array
7562 index for offsetof. Verify that first argument to
7563 __builtin_choose_expr has integer type.
7564 (c_parser_postfix_expression_after_paren_type): Update calls to
7565 groktypename and build_compound_literal. Handle expressions with
7566 side effects in type name.
7567 (c_parser_postfix_expression_after_primary): Update call to
7568 c_parser_expr_list. Set original_code for calls to
7569 __builtin_constant_p.
7570 (c_parser_expr_list): Take extra parameter fold_p. Fold
7571 expressions if requested.
7572 (c_parser_objc_type_name): Update call to groktypename.
7573 (c_parser_objc_synchronized_statement): Fold expression.
7574 (c_parser_objc_receiver): Fold expression.
7575 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
7576 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
7577 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
7578 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
7579 (struct c_typespec): Add elements expr and expr_const_operands.
7580 (struct c_declspecs): Add elements expr and expr_const_operands.
7581 (groktypename, build_conditional_expr, build_compound_literal):
7582 Update prototypes.
7583 (in_late_binary_op): Declare.
7584 * c-typeck.c (note_integer_operands): New function.
7585 (in_late_binary_op): New variable.
7586 (decl_constant_value_for_broken_optimization): Move to c-common.c
7587 and rename to decl_constant_value_for_optimization.
7588 (default_function_array_conversion): Do not strip nops.
7589 (default_conversion): Do not call
7590 decl_constant_value_for_broken_optimization.
7591 (build_array_ref): Do not fold result.
7592 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
7593 result when operand is a VLA.
7594 (c_expr_sizeof_type): Update call to groktypename. Handle
7595 expressions included in type name. Use C_MAYBE_CONST_EXPR for
7596 result when operand names a VLA type.
7597 (build_function_call): Update call to build_compound_literal.
7598 Only fold result for calls to __builtin_* functions. Strip
7599 NOP_EXPR from INTEGER_CST returned from such functions. Fold
7600 the function designator.
7601 (convert_arguments): Fold arguments. Update call to
7602 convert_for_assignment.
7603 (build_unary_op): Handle increment and decrement of
7604 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
7605 decrement earlier. Fold operand of increment and decrement.
7606 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
7607 built for integer operand. Wrap returns that are INTEGER_CSTs
7608 without being integer constant expressions or that have integer
7609 constant operands without being INTEGER_CSTs.
7610 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
7611 (build_conditional_expr): Add operand ifexp_bcp. Track whether
7612 result is an integer constant expression or can be used in
7613 unevaluated parts of one and avoid folding and wrap as
7614 appropriate. Fold operands before possibly doing -Wsign-compare
7615 warnings.
7616 (build_compound_expr): Wrap result for C99 if operands can be used
7617 in integer constant expressions.
7618 (build_c_cast): Update call to digest_init. Do not ignore
7619 overflow from casting floating-point constants to integers. Wrap
7620 results that could be confused with integer constant expressions,
7621 null pointer constants or floating-point constants.
7622 (c_cast_expr): Update call to groktypename. Handle expressions
7623 included in type name.
7624 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
7625 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
7626 Update calls to convert_for_assignment.
7627 (convert_for_assignment): Take new parameter
7628 null_pointer_constant. Do not strip nops or call
7629 decl_constant_value_for_broken_optimization. Set
7630 in_late_binary_op for conversions to boolean.
7631 (store_init_value): Update call to digest_init.
7632 (digest_init): Take new parameter null_pointer_constant. Do not
7633 call decl_constant_value_for_broken_optimization. pedwarn for
7634 initializers not constant expressions. Update calls to
7635 convert_for_assignment.
7636 (constructor_nonconst): New.
7637 (struct constructor_stack): Add nonconst element.
7638 (really_start_incremental_init, push_init_level, pop_init_level):
7639 Handle constructor_nonconst and nonconst element.
7640 (set_init_index): Call constant_expression_warning for array
7641 designators.
7642 (output_init_element): Fold value. Set constructor_nonconst as
7643 applicable. pedwarn for initializers not constant expressions.
7644 Update call to digest_init. Call constant_expression_warning
7645 where constant initializers are required.
7646 (process_init_element): Use c_save_expr.
7647 (c_finish_goto_ptr): Fold expression.
7648 (c_finish_return): Fold return value. Update call to
7649 convert_for_assignment.
7650 (c_start_case): Fold switch expression.
7651 (c_process_expr_stmt): Fold expression.
7652 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 7653 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
7654 (build_binary_op): Track whether results are integer constant
7655 expressions or may occur in such, disable folding and wrap results
7656 as applicable. Fold operands for -Wsign-compare warnings unless
7657 in_late_binary_op.
7658 (c_objc_common_truthvalue_conversion): Handle results folded to
7659 integer constants that are not integer constant expressions.
7660 * doc/extend.texi: Document when typeof operands are evaluated,
7661 that condition of __builtin_choose_expr is an integer constant
7662 expression, and more about use of __builtin_constant_p in
7663 initializers.
7664
5babbcc0
RG
76652009-03-29 Richard Guenther <rguenther@suse.de>
7666
7667 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
7668 propagate addresses of array references.
7669
0340f2ba
SB
76702009-03-29 Steven Bosscher <steven@gcc.gnu.org>
7671
7672 * regmove.c (perhaps_ends_bb_p): Remove.
7673 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
7674 from INSN and check that the main loop stays within that basic block.
7675 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
7676 (regmove_forward_pass): Split out from regmove_optimize. Use
7677 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
7678 (regmove_backward_pass): Split out from regmove_optimize. Use
7679 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
7680 (regmove_optimize): Simplify.
7681
eeae74a1
L
76822009-03-29 H.J. Lu <hongjiu.lu@intel.com>
7683
7684 PR target/39545
7685 * config/i386/i386.c (classify_argument): Ignore flexible array
7686 member in struct and warn ABI change.
7687
a24078b2
L
76882009-03-29 H.J. Lu <hongjiu.lu@intel.com>
7689
7690 * config/i386/i386-protos.h (ix86_agi_dependent): New.
7691
7692 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
7693 (ix86_adjust_cost): Updated.
7694
a8da523f
JH
76952009-03-29 Jan Hubicka <jh@suse.cz>
7696
7697 PR middle-end/28850
7698 * tree-pass.h (pass_cleanup_eh): New function.
7699 (remove_unreachable_regions): Break code handling RTL
7700 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
7701 that can not be reached by runtime.
7702 (can_be_reached_by_runtime): New function.
7703 (label_to_region_map): New function.
7704 (num_eh_regions): New function.
7705 (rtl_remove_unreachable_regions): New function.
7706 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
7707 (remove_eh_region): New function.
7708 * except.h: Include sbitmap and vecprim.
7709 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
7710 num_eh_regions): Declare.
7711 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 7712 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
7713 * tree-eh.c (tree_remove_unreachable_handlers): New function.
7714 (tree_empty_eh_handler_p): New function.
7715 (cleanup_empty_eh): New function.
7716 (cleanup_eh): New function.
7717 (pass_cleanup_eh): New function.
7718
98f358e5
JH
77192009-03-29 Jan Hubicka <jh@suse.cz>
7720
7721 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
7722 for removed regions.
7723
13a9fa44
JH
77242009-03-29 Jan Hubicka <jh@suse.cz>
7725
7726 * except.c (dump_eh_tree): Dump all datastructures.
7727
e38cf733
JH
77282009-03-29 Jan Hubicka <jh@suse.cz>
7729
7730 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
7731 (duplicate_eh_regions_1): Likewise.
7732 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
7733 vector; call EH verification.
7734 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7735 Be ready for region being removed.
7736
12802c2b
JH
77372009-03-29 Jan Hubicka <jh@suse.cz>
7738
7739 * bitmap.c (bitmap_last_set_bit): New function.
7740 * bitmap.h (bitmap_last_set_bit): Declare.
7741
4ea80a41
DA
77422009-03-29 David Ayers <ayers@fsfe.org>
7743
7744 PR objc/27377
7745 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
7746 by calling objc_compare_types and surpress warnings about
7747 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 7748
4ea80a41 77492009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
7750
7751 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
7752 call initialize_inline_failed.
7753 (initialize_inline_failed): Move it from here ...
7754 * cgraph.c (initialize_inline_failed): ... to here.
7755 (cgraph_create_edge): Call initialize_inline_failed rather than
7756 setting inline_failed directly.
7757
7fb0ee07
BE
77582009-03-29 Ben Elliston <bje@au.ibm.com>
7759
7760 PR target/32542
7761 * sysv4.opt (msdata): Improve comment.
7762 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
7763 * sysv4.h (SVR4_ASM_SPEC): Likewise.
7764
0be77bf2
BE
77652009-03-29 Ben Elliston <bje@au.ibm.com>
7766
7767 PR target/30451
7768 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
7769 load and store attributes.
7770
593812b6
BE
77712009-03-29 Ben Elliston <bje@au.ibm.com>
7772
7773 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
7774 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
7775 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
7776 * doc/extend.texi (X86 Built-in Functions): Add index entries for
7777 __builtin_infq and __builtin_huge_valq.
7778
8272d11d
AS
77792009-03-28 Anatoly Sokolov <aesok@post.ru>
7780
7781 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
7782 atmega8m1 devices.
7783 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7784 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
7785
74fe548b
XDL
77862009-03-28 Xinliang David Li <davidxl@google.com>
7787
2ba9daa7 7788 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
7789 (do_dbg_cnt): New function.
7790
33977f81
JH
77912009-03-28 Jan Hubicka <jh@suse.cz>
7792
7793 Merge from pretty-ipa:
7794
7795 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 7796
33977f81
JH
7797 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
7798 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
7799 * passes.c (function_called_by_processed_nodes_p): New.
7800 * ipa-pure-const.c (check_call): Fix handling of operands.
7801 (analyze_function): Dump debug output for skipped bodies.
7802 (local_pure_const): Use function_called_by_processed_nodes_p.
7803 * dwarf2out.c (reference_to_unused): Use output.
7804 * passes.c (do_per_function_toporder): Likewise.
7805
7806 2008-11-12 Jan Hubicka <jh@suse.cz>
7807
7808 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
7809 * ipa-pure-const.c (funct_state_d): Add can throw field; make
7810 state_set_in_source enum
7811 (check_decl): Ignore memory tags; do not set fake looping flags;
7812 dump diagnostics.
7813 (check_operand, check_tree, check_rhs_var, check_lhs_var,
7814 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
7815 (check_call, analyze_function): Rewrite.
7816 (check_stmt): New.
7817 (add_new_function): Update call of analyze_function.
7818 (generate_summary): Add call of analyze_function.
7819 (propagate): Propagate can_throw; handle state_set_in_source correctly.
7820 (local_pure_const): New function.
7821 (pass_local_pure_const): New pass.
7822 * ipa-inline.c (inline_transform): Set after_inlining.
7823 * tree-eh.c (stmt_can_throw_external): New.
7824 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
7825 work with aliasing built.
7826 * tree-flow.h (stmt_can_throw_external): New.
7827 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
7828 and local pure/const pass in early and late optimization queue.
ba20e309 7829
617f3897
MJ
78302009-03-28 Martin Jambor <mjambor@suse.cz>
7831
7832 * fold-const.c (get_pointer_modulus_and_residue): New parameter
7833 allow_func_align.
7834 (fold_binary): Allow function decl aligment consideration is the
7835 second argument is integer constant one.
7836 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
7837 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
7838 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
7839
fe89fbc5
JH
78402009-03-28 Jan Hubicka <jh@suse.cz>
7841
7842 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
7843 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
7844 * function.h (rtl_data): Add nothrow flag.
7845 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
7846 set DECL_NOTHROW for AVAILABLE functions.
7847
574872ff
JJ
78482009-03-28 Jakub Jelinek <jakub@redhat.com>
7849
b3bf8855
JJ
7850 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
7851 following vector keyword has expansion starting with pixel or bool
7852 keyword, expand vector to __vector and pixel or bool to __pixel or
7853 __bool.
7854
574872ff
JJ
7855 PR c++/39554
7856 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
7857 warn_if_disallowed_function_p): Removed.
7858 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
7859 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
7860 warning_if_disallowed_function_p.
7861 * flags.h (warn_if_disallowed_function_p,
7862 warn_disallowed_functions): Removed.
7863 * common.opt (Wdisallowed-function-list=): Removed.
7864 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
7865
b005da11
RG
78662009-03-28 Richard Guenther <rguenther@suse.de>
7867
7868 PR tree-optimization/38723
7869 * tree-ssa-pre.c (compute_avail): Add all default definitions to
7870 the entry block.
7871
1de812a6
JH
78722009-03-28 Jan Hubicka <jh@suse.cz>
7873
7874 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
7875 test introduced by my previous patch.
7876
fbb789d4
RG
78772009-03-28 Richard Guenther <rguenther@suse.de>
7878
7879 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
7880 the PHIs value undefined.
7881
6f1873a1
JH
78822009-03-28 Jan Hubicka <jh@suse.cz>
7883
7884 * tree-pass.h (pass_fixup_cfg): New pass.
7885 * ipa-inline.c (inline_transform): Set
7886 always_inline_functions_inlined/after_inlining.
7887 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
7888 (pass_fixup_cfg): New pass.
7889 * passes.c (init_optimization_passes): Add fixup_cfg.
7890
17021bc8
RG
78912009-03-28 Richard Guenther <rguenther@suse.de>
7892
7893 PR tree-optimization/38458
7894 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
7895 argument use the arguments copy-of value.
7896
e8114fba
RG
78972009-03-28 Richard Guenther <rguenther@suse.de>
7898
7899 PR tree-optimization/38180
7900 * tree-ssa-ccp.c (get_default_value): Simplify.
7901 (likely_value): Likewise.
7902 (surely_varying_stmt_p): Properly handle VOP case.
7903 (ccp_initialize): Likewise.
7904 (ccp_fold): Handle propagating through *&.
7905 (fold_const_aggregate_ref): Also handle decls.
7906
257eb6e3
JH
79072009-03-28 Jan Hubicka <jh@suse.cz>
7908
7909 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
7910 * cgraph.h (cgraph_node): Likewise.
7911 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
7912 (cgraph_reset_node): Use process flag.
7913 (cgraph_mark_functions_to_output): Likewise.
7914 (cgraph_expand_function): Likewise.
7915 (cgraph_expand_all_functions): Likewise.
7916 (cgraph_output_in_order): Likewise.
7917 * dwarf2out.c (reference_to_unused): Likewise.
7918 * passes.c do_per_function_toporder): Likewise.
7919
61a05df1
JH
79202009-03-28 Jan Hubicka <jh@suse.cz>
7921
7922 Bring from lto-branch:
ba20e309 7923
61a05df1
JH
7924 2008-09-03 Doug Kwan <dougkwan@google.com>
7925
7926 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
7927 enums instead of reason strings.
7928 * cgraph.c (cgraph_create_edge): Same.
7929 (cgraph_inline_failed_string): New function.
7930 * cgraph.h (cgraph_inline_failed_t): New enum type.
7931 (cgraph_inline_failed_string): New prototype.
7932 (struct cgraph_edge): Change type of INLINED_FAILED from constant
7933 char pointer to cgraph_inline_failed_t.
7934 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
7935 (cgraph_default_inline_p): Ditto.
60839f5d 7936 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
7937 to cgraph_inline_failed_t pointer.
7938 * cif-code.def: New file.
7939 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
7940 reason string.
7941 (cgraph_check_inline_limits): Change type of REASON to pointer to
7942 cgraph_inline_failed_t. Replace reason strings with enums.
7943 (cgraph_default_inline_p): Ditto.
7944 (cgraph_recursive_inlining_p): Ditto.
7945 (update_caller_keys): Change type of FAILED_REASON to
7946 cgraph_inline_failed_t.
7947 (cgraph_set_inline_failed): Change type of REASON to pointer to
7948 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
7949 convert enums to strings for text output.
7950 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
7951 to be of type cgraph_inline_failed_t. Replace reason strings with
7952 enums. Call cgraph_inline_failed_string to covert enums
7953 to strings for text output.
7954 (cgraph_decide_inlining): Replace reason strings with enums.
7955 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
7956 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
7957 for text output.
7958 * tree-inline.c (expand_call_inline): Change type of REASON
7959 to cgraph_inline_failed_t. Replace reason strings with enums.
7960 Call cgraph_inline_failed_string for text output.
7961 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
7962 (cgraph.o): Ditto.
7963
144e8aac
JH
79642009-03-28 Jan Hubicka <jh@suse.cz>
7965
7966 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
7967 cgraph_clone_node): Remove master clone handling.
7968 (cgraph_is_master_clone, cgraph_master_clone): Remove.
7969 * cgraph.h (master_clone): Remove.
7970 (cgraph_is_master_clone, cgraph_master_clone): Remove.
7971 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
7972 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
7973
4a371c8d
JH
79742009-03-28 Jan Hubicka <jh@suse.cz>
7975
7976 * cgraph.c (cgraph_function_body_availability): Functions declared
7977 inline are always safe to assume that it is not going to be replaced.
7978
6cdb0ee3
RG
79792009-03-28 Richard Guenther <rguenther@suse.de>
7980
7981 PR tree-optimization/38513
7982 * tree-ssa-pre.c (eliminate): Remove redundant stores.
7983 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
7984 EXC_PTR_EXPR and FILTER_EXPR.
7985 (get_ref_from_reference_ops): Likewise.
7986
8ca1fd76
RG
79872009-03-28 Richard Guenther <rguenther@suse.de>
7988
7989 PR tree-optimization/38968
7990 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
7991 Use FLOOR_MOD_EXPR to compute misalignment.
7992
a254e44d
RG
79932009-03-28 Richard Guenther <rguenther@suse.de>
7994
7995 PR tree-optimization/37795
7996 * tree.h (combine_comparisons): Declare.
7997 * fold-const.c (combine_comparisons): Export.
7998 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
7999 comparisons.
8000 (ifcombine_iforif): Use combine_comparisons.
8001
a8ee227c
JH
80022009-03-28 Jan Hubicka <jh@suse.cz>
8003
8004 * tree-eh.c (inlinable_call_p): New function.
8005 (make_eh_edges): Use it.
8006 (verify_eh_edges): Use it.
8007 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
8008 * except.c (reachable_next_level): Add inlinable_function argument
8009 (sjlj_find_directly_reachable_regions): Update.
8010 (add_reachable_handler): Do not set saw_any_handlers.
8011 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
8012 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8013 Add new inlinable call parameter.
8014 (can_throw_internal, can_throw_external): Update.
8015 * except.h (can_throw_internal_1, can_throw_external_1,
8016 foreach_reachable_handler): Update declaration.
8017
52c0e446
JM
80182009-03-28 Joseph Myers <joseph@codesourcery.com>
8019
8020 * config/arm/t-arm-coff, config/h8300/coff.h,
8021 config/i386/i386-aout.h, config/i386/i386-coff.h,
8022 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8023 config/pdp11/2bsd.h, config/rs6000/aix41.h,
8024 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
8025 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
8026 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
8027 sys-types.h: Remove.
8028 * Makefile.in: Remove protoize and fixproto support and references
8029 in comments.
8030 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
8031 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
8032 Remove.
8033 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
8034 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
8035 unprotoize$(exeext).
8036 (rest.encap): Don't depend on $(STMP_FIXPROTO)
8037 (.PHONY): Don't depend on proto.
8038 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
8039 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
8040 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
8041 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
8042 build/gen-protos.o, build/scan.o, xsys-protos.h,
8043 build/fix-header$(build_exeext), build/fix-header.o,
8044 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
8045 stmp-install-fixproto): Remove.
8046 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
8047 SYSCALLS.c or fixproto files.
8048 (install-common): Don't install protoize.
8049 (install-headers-tar, install-headers-cpio, install-headers-cp):
8050 Don't depend on $(STMP_FIXPROTO).
8051 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
8052 install fixproto files or write out fixproto settings.
8053 (uninstall): Don't uninstall protoize.
8054 * config.gcc (use_fixproto): Remove.
8055 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
8056 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
8057 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
8058 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
8059 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
8060 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8061 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8062 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8063 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8064 * config/t-vxworks (STMP_FIXPROTO): Remove.
8065 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8066 STMP_FIXPROTO): Remove.
8067 * config.in, configure: Regenerate.
8068 * crtstuff.c (gid_t, uid_t): Don't undefine.
8069 * doc/install.texi: Change m68k-coff to m68k-elf in example.
8070 (arm-*-coff, arm-*-aout: Remove target entries.
8071 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8072 Remove mention of AIX 4.1.
8073 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8074 * doc/invoke.texi (Running Protoize): Remove.
8075 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8076 (Protoize Caveats): Remove.
8077 * tsystem.h: Update comments on headers assumed to exist.
8078
20a07f44
VM
80792009-03-27 Vladimir Makarov <vmakarov@redhat.com>
8080
8081 * genautomata.c: Add a new year to the copyright. Add a new
8082 reference.
8083 (struct insn_reserv_decl): Add comments for member bypass_list.
8084 (find_bypass): Remove.
8085 (insert_bypass): New.
8086 (process_decls): Use insert_bypass.
8087 (output_internal_insn_latency_func): Output all bypasses with the
8088 same input insn in one switch case.
8089
8090 * rtl.def (define_bypass): Describe bypass choice.
8091 * doc/md.texi (define_bypass): Ditto.
8092
3a0d06c1
RB
80932009-03-27 Richard Guenther <rguenther@suse.de>
8094
8095 * gimplify.c (mark_addressable): Export.
8096 * tree-flow.h (mark_addressable): Declare.
8097 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8098 * tree-ssa.c (verify_phi_args): Verify that address taken
8099 variables have TREE_ADDRESSABLE set.
8100
81012009-03-27 Richard Guenther <rguenther@suse.de>
8102
8103 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8104 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
8105 Do not mark decls TREE_ADDRESSABLE.
8106 (build_fold_addr_expr): Adjust.
8107 (fold_addr_expr): Remove.
8108 (fold_unary): Use build_fold_addr_expr.
8109 (fold_comparison): Likewise.
8110 (split_address_to_core_and_offset): Likewise.
8111 * coverage.c (tree_coverage_counter_addr): Mark the array decl
8112 TREE_ADDRESSABLE.
8113 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8114 (gimplify_modify_expr_to_memcpy): Mark source and destination
8115 addressable.
8116 * omp-low.c (create_omp_child_function): Mark the object decl
8117 TREE_ADDRESSABLE.
8118 (lower_rec_input_clauses): Mark the var we take the address of
8119 TREE_ADDRESSABLE.
8120 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8121
2ac26e15
L
81222009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8123
8124 PR middle-end/39315
8125 * cfgexpand.c (expand_one_stack_var_at): Change alignment
8126 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8127
472c7fbd
RG
81282009-03-27 Richard Guenther <rguenther@suse.de>
8129
8130 PR tree-optimization/39120
8131 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8132 constraints.
8133 (handle_lhs_call): Process return constraints. Add escape
8134 constraints if necessary.
8135 (handle_const_call): Fill out return constraints. Make nested
8136 case more precise. Avoid consttmp if possible.
8137 (handle_pure_call): Fill out return constraints. Avoid
8138 callused if possible.
8139 (find_func_aliases): Simplify call handling.
8140
81412009-03-27 Richard Guenther <rguenther@suse.de>
8142
8143 PR tree-optimization/39120
8144 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8145 as a representative.
8146 (solve_graph): Do propagate CALLUSED.
8147 (handle_pure_call): Use a scalar constraint from CALLUSED for
8148 the return value.
8149 (find_what_p_points_to): CALLUSED shall not appear in poins-to
8150 solutions.
8151
d9223014
L
81522009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8153
8154 PR c/39323
8155 * c-common.c (handle_aligned_attribute): Properly check alignment
8156 overflow. Use (1U << i) instead of (1 << i).
8157
ba20e309 8158 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
8159
8160 * expr.h (get_mem_align_offset): Updated.
8161
8162 * tree.h (tree_decl_common): Change align to "unsigned int" and
8163 move it before pointer_alias_set.
8164
689b689c
L
81652009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8166 Jakub Jelinek <jakub@redhat.com>
8167
8168 PR target/38034
8169 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8170 gr_register_operand with gr_reg_or_0_operand.
8171 (cmpxchg_rel_di): Likewise.
8172 (sync_lock_test_and_set<mode>): Likewise.
8173
c619e982
L
81742009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8175
8176 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8177 (true_regnum): Likewise.
8178
8179 * rtlanal.c (subreg_info): Moved to ...
8180 * rtl.h (subreg_info): Here. New.
8181 (subreg_get_info): New.
8182
8183 * rtlanal.c (subreg_get_info): Make it extern.
8184
51212b32
L
81852009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8186
8187 PR target/39472
8188 * config/i386/i386.c (ix86_abi): New.
8189 (override_options): Handle -mabi=.
ba20e309 8190 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
8191 (ix86_call_abi_override): Likewise.
8192 (init_cumulative_args): Likewise.
8193 (function_arg_advance): Likewise.
8194 (function_arg_64): Likewise.
8195 (function_arg): Likewise.
8196 (ix86_pass_by_reference): Likewise.
8197 (ix86_function_value_regno_p): Likewise.
8198 (ix86_build_builtin_va_list_abi): Likewise.
8199 (setup_incoming_varargs_64): Likewise.
8200 (is_va_list_char_pointer): Likewise.
8201 (ix86_init_machine_status): Likewise.
ba20e309 8202 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
8203 (ix86_function_type_abi): Return enum calling_abi. Rewrite
8204 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 8205 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
8206 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
8207 with ix86_abi.
8208 (ix86_fn_abi_va_list): Updated.
8209
8210 * config/i386/i386.h (ix86_abi): New.
8211 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8212 (CONDITIONAL_REGISTER_USAGE): Likewise.
8213 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8214 (machine_function): Likewise.
8215
8216 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8217 with ix86_abi.
8218 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8219 (STACK_BOUNDARY): Likewise.
8220 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8221
8222 * config/i386/i386.opt (mabi=): New.
8223
8224 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8225 return enum calling_abi.
8226 (ix86_function_type_abi): Likewise.
8227 (ix86_function_abi): Removed.
8228
8229 * doc/invoke.texi: Document -mabi= option for x86.
8230
7338ea63
KG
82312009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8232
8233 * builtins.c (real_dconstp): Delete.
8234 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8235
68599f33
DS
82362009-03-27 Dodji Seketeli <dodji@redhat.com>
8237 Jakub Jelinek <jakub@redhat.com>
8238
8239 PR debug/37959
8240 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8241 (gen_subprogram_die): When a function is explicit, generate the
8242 DW_AT_explicit attribute.
8243 * langhooks.h (struct lang_hooks_for_decls): Add
8244 function_decl_explicit_p langhook.
8245 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8246 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8247
9f5e9983
JJ
82482009-03-27 Jakub Jelinek <jakub@redhat.com>
8249
64d7685c
JJ
8250 * builtins.c (fold_builtin_memory_op): Optimize memmove
8251 into memcpy if we can prove source and destination don't overlap.
8252
9f5e9983
JJ
8253 * tree-inline.c: Include gt-tree-inline.h.
8254 (clone_fn_id_num): New variable.
8255 (clone_function_name): New function.
8256 (tree_function_versioning): Use it.
8257 * Makefile.in (GTFILES): Add tree-inline.c.
8258
e54d52a8
MM
82592009-03-27 Mark Mitchell <mark@codesourcery.com>
8260
8261 * BASE-VER: Change to 4.5.0.
8262
e9d51dc6
XDL
82632009-03-27 Xinliang David Li <davidxl@google.com>
8264
8265 PR tree-optimization/39557
8266 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8267
4577cea1
XDL
82682009-03-27 Xinliang David Li <davidxl@google.com>
8269
8270 PR tree-optimization/39548
2ba9daa7 8271 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
8272 candidate check.
8273
0f7464f4
L
82742009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8275
8276 * c-common.c (pointer_int_sum): Use %wd on return from
8277 tree_low_cst.
8278
a8847a7f
L
82792009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8280
8281 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8282 on return from tree_low_cst.
8283
b0957daf
AP
82842009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
8285
8286 PR c++/36799
ba20e309
UB
8287 * ginclude/stdarg.h (va_copy): Define also for
8288 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 8289
a5f805df
MLI
82902009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8291
8292 PR c++/35652
8293 * builtins.h (c_strlen): Do not warn here.
8294 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8295 * c-common.c (pointer_int_sum): Take an explicit location.
8296 Warn about offsets out of bounds.
8297 * c-common.h (pointer_int_sum): Adjust declaration.
8298
6f401211
RW
82992009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8300
a5f805df
MLI
8301 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8302 markup glitch.
6f401211 8303
5a59b39e
JJ
83042009-03-26 Jakub Jelinek <jakub@redhat.com>
8305
8306 PR c++/39554
8307 * opts.c (warn_if_disallowed_function_p): Don't assume
8308 get_callee_fndecl must return non-NULL.
8309
d5f89b53
VM
83102009-03-26 Vladimir Makarov <vmakarov@redhat.com>
8311
8312 PR rtl-optimization/39522
8313 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8314 when reg_reloaded_valid is set.
8315
61238a79
UW
83162009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8317
8318 * config/spu/divv2df3.c: New file.
8319 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8320 (DPBIT_FUNCS): Filter out _div_df.
8321
03f8829b
BS
83222009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
8323
8324 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8325 a jump insn, count that jump in the distance to the loop start.
8326
9fdcdc74
KK
83272009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
8328
8329 PR target/39523
8330 * config/sh/sh.c (calc_live_regs): Fix condition for global
8331 registers except PIC_OFFSET_TABLE_REGNUM.
8332
46994828
KT
83332009-03-25 Kai Tietz <kai.tietz@onevision.com>
8334
8335 PR/39518
8336 * doc/invoke.texi (-mconsole): New.
8337 (-mcygwin): New.
8338 (-mno-cygwin): New.
8339 (-mdll): New.
8340 (-mnop-fun-dllimport): New.
8341 (-mthread): New.
8342 (-mwin32): New.
8343 (-mwindows): New.
8344 (sub section "i386 and x86-64 Windows Options"): New.
8345
60839f5d 83462009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
8347
8348 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8349 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8350
ae560440
RG
83512009-03-25 Richard Guenther <rguenther@suse.de>
8352
8353 PR middle-end/39497
8354 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8355 of -Wno-error.
8356
cd510f15
AM
83572009-03-25 Andrey Belevantsev <abel@ispras.ru>
8358
8359 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8360 neither of haifa/selective schedulers are working.
8361
44ab0f0e
RW
83622009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8363
8364 * doc/invoke.texi (Debugging Options): Fix description of
8365 -fno-merge-debug-strings.
8366
ad9646c7
HPN
83672009-03-24 Hans-Peter Nilsson <hp@axis.com>
8368
e6142656
HPN
8369 * config/cris/libgcc.ver: New version-script.
8370 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8371
ad9646c7
HPN
8372 * configure.ac <GAS features, nop mnemonic>: Add pattern
8373 crisv32-*-* for "nop".
ba20e309 8374 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
8375 * configure: Regenerate.
8376
09ac4473
IR
83772009-03-24 Ira Rosen <irar@il.ibm.com>
8378
8379 PR tree-optimization/39529
8380 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8381 mark_sym_for_renaming for the tag copied to the new vector
8382 pointer.
8383
d94a427e
AL
83842009-03-24 Arthur Loiret <aloiret@debian.org>
8385
ba20e309 8386 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
8387 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8388 EXTRA_SPEC_FUNCTIONS.
8389 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8390 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8391 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8392 -march and -mtune options.
8393
60839f5d 83942009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
8395
8396 * config/m68k/t-rtems: Add m5329 multilib.
8397
603f5959
DS
83982009-03-24 Dodji Seketeli <dodji@redhat.com>
8399 Jakub Jelinek <jakub@redhat.com>
8400
8401 PR debug/39524
8402 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8403 nodes.
8404
c5cdb03f
JJ
84052009-03-23 Jakub Jelinek <jakub@redhat.com>
8406
8407 PR c/39495
8408 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
8409 instead of c_parser_expression_conv, if original_code isn't one of the
8410 4 allowed comparison codes, fail.
8411
3691626c
RG
84122009-03-23 Richard Guenther <rguenther@suse.de>
8413
8414 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
8415 * tree.h (struct tree_type): Likewise.
8416 * reload.h (struct insn_chain): Likewise.
8417 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
8418 * function.h (struct function): Likewise.
8419 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
8420
88ccb72a
JJ
84212009-03-23 Jakub Jelinek <jakub@redhat.com>
8422
8423 PR tree-optimization/39516
8424 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
8425
60839f5d 84262009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 8427
2ba9daa7 8428 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
8429 should be set true if BITS_PER_WORD of target is bigger than 32
8430
f82162f8
HPN
84312009-03-22 Hans-Peter Nilsson <hp@axis.com>
8432
8433 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
8434 Translate -B-options to -rpath-link. Correct existing
8435 rpath-link and conditionalize on !nostdlib.
8436
048fd785
RW
84372009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8438
8439 * doc/extend.texi (Function Attributes, Variable Attributes):
8440 Fix typos.
8441 * doc/invoke.texi (Debugging Options, Optimize Options)
8442 (i386 and x86-64 Options, MCore Options): Likewise.
8443
6e75c1a9
JJ
84442009-03-20 Jakub Jelinek <jakub@redhat.com>
8445
8446 PR debug/37890
8447 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
8448 it for block local namespace aliases.
8449 (gen_decl_die): Pass context_die to gen_namespace_die.
8450
ea1199ee
JJ
84512009-03-19 Jakub Jelinek <jakub@redhat.com>
8452
8453 PR c/39495
8454 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
8455 minimum or maximum value.
8456
58929c10
AO
84572009-03-19 Alexandre Oliva <aoliva@redhat.com>
8458
8459 * reginfo.c (globalize_reg): Recompute derived reg sets.
8460
60839f5d 84612009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
8462
8463 PR target/39063
8464 * libgcc2.c (mprotect): Do not use signed arguments for
8465 VirtualProtect, use DWORD arguments. Also fix the 'may
8466 be used uninitialized' warning for the np variable.
8467
f57c2f04
JJ
84682009-03-19 Jakub Jelinek <jakub@redhat.com>
8469
8470 PR target/39496
8471 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
8472 functions using regparm calling conventions when not optimizing.
8473 (ix86_function_sseregparm): Similarly for sseregparm calling
8474 conventions.
8475
9e517d61
LF
84762009-03-19 Li Feng <nemokingdom@gmail.com>
8477
8478 PR middle-end/39500
8479 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
8480 dependence if the first conflict is after niter iterations.
8481
8ef20026
HPN
84822009-03-19 Hans-Peter Nilsson <hp@axis.com>
8483
8484 PR middle-end/38609
8485 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
8486 functions with dynamic stack-pointer adjustments.
8487
64e4a1a6
BE
84882009-03-19 Ben Elliston <bje@au.ibm.com>
8489
8490 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
8491 option; change to -msdata=data.
8492
9a0f3e86
RW
84932009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8494
8495 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
8496 and -fopenmp.
8497
09bc5979
EB
84982009-03-18 Eric Botcazou <ebotcazou@adacore.com>
8499
8500 PR target/35180
8501 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
8502
332459cd
SL
85032009-03-18 Sandra Loosemore <sandra@codesourcery.com>
8504
8505 * doc/invoke.texi (Code Gen Options): Expand discussion of
8506 -fno-common.
8507
8f5929e1
JJ
85082009-03-18 Jakub Jelinek <jakub@redhat.com>
8509
8510 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
8511 * matrix-reorg.c (struct matrix_info): Likewise.
8512 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
8513 * rtl.h (struct mem_attrs): Likewise.
8514 * df.h (struct df): Likewise.
8515 * tree-data-ref.h (struct data_dependence_relation): Likewise.
8516 * ira-int.h (struct ira_allocno): Likewise.
8517 * df-scan.c (struct df_collection_rec): Likewise.
8518 * ira.c (struct equivalence): Likewise.
8519 * function.c (struct temp_slot): Likewise.
8520 * cfgloop.h (struct loop): Likewise.
8521
d130d647
JJ
8522 PR debug/39485
8523 * function.c (use_register_for_decl): When not optimizing, disregard
8524 register keyword for variables with types containing methods.
8525
9968d233
SP
85262009-03-18 Sebastian Pop <sebastian.pop@amd.com>
8527
8528 PR middle-end/39447
8529 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
8530 (is_simple_operand): Call contains_component_ref_p before calling data
8531 reference analysis that would fail on COMPONENT_REFs.
8532
8533 * tree-vrp.c (search_for_addr_array): Fix formatting.
8534
69484bfd
RG
85352009-03-18 Richard Guenther <rguenther@suse.de>
8536
8537 * tree-vect-transform.c (vect_loop_versioning): Fold the
8538 generated comparisons.
8539 * tree-vectorizer.c (set_prologue_iterations): Likewise.
8540 (slpeel_tree_peel_loop_to_edge): Likewise.
8541
66811228
RW
85422009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8543
0631b69f
RW
8544 PR middle-end/37805
8545 * opts.c (print_specific_help): In addition to `undocumented',
8546 accept `separate' and `joined' flags if passed alone. Describe
8547 output by the first matched one of those.
8548 (common_handle_option): Skip over empty strings.
8549 * gcc.c (display_help): Fix help string for `--help='.
8550 * doc/invoke.texi (Option Summary, Overall Options): With
8551 `--help=', classes and qualifiers can both be repeated, but
8552 only the latter can be negated. One should not pass only
8553 negated qualifiers. Fix markup and examples.
8554
66811228
RW
8555 Revert
8556 2008-10-14 Jakub Jelinek <jakub@redhat.com>
8557 PR middle-end/37805
8558 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
8559 and -fhelp=separate.
8560
3c072c6b
JY
85612009-03-17 Jing Yu <jingyu@google.com>
8562
8563 PR middle-end/39378
80c65208
JY
8564 * function.h (struct rtl_data): Move is_thunk from here...
8565 (struct function): ...to here.
8566 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
8567 * varasm.c (assemble_start_function): Change is_thunk from crtl to
8568 cfun.
80c65208
JY
8569 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
8570 cfun.
8571 (alpha_does_function_need_gp, alpha_start_function): Likewise.
8572 (alpha_output_function_end_prologue): Likewise.
8573 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
8574 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
8575 (rs6000_output_function_epilogue): Likewise.
8576 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 8577
9ade279b
UB
85782009-03-17 Uros Bizjak <ubizjak@gmail.com>
8579
8580 PR target/39482
8581 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
8582 from different units in a single alternative.
8583 (*truncdfsf_i387): Ditto.
8584 (*truncxfsf2_mixed): Ditto.
8585 (*truncxfdf2_mixed): Ditto.
8586
16e60c17
JJ
85872009-03-17 Jakub Jelinek <jakub@redhat.com>
8588
98381eb4
JJ
8589 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
8590 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
8591
df5deb18
JJ
8592 PR debug/39474
8593 * tree-ssa-live.c (remove_unused_locals): Don't remove local
8594 unused non-artificial variables when not optimizing.
8595
a3f596ba
JJ
8596 PR debug/39471
8597 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
8598 DW_TAG_imported_module even if decl is IMPORTED_DECL with
8599 NAMESPACE_DECL in its DECL_INITIAL.
8600
6b2b8871
JJ
8601 PR middle-end/39443
8602 * optabs.c (set_user_assembler_libfunc): New function.
8603 * expr.h (set_user_assembler_libfunc): New prototype.
8604 * c-common.c: Include libfuncs.h.
8605 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
8606 for memcmp, memset, memcpy, memmove and abort.
8607 * Makefile.in (c-common.o): Depend on libfuncs.h.
8608
16e60c17
JJ
8609 PR debug/39412
8610 * dwarf2out.c (gen_inlined_enumeration_type_die,
8611 gen_inlined_structure_type_die, gen_inlined_union_type_die,
8612 gen_tagged_type_instantiation_die): Removed.
8613 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
8614 do nothing.
8615
4d936aca
JJ
86162009-03-17 Janis Johnson <janis187@us.ibm.com>
8617
8618 PR testsuite/38526
8619 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
8620 its use.
8621 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
8622 (check-parallel-%): Ditto.
8623 (check-consistency): Ditto.
8624
4e9b2e50
KT
86252009-03-17 Kai Tietz <kai.tietz@onevision.com>
8626
8627 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
8628 local variable rhs by NULL_TREE.
8629
21440b2d
L
86302009-03-17 H.J. Lu <hongjiu.lu@intel.com>
8631
8632 PR target/39477
9ade279b 8633 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 8634
d8905c6a
L
86352009-03-17 H.J. Lu <hongjiu.lu@intel.com>
8636
8637 PR target/39476
9ade279b 8638 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
8639
86402009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
8641
8642 PR target/39473
8643 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
8644 for ms->sysv ABI calls only in 64bit mode.
8645
8646 * config/i386/i386.md (untyped_call): Support 32bit.
8647
cdcabece
L
86482009-03-16 H.J. Lu <hongjiu.lu@intel.com>
8649
8650 * doc/extend.texi: Replace x86_65 with x86_64.
8651
97b4ba9f
JJ
86522009-03-16 Jakub Jelinek <jakub@redhat.com>
8653
8654 PR tree-optimization/39455
8655 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
8656 mismatches for POINTER_TYPE_P (type).
8657 (number_of_iterations_le): Likewise.
8658
60839f5d 86592009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
8660
8661 * config/picochip/picochip.c: Removed profiling support.
8662 * config/picochip/picochip.md: Removed profiling instruction.
8663 * config/picochip/picochip.h: Removed profiling builtin.
8664
f38095f3
JM
86652009-03-16 Joseph Myers <joseph@codesourcery.com>
8666
8667 * doc/install.texi (--with-host-libstdcxx): Document.
8668
2cb4817b
AS
86692009-03-14 Anatoly Sokolov <aesok@post.ru>
8670
8671 PR target/34299
8672 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
8673 generate a warning if the function name does not begin with
8674 "__vector" and the function has either the 'signal' or 'interrupt'
8675 attribute, from here to ...
8676 (avr_declare_function_name): ...here. New function.
8677 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
8678 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
8679
39b2ac74
JJ
86802009-03-14 Jakub Jelinek <jakub@redhat.com>
8681
8682 PR bootstrap/39454
8683 * cse.c (fold_rtx): Don't modify original const_arg1 when
8684 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
8685 separate variable instead.
8686 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
8687 from out of range shift counts.
8688 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
8689
ad41bd84 86902009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 8691
60839f5d 8692 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
8693 diagnostic.h with $(DIAGNOSTIC_H).
8694
ad41bd84 86952009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
8696
8697 PR target/39431
8698 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
8699 predicate.
8700 * config/i386/sync.md (sync_compare_and_swap<mode>,
8701 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
8702 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
8703 into a register.
8704 (sync_double_compare_and_swapdi_pic,
8705 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
8706 cmpxchg8b_pic_memory_operand instead of just memory_operand.
8707
122c59c7
L
87082009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8709
8710 PR target/39445
9ade279b 8711 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 8712
cec8874f
L
87132009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8714
8715 PR target/39327
8716 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8717 (avx_addsubv4df3): Likewise.
8718 (*avx_addsubv4sf3): Likewise.
8719 (sse3_addsubv4sf3): Likewise.
8720
bbb52802
L
87212009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8722
8723 PR target/38824
9ade279b 8724 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 8725
a812fb07
VM
87262009-03-12 Vladimir Makarov <vmakarov@redhat.com>
8727
8728 PR debug/39432
8729 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
8730 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
8731 registers for allocnos created from user-defined variables.
8732
4caab5ba
UW
87332009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8734
8735 PR target/39181
8736 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
8737 of non-integer mode as well.
8738
498e51ca
AN
87392009-03-11 Adam Nemet <anemet@caviumnetworks.com>
8740
8741 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
8742 for functions for which the parameter types are unknown.
8743
9bfaf89d
JJ
87442009-03-11 Jakub Jelinek <jakub@redhat.com>
8745
8746 PR target/39137
9ade279b 8747 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
8748 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
8749 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
8750 * config/i386/i386.c (ix86_local_alignment): For
8751 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
8752 long long variables on the stack to avoid dynamic realignment.
8753 Allow the first argument to be a decl rather than type.
8754 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
8755
18a3bdcb
NC
87562009-03-11 Nick Clifton <nickc@redhat.com>
8757
8758 PR target/5362
40190a76
NC
8759 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
8760 options.
8761 Add description to mno-lsim option.
8762 * config/mcore/mcore.h: Remove comment about deprecated m4align
8763 option.
8764 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
8765 * doc/invoke.texi: Add description of mno-lsim and
8766 mstack-increment options.
8767
18a3bdcb
NC
8768 * config/fr30/fr30.opt: Document the -mno-lsim option.
8769 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
8770 and -mno-lsim options.
8771
dc215785
UW
87722009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8773
8774 * fold-const.c (fold_comparison): Only call fold_inf_compare
8775 if the mode supports infinities.
8776
7716876b
JM
87772009-03-11 Jason Merrill <jason@redhat.com>
8778
8779 PR debug/39086
8780 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
8781 end already did. Notice GIMPLE_CALL modifications of the result.
8782 Don't copy debug information from an ignored decl or a decl from
8783 another function.
8784
ddef83d2
RG
87852009-03-10 Richard Guenther <rguenther@suse.de>
8786 Nathan Froyd <froydnj@codesourcery.com>
8787
8788 PR middle-end/37850
9ade279b 8789 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
8790 (__divMODE3): Likewise.
8791
9a9ba8d9
JJ
87922009-03-09 Jakub Jelinek <jakub@redhat.com>
8793
8794 PR tree-optimization/39394
8795 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
8796 DECL_SIZE_UNIT of variable length FIELD_DECLs.
8797
929b7fc3
AK
87982009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8799
8800 * recog.c (verfiy_changes): Disallow renaming of hard regs in
8801 inline asms for register asm ("") declarations.
8802
1803581d
EB
88032009-03-09 Eric Botcazou <ebotcazou@adacore.com>
8804
8805 * fold-const.c (fold_unary): Fix comment.
8806
8454d27e
JH
88072009-03-07 Jan Hubicka <jh@suse.cz>
8808
8809 PR target/39361
969a5433
JJ
8810 * tree-inline.c (setup_one_parameter): Do replacement of const
8811 argument by constant in SSA form.
8454d27e 8812
3a695389
UW
88132009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8814
8815 PR middle-end/38028
8816 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
8817 determine alignment passed to assign_stack_local.
8818 (assign_parms_unsplit_complex): Likewise.
8819 * except.c (sjlj_build_landing_pads): Likewise.
8820
9f0e7885
JJ
88212009-03-06 Jakub Jelinek <jakub@redhat.com>
8822
65401a0b
JJ
8823 PR middle-end/39360
8824 * tree-flow.h (add_referenced_var): Return bool instead of void.
8825 * tree-dfa.c (add_referenced_var): Return result of
8826 referenced_var_check_and_insert call.
8827 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
8828 of referenced_var_check_and_insert.
8829
9f0e7885 8830 PR debug/39372
9ade279b 8831 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
8832 (gen_variable_die): Emit DW_AT_location on abstract static variable's
8833 DIE, don't emit it if abstract origin already has it.
8834 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
8835 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
8836
3b664bd1
JBG
88372009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8838
ba20e309 8839 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
8840 detection.
8841 (write_tm_constrs_h): Indent generated code.
8842
d8f8ca80
RR
88432009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8844
8845 * doc/extend.texi (Function Attributes): Add documentation
8846 for isr attributes.
8847
6c3d550c
JJ
88482009-03-06 Jakub Jelinek <jakub@redhat.com>
8849
8850 PR debug/39387
8851 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
8852 take locus from its DECL_SOURCE_LOCATION instead of input_location.
8853
f9e96751
BS
88542009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
8855
8856 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
8857 the loop as bad.
8858
ee0ee7e2
JJ
88592009-03-05 Jakub Jelinek <jakub@redhat.com>
8860
8861 PR debug/39379
8862 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
8863 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
8864
6c6094f1
UB
88652009-03-05 Uros Bizjak <ubizjak@gmail.com>
8866
8867 * config/i386/i386.md (R8_REG, R9_REG): New constants.
8868 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
8869 constants instead of magic numbers.
8870 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
8871 (QI_REG_P): Ditto.
8872 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
8873 (x86_64_ms_abi_int_parameter_registers): Ditto.
8874 (x86_64_int_return_registers): Ditto.
09f8a8d3 8875 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
8876 (ix86_expand_call): Ditto for clobbered_registers array.
8877 (ix86_hard_regno_mode_ok): Ditto.
8878 (x86_extended_QIreg_mentioned_p): Ditto.
8879
b267bd41
R
88802009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
8881
6c6094f1 8882 PR tree-optimization/39349
1f3ad3f0
R
8883 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
8884
b267bd41
R
8885 * combine.c (gen_lowpart_for_combine): Use omode when generating
8886 clobber.
8887
1242bc9d
R
88882009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
8889
6c6094f1 8890 PR rtl-optimization/39235
1242bc9d
R
8891 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
8892
48f03606
ZD
88932009-03-04 Zdenek Dvorak <ook@ucw.cz>
8894
8895 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
8896
b505e785
RG
88972009-03-04 Richard Guenther <rguenther@suse.de>
8898
8899 PR tree-optimization/39362
8900 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
8901 that occur in abnormal PHIs should be varying.
8902
f017bf5e
ZD
89032009-03-04 Zdenek Dvorak <ook@ucw.cz>
8904
8905 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
8906 Extend comments.
8907 (simple_iv): Take loop as an argument instead of statement.
8908 * tree-scalar-evolution.h (simple_iv): Declaration changed.
8909 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
8910 to simple_iv.
8911 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
8912 Ditto.
8913 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
8914 * matrix-reorg.c (analyze_transpose): Ditto.
8915 * tree-data-ref.c (dr_analyze_innermost): Ditto.
8916 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
8917 * tree-predcom.c (ref_at_iteration): Ditto.
8918 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
8919
6a66f28e
RG
89202009-03-04 Richard Guenther <rguenther@suse.de>
8921
8922 PR tree-optimization/39358
8923 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
8924 escaped_id and callused_id.
8925 (solve_graph): Likewise.
8926
57e454ee
RG
89272009-03-04 Richard Guenther <rguenther@suse.de>
8928
8929 PR tree-optimization/39339
8930 * tree-sra.c (try_instantiate_multiple_fields): Make it
8931 no longer ICE on the above.
8932
a6fe9ed4
JM
89332009-03-03 Joseph Myers <joseph@codesourcery.com>
8934
8935 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
8936 that fits within Pmode.
8937
dc672951
SE
89382009-03-03 Steve Ellcey <sje@cup.hp.com>
8939
8940 PR middle-end/10109
8941 * tm.texi (LIBCALL_VALUE): Update description.
8942
8b9d598f
SE
89432009-03-03 Steve Ellcey <sje@cup.hp.com>
8944
8945 PR middle-end/34443
8946 * doc/extend.texi (section): Update description.
8947
13e4e36e
L
89482009-03-03 H.J. Lu <hongjiu.lu@intel.com>
8949
8950 PR middle-end/39345
8951 * tree-inline.c (remapped_type): New.
8952 (can_be_nonlocal): Call remapped_type instead of remap_type.
8953
067dd3c9
JJ
89542009-03-03 Jakub Jelinek <jakub@redhat.com>
8955
8956 PR fortran/39354
8957 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
8958 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
8959
9bd9f738
RG
89602009-03-03 Richard Guenther <rguenther@suse.de>
8961
8962 PR middle-end/39272
8963 * tree.c (tree_nonartificial_location): New function.
8964 * tree.h (tree_nonartificial_location): Declare.
8965 * builtins.c (expand_builtin_memory_chk): Provide location
8966 of the call location for artificial function pieces.
8967 (maybe_emit_chk_warning): Likewise.
8968 (maybe_emit_sprintf_chk_warning): Likewise.
8969 (maybe_emit_free_warning): Likewise.
8970 * expr.c (expand_expr_real_1): Likewise.
8971
f07049c8
JJ
89722009-03-03 Jakub Jelinek <jakub@redhat.com>
8973
8974 PR tree-optimization/39343
8975 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
8976 COMPONENT_REF t has ARRAY_TYPE.
8977
7d4fba4a
SP
89782009-03-02 Sebastian Pop <sebastian.pop@amd.com>
8979
8980 PR middle-end/39335
8981 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
8982 when the type precision of the induction variable should be
8983 larger than the type precision of nit.
8984 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
8985 * graphite.c (graphite_loop_normal_form): Same.
8986 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
8987
78168632
UB
89882009-03-02 Uros Bizjak <ubizjak@gmail.com>
8989
8990 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
8991 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 8992 numbers to describe clobbered registers.
78168632 8993 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
8994 * config/i386/mmx.md (mmx_emms): Ditto.
8995 (mmx_femms): Ditto.
78168632 8996
63553059
RS
89972009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
8998
8999 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
9000 of ABI_64.
9001
500a1f85
UW
90022009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9003
9004 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
9005 (spu_section_type_flags): New function.
9006
962aae34
UB
90072009-03-02 Uros Bizjak <ubizjak@gmail.com>
9008
9009 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
9010 reg_class_contents of FLOAT_REGS into a temporary.
9011
6dfb529c 90122009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 9013 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
9014
9015 PR tree-optimization/39318
9016 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
9017 information to the vectorized statement.
9018
6b5629db
UB
90192009-03-01 Uros Bizjak <ubizjak@gmail.com>
9020
434426d2
UB
9021 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9022 variable. Use defined names instead of magic constants for REX SSE
9023 registers.
6b5629db 9024
14e5b285
RG
90252009-03-01 Richard Guenther <rguenther@suse.de>
9026
9027 PR tree-optimization/39331
9028 * omp-low.c (lower_send_shared_vars): Do not receive new
9029 values for the reference of DECL_BY_REFERENCE parms or results.
9030
526d73ab
JH
90312009-03-01 Jan Hubicka <jh@suse.cz>
9032
9033 PR debug/39267
9034 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
9035 BLOCK_NONLOCALIZED_VAR): New macros.
9036 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
9037 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
9038 gen_decl_die): Add origin argument. Allow generation of die with
9039 origin at hand only.
526d73ab 9040 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
9041 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
9042 of gen_*.
526d73ab
JH
9043 (gen_block_die): Fix checking for unused blocks.
9044 (process_scope_var): Break out from .... ; work with origins only.
9045 (decls_for_scope) ... here; process nonlocalized list.
9046 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
9047 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
9048 vars.
526d73ab
JH
9049 (dump_scope_block): Dump them.
9050 * tree-inline.c (remap_decls): Handle nonlocalized vars.
9051 (remap_block): Likewise.
9052 (can_be_nonlocal): New predicate.
9053 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
9054
7a9d3fe8
RW
90552009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9056
9057 * configure: Regenerate.
9058
b3cdf3cb
RW
90592009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9060
a16d1645 9061 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 9062 Reuse help texts for duplicate options which do not have any.
a16d1645 9063
1156c176
RW
9064 * gcc.c (display_help): Document --version.
9065
033505fc
RW
9066 * gcc.c (main): If print_help_list and verbose_flag, ensure
9067 driver output comes before subprocess output.
9068
4d077054
RW
9069 * optc-gen.awk: Assign all remaining fields to help string,
9070 space-separated, for multi-line help in *.opt.
9071
a072f1cf
RW
9072 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9073 -Wno-pedantic-ms-format is for MinGW targets only.
9074
b3cdf3cb
RW
9075 * doc/options.texi (Option file format): Fix bad indentation,
9076 restoring dropped sentence.
9077
a3aadcc5
JH
90782009-02-28 Jan Hubicka <jh@suse.cz>
9079
9080 * tree-inline.c (tree_function_versioning): Output debug info.
9081
1cf5abb3
JH
90822009-02-28 Jan Hubicka <jh@suse.cz>
9083
9084 PR debug/39267
9085 * tree-inline.c (setup_one_parameter): Do not copy propagate
9086 arguments when not optimizing.
9087
c4d3f42f
L
90882009-02-28 H.J. Lu <hongjiu.lu@intel.com>
9089
9090 PR target/39327
9091 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9092 (avx_addsubv4df3): Likewise.
9093 (*avx_addsubv4sf3): Likewise.
9094 (sse3_addsubv4sf3): Likewise.
9095 (*avx_addsubv2df3): Likewise.
9096 (sse3_addsubv2df3): Likewise.
9097 (avx_unpckhps256): Correct item selectors.
9098 (avx_unpcklps256): Likewise.
9099 (avx_unpckhpd256): Likewise.
9100 (avx_unpcklpd256): Likewise.
9101
eb50f5f4
JH
91022009-02-28 Jan Hubicka <jh@suse.cz>
9103
9104 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9105 static vars.
9106 (copy_arguments_for_versioning): If var is declared don't declare it.
9107 (tree_function_versioning): First setup substitutions and then copy
9108 args.
9109
26140130
JH
91102009-02-27 Jan Hubicka <jh@suse.cz>
9111
9112 PR debug/39267
9113 * cgraph.h (varpool_output_debug_info): Remove.
9114 * cgraphunit.c (varpool_output_debug_info): Remove.
9115 * dwarf2out.c (deferred_locations_struct): New struct
9116 (deferred_locations): New type.
9117 (deferred_locations_list): New static var.
9118 (deffer_location): New function.
9119 (gen_variable_die): Use it.
9120 (decls_for_scope): Output info on local static vars.
9121 (dwarf2out_finish): Process deferred locations.
9122 * varpool.c (varpool_output_debug_info): Remove.
9123
cff7525f
JH
91242009-02-27 Jan Hubicka <jh@suse.cz>
9125
9126 PR debug/39267
9127 * tree.h (TREE_PROTECTED): Fix comment.
9128 (BLOCK_HANDLER_BLOCK): Remove.
9129 (struct tree_block): Remove handler_block add body_block.
9130 (inlined_function_outer_scope_p): New.
9131 (is_body_block): Remove.
9132 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9133 * dwarf2out.c (is_inlined_entry_point): Remove.
9134 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
9135 (gen_block_die): Use is_inlined_entry_point check. Remove body block
9136 code.
cff7525f
JH
9137 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9138 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
9139 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9140 block with multiple subblocks.
cff7525f
JH
9141 (dump_scope_block): Prettier output; dump more flags and info.
9142 (dump_scope_blocks): New.
9143 (remove_unused_locals): Use dump_scope_blocks.
9144 * tree-flow.h (dump_scope_blocks): Declare.
9145 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9146 * stmt.c (is_body_block): Remove.
9147 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9148 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9149
c20993b9
SP
91502009-02-27 Sebastian Pop <sebastian.pop@amd.com>
9151
9152 PR middle-end/39308
2ba9daa7 9153 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
9154 number_of_iterations_exit from a gcc_assert.
9155
e3cba5e5
AK
91562009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9157
60839f5d 9158 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
9159 jumps if COND is NULL.
9160 (find_cond_jump): New function.
9161 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 9162 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 9163
9dadeeb8
UB
91642009-02-26 Uros Bizjak <ubizjak@gmail.com>
9165
9166 * config/alpha/alpha.h (alpha_expand_mov): Return false if
9167 force_const_mem returns NULL_RTX.
9168
625d3251
EB
91692009-02-26 Jan Hubicka <jh@suse.cz>
9170
9171 PR debug/39267
9172 * cgraph.h (varpool_output_debug_info): Remove.
9173 * cgraphunit.c (varpool_output_debug_info): Remove.
9174 * dwarf2out.c (deferred_locations_struct): New struct
9175 (deferred_locations): New type.
9176 (deferred_locations_list): New static var.
9177 (deffer_location): New function.
9178 (gen_variable_die): Use it.
9179 (decls_for_scope): Output info on local static vars.
9180 (dwarf2out_finish): Process deferred locations.
9181 * varpool.c (varpool_output_debug_info): Remove.
9182
38432148 91832009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
9184
9185 PR rtl-optimization/39241
9186 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9187 to subreg_offset_representable_p.
9188
62d049cf
PB
91892009-02-25 Paolo Bonzini <bonzini@gnu.org>
9190
9191 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9192 execute function prototype. Get f and nregs from max_reg_num
9193 and get_insns. Remove the first backward pass as it's dead,
9194 guard the forward pass by flag_expensive_optimizations.
9195 (rest_of_handle_regmove): Delete.
9196 (pass_regmove): Replace it with regmove_optimize.
9197
f618d33e
MJ
91982009-02-25 Martin Jambor <mjambor@suse.cz>
9199
9200 PR tree-optimization/39259
9201 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 9202 calls_alloca function flags.
f618d33e
MJ
9203 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9204 calls are detected.
9205
c8a05f7c
PB
92062009-02-25 Paolo Bonzini <bonzini@gnu.org>
9207
9208 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9209 flags_set_1_rtx, flags_set_1_set): Delete.
9210 (regmove_optimize): Do not call mark_flags_life_zones.
9211
6d2538f5
JB
92122009-02-24 Julian Brown <julian@codesourcery.com>
9213
9214 PR target/35965
9215 * config/arm/arm.c (require_pic_register): Only set
9216 cfun->machine->pic_reg once per function.
9217
a2fa6772
SL
92182009-02-24 Sandra Loosemore <sandra@codesourcery.com>
9219
9220 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 9221 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 9222
5472de36
SE
92232009-02-24 Steve Ellcey <sje@cup.hp.com>
9224
9225 PR target/33785
9226 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9227
844216f3
RG
92282009-02-24 Richard Guenther <rguenther@suse.de>
9229
9230 PR debug/39285
9231 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9232
71adbef3 92332009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 9234 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
9235
9236 PR tree-optimization/39233
9237 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9238 from converting them to a generic type.
9239
f1a558e0
SP
92402009-02-23 Sebastian Pop <sebastian.pop@amd.com>
9241
9242 PR tree-optimization/39260
9243 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9244 contains a condition with a real type.
9245 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9246
d8028f2c
JM
92472009-02-23 Jason Merrill <jason@redhat.com>
9248
9249 PR c++/38880
9250 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9251 narrowing_initializer_constant_valid_p.
2ba9daa7 9252 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
9253 null_pointer_node for adding a pointer to itself.
9254
9283b513
JH
92552009-02-23 Jan Hubicka <jh@suse.cz>
9256
9257 PR c/12245
9dadeeb8
UB
9258 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9259 resizing.
9283b513 9260
61e04322
JH
92612009-02-23 Jan Hubicka <jh@suse.cz>
9262
9dadeeb8
UB
9263 PR tree-optimization/37709
9264 * tree.c (block_ultimate_origin): Move here from dwarf2out.
9265 * tree.h (block_ultimate_origin): Declare.
9266 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
9267 * tree-ssa-live.c (remove_unused_scope_block_p):
9268 Eliminate blocks containig no instructions nor live variables nor
9269 nested blocks.
9270 (dump_scope_block): New function.
9271 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 9272 enable dumping at TDF_DETAILS.
61e04322 9273
38432148 92742009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
9275
9276 * config/i386/i386.c (classify_argument): Don't allow COImode
9277 and OImode.
9278 (function_arg_advance_32): Don't allow OImode.
9279 (function_arg_32): Likewise.
9280 (function_value_32): Likewise.
9281 (return_in_memory_32): Likewise.
9282 (function_arg_64): Remove OImode comment.
9283
38432148 92842009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
9285
9286 PR target/39261
9287 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9288 ix86_expand_vector_set for V4DImode in 64bit mode only.
9289 (ix86_expand_vector_init_one_var): Likewise.
9290
dcd739a6
SP
92912009-02-21 Sebastian Pop <sebastian.pop@amd.com>
9292
9293 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9294
6c3b938d
RS
92952009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9296
8e361f23 9297 PR bootstrap/39257
6c3b938d
RS
9298 * loop-iv.c: Revert last change.
9299 * emit-rtl.c: Likewise.
9300
38432148 93012009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
9302
9303 PR target/39256
9304 * config/i386/i386.c (type_natural_mode): Remove an extra
9305 space in the warning message.
9306 (function_value_32): Handle 32-byte vector modes.
9307 (return_in_memory_32): Likewise.
9308
2ec62529
RS
93092009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9310
9311 * loop-iv.c (truncate_value): New function.
9312 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9313 of lowpart_subreg.
9314 (lowpart_subreg): Move to...
9315 * emit-rtl.c: ...here.
9316
ecb8c3cc 93172009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 9318
ecb8c3cc
DS
9319 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9320 accidental and undocumented change at revision 140860.
9321
ae46a823
JM
93222009-02-21 Joseph Myers <joseph@codesourcery.com>
9323
9324 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9325 take gimple_seq * arguments.
9326 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9327 types_compatible_p langhook.
9328
07d8efe3 93292009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 9330 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
9331
9332 * config/arm/arm.c (arm_builtin_va_list): New function.
9333 (arm_expand_builtin_va_start): Likewise.
9334 (arm_gimplify_va_arg_expr): Likewise.
9335 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9336 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9337 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9338 (va_list_type): New variable.
9339 (arm_mangle_type): Mangle va_list_type appropriately.
9340
b1fb9f56
JJ
93412009-02-20 Jakub Jelinek <jakub@redhat.com>
9342
9343 PR middle-end/39157
9344 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9345 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9346 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9347 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9348 parameter to 1000 for -O1 by default.
9349 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9350 parameter.
9351 * loop-invariant.c: Include params.h.
9352 (move_loop_invariants): Don't call move_single_loop_invariants on
9353 very large loops.
9354
5bc0807c
JM
93552009-02-20 Jaka Mocnik <jaka@xlab.si>
9356
9357 * calls.c (emit_library_call_value_1): Use slot_offset instead of
9358 offset when calculating bounds for indexing stack_usage_map. Fixes
9359 a buffer overflow with certain target setups.
9360
c69cd1f5
JJ
93612009-02-20 Jakub Jelinek <jakub@redhat.com>
9362
9363 PR target/39240
9364 * calls.c (expand_call): Clear try_tail_call if caller and callee
9365 disagree in promotion of function return value.
9366
09812622
JJ
93672009-02-19 Jakub Jelinek <jakub@redhat.com>
9368
9369 PR target/39175
9370 * c-common.c (c_determine_visibility): If visibility changed and
9371 DECL_RTL has been already set, call make_decl_rtl to update symbol
9372 flags.
9373
68017cb4
L
93742009-02-19 H.J. Lu <hongjiu.lu@intel.com>
9375
9376 PR c++/39188
9377 * varasm.c (assemble_variable): Don't check DECL_NAME when
9378 globalizing a variable.
9379
ab4194da
JM
93802009-02-19 Joseph Myers <joseph@codesourcery.com>
9381
9382 PR c/38483
9383 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9384 expression before any __builtin_trap call.
9385 * c-typeck.c (build_function_call): Convert and check function
9386 arguments before generating a call to a trap. Evaluate the
9387 function arguments before the trap.
9388
6b67572e
UB
93892009-02-19 Uros Bizjak <ubizjak@gmail.com>
9390
9391 PR target/39228
9392 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9393 (UNSPEC_FXAM_MEM): New unspec.
9394 (fxam<mode>2_i387_with_temp): New insn and split pattern.
9395 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
9396 memory using fxam<mode>2_i387_with_temp to remove excess precision.
9397
9e39dba6
RG
93982009-02-19 Richard Guenther <rguenther@suse.de>
9399
9400 PR tree-optimization/39207
9401 PR tree-optimization/39074
9402 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9403 storedanything_tree): New.
9404 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 9405 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
9406 (build_succ_graph): Add edges from STOREDANYTHING to all
9407 non-direct nodes.
9408 (init_base_vars): Initialize STOREDANYTHING.
9409 (compute_points_to_sets): Free substitution info after
9410 building the succ graph.
9411 (ipa_pta_execute): Likewise.
9412
9413 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
9414 field.
9415 (do_ds_constraint): Do not add to special var or non-pointer
9416 field solutions.
9417 (type_could_have_pointers): Split out from ...
9418 (could_have_pointers): ... here. For arrays use the element type.
9419 (create_variable_info_for): Initialize may_have_pointers.
9420 (new_var_info): Likewise.
9421 (handle_lhs_call): Make the HEAP variable unknown-sized.
9422 (intra_create_variable_infos): Use a type with pointers for
9423 PARM_NOALIAS, make it unknown-sized.
9424
fd7b2603
L
94252009-02-18 H.J. Lu <hongjiu.lu@intel.com>
9426
9427 PR target/39224
6b67572e 9428 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 9429
98b80692
JM
94302009-02-18 Jason Merrill <jason@redhat.com>
9431
9432 PR target/39179
9433 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
9434 value if DECL_EXTERNAL.
9435 * tree-sra.c (sra_walk_gimple_assign): Likewise.
9436 * target.h (gcc_target::binds_local_p): Clarify "module".
9437 * tree.h (TREE_PUBLIC): Clarify "module".
9438
0705d3f4
L
94392009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
9440
9441 PR target/38891
9442 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
9443 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
9444
bce08d50
L
94452009-02-17 H.J. Lu <hongjiu.lu@intel.com>
9446
9447 PR target/39082
9448 * c.opt (Wabi): Support C and ObjC.
9449 (Wpsabi): New.
9450
9451 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
9452
9453 * config/i386/i386.c (classify_argument): Warn once about the ABI
9454 change when passing union with long double.
9455
9456 * doc/invoke.texi: Update -Wabi for warning psABI changes.
9457
5600f233
JM
94582009-02-18 Joseph Myers <joseph@codesourcery.com>
9459
9460 PR c/35447
9461 * c-parser.c (c_parser_compound_statement): Always enter and leave
9462 a scope.
9463
8cd01fe6
JDA
94642009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9465
9466 PR target/34587
9467 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
9468
418df9d7
JJ
94692009-02-18 Jakub Jelinek <jakub@redhat.com>
9470
9471 PR tree-optimization/36922
9472 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
9473 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
9474 Likewise.
9475
082d2ebb
RS
94762009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9477
9478 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
9479 to 0 for EABI64.
9480
17de576c
RS
94812009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9482
9483 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
9484
6d8d5435
RS
94852009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9486
9487 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
9488 tree sharing.
9489
e69ff910
RB
94902009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
9491 Richard Sandiford <rdsandiford@googlemail.com>
9492
9493 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
9494 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
9495 (loongson_biadd): ...this.
9496
6b24ee26
RG
94972009-02-17 Richard Guenther <rguenther@suse.de>
9498
9499 PR tree-optimization/39202
9500 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
9501 a var make sure to follow existing collapses.
9502
91ab2c86
RG
95032009-02-17 Richard Guenther <rguenther@suse.de>
9504
9505 PR middle-end/39214
9506 * langhooks.c (lhd_print_error_function): Check for NULL block.
9507
73a63870
RG
95082009-02-17 Richard Guenther <rguenther@suse.de>
9509
9510 PR tree-optimization/39204
9511 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
9512 of the PHI arg.
9513
0e08f686
UB
95142009-02-17 Uros Bizjak <ubizjak@gmail.com>
9515
9516 * config/soft-fp/double.h: Update from glibc CVS.
9517
a60b7ddb
RG
95182009-02-17 Richard Guenther <rguenther@suse.de>
9519
9520 PR tree-optimization/39207
9521 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
9522 strict-aliasing warnings for pointers pointing to NULL.
9523
a47e20fd
JM
95242009-02-16 Joseph Myers <joseph@codesourcery.com>
9525
9526 PR c/35446
9527 * c-parser.c (c_parser_braced_init): Call pop_init_level when
9528 skipping until next close brace.
9529
50aab7dc
L
95302009-02-16 H.J. Lu <hongjiu.lu@intel.com>
9531
9532 PR target/37049
9533 * config/i386/i386.c (ix86_expand_push): Set memory alignment
9534 to function argument boundary.
9535
68e53db0
HS
95362009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
9537
9538 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
9539 in the lea_add. Reload eventually constraints it properly.
0d50d55a 9540 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
9541 "b", since it is not needed anymore.
9542
09e361bb
JJ
95432009-02-16 Jakub Jelinek <jakub@redhat.com>
9544
9545 * gthr-dce.h: Uglify function parameter and local variable names.
9546 * gthr-gnat.h: Likewise.
9547 * gthr-mipssde.h: Likewise.
9548 * gthr-nks.h: Likewise.
9549 * gthr-posix95.h: Likewise.
9550 * gthr-posix.h: Likewise.
9551 * gthr-rtems.h: Likewise.
9552 * gthr-single.h: Likewise.
9553 * gthr-solaris.h: Likewise.
9554 * gthr-tpf.h: Likewise.
9555 * gthr-vxworks.h: Likewise.
9556 * gthr-win32.h: Likewise.
9557
47f5a48f
L
95582009-02-15 H.J. Lu <hongjiu.lu@intel.com>
9559
9560 PR target/39196
9561 * config/i386/i386.md: Restrict the new peephole2 to move
9562 between MMX/SSE registers.
9563
68c9ab45
RG
95642009-02-15 Richard Guenther <rguenther@suse.de>
9565
9566 Revert
9567 2009-02-13 Richard Guenther <rguenther@suse.de>
9568
9569 * configure.ac: Enable LFS.
9570 * configure: Re-generate.
9571 * config.in: Likewise.
9572
d7815554
UW
95732009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9574
9575 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
9576 spu_srqwbyte, spu_srqwbytebc): Define.
9577 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
9578 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
9579 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
9580 "shrqby_<mode>"): New insn-and-split patterns.
9581 * config/spu/spu.c (expand_builtin_args): Determine and return
9582 number of operands using spu_builtin_description data.
9583 (spu_expand_builtin_1): Use it.
9584
c208436c
SE
95852009-02-13 Steve Ellcey <sje@cup.hp.com>
9586
9587 PR target/38056
9588 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
9589 TARGET_CONST_GP.
9590
c2e7ba7e
L
95912009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9592
9593 PR target/39149
9594 * config/i386/i386.c (override_options): Correct warning
6c6094f1 9595 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 9596
72f4e3a7
L
95972009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9598
9599 PR target/39152
9600 * config/i386/i386.md: Restrict the new peephole2 to move
9601 between the general purpose registers.
9602
53f648e2
L
96032009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9604
9605 PR target/39162
9606 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 9607 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
9608 (function_arg_advance): Updated.
9609 (function_arg): Likewise.
9610 (ix86_function_value): Likewise.
9611 (ix86_return_in_memory): Likewise.
9612 (ix86_sol10_return_in_memory): Likewise.
9613 (ix86_gimplify_va_arg): Likewise.
9614 (function_arg_32): Don't warn ABX ABI change here.
9615 (function_arg_64): Likewise.
9616
38432148 96172009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
9618
9619 * loop-iv.c (implies_p): In the final case, test that operands 0
9620 of the two comparisons match.
9621
dd2139e7
BS
9622 * config/bfin/bfin.c (find_prev_insn_start): New function.
9623 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
9624 (find_next_insn_start): Move.
9625
601b3e1a
RG
96262009-02-13 Richard Guenther <rguenther@suse.de>
9627
9628 * configure.ac: Enable LFS.
9629 * configure: Re-generate.
9630 * config.in: Likewise.
9631
f007042e
JM
96322009-02-13 Joseph Myers <joseph@codesourcery.com>
9633
9634 PR c/35444
9635 * c-parser.c (c_parser_parms_list_declarator): Discard pending
9636 sizes on syntax error after some arguments have been parsed.
9637
3f238e8b
JJ
96382009-02-12 Jakub Jelinek <jakub@redhat.com>
9639
9640 * doc/invoke.texi (-fira): Remove.
9641
328e13b7
L
96422009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9643
9644 * caller-save.c: Replace regclass.c with reginfo.c in comments.
9645 * recog.c: Likewise.
9646 * rtl.h: Likewise.
9647
c252db20
L
96482009-02-12 Uros Bizjak <ubizjak@gmail.com>
9649
9650 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
9651 (umul_ppmm): Likewise.
9652 (count_leading_zeros): Likewise.
9653 (count_trailing_zeros): Likewise.
9654 (UMUL_TIME): Likewise.
9655
96562009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9657
ba181049
UB
9658 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
9659 soft-fp/t-softfp to tmake_file.
c252db20
L
9660
9661 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
9662 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
9663 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
9664 IA64_BUILTIN_INFQ]: New.
c252db20
L
9665 (ia64_init_builtins): Initialize __builtin_infq,
9666 __builtin_fabsq and __builtin_copysignq if not HPUX.
9667 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
9668 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
9669
9670 * config/ia64/lib1funcs.asm (__divtf3): Define only if
9671 SHARED is defined.
9672 (__fixtfti): Likewise.
9673 (__fixunstfti): Likewise.
9674 (__floattitf): Likewise.
9675
9676 * config/ia64/libgcc-glibc.ver: New.
9677 * config/ia64/t-fprules-softfp: Likewise.
9678 * config/ia64/sfp-machine.h: Likewise.
9679
9680 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
9681 (LIBGCC2_TF_CEXT): Likewise.
9682 (TF_SIZE): Likewise.
9683 (TARGET_INIT_LIBFUNCS): Likewise.
9684
ba181049 9685 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 9686 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 9687
f13eae6a
L
96882009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9689
9690 * config/i386/i386.c (construct_container): Rewrite processing
9691 BLKmode with X86_64_SSE_CLASS.
9692
12019aec
L
96932009-02-12 Paolo Bonzini <bonzini@gnu.org>
9694
9695 PR target/39152
9696 * config/i386/i386.md: Replace simplify_replace_rtx with
9697 replace_rtx in the new peephole2.
9698
28c11eb3
NS
96992009-02-12 Nathan Sidwell <nathan@codesourcery.com>
9700
9701 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
9702 loop unrolling do not happen at -O2.
9703
c7b94907
MM
97042009-02-12 Michael Matz <matz@suse.de>
9705
9706 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
9707
61e98967
JJ
97082009-02-12 Jakub Jelinek <jakub@redhat.com>
9709
9710 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
9711 for -g3.
9712
a2a237b5
BE
97132009-02-12 Ben Elliston <bje@au.ibm.com>
9714
9715 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
9716 patterns when updating the back chain. Missed in the 2009-02-10
9717 change.
9718
853eda8d
JJ
97192009-02-11 Janis Johnson <janis187@us.ibm.com>
9720
9721 * doc/extend.texi (Decimal Floating Types): Update identifier of
9722 draft TR and list of missing support.
9723
3ad6b266
JJ
97242009-02-11 Jakub Jelinek <jakub@redhat.com>
9725
9726 PR middle-end/39154
9727 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
9728 bit to variable length decl's flags, add it also to its
9729 pointer replacement variable.
9730
b058b753
UB
97312009-02-11 Uros Bizjak <ubizjak@gmail.com>
9732 Jakub Jelinek <jakub@redhat.com>
9733
9734 PR target/39118
9735 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
9736 (memory_blockage): New expander.
9737 (*memory_blockage): New insn pattern.
9738 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
9739 instead of general blockage at the end of function prologue when
9740 frame pointer is used to access red zone area. Do not emit blockage
9741 when profiling, it is emitted in generic code.
9742 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
9743 function epilogue when frame pointer is used to access red zone area.
9744
bab64f23
PB
97452009-02-11 Paolo Bonzini <bonzini@gnu.org>
9746
0ce6dcfa 9747 PR target/38824
bab64f23
PB
9748 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
9749 by arithmetic with memory operands.
9750 * config/i386/predicates.md (commutative_operator): New.
9751
8fd94bda
JJ
97522009-02-10 Janis Johnson <janis187@us.ibm.com>
9753
9754 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
9755 bulleted lists.
9756
794511d2
EB
97572009-02-10 Eric Botcazou <ebotcazou@adacore.com>
9758
9759 * alias.h (record_alias_subset): Declare.
9760 * alias.c (record_alias_subset): Make global.
9761
6da7fc87
NC
97622009-02-10 Nick Clifton <nickc@redhat.com>
9763
9764 * tree-parloops.c: Change license to GPLv3.
9765 * ipa-struct-reorg.c: Change license to GPLv3.
9766 * ipa-struct-reorg.h: Change license to GPLv3.
9767
a03813c8
SE
97682009-02-10 Steve Ellcey <sje@cup.hp.com>
9769
9770 PR c/39084
9771 * c-decl.c (start_struct): Return NULL on error.
9772
fc3103e7
JJ
97732009-02-10 Jakub Jelinek <jakub@redhat.com>
9774
9b43d37b
JJ
9775 PR middle-end/39124
9776 * cfgloopmanip.c (remove_path): Call remove_bbs after
9777 cancel_loop_tree, not before it.
9778
fc3103e7 9779 PR target/39139
b058b753 9780 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
9781 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
9782 VAR_DECLs were seen.
9783 * tree-ssa-live.c (remove_unused_locals): Recompute
9784 cfun->has_local_explicit_reg_vars.
9785 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
9786 copies or clearings if cfun->has_local_explicit_reg_vars.
9787
dbf9ee15
UB
97882009-02-10 Uros Bizjak <ubizjak@gmail.com>
9789
9790 PR target/39118
9791 * config/i386/i386.c (expand_prologue): Emit blockage at the end
9792 of function prologue when frame pointer is used to access
9793 red zone area.
9794
bdec4dc7
RG
97952009-02-10 Richard Guenther <rguenther@suse.de>
9796
9797 PR middle-end/39127
9798 * gimplify.c (gimple_regimplify_operands): Always look if
9799 we need to create a temporary.
9800
7cae94fc
RG
98012009-02-10 Richard Guenther <rguenther@suse.de>
9802
9803 PR tree-optimization/39132
9804 * tree-loop-distribution.c (todo): New global var.
9805 (generate_memset_zero): Trigger TODO_rebuild_alias.
9806 (tree_loop_distribution): Return todo.
9807
a8800687
L
98082009-02-10 H.J. Lu <hongjiu.lu@intel.com>
9809
9810 PR target/39119
9811 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
9812 (x86_64_reg_class_name): Removed.
9813 (classify_argument): Return 0 if bytes > 32. Return 0 if the
9814 first one isn't X86_64_SSE_CLASS or any other ones aren't
9815 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
9816 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
9817 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
9818 and 3 X86_64_SSEUP_CLASS.
9819 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
9820 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
9821
d4bacef0
BE
98222009-02-10 Ben Elliston <bje@au.ibm.com>
9823
9824 * config/rs6000/rs6000.md (allocate_stack): Always use an update
9825 form instruction to update the stack back chain word, even if the
9826 user has disabled the generation of update instructions.
9827 (movdi_<mode>_update_stack): New.
9828 (movsi_update_stack): Likewise.
9829 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
9830 always use an update form instruction to update the stack back
9831 chain word.
9832
01d7d2f3
SP
98332009-02-09 Sebastian Pop <sebastian.pop@amd.com>
9834
9835 PR middle-end/38953
b058b753
UB
9836 * graphite.c (if_region_set_false_region): After moving a region in
9837 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
9838 (gloog): Remove wrong fix for PR38953.
9839
e41e2ab4
UW
98402009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9841
9842 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
9843 generation due to implicit sign extension.
9844
4bb07c5d
EB
98452009-02-09 Eric Botcazou <ebotcazou@adacore.com>
9846
9847 PR middle-end/38981
9848 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
9849 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
9850
f060a261
RG
98512009-02-09 Richard Guenther <rguenther@suse.de>
9852
9853 PR middle-end/35202
9854 * convert.c (convert_to_real): Disable (float)fn((double)x)
9855 to fnf(x) conversion if errno differences may occur and
9856 -fmath-errno is set.
9857
5a7e237c
AS
98582009-02-07 Anatoly Sokolov <aesok@post.ru>
9859
9860 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
9861 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9862 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9863
feab5a67
JM
98642009-02-06 Joseph Myers <joseph@codesourcery.com>
9865
9866 PR c/35434
9867 * c-common.c (handle_alias_attribute): Disallow attribute for
9868 anything not a FUNCTION_DECL or VAR_DECL.
9869
90ef2296
JJ
98702009-02-06 Janis Johnson <janis187@us.ibm.com>
9871
9872 PR c/39035
9873 * real.c (do_compare): Special-case compare of zero against
9874 decimal float value.
9875
1de2c900
JM
98762009-02-06 Joseph Myers <joseph@codesourcery.com>
9877
9878 PR c/36432
9879 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
9880 as indicating flexible array members unless the field itself is
9881 being declarared as the incomplete array.
9882
e901811a
JH
98832009-02-06 Jan Hubicka <jh@suse.cz>
9884
9885 PR tree-optimization/38844
9886 * ipa-inline.c (try_inline): Stop inlining recursion when edge
9887 is already inlined.
9888
3cfa762b
RG
98892009-02-06 Richard Guenther <rguenther@suse.de>
9890
9891 PR middle-end/38977
9892 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
9893 fork because we may expand it as __gcov_fork.
9894
8506528c
NC
98952009-02-06 Nick Clifton <nickc@redhat.com>
9896
dbf9ee15 9897 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 9898
85169114
PB
98992009-02-06 Paolo Bonzini <bonzini@gnu.org>
9900
9901 PR tree-optimization/35659
9902 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
9903 vn_phi_eq): Shortcut if hashcode does not match.
9904 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
9905 NULL operands.
9906 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
9907 and avoid iterative_hash_expr.
9908 (FOR_EACH_VALUE_ID_IN_SET): New.
9909 (value_id_compare): Remove.
9910 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
9911 sort expressions by value id.
9912
6d39673d
KK
99132009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
9914
9915 PR target/38991
9916 * config/sh/predicates.md (general_movsrc_operand): Don't check
9917 the subreg of system registers here.
9918
e6e1c050
JJ
99192009-02-05 Jakub Jelinek <jakub@redhat.com>
9920
9921 PR c++/39106
9922 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
9923 on the copied decl.
9924
65a74b5d
PB
99252009-02-05 Paolo Bonzini <bonzini@gnu.org>
9926
9927 PR rtl-optimization/39110
9928 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
9929 addresses, not aligned ones.
9930
08e14b2a
DB
99312009-02-05 Daniel Berlin <dberlin@dberlin.org>
9932 Richard Guenther <rguenther@suse.de>
9933
9934 PR tree-optimization/39100
9935 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
9936 comment says and add edges.
9937
5006381c
JM
99382009-02-05 Joseph Myers <joseph@codesourcery.com>
9939
9940 PR c/35435
9941 * c-common.c (handle_tls_model_attribute): Ignore attribute for
9942 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
9943
2ba9daa7 99442009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
9945
9946 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
9947 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
9948 register_bb_in_sese, new_sese, free_sese): Moved.
9949 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
9950 outermost_loop_in_scop, build_scop_iteration_domain,
9951 expand_scalar_variables_ssa_name, get_vdef_before_scop,
9952 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
9953 Use loop_in_sese_p instead of loop_in_scop_p.
9954 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
9955 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
9956 (scopdet_basic_block_info): Fix bug in scop detection.
9957 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
9958 eq_loop_to_cloog_loop): Remove.
9959 (nb_loops_around_loop_in_scop, nb_loop
9960 ref_nb_loops): Moved here...
9961 * graphite.h (ref_nb_loops): ... from here.
9962 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
9963 (loop_domain_dim, loop_iteration_vector_dim): Remove.
9964 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
9965 * testsuite/gcc.dg/graphite/scop-19.c: New
9966
48e8382e
PB
99672009-02-04 Paolo Bonzini <bonzini@gnu.org>
9968 Hans-Peter Nilsson <hp@axis.com>
9969
9970 PR rtl-optimization/37889
9971 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
9972 Move offset handling from PLUS to before the switch. Use new
9973 arguments when considering SYMBOL_REFs too.
9974 (rtx_addr_can_trap_p): Pass dummy offset and size.
9975 (enum may_trap_p_flags): Remove.
9976 (may_trap_p_1): Pass size from MEM_SIZE.
9977
9978 PR rtl-optimization/38921
9979 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
9980 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
9981 * rtlanal.c (may_trap_after_code_motion_p): Delete.
9982 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
9983
69349ea5
L
99842009-02-04 H.J. Lu <hongjiu.lu@intel.com>
9985
9986 AVX Programming Reference (January, 2009)
9987 * config/i386/sse.md (*vpclmulqdq): New.
9988
b545e411
JJ
99892009-02-04 Jakub Jelinek <jakub@redhat.com>
9990
9991 PR tree-optimization/38977
9992 PR gcov-profile/38292
bf9b2cc9 9993 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 9994
5b43bf05
HS
99952009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
9996
9997 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
9998 non-indexable addresses even before reload.
9999
062c4bb3
JM
100002009-02-03 Joseph Myers <joseph@codesourcery.com>
10001
10002 PR c/29129
10003 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
10004 as having variable size. Do not give an error for unnamed
10005 parameters with [*] declarators. Give a warning for type names
10006 with [*] declarators and mark them as variable size.
10007 * c-parser.c (c_parser_sizeof_expression): Do not give an error
10008 for sizeof applied to [*] type names.
10009
6175f578
AP
100102009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
10011
10012 PR C++/36607
10013 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
10014
d4f4bc84
JJ
100152009-02-03 Jakub Jelinek <jakub@redhat.com>
10016
10017 * gcc.c (process_command): Update copyright notice dates.
10018 * gcov.c (print_version): Likewise.
10019 * gcov-dump.c (print_version): Likewise.
10020 * mips-tfile.c (main): Likewise.
10021 * mips-tdump.c (main): Likewise.
10022
f6294de7
JM
100232009-02-03 Joseph Myers <joseph@codesourcery.com>
10024
10025 PR c/35433
10026 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
10027 for composite type involving a zero-length array type.
10028
754ccf7c
JJ
100292009-02-03 Jakub Jelinek <jakub@redhat.com>
10030
70f16287
JJ
10031 PR target/35318
10032 * function.c (match_asm_constraints_1): Skip over
10033 initial optional % in the constraint.
10034
754ccf7c
JJ
10035 PR inline-asm/39059
10036 * c-parser.c (c_parser_postfix_expression): If fixed point is not
10037 supported, don't accept FIXED_CSTs.
10038 * c-decl.c (finish_declspecs): Error if fixed point is not supported
10039 and _Sat is used without _Fract/_Accum. Set specs->type to
10040 integer_type_node for cts_fract/cts_accum if fixed point is not
10041 supported.
10042
965fdadf
CM
100432009-02-02 Catherine Moore <clm@codesourcery.com>
10044
dbf9ee15 10045 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 10046
2e8a796f
RS
100472009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
10048
10049 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
10050 (ABI_HAS_64BIT_SYMBOLS): Use it.
10051 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
10052
e0079468
PB
100532009-02-02 Paul Brook <paul@codesourcery.com>
10054
10055 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
10056
eca72963
JJ
100572009-02-02 Jakub Jelinek <jakub@redhat.com>
10058
10059 PR inline-asm/39058
10060 * recog.h (asm_operand_ok): Add constraints argument.
10061 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
10062 recurse on matching constraint.
10063 (check_asm_operands): Pass constraints as 3rd argument to
10064 asm_operand_ok. Don't look up matching constraint here.
10065 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10066 to asm_operand_ok.
10067
b5bde9ff
BE
100682009-02-02 Ben Elliston <bje@au.ibm.com>
10069
10070 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10071 TARGET_NARROW_VOLATILE_BITFIELD macro names.
10072
30f3e427
JDA
100732009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10074
be7659ba
JDA
10075 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10076 information. Remove some obsolete information. Reorganize.
10077
30f3e427
JDA
10078 * config/pa/fptr.c: Revert license to GPL 2.
10079 * config/pa/milli64.S: Likewise.
10080
3cbfaf98
DK
100812009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10082
10083 PR target/38904
10084 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
10085 LIBRARY name in, instead of hard-coding it.
10086 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
10087 extra target make frag to tmake_files according to EH model.
10088 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
10089 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
10090 frags that define makefile variable EH_MODEL appropriately.
10091 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
10092 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
10093 to "-sjlj" according to type of EH configured.
10094 (LIBGCC_SONAME): Concatenate it to shared library base name.
10095 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
10096 to "_sjlj" according to type of EH configured.
10097 (LIBGCC_SONAME): Concatenate it to shared library base name.
10098 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
10099 (SHLIB_LINK): Add missing semicolon to if-else construct.
10100 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10101 string value of "pe_dll" command-line option.
10102 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
10103 (SHLIB_SONAME): Use it when overriding t-cygming default.
10104 (SHLIB_IMPLIB): Override t-cygming default.
10105 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10106 string value of "pe_dll" command-line option.
10107
8d0b6068
DK
101082009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10109
10110 PR target/38952
10111 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 10112 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 10113
14c28276
RG
101142009-01-31 Richard Guenther <rguenther@suse.de>
10115
10116 PR tree-optimization/38937
10117 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10118 computing the transitive closure.
10119
5f4d82c2
RG
101202009-01-30 Richard Guenther <rguenther@suse.de>
10121
10122 PR tree-optimization/39041
10123 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10124 Propagate variable indices only if the types match for this stmt.
10125
d0728ae0
JJ
101262009-01-30 Jakub Jelinek <jakub@redhat.com>
10127
10128 PR target/39013
10129 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10130 inline but never defined.
10131
6b67572e 101322009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
10133
10134 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10135 (*insv_h_di_reg_extimm): New insn.
10136 (*insv_l<mode>_reg_extimm): New insn.
10137
101382009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
10139
10140 * config/picochip/picochip.c (flag_conserve_stack): set
10141 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10142 fconserve-stack. Reduce call-overhead used by inliner.
10143
9fec758d 101442009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
10145
10146 PR/38157
10147 * common.opt (flag_conserve_stack): Initialised to zero.
10148
7f1c539c
KT
101492009-01-30 Kai Tietz <kai.tietz@onevision.com>
10150
10151 PR/39002
10152 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10153 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10154 method.
10155
3631be48
L
101562009-01-29 H.J. Lu <hongjiu.lu@intel.com>
10157
10158 * ira-color.c (allocno_reload_assign): Update comments.
10159 * regmove.c (regmove_optimize): Likewise.
10160
10161 * ra.h: Removed.
10162
416ac4d4
RM
101632009-01-29 Robert Millan <rmh@aybabtu.com>
10164
60839f5d
EB
10165 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10166 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 10167 `MD_UNWIND_SUPPORT'.
60839f5d 10168 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 10169
d5e54bc1
KH
101702009-01-29 Kazu Hirata <kazu@codesourcery.com>
10171
10172 PR tree-optimization/39007
10173 * tree-loop-distribution.c (generate_builtin): Use
10174 recompute_dominator to compute the immediate dominator of the
10175 basic block just after the loop.
10176
38432148 101772009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
10178
10179 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10180 (ASM_OUTPUT_DWARF_PCREL): Define.
10181
38432148 101822009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
10183
10184 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10185 * doc/passes.texi: Remove entries about regclass, local-alloc, and
10186 global. Modify entries about regmove and IRA.
10187
10188 * ra-conflict.c: Remove the file.
10189
10190 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10191
10192 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10193 (pass_regclass_init): Rename to pass_reginfo_init.
10194
10195 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10196
10197 * toplev.h (flag_ira): Remove.
10198
10199 * caller-save.c (setup_save_areas): Remove flag_ira.
10200
bf9b2cc9 10201 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
10202
10203 * global.c: Remove the file.
10204
ba20e309 10205 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
10206
10207 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10208
10209 * regmove.c: Modify file description.
10210 (find_use_as_address, try_auto_increment): Define them only if
10211 AUTO_INC_DEC is defined.
10212 (replacement_quality, replace_in_call_usage, fixup_match_1,
10213 stable_and_no_regs_but_for_p): Remove.
10214 (reg_set_in_bb): Make it static.
10215 (regmove_optimize): Remove flag_ira and code which worked for
10216 !flag_ira.
10217
10218 * local-alloc.c: Remove the file.
10219
10220 * common.opt (fira): Remove.
10221
10222 * ira.c: Include except.h.
10223 (eliminable_regset): Move from global.c.
10224 (mark_elimination): Ditto. Remove flag_ira.
10225 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10226 equiv_mem_modified, validate_equiv_mem_from_store,
10227 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10228 contains_replace_regs, memref_referenced_p, memref_used_between_p,
10229 no_equiv, recorded_label_ref): Move from local-alloc.c.
10230 (update_equiv_regs): Ditto. Make it static.
10231 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 10232 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
10233 (build_insn_chain): Ditto. Make it static.
10234 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
10235 Rename to init_live_subregs.
10236 (gate_ira): Remove flag_ira.
10237
10238 * regclass.c: Rename reginfo.c. Change file description.
10239 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 10240 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
10241 (init_reg_sets_1): Remove code for evaluation of
10242 reg_class_superclasses and losing_caller_save_reg_set.
10243 (init_regs): Remove init_reg_autoinc.
10244 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10245 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 10246 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
10247 (pass_regclass_init): Rename to pass_reginfo_init. Modify
10248 corresponding entries.
10249 (dump_regclass, record_operand_costs, scan_one_insn,
10250 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10251 record_address_regs, auto_inc_dec_reg_p): Remove.
10252 (gt-regclass.h): Rename to gt-reginfo.h.
10253
10254 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 10255 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
10256
10257 * Makefile.in (RA_H): Remove.
10258 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10259 Rename regclass.o to reginfo.o.
10260 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
10261 gt-reginfo.h.
10262 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10263 (GTFILES): Rename regclass.c to reginfo.c.
10264
10265 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 10266 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
10267
10268 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10269 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10270 Remove flag_ira.
6b67572e 10271 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 10272
c95b2534 102732009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
10274
10275 PR middle-end/35854
10276 * doc/invoke.texi (rtl debug options): Complete rewrite.
10277 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10278 to auto_inc_dec".
10279 * mode-switching.c (pass_mode_switching): Rename pass from
10280 "mode-sw" to "mode_sw".
10281 * except.c (pass_convert_to_eh_ranges): Rename pass from
10282 "eh-ranges" to "eh_ranges".
10283 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10284 to "subreg1".
2ba9daa7
AS
10285
10286
72a54528
AM
102872009-01-29 Andrey Belevantsev <abel@ispras.ru>
10288 Alexander Monakov <amonakov@ispras.ru>
10289
10290 PR middle-end/38857
10291 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10292 register.
10293 (move_exprs_to_boundary): Change return type and pass through
10294 should_move from move_op. Relax assert. Update usage ...
10295 (schedule_expr_on_boundary): ... here. Use should_move instead of
10296 cant_move.
10297 (move_op_orig_expr_found): Indicate that insn was disconnected from
10298 stream.
10299 (code_motion_process_successors): Do not call after_merge_succs
10300 callback if original expression was not found when traversing any of
10301 the branches.
10302 (code_motion_path_driver): Change return type. Update prototype.
10303 (move_op): Update comment. Add a new parameter (should_move). Update
10304 prototype. Set *should_move based on indication provided by
10305 move_op_orig_expr_found.
10306
001b9eb6
PH
103072009-01-28 Pat Haugen <pthaugen@us.ibm.com>
10308
10309 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10310 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10311 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10312 * config/rs6000/rs6000.c (rs6000_override_options): Default
10313 avoid-indexed-addresses on for Power6, off for everything else.
10314 (avoiding_indexed_address_p): New function.
10315 (rs6000_legitimize_address): Use it.
10316 (rs6000_legitimate_address): Likewise.
10317 * config/rs6000/rs6000.md (movXX_updateX): Likewise
10318
59dc4898
KH
103192009-01-28 Kazu Hirata <kazu@codesourcery.com>
10320
10321 PR tree-optimization/38997
10322 * tree-loop-distribution.c (generate_memset_zero): Use
10323 POINTER_PLUS_EXPR for a pointer addition.
10324
07da44ab
AK
103252009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
10326
10327 * config/s390/s390.md (bswap<mode>2): New pattern added.
10328
cdc15d23
WG
103292009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10330
10331 * config/s390/s390.md (*tls_load_31): Added type attribute.
10332
d46f24b6
WG
103332009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10334
10335 * config/s390/s390.md: Fix a few comments.
10336
729e750f
WG
103372009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10338
10339 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10340 (*tm<mode>_full): Fixed z10prop attribute.
10341 (*tst<mode>_extimm): Fixed z10prop attribute.
10342 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10343 (*tstqiCCT_cconly): Fixed z10prop attribute.
10344 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10345 (*movsi_larl): Fixed z10prop attribute.
10346 (*movsi_zarch): Fixed z10prop attribute.
10347 (*movsi_eas): Fixed z10prop attribute.
10348 (*movhi): Fixed z10prop attribute.
10349 (*movqi): Fixed z10prop attribute.
10350 (*movstrictqi): Fixed z10prop attribute.
10351 (*mov<mode>): Fixed z10prop attribute.
10352 (*movcc): Fixed z10prop attribute.
10353 (*sethighpartdi_64): Fixed z10prop attribute.
10354 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10355 (*negdi2_sign_cc): Fixed z10prop attribute.
10356 (*negdi2_sign): Fixed z10prop attribute.
10357 (*absdi2_sign_cc): Fixed z10prop attribute.
10358 (*absdi2_sign): Fixed z10prop attribute.
10359 (*negabsdi2_sign_cc): Fixed z10prop attribute.
10360 (*negabsdi2_sign): Fixed z10prop attribute.
10361 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10362 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10363 (doloop_si64): Fixed z10prop attribute.
10364 (doloop_si31): Fixed z10prop attribute.
10365 (doloop_long): Fixed z10prop attribute.
10366 (indirect_jump): Fixed z10prop attribute.
10367 (nop): Fixed z10prop attribute.
10368 (main_base_64): Fixed z10prop attribute.
10369 (reload_base_64): Fixed z10prop attribute.
10370
c7789bfb
JJ
103712009-01-28 Jakub Jelinek <jakub@redhat.com>
10372
10373 PR rtl-optimization/38740
6b67572e
UB
10374 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10375 if !optimize.
c7789bfb
JJ
10376 * config/mips/mips.c (mips_reorg): Likewise.
10377
de081cfd
RG
103782009-01-28 Richard Guenther <rguenther@suse.de>
10379
10380 PR tree-optimization/38926
10381 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10382 with the correct value id to a value.
10383 (do_regular_insertion): Use the value number of edoubleprime
10384 for the value number of the expr.
10385
10386 Revert
10387 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 10388
d748c406
UB
10389 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10390 a PHI ask VN if it is already available.
10391 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10392 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 10393
a9d386a1
JJ
103942009-01-28 Jakub Jelinek <jakub@redhat.com>
10395
10396 PR middle-end/38934
10397 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10398 set to varying whenever max has TREE_OVERFLOW set, similarly
10399 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10400
97a170cd
RG
104012009-01-28 Richard Guenther <rguenther@suse.de>
10402
10403 PR middle-end/38908
10404 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
10405 uninitialized aggregate uses in call arguments.
10406
89ebafc6
PB
104072009-01-28 Paolo Bonzini <bonzini@gnu.org>
10408
10409 PR tree-optimization/38984
10410 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
10411 the nothing_id variable if -fno-delete-null-pointer-checks.
10412
bef3c57b
UB
104132009-01-28 Uros Bizjak <ubizjak@gmail.com>
10414
10415 PR target/38988
10416 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
10417 (set_got_offset_rex64): Ditto.
10418
0c6390fa
L
104192009-01-27 H.J. Lu <hongjiu.lu@intel.com>
10420
10421 PR target/38941
10422 * doc/extend.texi: Improve local variable with asm reg.
10423
bee6fa6d
AN
104242009-01-27 Adam Nemet <anemet@caviumnetworks.com>
10425
10426 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
10427 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
10428 was not supplied then set warn_packed_bitfield_compat to the
10429 default value of 1.
10430 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
10431 against 1.
10432
b5c3dfbb
RG
104332009-01-27 Richard Guenther <rguenther@suse.de>
10434
10435 PR tree-optimization/38503
10436 * cfgexpand.c (expand_gimple_basic_block): Ignore
10437 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
10438 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
10439 variables that cannot have TBAA applied.
10440 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
10441 statements.
10442
d748c406 104432009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
10444
10445 PR middle-end/38969
10446 * calls.c (initialize_argument_information): Do not wrap complex
10447 arguments in SAVE_EXPR.
10448
9112bb38
AT
104492009-01-26 Andreas Tobler <a.tobler@schweiz.org>
10450
10451 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 10452 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 10453
4757704f
RG
104542009-01-26 Richard Guenther <rguenther@suse.de>
10455
10456 PR tree-optimization/38745
10457 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
10458 from special handling.
10459
e3e6cff4
RG
104602009-01-26 Richard Guenther <rguenther@suse.de>
10461
10462 PR tree-optimization/38745
10463 * tree-ssa.c (execute_update_addresses_taken): Do not include
10464 variables that cannot possibly be a register in not_reg_needs.
10465 Do not clear TREE_ADDRESSABLE on vars that may not become
10466 registers.
10467 * tree-ssa.c (update_alias_info_1): Include those in the set
10468 of addressable vars.
10469
dc874b53
RG
104702009-01-26 Richard Guenther <rguenther@suse.de>
10471
10472 PR middle-end/38851
10473 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
10474 * tree-ssa-dse.c: Include langhooks.h
10475 (execute_simple_dse): Remove stores with zero size.
10476
849421a3
JJ
104772009-01-24 Jakub Jelinek <jakub@redhat.com>
10478
10479 PR c/38957
10480 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
10481 as PLUS_EXPR.
10482
82f70421
JB
104832009-01-24 Julian Brown <julian@codesourcery.com>
10484
10485 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
10486 config/arm/linux-atomic.c.
10487 * config/arm/linux-atomic.c: New.
10488
863412d6
EB
104892009-01-24 Eric Botcazou <ebotcazou@adacore.com>
10490
10491 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
10492 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
10493 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
10494
8c684300
L
104952009-01-24 H.J. Lu <hongjiu.lu@intel.com>
10496
10497 PR c/38938
93f1527a 10498 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
10499 properly.
10500
b840fb02
SP
105012009-01-24 Sebastian Pop <sebastian.pop@amd.com>
10502
10503 PR tree-optimization/38953
10504 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
10505 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
10506 (gloog): Split the exit of the scop when the scop exit is a loop exit.
10507 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
10508 changed the CFG.
10509
ecee559f
PB
105102009-01-24 Paul Brook <paul@codesourcery.com>
10511
10512 * config/arm/neon.md (neon_type): Move to arm.md.
10513 (neon_mov<VSTRUCT>): Add neon_type attribute.
10514 * config/arm/arm.md (neon_type): Move to here.
10515 (conds): Add "unconditioal" and use as default for NEON insns.
10516
61ad0914
BE
105172009-01-24 Ben Elliston <bje@au.ibm.com>
10518
10519 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
10520 void *' warning from -Wc++-compat.
10521 * Makefile.in (dominance.o-warn): Remove.
10522
38432148 105232009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
10524
10525 PR tree-optimization/38932
10526 * fold-const.c (fold_unary_ignore_overflow): New.
10527 * tree.h (fold_unary_ignore_overflow): Declare.
10528 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
10529 * tree-ssa-sccvn.c (visit_reference_op_load,
10530 simplify_unary_expression): Likewise.
10531
2cd36c22
AN
105322009-01-22 Adam Nemet <anemet@caviumnetworks.com>
10533
10534 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
10535 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
10536 regardless of their type.
10537 * c-common.c (handle_packed_attribute): Don't ignore packed on
10538 bitfields.
10539 * c.opt (Wpacked-bitfield-compat): New warning option.
10540 * stor-layout.c (place_field): Warn if offset of a field changed.
10541 * doc/extend.texi (packed): Mention the ABI change.
10542 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
10543 (Warning Options): Add it to the list.
10544
e4e624ab
L
105452009-01-22 H.J. Lu <hongjiu.lu@intel.com>
10546
10547 * c-opts.c (c_common_post_options): Fix a typo in comments.
10548
d0ea0759
SE
105492009-01-22 Steve Ellcey <sje@cup.hp.com>
10550
10551 PR middle-end/38615
10552 * gimplify.c (gimplify_init_constructor): Fix promotion of const
10553 variables to static.
10554 * doc/invoke.texi (-fmerge-all-constants): Update description.
10555
87673f84
UB
105562009-01-22 Uros Bizjak <ubizjak@gmail.com>
10557
10558 PR target/38931
10559 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
10560 (*movdi_1_rex64): Use type "mmx" for alternative 5.
10561
96339268
RE
105622009-01-22 Richard Earnshaw <rearnsha@arm.com>
10563
10564 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
10565 a word boundary.
10566 (LOCAL_ALIGNMENT): Similarly.
10567
442dc742 105682009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 10569 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
10570
10571 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
10572 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
10573 * config/arm/arm-tune.md: Regenerate.
10574 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
10575 -march=iwmmxt2.
10576
9b34732e
MS
105772009-01-22 Mark Shinwell <shinwell@codesourcery.com>
10578
10579 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
10580 version number to five.
10581
03c2a308
DS
105822009-01-22 Dodji Seketeli <dodji@redhat.com>
10583
10584 PR c++/38930
ba20e309 10585 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
10586 * c-common.c (set_underlying_type): Likewise.
10587 (is_typedef_decl ): Likewise
10588 * tree.h: Likewise
10589 (set_underlying_type): Likewise.
10590 (is_typedef_type): Likewise.
10591
1240d76e
VM
105922009-01-21 Vladimir Makarov <vmakarov@redhat.com>
10593
10594 PR middle-end/38587
10595 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
10596 crossing setjmps.
10597
b8a1087d
DK
105982009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
10599
10600 PR bootstrap/37660
10601 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
10602 (LIBGCC_SPEC): Don't define.
10603 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
10604
435da628
UB
106052009-01-21 Uros Bizjak <ubizjak@gmail.com>
10606
10607 PR rtl-optimization/38879
10608 * alias.c (base_alias_check): Unaligned access via AND address can
10609 alias all surrounding object types except those with sizes equal
10610 or wider than the size of unaligned access.
10611
d597b3ce
DS
106122009-01-21 Dodji Seketeli <dodji@redhat.com>
10613
10614 PR c++/26693
ba20e309 10615 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 10616 * c-common.c (set_underlying_type): ... here.
435da628 10617 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
10618 the newly created typedef variant type.
10619 (is_typedef_decl ): New entry point.
10620 * tree.h: Added a new member member_types_needing_access_check to
10621 struct tree_decl_non_common.
10622 (set_underlying_type): New entry point.
10623 (is_typedef_type): Likewise.
10624
71a6fe66
BM
106252009-01-21 Bingfeng Mei <bmei@broadcom.com>
10626
10627 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
10628 Check whether two instructions have memory references that
10629 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
10630 are helper functions for traversing.
10631 * alias.h (insn_alias_sets_confilict_p): New prototypes.
10632 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
10633 not to draw dependency edge for instructions with non-conflicting
10634 alias sets.
10635
5a248274
JM
106362009-01-20 Joseph Myers <joseph@codesourcery.com>
10637
10638 PR other/38758
6b67572e
UB
10639 * longlong.h: Update copyright years. Use soft-fp license notice.
10640 Sync __clz_tab declaration with glibc.
5a248274 10641
4b84f3de
SE
106422009-01-20 Steve Ellcey <sje@cup.hp.com>
10643
10644 PR target/30687
10645 * doc/extend.texi (syscall_linkage): New.
10646 (version_id): Modify.
10647
37348bf1 106482009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 10649 Richard Guenther <rguenther@suse.de>
37348bf1
AP
10650
10651 PR tree-optimization/38747
10652 PR tree-optimization/38748
10653 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
10654 conversion if the base address is an indirect reference and the
10655 aliasing sets could cause issues.
10656
d0a58904
SP
106572009-01-20 Sebastian Pop <sebastian.pop@amd.com>
10658
2ba9daa7 10659 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
10660 explaining why these options are not documented.
10661
71e7afb2
SP
106622009-01-20 Sebastian Pop <sebastian.pop@amd.com>
10663
10664 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
10665 gimple_call_lhs is NULL.
10666
38432148 106672009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
10668
10669 PR target/38868
10670 * emit-rtl.c (adjust_address_1): Make sure memref is never
10671 overwritten.
10672
cbb8dee3
BE
106732009-01-20 Ben Elliston <bje@au.ibm.com>
10674
10675 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 10676 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
10677 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10678 const qualifier from arg 2.
10679
72c66596
IS
106802009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
10681
435da628 10682 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 10683
f68211cd
VM
106842009-01-19 Vladimir Makarov <vmakarov@redhat.com>
10685
10686 PR c/38869
10687 * rtl.h (reinit_regs): New prototype.
10688 * regclass.c: Include ira.h.
10689 (reinit_regs): New.
10690 * Makefile.in (regclass.o): Add ira.h.
10691 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
10692
6e4f1168
L
106932009-01-18 H.J. Lu <hongjiu.lu@intel.com>
10694
10695 PR target/38736
10696 * c-common.c (handle_aligned_attribute): Use
10697 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
10698 default alignment value.
10699
10700 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
10701
10702 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
10703 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
10704
10705 * doc/extend.texi: Update __attribute__ ((aligned)). Document
10706 __BIGGEST_ALIGNMENT__.
10707
10708 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
10709
890065bf
RG
107102009-01-18 Richard Guenther <rguenther@suse.de>
10711
10712 PR tree-optimization/38819
10713 * tree-flow.h (operation_could_trap_helper_p): Declare.
10714 * tree-eh.c (operation_could_trap_helper_p): Export.
10715 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
10716 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
10717 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
10718 are about to insert a possibly trapping instruction and fail
10719 in this case.
10720
a729d731
AS
107212009-01-18 Andreas Schwab <schwab@suse.de>
10722
10723 * doc/install.texi (Configuration): Remove obsolete paragraph
10724 about use of --with-gnu-ld with --with-gnu-as.
10725
a640c13b
KH
107262009-01-18 Kazu Hirata <kazu@codesourcery.com>
10727
10728 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
10729 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
10730 Follow spelling conventions.
10731
dba2cc0c
BE
107322009-01-18 Ben Elliston <bje@au.ibm.com>
10733
10734 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
10735 C++ warning about implicit conversion from void * to struct
10736 bitmap_head_def *.
10737 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 10738 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 10739
2207a498
DK
107402009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
10741
10742 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
10743
8137e465
SP
107442009-01-17 Sebastian Pop <sebastian.pop@amd.com>
10745 Tobias Grosser <tobi.grosser@amd.com>
10746
10747 * graphite.c (graphite_trans_scop_block): Do not block single
10748 nested loops.
10749
5be1c58c
AO
107502009-01-16 Alexandre Oliva <aoliva@redhat.com>
10751
10752 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
10753 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
10754 test with assertion.
10755
786ce82d
RG
107562009-01-16 Richard Guenther <rguenther@suse.de>
10757
10758 PR tree-optimization/38835
10759 PR middle-end/36227
10760 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
10761 and INT + PTR -> (INT)(PTR p+ INT) folding.
10762 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
10763
c1cb09ad
AN
107642009-01-16 Adam Nemet <anemet@caviumnetworks.com>
10765
10766 PR target/38554
10767 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
10768 the subreg from a lowpart subreg if it is also casting the value.
10769
bcab4e19
SP
107702009-01-16 Sebastian Pop <sebastian.pop@amd.com>
10771 Tobias Grosser <tobi.grosser@amd.com>
10772
10773 * graphite.c (compare_prefix_loops): New.
10774 (build_scop_canonical_schedules): Rewritten.
10775 (graphite_transform_loops): Move build_scop_canonical_schedules
10776 after build_scop_iteration_domain.
10777
0b040072
SP
107782009-01-16 Sebastian Pop <sebastian.pop@amd.com>
10779 Tobias Grosser <tobi.grosser@amd.com>
10780
2ba9daa7 10781 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
10782 the dimension of the iteration domain. Do copy the domain
10783 only when it exists.
10784 (build_scop_conditions_1): Do not call add_conditions_to_domain.
10785 (add_conditions_to_constraints): New.
10786 (can_generate_code_stmt, can_generate_code): Removed.
10787 (gloog): Do not call can_generate_code.
10788 (graphite_transform_loops): Call add_conditions_to_constraints
10789 after building the iteration domain.
10790
56c6a499
JJ
107912009-01-16 Jakub Jelinek <jakub@redhat.com>
10792
10793 PR tree-optimization/38789
10794 * tree-ssa-threadedge.c
10795 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
10796 __builtin_constant_p.
10797
c95b2534 107982009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
10799
10800 * dce.c (delete_unmarked_insns): Reversed the order that insns are
10801 examined before deleting them.
2ba9daa7 10802
c433cb14
RE
108032009-01-16 Richard Earnshaw <rearnsha@arm.com>
10804
10805 * function.c (aggregate_value_p): Correctly extract the function
10806 type from CALL_EXPR_FN lookup.
10807
c95b2534 108082009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
10809
10810 * config/picochip/picochip.c (picochip_override_options): Revert
10811 CFI asm flag disable commited previously.
10812
c77bb78f
SP
108132009-01-15 Sebastian Pop <sebastian.pop@amd.com>
10814 Tobias Grosser <tobi.grosser@amd.com>
10815 Jan Sjodin <jan.sjodin@amd.com>
10816
10817 * graphite.c (scan_tree_for_params): On substractions negate
10818 all the coefficients of the term.
10819 (clast_to_gcc_expression_red): New. Handle reduction expressions
10820 of more than two operands.
10821 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
10822 (get_vdef_before_scop): Handle also the case of default definitions.
10823
574af2d6
RS
108242009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
10825
10826 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
10827 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
10828 Also use them when walking CALL_INSN_FUNCTION_USAGE.
10829
e939805b
L
108302009-01-15 H.J. Lu <hongjiu.lu@intel.com>
10831 Joey Ye <joey.ye@intel.com>
10832
10833 PR middle-end/37843
10834 * cfgexpand.c (expand_stack_alignment): Don't update stack
10835 boundary nor check incoming stack boundary here.
10836 (gimple_expand_cfg): Update stack boundary and check incoming
10837 stack boundary here.
10838
c95b2534 108392009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 10840
435da628 10841 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 10842
0196c95e
JJ
108432009-01-14 Jakub Jelinek <jakub@redhat.com>
10844
10845 PR rtl-optimization/38245
10846 * calls.c (expand_call): Add stack arguments to
10847 CALL_INSN_FUNCTION_USAGE even for pure calls (when
10848 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
10849 in regs and partially in memory or BLKmode arguments.
10850 (emit_library_call_value_1): Add stack arguments to
10851 CALL_INSN_FUNCTION_USAGE even for pure calls (when
10852 ACCUMULATE_OUTGOING_ARGS).
10853 * dce.c: Include tm_p.h.
10854 (find_call_stack_args): New function.
10855 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
10856 argument.
10857 (mark_insn): Call find_call_stack_args for CALL_Ps.
10858 (prescan_insns_for_dce): Walk insns backwards in bb rather than
10859 forwards. Allocate and free arg_stores bitmap if needed, pass it
10860 down to deletable_insn_p, don't mark stores set in arg_stores
10861 bitmap, clear the bitmap at the beginning of each bb.
10862 * Makefile.in (dce.o): Depend on $(TM_P_H).
10863
6df6bcfa
MM
108642009-01-14 Michael Meissner <gnu@the-meissners.org>
10865
10866 PR target/22599
435da628
UB
10867 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
10868 to make sure the insn is a conditional test (bug 22599). Reformat a
10869 few long lines.
6df6bcfa 10870
765ec70c
SP
108712009-01-14 Sebastian Pop <sebastian.pop@amd.com>
10872
10873 PR middle-end/38431
10874 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
10875 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
10876 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 10877 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
10878 scops have been code generated.
10879
7de2b688
BS
108802009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
10881 * doc/gty.texi (Invoking the garbage collector): Added new node
10882 and section documenting ggc_collect.
10883
10bd6c5c
RG
108842009-01-14 Richard Guenther <rguenther@suse.de>
10885
10886 PR tree-optimization/38826
10887 PR middle-end/38477
10888 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
10889 initialization notes only if we actually emitted a warning.
10890 (intra_create_variable_infos): Add constraints for a result decl
10891 that is passed by hidden reference.
10892 (build_pred_graph): Mark all related variables non-direct on
10893 address-taking.
10894
9c7c70ee
NC
108952009-01-14 Nick Clifton <nickc@redhat.com>
10896
10897 * ira-conflicts.c: Include addresses.h for the definition of
10898 base_reg_class.
435da628
UB
10899 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
10900 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 10901
cf0c2a60
VM
109022009-01-13 Vladimir Makarov <vmakarov@redhat.com>
10903
10904 PR target/38811
10905 * Makefile.in (ira-lives.o): Add except.h.
10906
10907 * ira-lives.c: Include except.h.
10908 (process_bb_node_lives): Process can_throw_internal.
10909
d3302fd3
JJ
109102009-01-13 Jakub Jelinek <jakub@redhat.com>
10911
10912 PR rtl-optimization/38774
10913 * combine.c (simplify_set): When undoing cc_use change, don't do
10914 PUT_CODE on the newly created comparison, but instead put back the
10915 old comparison.
10916
7ab23fd0
JM
109172009-01-13 Joseph Myers <joseph@codesourcery.com>
10918
10919 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
10920 values. Remove duplicate arm8 entry.
10921
f9344488
SP
109222009-01-13 Sebastian Pop <sebastian.pop@amd.com>
10923
10924 PR tree-optimization/38786
10925 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
10926 the SSA_NAME case of expand_scalar_variables_expr.
10927 Set the type of an expression to the type of its assign statement.
10928 (expand_scalar_variables_expr): Also gather the scalar computation
10929 used to index the memory access. Do not pass loop_p.
10930 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
10931 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
10932 the gimple_stmt_iterator where it inserts new code.
10933 Do not pass loop_p.
f9344488
SP
10934 (copy_bb_and_scalar_dependences): Do not pass loop_p.
10935 (translate_clast): Update call to copy_bb_and_scalar_dependences.
10936
2d8bb84d
SP
109372009-01-13 Sebastian Pop <sebastian.pop@amd.com>
10938
10939 * graphite.h (debug_value): Removed.
10940 * graphite.c (debug_value): Removed.
10941
ff128632
RE
109422009-01-13 Richard Earnshaw <rearnsha@arm.com>
10943
435da628
UB
10944 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
10945 ldrd/strd with two 32-bit instructions.
ff128632 10946
d5a0a47b
RE
109472009-01-13 Richard Earnshaw <rearnsha@arm.com>
10948
435da628
UB
10949 * config/arm/arm.c (struct processors): Pass for speed down into
10950 cost helper functions.
d5a0a47b
RE
10951 (const_ok_for_op): Handle COMPARE and inequality nodes.
10952 (arm_rtx_costs_1): Rewrite.
10953 (arm_size_rtx_costs): Update prototype.
10954 (arm_rtx_costs): Pass speed down to helper functions.
10955 (arm_slowmul_rtx_costs): Rework cost calculations.
10956 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
10957 (arm_9e_rtx_costs): Likewise.
10958
26d5bf5b
UB
109592009-01-13 Uros Bizjak <ubizjak@gmail.com>
10960
10961 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 10962 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
10963 (alpha_legitimize_address): Do not split local symbols wider than
10964 UNITS_PER_WORD into HIGH/LO_SUM parts.
10965
5d14e3d5
DS
109662009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
10967
10968 PR bootstrap/38580
10969 * gcc.c (process_command): Replace call to execvp with calls
10970 to pex_one and exit.
10971
33faafca
AS
109722009-01-03 Anatoly Sokolov <aesok@post.ru>
10973
10974 PR target/29141
10975 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
10976 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
10977 variant for devices with 3-byte PC.
ba20e309 10978 (__tablejump_elpm__): New.
33faafca 10979
634b5df5
JJ
109802009-01-12 Jakub Jelinek <jakub@redhat.com>
10981
10982 PR c/32041
10983 * c-parser.c (c_parser_postfix_expression): Allow `->' in
10984 offsetof member-designator, handle it as `[0].'.
10985
2842bb86
JDA
109862009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10987
10988 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
10989 function when not using named sections on targets with named sections
10990 if branch distance is less than 262132.
10991
76ee70f6
RE
109922009-01-12 Richard Earnshaw <rearnsha@arm.com>
10993
10994 * combine.c (combine_instructions): Recompute
10995 optimize_this_for_speed_p for each BB in the main combine loop.
10996
f56e675d
TB
109972009-01-12 Tomas Bily <tbily@suse.cz>
10998
10999 PR middlend/38385
26d5bf5b
UB
11000 * tree-loop-distribution.c (prop_phis): New function.
11001 (generate_builtin): Call prop_phis.
11002 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 11003
c2152239
JJ
110042009-01-12 Jakub Jelinek <jakub@redhat.com>
11005
11006 PR tree-optimization/38807
11007 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
11008 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
11009
0e510b3e
AN
110102009-01-11 Adam Nemet <anemet@caviumnetworks.com>
11011
11012 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
11013 subreg of op0 to the original op0.
11014
c95b2534 110152009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
11016
11017 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 11018
53a7ff9a
MS
110192009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
11020
11021 PR debug/7055
60839f5d 11022 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
11023 starting with digits.
11024
b3a796bc
JJ
110252009-01-10 Jakub Jelinek <jakub@redhat.com>
11026
11027 PR target/38695
11028 * config/arm/arm.c (arm_is_long_call_p): Don't call
11029 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
11030
b21b850e
SB
110312009-01-09 Steven Bosscher <steven@gcc.gnu.org>
11032
11033 * regrename.c (regrename_optimize): Fix dumping.
11034 (find_oldest_value_reg): Preserve REG_POINTER.
11035 (copy_hardreg_forward_1): Likewise.
11036
e0e10d3a
DN
110372009-01-09 Diego Novillo <dnovillo@google.com>
11038
bf9b2cc9 11039 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
11040 the restrictions on its use.
11041 (gimple_uid): Tidy.
11042 (gimple_set_uid): Tidy.
11043
c9da2ae8
JJ
110442009-01-09 Jakub Jelinek <jakub@redhat.com>
11045
11046 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
11047 zero guard even if align_bytes != 0 and count is smaller than
11048 size_needed.
11049
38432148 110502009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
11051
11052 PR rtl-optimization/38495
26d5bf5b 11053 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
11054 (add_range_and_copies_from_move_list): Print all added ranges.
11055 Add ranges to memory optimized destination.
11056
260fda3d
JJ
110572009-01-09 Jakub Jelinek <jakub@redhat.com>
11058
6f6278ad
JJ
11059 PR target/38686
11060 PR target/38708
11061 * config/i386/i386.c (override_options): Reject
11062 -mstringop-strategy=rep_8byte with -m32.
11063 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11064 to 1. Do count comparison against epilogue_size_needed at compile
11065 time even when count_exp was constant forced into register. For
11066 size_needed don't jump to epilogue, instead just avoid aligning
11067 and invoke the body algorithm. If need_zero_guard, add zero guard
11068 even if count is non-zero, but smaller than size_needed + number of
11069 bytes that could be stored for alignment.
11070 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11071 to 1. If need_zero_guard, add zero guard even if count is non-zero,
11072 but smaller than size_needed + number of bytes that could be stored
11073 for alignment. Compare size_needed with epilogue_size_needed instead
11074 of desired_align - align, don't adjust size_needed, pass
11075 epilogue_size_needed to the epilogue expanders.
11076
260fda3d 11077 PR c/35742
26d5bf5b 11078 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 11079
67b846fa
JDA
110802009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11081
11082 * pa.c (last_address): Change to unsigned.
11083 (update_total_code_bytes): Change argument to unsigned. Don't
11084 check if insn addresses are set.
11085 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11086 addresses are not set.
11087 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11088
91c82473
NC
110892009-01-09 Nick Clifton <nickc@redhat.com>
11090
11091 * config/sh/symbian.c: Replace uses of DECL_INLINE with
11092 DECL_DECLARED_INLINE_P.
11093
4017e262
JJ
110942009-01-09 Jakub Jelinek <jakub@redhat.com>
11095
0a49e5c2
JJ
11096 PR middle-end/38347
11097 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11098 GET_MODE (op0) in operand_subword_force calls.
11099
4017e262
JJ
11100 PR middle-end/38771
11101 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11102 fold_convert arg0 operands to TREE_TYPE (op0) first.
11103
7cd06356
VM
111042009-01-08 Vladimir Makarov <vmakarov@redhat.com>
11105
11106 * params.def (ira-max-conflict-table-size): Decrease default value
11107 to 1000.
11108
96867bbd
JJ
111092009-01-08 Jakub Jelinek <jakub@redhat.com>
11110
11111 PR tree-optimization/37031
11112 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11113 on parameter_set.
11114 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11115 allocate it using gc instead of heap, use VEC_quick_push instead of
11116 VEC_safe_push.
11117 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11118 instead of heap, use VEC_quick_push instead of VEC_safe_push.
11119 * tree-data-ref.h (struct access_matrix): Change matrix to gc
11120 allocated vector from heap allocated.
11121 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11122 * tree-loop-linear.c (linear_transform_loops): Allocate nest
11123 vector only after perfect_loop_nest_depth call.
11124
68f61c3d
SP
111252009-01-08 Sebastian Pop <sebastian.pop@amd.com>
11126 Jan Sjodin <jan.sjodin@amd.com>
11127
11128 PR tree-optimization/38559
11129 * graphite.c (debug_value, copy_constraint,
11130 swap_constraint_variables, scale_constraint_variable, ): New.
11131 (get_lower_bound, get_upper_bound): Removed.
11132 (graphite_trans_bb_strip_mine): Clean up this code that works
11133 only for constant number of iterations. Fully copy upper and
11134 lower bound constraints, not only the constant part of them.
11135 * graphite.h (debug_value): Declared.
11136
82567e33
IR
111372009-01-08 Ira Rosen <irar@il.ibm.com>
11138
11139 PR tree-optimization/37194
11140 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 11141 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
11142 outside cost in case of known number of iterations.
11143
7da13f1d
NF
111442009-01-07 Nathan Froyd <froydnj@codesourcery.com>
11145 Alan Modra <amodra@bigpond.net.au>
11146
11147 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11148 non-word-aligned REG+CONST addressing.
11149
c0f64575
UB
111502009-01-07 Uros Bizjak <ubizjak@gmail.com>
11151
11152 PR target/38706
11153 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11154 free_after_compilation when outputting a thunk.
11155 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11156 Do not call free_after_compilation here.
11157
301b6a4e
UB
111582009-01-07 Uros Bizjak <ubizjak@gmail.com>
11159
11160 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
11161 (ix86_valid_target_attribute_inner_p): Ditto.
11162
6a114766
JS
111632009-01-07 Jan Sjodin <jan.sjodin@amd.com>
11164
11165 PR tree-optimization/38492
11166 PR tree-optimization/38498
11167 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11168 * tree-chrec.h (scev_is_linear_expression): Declared.
11169 * graphite.c (graphite_cannot_represent_loop_niter): New.
11170 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11171 (graphite_loop_normal_form): Use gcc_assert.
11172 (scan_tree_for_params): Use CASE_CONVERT.
11173 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11174 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11175 Use gcc_assert. Discard scops that contain unhandled cases.
11176 (build_scop_conditions): Return a boolean status for unhandled cases.
11177 (strip_mine_profitable_p): Print the loop number, not its depth.
11178 (is_interchange_valid): Pass the depth of the loop nest, don't
11179 recompute it wrongly.
11180 (graphite_trans_bb_block): Same.
11181 (graphite_trans_bb_block): Print tentative of loop blocking.
11182 (graphite_trans_scop_block): Do not print that the loop has been
11183 blocked.
11184 (graphite_transform_loops): Do not handle scops that contain condition
11185 scalar phi nodes.
11186
65b82caa
L
111872009-01-07 H.J. Lu <hongjiu.lu@intel.com>
11188
11189 AVX Programming Reference (December, 2008)
11190 * config/i386/avxintrin.h (_mm256_stream_si256): New.
11191 (_mm256_stream_pd): Likewise.
11192 (_mm256_stream_ps): Likewise.
11193
11194 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11195 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11196 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11197 (bdesc_special_args): Add __builtin_ia32_movntdq256,
11198 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11199 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11200 (ix86_expand_special_args_builtin): Likewise.
11201
11202 * config/i386/sse.md (AVXMODEDI): New.
11203 (avx_movnt<mode>): Likewise.
11204 (avx_movnt<mode>): Likewise.
11205 (<sse>_movnt<mode>): Remove AVX support.
11206 (sse2_movntv2di): Likewise.
11207
cef158f9
RG
112082009-01-07 Richard Guenther <rguenther@suse.de>
11209
11210 PR middle-end/38751
11211 * fold-const.c (extract_muldiv): Remove obsolete comment.
11212 (fold_plusminus_mult_expr): Undo MINUS_EXPR
11213 to PLUS_EXPR canonicalization for the canonicalization.
11214
246cb5be
GP
112152009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
11216
11217 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11218 hosted cross-compilers generating less efficient code.
11219
84b9b872
RS
112202009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11221
11222 * function.h (rtl_data): Add a dbr_scheduled_p field.
11223 * reorg.c (dbr_schedule): Set it.
11224 (gate_handle_delay_slots): Check it.
11225 * config/mips/mips.c (mips_base_delayed_branch): Delete.
11226 (mips_reorg): Check flag_delayed_branch instead of
11227 mips_base_delayed_branch.
11228 (mips_override_options): Don't set mips_base_delayed_branch
11229 or flag_delayed_branch.
11230
ace984c8
RS
112312009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11232
11233 PR rtl-optimization/38426.
11234 * ira.c (ira): Set current_function_is_leaf earlier.
11235
7ad7809b
JJ
112362009-01-06 Jakub Jelinek <jakub@redhat.com>
11237
11238 PR rtl-optimization/38722
11239 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11240 too early, only set a flag and modify after last possible
11241 undo_all point.
11242
c52ec948
JJ
112432009-01-06 Janis Johnson <janis187@us.ibm.com>
11244
11245 PR c/34252
11246 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11247 * real.c (decimal_single_format): Correct values of emin and emax.
11248 (decimal_double_format): Ditto.
11249 (decimal_quad_format): Ditto.
11250 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11251 computation of DECnn_MIN and DECnn_MAX for corrected values of
11252 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
11253 __DECnn_MIN__, and adjust its computation for the corrected value
11254 of emin.
11255
300240e1
JH
112562009-01-06 Jan Hubicka <jh@suse.cz>
11257
11258 PR target/38744
435da628 11259 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 11260
271c069e
GP
112612009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
11262
11263 * doc/contrib.texi (Contributors): Slightly adjust the end note.
11264 Add Robert Clark to the list of testers.
11265
64e4c301 112662009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11267 Kai Tietz <kai.tietz@onevision.com>
64e4c301 11268
435da628
UB
11269 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11270 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 11271
7650b83e 112722009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11273 Kai Tietz <kai.tietz@onevision.com>
7650b83e 11274
435da628
UB
11275 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11276 for w64 ABI.
11277 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
11278 (ix86_nsaved_regs): Count only general purpose regs.
11279 (ix86_nsaved_sseregs): New.
11280 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11281 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
11282 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11283 general purpose regs.
7650b83e
JH
11284 (ix86_emit_save_sse_regs_using_mov): New.
11285 (ix86_expand_prologue): Save SSE regs if needed.
11286 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11287 (ix86_emit_restore_sse_regs_using_mov): New.
11288 (ix86_expand_epilogue): Save SSE regs if needed.
11289
9aa5c1b2 112902009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11291 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 11292
435da628
UB
11293 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11294 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11295 functions when accumulate outgoing args is off.
9aa5c1b2 11296
f7556aae
L
112972009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11298
11299 PR bootstrap/38742
11300 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11301 before using pseudos_have_intersected_live_ranges_p.
11302
11303 * ira-int.h (ira_assert): Always define.
11304
e47b7d04
L
113052009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11306
11307 AVX Programming Reference (December, 2008)
11308 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11309 (_mm256_permute2_pd): Likewise.
11310 (_mm_permute2_ps): Likewise.
11311 (_mm256_permute2_ps): Likewise.
11312 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11313 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11314
11315 * config/i386/i386.c (ix86_builtins): Remove
11316 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11317 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11318 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11319 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11320 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11321 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11322 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11323 __builtin_ia32_vpermil2ps256.
11324 (ix86_init_mmx_sse_builtins): Updated.
11325 (ix86_expand_args_builtin): Likewise.
11326
44b86471
JDA
113272009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11328
e47b7d04
L
11329 * pa.c (output_call): Relocate non-jump insns in the delay slot of
11330 long absolute calls when generating PA 2.0 code.
44b86471 11331
311aab06
VM
113322009-01-05 Vladimir Makarov <vmakarov@redhat.com>
11333
11334 PR rtl-optimization/38583
11335 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11336
11337 * params.def (ira-max-conflict-table-size): New.
11338
11339 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 11340
311aab06 11341 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 11342
311aab06
VM
11343 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11344 table. Report this. Return result of building.
11345 (ira_build_conflicts): Use ira_conflicts_p. Check result of
11346 building conflict table.
11347
301b6a4e 11348 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 11349 (ira_color): Use ira_conflicts_p.
2ba9daa7 11350
311aab06
VM
11351 * global.c: Include ira.h.
11352 (pseudo_for_reload_consideration_p, build_insn_chain): Use
11353 ira_conflicts_p.
11354
11355 * Makefile.in (global.o): Add ira.h.
2ba9daa7 11356
311aab06
VM
11357 * ira-build.c (mark_all_loops_for_removal,
11358 propagate_some_info_from_allocno): New.
11359 (remove_unnecessary_allocnos): Call
11360 propagate_some_info_from_allocno.
11361 (remove_low_level_allocnos): New.
11362 (remove_unnecessary_regions): Add parameter. Call
11363 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
11364 parameter to remove_unnecessary_regions.
11365 (ira_build): Remove all regions but root if the conflict table was
11366 not built. Update conflict hard regs for allocnos crossing calls.
11367
11368 * ira.c (ira_conflicts_p): New global.
11369 (ira): Define and use ira_conflicts_p.
11370
11371 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11372 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 11373 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 11374
5641785f
BE
113752009-01-06 Ben Elliston <bje@au.ibm.com>
11376
11377 * gengtype-lex.l (YY_NO_INPUT): Define.
11378
e4e5261f
AP
113792009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
11380
11381 PR c/34911
5641785f
BE
11382 * c-common.c (handle_vector_size_attribute): Also reject
11383 BOOLEAN_TYPE types.
e4e5261f 11384
7b10257f
SP
113852009-01-05 Sebastian Pop <sebastian.pop@amd.com>
11386
11387 PR tree-optimization/38492
11388 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
11389 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11390 rename_map_elt_info, eq_rename_map_elts,
11391 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
11392 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11393 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11394 (sese_build_livein_liveouts): New.
11395 (new_sese, free_sese): New.
11396 (new_scop): Call new_sese.
11397 (free_scop): Call free_sese.
11398 (rename_variables_from_edge, rename_phis_end_scop): Removed.
11399 (register_old_new_names): Renamed register_old_and_new_names.
11400 (register_scop_liveout_renames, add_loop_exit_phis,
11401 insert_loop_close_phis, struct igp,
11402 default_liveout_before_guard, add_guard_exit_phis,
11403 insert_guard_phis, copy_renames): New.
11404 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
11405 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
11406 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
11407 (scop_adjust_phis_for_liveouts): New.
11408 (gloog): Call scop_adjust_phis_for_liveouts.
11409
11410 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 11411 num_ver and livein.
7b10257f
SP
11412 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
11413 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
11414 (struct scop): Added field liveout_renames.
11415 (SCOP_LIVEOUT_RENAMES): New.
11416
9761fcc7
HJ
114172009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
11418
11419 PR tree-optimization/38510
11420 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
11421 (translate_clast): Call recompute_all_dominators before
11422 graphite_verify.
11423 (gloog): Call recompute_all_dominators before graphite_verify.
11424
114252009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 11426 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
11427
11428 PR tree-optimization/38500
11429 * graphite.c (create_sese_edges): Call fix_loop_structure after
11430 splitting blocks.
11431
c95b2534 114322009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
11433
11434 * config.gcc: Add m32r*-*-rtems*.
11435 * config/m32r/rtems.h: New file.
11436
fc0cd180
BE
114372009-01-05 Ben Elliston <bje@au.ibm.com>
11438
11439 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
11440 (.po.pox): Likewise.
11441 (po/gcc.pot): Likewise.
11442
3106d8e5
DM
114432009-01-04 David S. Miller <davem@davemloft.net>
11444
11445 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11446 (STARTING_FRAME_OFFSET): Always set to zero.
11447
0009b473
RS
114482009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11449
11450 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
11451 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
11452 fixed-point types, and vectors of the same.
11453
4f24c6d6
RS
114542009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11455
11456 * config/mips/sync.md (*mb_barrier): Rename to...
11457 (*memory_barrier): ...this.
11458
1df48f5c
JW
114592009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
11460
11461 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 11462 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
11463 and put in alphabetical order. Fix 'target' name and put in order.
11464 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
11465 typos.
11466
1a8c13b3
UB
114672009-01-04 Uros Bizjak <ubizjak@gmail.com>
11468
11469 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
11470 (memory_barrier): Expand as unspec instead of unspec_volatile.
11471 Remove mem:BLK from insn operands. Use Pmode scratch register.
11472 (*memory_barrier): Define as unspec instead of unspec_volatile.
11473 Use (match_dup 0) as input operand.
11474
11475 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
11476 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
11477 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
11478 scratch register. Remove operand 1.
11479 (*stbar): Define as unspec instead of unspec_volatile.
11480 Use (match_dup 0) as input operand, remove (const_int 8).
11481 (*membar): Define as unspec instead of unspec_volatile.
11482 Use (match_dup 0) as input operand, remove input operand 2.
11483
11484 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
11485 (memory_barrier): Expand as unspec instead of unspec_volatile.
11486 Remove mem:BLK from insn operands. Use Pmode scratch register.
11487 (*memory_barrier): Define as unspec instead of unspec_volatile.
11488 Use (match_dup 0) as input operand.
11489
11490 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
11491 Remove mem:BLK from insn operands. Use Pmode scratch register.
11492 Set volatile flag on operand 0.
11493 (*memory_barrier): New insn pattern.
11494
11495 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
11496 insn operands.
11497 (*memory_barrier): Use (match_dup 0) as input operand.
11498
11499 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
11500 Remove mem:BLK from insn operands. Use Pmode scratch register.
11501 Set volatile flag on operand 0.
301b6a4e 11502 (*mb_internal): New insn pattern.
1a8c13b3
UB
11503
11504 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
11505
fb0703f7
SB
115062009-01-04 Steven Bosscher <steven@gcc.gnu.org>
11507
11508 PR middle-end/38586
11509 * function.c (struct temp_slot): Move to the section of the file
11510 that deals with temp slots. Remove field 'address'.
11511 (temp_slot_address_table): New hash table of address -> temp slot.
11512 (struct temp_slot_address_entry): New struct, items for the table.
11513 (temp_slot_address_compute_hash, temp_slot_address_hash,
11514 temp_slot_address_eq, insert_temp_slot_address): Support functions
11515 for the new table.
11516 (find_temp_slot_from_address): Rewrite to use the new hash table.
11517 (remove_unused_temp_slot_addresses): Remove addresses of temp
11518 slots that have been made available.
11519 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
11520 worker function for remove_unused_temp_slot_addresses.
11521 (assign_stack_temp_for_type): Don't clear the temp slot address list.
11522 Add the temp slot address to the address -> temp slot map.
11523 (update_temp_slot_address): Update via insert_temp_slot_address.
11524 (free_temp_slots): Call remove_unused_temp_slot_addresses.
11525 (pop_temp_slots): Likewise.
11526 (init_temp_slots): Allocate the address -> temp slot map, or empty
11527 the map if it is already allocated.
11528 (prepare_function_start): Initialize temp slot processing.
11529
b5a430f3
SB
115302009-01-04 Steven Bosscher <steven@gcc.gnu.org>
11531
11532 PR middle-end/38584
11533 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
11534 Calculate the size of all stack vars assuming no packing of stack
11535 vars will happen, replacing a quadratic algorithm with a linear one.
11536
5d560619
JJ
115372009-01-03 Jakub Jelinek <jakub@redhat.com>
11538
11539 PR target/38707
11540 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
11541 can't be used.
11542
953a7caa
DN
115432009-01-03 Diego Novillo <dnovillo@google.com>
11544
11545 * doc/contrib.texi: Update contributions.
11546
5f26a230
JJ
115472009-01-03 Jakub Jelinek <jakub@redhat.com>
11548
493aa551
JJ
11549 PR c++/38705
11550 * builtins.c (fold_builtin_memory_op): Give up if either operand
11551 is volatile. Set srctype or desttype to non-qualified version
11552 of the other type.
11553
5f26a230
JJ
11554 PR c/38700
11555 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
11556 and FUNCTION_DECLs.
11557
c95b2534 115582009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
11559
11560 PR rtl-optimization/35805
11561 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
11562 problem if fast dce is able to remove any instructions.
11563 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 11564
0b355794
MM
115652009-01-02 Mark Mitchell <mark@codesourcery.com>
11566
11567 PR 33649
11568 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
11569
0cf0d02b
JJ
115702009-01-02 Jakub Jelinek <jakub@redhat.com>
11571
11572 PR middle-end/38690
11573 * tree-flow.h (op_code_prio, op_prio): New prototypes.
11574 * tree-pretty-print.c (op_code_prio): New function.
11575 (op_prio): No longer static. Use op_code_prio.
11576 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
11577 Use op_prio and op_code_prio to determine if () should be
11578 printed around operand(s) or not.
11579
11580 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
11581 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
11582 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
11583 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
11584 pp_character instead of pp_string for single letter printing.
11585
e3606f3b
RS
115862009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
11587
11588 * doc/extend.texi: Fix '#pragma GCC option' typo.
11589
c95b2534 115902009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 11591
a5f061dc
RG
11592 * doc/install.texi (--enable-checking): Mention different
11593 default for stage1.
11594 (--enable-stage1-checking): Document.
00f39bd5 11595
26de0bcb
AP
115962009-01-01 Andrew Pinski <pinskia@gmail.com>
11597
11598 PR middle-end/30142
11599 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
11600 case to be an error.
11601
7a7d8fab
BE
116022009-01-02 Ben Elliston <bje@au.ibm.com>
11603
11604 * config/fp-bit.h (pack_d): Constify argument.
11605 * config/fp-bit.c (makenan): Constify return type. Remove casts.
11606 (isnan): Constify argument.
11607 (isinf): Likewise.
11608 (iszero): Likewise.
11609 (pack_d): Likewise.
11610 (_fpadd_parts): Constify return type.
11611 (_fpmul_parts): Likewise.
11612 (_fpdiv_parts): Likewise.
11613
b295aee2
JJ
116142009-01-01 Jakub Jelinek <jakub@redhat.com>
11615
11616 PR c/36489
11617 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
11618 warn about overwriting initializer with side-effects or
11619 -Woverride-init if !IMPLICIT.
11620 (output_init_element): Likewise. Pass IMPLICIT down to
11621 add_pending_init.
11622 (process_init_element): Add IMPLICIT argument. Pass it down
11623 to output_init_element.
11624 (push_init_element, pop_init_level, set_designator): Adjust
11625 process_init_element callers.
11626 (set_nonincremental_init, set_nonincremental_init_from_string):
11627 Adjust add_pending_init callers.
11628 (output_pending_init_elements): Adjust output_init_element callers.
11629 * c-tree.h (process_init_element): Adjust prototype.
11630 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
11631 process_init_element callers.
ad41bd84
JM
11632
11633\f
11634Copyright (C) 2009 Free Software Foundation, Inc.
11635
11636Copying and distribution of this file, with or without modification,
11637are permitted in any medium without royalty provided the copyright
11638notice and this notice are preserved.