]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR fortran/39865 (ICE in gfc_conv_scalarized_array_ref)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
f06257d3
AN
12009-05-13 Adam Nemet <anemet@caviumnetworks.com>
2
3 * config/mips/mips.md (store): Add attributes for QI and HI.
4 Update comment.
5 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
6 (truncdi<mode>2): ... this new pattern.
7
fb201767
BH
82009-05-13 Brad Hards <bradh@kde.org>
9
10 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
11
c7bda60e 122009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
13 Ben Elliston <bje@au.ibm.com>
14
15 PR middle-end/40035
16 * dse.c (check_mem_read_rtx): Guard against width == -1.
17
ce985b43
MM
182009-05-13 Michael Matz <matz@suse.de>
19
20 PR middle-end/39976
21 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
22 (trivially_conflicts_p): New function.
23 (insert_backedge_copies): Use it.
24
7de1d221
JJ
252009-05-13 Janis Johnson <janis187@us.ibm.com>
26
27 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
28 (handle_stdc_pragma): Use new enum constant names.
29 (handle_pragma_float_const_decimal64): Ditto.
30
bfefafc6
ILT
312009-05-13 Ian Lance Taylor <iant@google.com>
32
33 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
34 tree.def.
35
286c4fcb
NS
362009-05-13 Nathan Sidwell <nathan@codesourcery.com>
37
38 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
39 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
40 multilibs.
41 * config/m68k/m68k.h (FL_UCLINUX): Define.
42
ebaa6ea7
JH
432009-05-13 Jan Hubicka <jh@suse.cz>
44
45 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
46
2b703e1a
KK
472009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
48
49 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
50 unless -fschedule-insns is specified.
51
c3537723
KK
522009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
53
54 PR target/39561
55 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
56 TARGET_EXPAND_CBRANCHDI4.
57 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
58 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
59 (cmpeqdi): Fix comment.
60
cdeed45a
KK
612009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
62
63 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
64 (sh_legitimate_address_p): Likewise.
65 * config/sh/sh.c (sh_legitimate_index_p): New.
66 (sh_legitimate_address_p): Likewise.
67 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
68 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
69 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
70 (MAYBE_BASE_REGISTER_RTX_P): New macro.
71 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
72 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
73 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
74 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
75 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
76
02f0b13a
JH
772009-05-12 Jan Hubicka <jh@suse.cz>
78
79 * tree-inline.c (estimate_operator_cost): Add operands;
80 when division happens by constant, it is cheap.
81 (estimate_num_insns): Loads and stores are not having cost of 0;
82 EH magic stuff is cheap; when computing runtime cost of switch,
83 use log2 base of amount of its cases; builtin_expect has cost of 0;
84 compute cost for moving return value of call.
85 (init_inline_once): Initialize time_based flags.
86 * tree-inline.h (eni_weights_d): Add time_based flag.
87
ecb7f6de
PB
882009-05-12 Paolo Bonzini <bonzini@gnu.org>
89
90 * df-core.c: Update head documentation.
91
c24151ce
MM
922009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
93
94 PR bootstrap/40118
95 * rs6000.c (rs6000_generate_compare): Use op1b instead of
96 shadowing exisiting variable op1.
97
fbdf817d
UB
982009-05-12 Uros Bizjak <ubizjak@gmail.com>
99
704bf7c8 100 PR target/37179
fbdf817d
UB
101 * config/i386/driver-i386.c (processor_signatures): New enum.
102 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
103 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
104 processor signature to detect geode processor.
105
5e8d1826
PB
1062009-05-12 Paolo Bonzini <bonzini@gnu.org>
107
108 Revert:
109
110 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
111
112 * optabs.c (prepare_cmp_insn): Temporarily disable test that
113 causes spurious differences between trunk and cond-optab branch.
114
f90b7a5a
PB
1152009-05-12 Paolo Bonzini <bonzini@gnu.org>
116
fbdf817d
UB
117 * dojump.c (compare_from_rtx): Delete.
118 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
119 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
120 if the comparison does not satisfy the predicate; test predicates for
121 operands 2 and 3 of a cstore pattern. Don't try cstore optab
122 further if one existing pattern fails.
fbdf817d 123 * expr.h (compare_from_rtx): Delete.
f90b7a5a 124 (prepare_operand): Declare it.
fbdf817d 125 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 126 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
127 HAVE_conditional_trap, emit_cmp_insn): Delete.
128 (can_compare_p): Delete cmp_optab case.
f90b7a5a 129 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
130 Accept other parameters by value.
131 (prepare_operand): Make non-static.
132 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
133 other parameters by value. Try to widen operands here based on
134 an optab_methods argument and looking at cbranch_optab.
135 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
136 loop. Use cbranch_optab directly.
137 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
138 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
139 assertion.
140 (emit_conditional_move, emit_conditional_add): Inline what's needed
141 of compare_from_rtx, using new prepare_cmp_insn for the rest.
142 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
143 with COMPARE. Move cmov_optab and cstore_optab above
144 with cbranch_optab, move cmp_optab down with ucmp_optab,
145 remove tst_otpab. Do not initialize trap_rtx.
146 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
147 for trap code. Do not check HAVE_conditional_trap. Use
148 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
149 * optabs.h (OTI_cmp): Mark as used only for libcalls.
150 (OTI_ctrap, ctrap_optab): New.
151 (tst_optab): Delete.
152 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
153 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
154 with lookup of ctrap_optab.
155 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
156 setcc_gen_code): Delete.
157 (ctrap_optab): New.
158
159 * combine.c (combine_simplify_rtx, simplify_set): Do not
160 special case comparing against zero for cc0 machines.
f90b7a5a
PB
161 * simplify-rtx.c (simplify_binary_operation_1): Never remove
162 COMPARE on cc0 machines.
163 (simplify_relational_operation): Return a new expression when
164 a COMPARE could be removed.
fbdf817d
UB
165 * final.c (final_scan_insn): Compare cc_status values
166 against LHS of a (compare FOO (const_int 0)) cc0 source.
167 Also check if cc_status.value is the full compare.
f90b7a5a 168
fbdf817d
UB
169 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
170 (cstoreMM4): Document.
f90b7a5a 171 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 172 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
173 (Dependent Patterns): Eliminate obsolete information referring to
174 the old jump optimization phase.
fbdf817d 175 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
176 of compares with 0 on cc0 machines.
177 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
178 avoiding references to cc0. Remove text about storing operands
179 in cmpMM.
180 * doc/tm.texi (Condition Codes): Include blurb on different
181 condition code representations, separate into subsections for
182 CC0, MODE_CC and conditional execution.
183
fbdf817d
UB
184 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
185 alpha_emit_setcc): Accept operands and a machine mode.
186 * config/alpha/alpha.c (alpha_emit_conditional_branch):
187 Get code/op0/op1 from operands, use machine mode argument
188 instead of alpha_compare.fp_p. Emit the branch here.
189 (alpha_emit_setcc): Likewise, and return boolean.
190 (alpha_emit_conditional_move): Likewise. Assert that
191 cmp_op_mode == cmp_mode, and simplify accordingly.
192 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
193 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
194 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
195 Delete.
196 (stack probe test): Use cbranchdi4.
197 * config/alpha/predicates.md (alpha_cbranch_operator): New.
198
199 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
200 * config/arc/arc.h (movsicc, movsfcc): Use it.
201 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
202 (cbranchsi4, cstoresi4): New.
203 (cmpsi, bCC and sCC expanders): Remove.
204
205 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
206 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
207 * config/arm/predicates.md (arm_comparison_operator): Only include
208 floating-point operators if there is a hardware floating-point unit.
209 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
210 deferring to cbranch_cc and cstore_cc respectively.
211 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
212 cbranch_cc, cstore_cc): New.
213 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 214 arm_compare_op1.
fbdf817d
UB
215 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
216
217 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
218 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
219 as an argument.
220 (adjust_insn_length): Adjust calls.
221 (avr_reorg): Handle (compare (foo) (const_int 0)).
222 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
223 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
224 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
225 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
226 (bCC): Remove.
227 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
228 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
229
fbdf817d
UB
230 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
231 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 232 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
233 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
234 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
235 (bfin_optimize_loop): Use cbranch expander.
236 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
237 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
238 (bfin_bimode_comparison_operator): ... this.
239 (bfin_direct_comparison_operator): New.
f90b7a5a 240
fbdf817d
UB
241 * config/cris/cris.c (cris_normal_notice_update_cc): Look
242 inside (compare FOO (const_int 0)).
243 (cris_rtx_costs): Handle ZERO_EXTRACT.
244 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
245 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
246 (*tstdi_v32): Delete.
247 (*cmpdi_non_v32): Add M alternative for operand 1.
248 (cmpsi, cmp<mode>): Make private.
249 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
250 with COMPARE.
251 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
252
253 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
254 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
255 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
256 (cc_reg_operand): New.
257 (any_cond): Delete.
fbdf817d
UB
258 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
259 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
260 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
261 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
262 crx_expand_scond): Delete.
263
264 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
265 (cbranchsi4): New.
266 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
267 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
268
269 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
270 cstoresi4, cstoresf4, cstoredf4): New.
271 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
272 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
273 Receive the entire operands array.
274 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
275 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
276 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
277 Get test/op0/op1 from the operands array.
278 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
279
280 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
281 (h8300_expand_store): New.
282 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
283 (const_int 0)).
284 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
285 (h8300_expand_store): New.
286 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
287 or do not try to produce (set (cc0) REG).
288 (peepholes): Wrap arguments with COMPARE. Add a peephole to
289 change a compare into a move to a scratch register. Disable some
290 peepholes when comparing with zero.
291 (tstsi, tsthi, tstsi, cmpqi): Make private.
292 (cmphi): Delete.
293 (bCC, sCC): Delete.
294 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
295 cstoresi4): New.
f90b7a5a
PB
296
297 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
298 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
299 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
300 (ix86_emit_i387_log1p): Use cbranchxf2.
301 (ix86_expand_setcc): Return void.
302 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
303 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
304 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
305 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
306 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
307 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
308 (sCC and bCC expanders): Remove.
309 (stack_protect_test): Use cbranchcc4.
310
fbdf817d
UB
311 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
312 Delete.
313 (ia64_expand_compare): Accept three rtx by reference and return void.
314 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
315 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
316 from *expr. Update *expr with the BImode comparison to do.
317 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
318 cmptf, bCC, sCC, conditional_trap): Delete.
319 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
320 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
321 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
322 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
323 * config/ia64/predicates.md (ia64_cbranch_operator): New.
324
325 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
326 type of last argument.
327 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
328 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
329 use machine mode argument instead of branch_type. Remove dead
330 code for floating-point comparisons.
331 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
332 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
333 Remove.
334 (cbranchsi4, cstoresi4): New.
335 * config/iq2000/predicates.md (reg_or_const_operand): New.
336
337 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
338 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
339 (b<code>_op): Rewrite to...
340 (bcc_op): ... this, using match_operator.
341 (s<code>_op): Rewrite to...
342 (scc_op): ... this, using match_operator.
343 (s<code>_24_op): Rewrite to...
344 (scc_op_24): ... this, using match_operator.
345 (s<code>_<mode>): Rewrite to...
346 (cstore<mode>4): ... this, using match_operator.
347 (s<code>_<mode>_24): Rewrite to...
348 (cstore<mode>4_24): ... this, using match_operator.
349 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
350 m32c_unpend_compare, m32c_expand_scc): Delete.
351 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
352 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
353 (m32c_expand_movcc): Change NE to EQ if necessary.
354 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
355
356 * config/m32r/m32r-protos.h (gen_cond_store): New.
357 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
358 (gen_cond_store): New, from sCC patterns.
359 (m32r_expand_block_move): Use cbranchsi4.
360 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
361 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
362 (cbranchsi4, cstoresi4): New.
363
364 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
365 Delete.
366 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 367 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
368 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
369 Delete.
370 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
371 cmphi, cmpqi, bCC): Delete.
372 (cbranchsi4, cbranchhi4, cbranchqi4): New.
373 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
374 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
375 sets with COMPARE.
376
377 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
378 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
379 * config/m68k/constraints.md (H): New.
380 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
381 the define_insn below.
382 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
383 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
384 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
385 patterns): Wrap RHS with COMPARE.
386 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
387 (*cmpdi_internal): Name this pattern.
388 (cmpdi): Change to define_insn.
389 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
390 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
391 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
392 predicate.
393 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
394 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
395 (conditional_trap): Change to...
396 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
397 (*conditional_trap): Use the ordered_comparison_operator and
398 const1_operand predicates.
399 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
400 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
401 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
402 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
403
404 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
405 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
406 (mcore_gen_compare): New.
407 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
408 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
409 (mcore_gen_compare): ... this.
410 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
411 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
412 (stack probe pattern): Use cbranchsi4.
413
414 * config/mips/predicates.md (mips_cstore_operator): New.
415 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
416 * config/mips/mips.md (any_cond): Delete.
417 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
418 always succeed.
419 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
420 fixuns_truncsfdi2): Use cbranch patterns.
421 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
422 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
423 Adjust call to mips_expand_conditional_branch.
424 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
425 cstore<GPR:mode>4.
426 * config/mips/mips-protos.h (mips_expand_conditional_branch,
427 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
428 * config/mips/mips.c (cmp_operands): Delete.
429 (mips_emit_compare): Get comparison operands from *op0/*op1.
430 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
431 that it succeeds. Use op0/op1 instead of cmp_operands.
432 (mips_expand_conditional_branch, mips_expand_conditional_move,
433 mips_expand_conditional_trap): Likewise.
434 (mips_block_move_loop): Use cbranch patterns.
435 * config/mips/mips.h (cmp_operands): Delete.
436
437 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
438 (mmix_gen_compare_reg): Just return a register in the right CC mode.
439 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
440 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
441 (*cmpcc_folded): Rename to...
442 (*cmpdi_folded): this.
443 (*cmpcc): Rename to...
444 (*cmps): ... this.
445 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
446 (bCC): Remove.
447 (cbranchdi4): New.
448 (cbranchdf4): New. Handle invalid comparisons here.
449 * config/mmix/predicates.md (float_comparison_operator): New.
450
451 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
452 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
453 * config/mn10300/mn10300.md (tst): Delete.
454 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
455 Name these patterns and wrap RHS in a compare.
456 (*cmpsi): Make this pattern private. Include tst.
457 (*cmpsf): Make this pattern private.
458 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
459 (compare with zero peepholes): Likewise.
460 (bCC): Remove.
461 (cbranchsi4, cbranchsf4): New.
462 (casesi): Use cbranchsi4.
463
464 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
465 hppa_branch_type): Delete.
466 (return_addr_rtx): Use cbranchsi4.
467 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
468 Emit CCFPmode comparison here.
469 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
470 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
471 hppa_branch_type): Delete.
472 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
473 (movsicc, movdicc): Remove references to hppa_compare_op0,
474 hppa_compare_op1 and compare_from_rtx.
475 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
476 (casesi): Use cbranchsi4.
477
478 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
479 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
480 * config/pdp11/pdp11.md (register_or_const0_operand): New.
481 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
482 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
483 (bCC): Delete.
484 (cbranchdf4, cbranchhi4, cbranchqi4): New.
485 (*branch, *branch_inverted): New.
486
487 * config/picochip/picochip.md (cbranchhi4): Use
488 ordered_comparison_operator.
489 (cmphi, bCC): Remove.
490
491 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
492 (trap_comparison_operator): Delete.
493 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
494 rs6000_emit_cbranch): Accept mode and operands.
495 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
496 rs6000_compare_fp_p): Delete.
497 (rs6000_generate_compare): Accept mode and comparison. Extract code
498 and op0/op1 from there. Replace references to rs6000_compare_op0
499 and rs6000_compare_op1.
500 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
501 extract result from passed operands.
502 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
503 extract loc from passed operands.
504 (rs6000_emit_cmove): Likewise.
505 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
506 rs6000_compare_fp_p): Delete.
507 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
508 (cbranch<GPR>4, cbranch<FP>4): New.
509 (cstore<mode>4): New. Consolidate here all choices about when to use
510 portable or specialized sCC sequences.
511 (stack_protect_test): Use cbranchsi4.
512 (conditional_trap): Replace with ctrap<GPR>4.
513 (conditional trap insn): Replace trap_comparison_operator with
514 ordered_comparison_operator.
515
516 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
517 (s390_emit_prologue): Use ctrap.
518 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
519 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
520 New predicates replacing...
521 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
522 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
523 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
524 (add<mode>cc): Do not use s390_compare_op0/op1.
525 (s<code>): Change to...
526 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
527 (seq): Change to...
528 (cstorecc4): ... this. Handle EQ or NE equally.
529 (*sne): Un-privatize for use in cstorecc4.
530 (b<code>): Change to...
531 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
532 (conditional_trap): Replace with...
533 (ctrap<GPR>4, ctrap<FP>4): ... these.
534 (stack_protect): Use cbranchcc4.
535
536 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
537 * config/score/score-protos.h (score_gen_cmp): Delete.
538 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
539 (score_block_move-loop): Use cbranchsi4.
540 * config/score/score.md (cbranchsi4): New.
541 (cmpsi, bCC): Delete.
542 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
543 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
544 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
545 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
546 * config/score/score3.h (score3_gen_cmp): Delete.
547 * config/score/score7.h (score7_gen_cmp): Delete.
548
549 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
550 (sh_emit_scc_to_t): ... this. Return void.
551 (from_compare): Rename to...
552 (sh_emit_compare_and_branch): ... this.
553 (sh_emit_compare_and_set): New.
554 (sh_expand_t_scc): Accept operands.
555 * config/sh/predicates.md (sh_float_comparison_operator): New.
556 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
557 (prepare_scc_operands): Rename to...
558 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
559 arguments.
560 (sh_emit_cheap_store_flag): New.
f90b7a5a 561 (sh_emit_set_t_insn): New.
fbdf817d
UB
562 (from_compare): Rename to...
563 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
564 handling of TARGET_SH2E floating point to avoid recursive call.
565 Generate branch here.
566 (sh_emit_compare_and_set): New.
567 (sh_expand_t_scc): Get op0/op1 from arguments.
568 (sh_emit_cheap_store_flag): New.
569 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
570 cases.
f90b7a5a 571 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
572 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
573 (movsicc, movdicc): Do nothing when it recreated operands from
574 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
575 prepare_scc_operands (now sh_emit_scc_to_t).
576 (udivdi3): Use cstoresi4.
577 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
578 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
579 (cbranchint4_media, cbranchfp4_media): New.
580 (casesi): Use cbranchdi4.
581 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
582 Delete.
583 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
584 (movnegt): Remove second operand.
585 (cbranchsf4, cbranchdf4): New.
586 (stack_protect): Use cbranchdi4/cbranchsi4.
587
588 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
589 (gen_compare_reg): Accept comparison, extract part of it to...
590 (gen_compare_reg_1): ... this.
591 (gen_compare_operator): Delete.
592 (gen_v9_scc): Accept separate destination, comparison code and arms.
593 Do not use sparc_compare_op0/sparc_compare_op1.
594 (emit_scc_insn, emit_conditional_branch_insn): New.
595 (emit_v9_brxx): Make static. Remove useless assertion.
596 (sparc_emit_float_lib_cmp): Return RTL instead of calling
597 emit_cmp_insn.
598 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
599 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
600 sparc_emit_float_lib_cmp): Adjust prototype.
601 (emit_scc_insn, emit_conditional_branch_insn): New.
602 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
603 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
604 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
605 iterators to the top.
606 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
607 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 608 snedi_special_trunc): Delete.
fbdf817d 609 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 610 and snedi_special_trunc.
fbdf817d
UB
611 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
612 cbranchdi4, cbranch<F:mode>4): New.
613 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
614 here. Use gen_compare_reg instead of gen_compare_operator.
615 (conditional_trap): Replace with...
616 (ctrapsi4, ctrapdi4): ... this.
617 (stack_protect_test): Use cbranchcc4.
618
619 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
620 argument to rtx.
621 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
622 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
623 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
624 from operands[0] or operands[3] depending on is_set.
625 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
626 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
627 cmpdf, bCC), sCC: Remove.
628 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
629 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
630 cstoredf4): New.
631 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
632 spu_emit_branch_or_set.
633
634 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
635 Add two arguments.
636 * config/stormy16/stormy16.h (xstormy16_compare_op0,
637 xstormy16_compare_op1): Delete.
638 * config/stormy16/stormy16.c (xstormy16_compare_op0,
639 xstormy16_compare_op1): Delete.
640 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
641 Adjust calls.
642 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
643 (cmphi, cmpsi, bCC): Remove.
644
645 * config/v850/v850.md (tstsi, cmpsi): Fold into...
646 (*cmpsi): ... this one.
647 (cbranchsi4, cstoresi4): New.
648 (bCC expanders): Delete.
649 (sCC insns): Fold into...
650 (*setcc): ... this one.
651 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
652 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
653 (movsicc): Simplify.
654 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
655
fbdf817d
UB
656 * config/vax/vax-protos.h (cond_name): New.
657 (vax_output_conditional_branch): Remove.
658 * config/vax/vax.c (cond_name): New.
659 (vax_output_conditional_branch): Remove.
660 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
661 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
662 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
663 (bit<VAXint>): Wrap source with (compare).
664 (b<code> and following unnamed pattern): Rename to *branch and
665 *branch_reversed. Change macroization to match_operator.
666 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
667
668 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
669 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
670 Change last argument to machine_mode.
671 (xtensa_expand_scc): Add machine_mode argument.
672 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
673 (gen_conditional_move, xtensa_expand_conditional_branch,
674 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
675 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
676 Adjust operand numbers.
677 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
678 Delete.
679 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
680 (cmpsi, cmpsf, b<code>, s<code>): Delete.
681 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 682
16670495
PB
6832009-05-12 Paolo Bonzini <bonzini@gnu.org>
684
685 * optabs.c (prepare_cmp_insn): Temporarily disable test that
686 causes spurious differences between trunk and cond-optab branch.
687
4a4a4e99
AO
6882009-05-12 Alexandre Oliva <aoliva@redhat.com>
689
690 PR target/37137
691 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
692
72b9acff
AO
6932009-05-12 Alexandre Oliva <aoliva@redhat.com>
694
695 * tree.c (iterative_hash_pointer): Delete.
696 (iterative_hash_expr): Short-circuit handling of NULL pointer.
697 Hash UIDs and versions of SSA names. Don't special-case built-in
698 function declarations.
699
b7dd69ac
ILT
7002009-05-11 Ian Lance Taylor <iant@google.com>
701
702 PR bootstrap/40103
703 * graphite.c: Force -Wc++-compat to only be a warning before
704 #including "cloog/cloog.h".
705
ed102b70
MJ
7062009-05-11 Martin Jambor <mjambor@suse.cz>
707
708 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
709
08f1af2e
JH
7102009-05-11 Jan Hubicka <jh@suse.cz>
711
712 * tree-ssa-loop-ivcanon.c: Include target.h
713 (struct loop_size): new structure.
714 (constant_after_peeling): New predicate.
715 (tree_estimate_loop_size): New function.
716 (estimated_unrolled_size): Rewrite for new estimates.
717 (try_unroll_loop_completely): Use new estimates.
718 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
719
a7d39bd3
AP
7202009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
721
722 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
723 libcpp interface change.
724 (spu_macro_to_expand): Likewise.
725
f5a1f0d0
PB
7262009-05-11 Paolo Bonzini <bonzini@gnu.org>
727
728 PR tree-optimization/40026
729 * gimplify.c (gimplify_init_constructor): Change initial conditional
730 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
731 optimize_compound_literals_in_ctor.
732
c260f01f
NS
7332009-05-11 Nathan Sidwell <nathan@codesourcery.com>
734
735 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
736 New devices.
737 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
738
df398a37
L
7392009-05-11 H.J. Lu <hongjiu.lu@intel.com>
740
741 * tree-vect-data-refs.c (vect_analyze_group_access): Use
742 HOST_WIDE_INT for gap.
743
4da39468
IR
7442009-05-11 Ira Rosen <irar@il.ibm.com>
745
746 PR tree-optimization/40074
747 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
748 account in group size and step comparison.
749
4effdf02
RG
7502009-05-11 Richard Guenther <rguenther@suse.de>
751
752 * passes.c (init_optimization_passes): Strip now incorrect comment.
753 (execute_function_todo): Do not set PROP_alias.
754 * tree-pass.h (PROP_alias): Remove.
755 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
756 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
757 * tree-nrv.c (pass_return_slot): Likewise.
758 * tree-object-size.c (pass_object_sizes): Likewise.
759 * tree-ssa-dom.c (pass_dominator): Likewise.
760 (pass_phi_only_cprop): Likewise.
761 * tree-ssa-dse.c (pass_dse): Likewise.
762 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
763 (pass_cselim): Likewise.
764 * tree-ssa-pre.c (pass_pre): Likewise.
765 (pass_fre): Likewise.
766 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
767 * tree-ssa-sink.c (pass_sink_code): Likewise.
768 * tree-stdarg.c (pass_stdarg): Likewise.
769 * tree-tailcall.c (pass_tail_calls): Likewise.
770 * tree-vrp.c (pass_vrp): Likewise.
771
24b97832
ILT
7722009-05-10 Ian Lance Taylor <iant@google.com>
773
774 * basic-block.h (enum profile_status): Break out of struct
775 control_flow_graph.
776 * cgraph.h (struct inline_summary): Break out of struct
777 cgraph_local_info.
778 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
779 of struct cgraph_order_sort.
fbdf817d 780 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
781 * cse.c (struct branch_path): Break out of struct
782 cse_basic_block_data.
783 * except.h (enum eh_region_type): Break out of struct eh_region.
784 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 785 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
786 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
787 ggc_pch_data.
fbdf817d
UB
788 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
789 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
790 * sched-int.h (enum post_call_group): New enum, broken out of
791 struct deps.
792 (struct deps_reg): Break out of struct deps.
793 * target.h (struct asm_int_op): Break out of struct gcc_target.
794 * tree-eh.c (struct goto_queue_node): Break out of struct
795 leh_tf_state.
796 * tree-inline.h (enum copy_body_cge_which): Break out of
797 copy_body_data.
798 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
799
800 * c-decl.c (in_struct, struct_types): New static variables.
801 (pushtag): Add loc parameter. Change all callers.
802 (lookup_tag): Add ploc parameter. Change all callers.
803 (check_compound_literal_type): New function.
804 (parser_xref_tag): Add loc parameter. Change all callers. If
805 -Wc++-compat, warn about struct/union/enum types defined within a
806 struct or union.
807 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
808 and loc parameters. Change all callers. Change error calls to
809 error_at, using loc. For a redefinition, if the location of the
810 original definition is known, report it. Set in_struct and
fbdf817d 811 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
812 (finish_struct): Add new parameters enclosing_in_struct and
813 enclosing_struct_types. Change all callers. Set
814 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
815 in the struct. If in a struct, add this struct to struct_types.
816 (start_enum): Add loc parameter. Change all callers. Use
817 error_at for errors, using loc. For a redefinition, if the
818 location of the original definition is known, report it. If in a
819 struct, add this enum type to struct_types. If -Wc++-compat warn
820 if in sizeof, typeof, or alignof.
fbdf817d
UB
821 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
822 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
823 (c_parser_enum_specifier): Get enum location for start_enum.
824 (c_parser_struct_or_union_specifier): Get struct location for
825 start_struct. Save in_struct and struct_types status between
826 start_struct and finish_struct.
827 (c_parser_cast_expression): Get location of cast.
828 (c_parser_alignof_expression): Get location of type.
829 (c_parser_postfix_expression): Likewise.
830 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
831 parameter. Change all callers. Call check_compound_literal_type.
832 Use type_loc for error about variable size type.
833 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
834 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
835 (c_cast_expr): Add loc parameter. Change all callers. If
836 -Wc++-compat, warn about defining a type in a cast.
837 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
838 (start_enum, start_struct, finish_struct): Update declarations.
839 (parser_xref_tag, c_cast_expr): Update declarations.
840 (check_compound_literal_type): Declare.
841
7a2738fa
BE
8422009-05-11 Ben Elliston <bje@au.ibm.com>
843
844 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
845 for recent libcpp interface change.
846 (rs6000_macro_to_expand): Likewise.
847
af618949
MM
8482009-05-10 Michael Matz <matz@suse.de>
849
850 PR target/40031
851 * config/arm/arm.c (require_pic_register): Emit on entry edge,
852 not at entry of function.
853
b7d7a473
RG
8542009-05-10 Richard Guenther <rguenther@suse.de>
855
856 PR tree-optimization/40081
857 Revert
858 * tree-sra.c (instantiate_element): Instantiate scalar replacements
859 using the main variant of the element type. Do not fiddle with
860 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
861
862 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
863 structs with volatile fields.
864
078c3644
JH
8652009-05-10 Jan Hubicka <jh@suse.cz>
866
867 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
868 (estimate_move_cost): Assert that it does not get called for
869 VOID_TYPE_P.
078c3644
JH
870 (estimate_num_insns): Skip VOID types in argument handling.
871 (optimize_inline_calls): Delete unreachable blocks and verify that
872 callgraph is valid.
873
39ff5a96
JH
8742009-05-10 Jan Hubicka <jh@suse.cz>
875
876 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
877 * cgraph.c (cgraph_mark_address_taken_node): New function.
878 (dump_cgraph_node): Dump new flag.
879 * cgraph.h (struct cgraph_node): Add address_taken.
880 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
881 * ipa.c (cgraph_postorder): Prioritize functions with address taken
882 since new direct calls can be born.
883
9a0c6187
JM
8842009-05-10 Joseph Myers <joseph@codesourcery.com>
885
886 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
887 tok->val.node.node.
888
4b685e14
JH
8892009-05-10 Jan Hubicka <jh@suse.cz>
890
891 PR middle-end/40084
fb0be169
EB
892 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
893 argument; rewrite.
4b685e14
JH
894 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
895 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
896 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
897 (fold_marked_statements): Update call to
898 cgraph_update_edges_for_call_stmt.
4b685e14 899
29d08eba
JM
9002009-05-10 Joseph Myers <joseph@codesourcery.com>
901
902 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
903 identifiers in diagnostics.
904 * config/arm/arm.c (arm_handle_fndecl_attribute,
905 arm_handle_isr_attribute): Likewise.
906 * config/avr/avr.c (avr_handle_progmem_attribute,
907 avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
908 Likewise.
909 * config/bfin/bfin.c (handle_int_attribute,
910 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
911 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
912 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
913 Likewise.
914 * config/darwin.c (darwin_handle_kext_attribute,
915 darwin_handle_weak_import_attribute): Likewise.
916 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
917 h8300_handle_eightbit_data_attribute,
918 h8300_handle_tiny_data_attribute): Likewise.
919 * config/i386/i386.c (ix86_handle_cconv_attribute,
920 ix86_handle_abi_attribute, ix86_handle_struct_attribute):
921 Likewise.
922 * config/i386/winnt.c (ix86_handle_shared_attribute,
923 ix86_handle_selectany_attribute): Likewise.
924 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
925 * config/m32c/m32c.c (function_vector_handler): Likewise.
926 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
927 m68hc11_handle_fntype_attribute): Likewise.
928 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
929 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
930 * config/mips/mips.c (mips_insert_attributes,
931 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
932 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
933 rs6000_handle_struct_attribute): Likewise.
934 * config/sh/sh.c (sh_insert_attributes,
935 sh_handle_resbank_handler_attribute,
936 sh_handle_interrupt_handler_attribute,
937 sh2a_handle_function_vector_handler_attribute,
938 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
939 Likewise.
940 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
941 * config/spu/spu.c (spu_handle_fndecl_attribute,
942 spu_handle_vector_attribute): Likewise.
943 * config/stormy16/stormy16.c
944 (xstormy16_handle_interrupt_attribute): Likewise.
945 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
946 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
947
f41c4af3
JM
9482009-05-10 Joseph Myers <joseph@codesourcery.com>
949
950 * pretty-print.h (struct pretty_print_info): Add
951 translate_identifiers.
952 (pp_translate_identifiers): New.
953 (pp_identifier): Only conditionally translate identifier to locale
954 character set.
955 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
956 (pp_base_tree_identifier): Only conditionally translate identifier
957 to locale character set.
958 * c-pretty-print.c (M_): Define.
959 (pp_c_type_specifier, pp_c_primary_expression): Mark English
960 fragments for conditional translation with M_.
961 * tree-pretty-print.c (maybe_init_pretty_print): Disable
962 identifier translation.
963
896d7dbd
RG
9642009-05-10 Richard Guenther <rguenther@suse.de>
965
966 PR tree-optimization/40081
967 * tree-sra.c (instantiate_element): Instantiate scalar replacements
968 using the main variant of the element type. Do not fiddle with
969 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
970
9a23acef
JH
9712009-05-09 Jan Hubicka <jh@suse.cz>
972
973 PR middle-end/40080
974 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
975 indirect calls; verify cgraph afterwards.
976
d563610d
JH
9772009-05-09 Jan Hubicka <jh@suse.cz>
978
979 PR bootstrap/40082
980 * ipa.c (update_inlined_to_pointer): New function.
981 (cgraph_remove_unreachable_nodes): Use it.
982
f08a18d0
JH
9832009-05-09 Jan Hubicka <jh@suse.cz>
984
985 * tree-eh.c (struct leh_state): Remove prev_try.
986 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
987 not track prev_try.
988 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
989 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
990 remove_eh_handler_and_replace, foreach_reachable_handler,
991 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
992 * except.h (struct eh_region): Remove eh_region_u_cleanup.
993 (gen_eh_region_cleanup): Update prototype.
994
0afd7219
JH
9952009-05-09 Jan Hubicka <jh@suse.cz>
996
997 PR middle-end/40043
998 * except.c (copy_eh_region): Always set prev_try.
999 (redirect_eh_edge_to_label): Find outer try.
1000 (foreach_reachable_handler): When looking for prev try
1001 handle case where previous try is not going to be taken.
1002
ad6c0864
MM
10032009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
1004
1005 PR tree-optimization/40049
1006 * tree-vect-stmts.c (vectorizable_operation): If the machine has
1007 only vector/vector shifts, convert the type of the constant to the
1008 appropriate type to avoid building incorrect trees, which
1009 eventually have problems with garbage collection.
1010
c94f9067
JM
10112009-05-08 Joseph Myers <joseph@codesourcery.com>
1012
1013 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
1014 -1 for complex floating-point types if honoring signed zeros.
1015
9187e02d
JH
10162009-05-08 Jan Hubicka <jh@suse.cz>
1017
20acb8a2
EB
1018 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
1019 argument; handle correctly when profile is absent.
9187e02d
JH
1020 (build_cgraph_edges): Update.
1021 (rebuild_cgraph_edges): Update.
20acb8a2
EB
1022 * cgraph.c: Do not include varray.h.
1023 (cgraph_set_call_stmt_including_clones): New function.
1024 (cgraph_create_edge_including_clones): Likewise
1025 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
1026 (cgraph_update_edges_for_call_stmt): Handle clones.
1027 (cgraph_remove_node): Handle clone tree.
1028 (cgraph_remove_node_and_inline_clones): New function.
1029 (dump_cgraph_node): Dump clone tree.
1030 (cgraph_clone_node): Handle clone tree.
20acb8a2 1031 (clone_function_name): Bring here from tree-inline.c.
9187e02d 1032 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
1033 * cgraph.h (ipa_replace_map): Move here from ipa.h.
1034 (cgraph_clone_info): New function.
9187e02d 1035 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
1036 (cgraph_remove_node_and_inline_clones,
1037 cgraph_set_call_stmt_including_clones,
1038 cgraph_create_edge_including_clones,
1039 cgraph_create_virtual_clone): Declare.
9187e02d
JH
1040 (cgraph_function_versioning): Use VEC argument.
1041 (compute_call_stmt_bb_frequency): Update prototype.
1042 (cgraph_materialize_all_clones): New function.
1043 * ipa-cp.c (ipcp_update_cloned_node): Remove.
1044 (ipcp_create_replace_map): Update to VECtors.
1045 (ipcp_update_callgraph): Use virtual clones.
1046 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
1047 (ipcp_update_profiling): Do not update local profiling.
1048 (ipcp_insert_stage): Use VECtors and virtual clones.
1049 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
1050 (clone_of_p): New function.
1051 (cgraph_preserve_function_body_p): Use clone tree.
1052 (cgraph_optimize): Materialize clones.
1053 (cgraph_function_versioning): Update for VECtors.
1054 (save_inline_function_body): Use clone tree.
20acb8a2
EB
1055 (cgraph_materialize_clone): New function.
1056 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
1057 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
1058 * ipa.c: Include gimple.h.
1059 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
1060 * ipa-prop.c (ipa_note_param_call): Update call to
1061 compute_call_stmt_bb_frequencycall.
9187e02d 1062 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 1063 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
1064 (copy_bb): Handle updating of clone tree; add new edge when new call
1065 appears.
1066 (expand_call_inline): Be strict about every call having edge.
1067 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
1068 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
1069 (tree_function_versioning): Use VECtors; always remove unreachable
1070 blocks and fold conditionals.
1071 * tree-inline.h: Do not include varray.h.
9187e02d
JH
1072 (tree_function_versioning): Remove.
1073 * Makefile.in (GTFILES): Remove tree-inline.c
1074 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
1075 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
1076 tree.
9187e02d 1077
9b86d6bb
L
10782009-05-08 H.J. Lu <hongjiu.lu@intel.com>
1079 Andrew Morrow <acm@google.com>
1080
1081 PR c/36892
1082 * c-common.c (c_common_attribute_table): Permit deprecated
1083 attribute to take an optional argument.
1084 (handle_deprecated_attribute): If the optional argument to
1085 __attribute__((deprecated)) is not a string ignore the attribute
1086 and emit a warning.
1087
1088 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
1089 * c-typeck.c (build_component_ref): Likewise.
1090 (build_external_ref): Likewise.
1091
1092 * toplev.c (warn_deprecated_use): Add an attribute argument.
1093 Emit the message associated with __attribute__((deprecated)).
1094
1095 * toplev.h (warn_deprecated_use): Updated.
1096
1097 * doc/extend.texi: Document new optional parameter to
1098 __attribute__((deprecated))
1099
82ad047f
ME
11002009-05-08 Michael Eager <eager@eagercon.com>
1101
1102 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1103 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1104
788d3075
RG
11052009-05-08 Richard Guenther <rguenther@suse.de>
1106
1107 PR tree-optimization/40062
1108 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1109 Avoid exponential behavior.
1110
00952e97
PB
11112009-05-08 Paolo Bonzini <bonzini@gnu.org>
1112
1113 PR rtl-optimization/33928
1114 PR 26854
1115 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1116 process_uses, build_single_def_use_links): New.
1117 (update_df): Update use_def_ref.
1118 (forward_propagate_into): Use get_def_for_use instead of use-def
1119 chains.
1120 (fwprop_init): Call build_single_def_use_links and let it initialize
1121 dataflow.
1122 (fwprop_done): Free use_def_ref.
1123 (fwprop_addr): Eliminate duplicate call to df_set_flags.
1124 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
1125 df_rd_simulate_one_insn): New.
1126 (df_rd_bb_local_compute_process_def): Update head comment.
1127 (df_chain_create_bb): Use the new RD simulation functions.
1128 * df.h (df_rd_simulate_artificial_defs_at_top,
1129 df_rd_simulate_one_insn): New.
1130 * opts.c (decode_options): Enable fwprop at -O1.
1131 * doc/invoke.texi (-fforward-propagate): Document this.
1132
2ca862e9
JM
11332009-05-08 Joseph Myers <joseph@codesourcery.com>
1134
1135 PR c/24581
1136 * c-typeck.c (build_binary_op): Handle arithmetic between one real
1137 and one complex operand specially.
1138 * tree-complex.c (some_nonzerop): Do not identify a real value as
1139 zero if flag_signed_zeros.
1140
3e807ffc
PB
11412009-05-08 Paolo Bonzini <bonzini@gnu.org>
1142
1143 PR rtl-optimization/33928
7925c06c 1144 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 1145
1bfdbb29
PB
11462009-05-08 Paolo Bonzini <bonzini@gnu.org>
1147
1148 PR rtl-optimization/33928
e913423f
EB
1149 * loop-invariant.c (struct use): Add addr_use_p.
1150 (struct def): Add n_addr_uses.
1151 (struct invariant): Add cheap_address.
1152 (create_new_invariant): Set cheap_address.
1153 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
1154 (record_uses): Pass df_ref to record_use.
1155 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1156 used only as such.
1bfdbb29 1157
702cb2a0
KK
11582009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
1159
1160 * config/sh/sh.c: Do not include c-pragma.h.
1161
5e8df753
AP
11622009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
1163
1164 * config/spu/spu.c: Remove include of c-common.h.
1165
6ec637a4
JJ
11662009-05-07 Janis Johnson <janis187@us.ibm.com>
1167
1168 PR c/39037
1169 * c-common.h (mark_valid_location_for_stdc_pragma,
1170 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1171 clear_float_const_decimal64, float_const_decimal64_p): New.
1172 * c.opt (Wunsuffixed-float-constants): New.
1173 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1174 unsuffixed float constant, handle new warning.
1175 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1176 * c-decl.c (c_scope): New flag float_const_decimal64.
1177 (set_float_const_decimal64, clear_float_const_decimal64,
1178 float_const_decimal64_p): New.
1179 (push_scope): Set new flag.
1180 * c-parser.c (c_parser_translation_unit): Mark when it's valid
1181 to use STDC pragmas.
1182 (c_parser_external_declaration): Ditto.
1183 (c_parser_compound_statement_nostart): Ditto.
1184 * c-pragma.c (valid_location_for_stdc_pragma,
1185 mark_valid_location_for_stdc_pragma,
1186 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1187 handle_pragma_float_const_decimal64): New.
1188 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1189 * cp/semantics.c (valid_location_for_stdc_pragma_p,
1190 set_float_const_decimal64, clear_float_const_decimal64,
1191 float_const_decimal64_p): New dummy functions.
1192 * doc/extend.texi (Decimal Float): Remove statement that the
1193 pragma, and suffix for double constants, are not supported.
1194 * doc/invoke.texi (Warning Options): List new option.
1195 (-Wunsuffixed-float-constants): New.
1196
45b9b2e9
SB
11972009-05-08 Steven Bosscher <steven@gcc.gnu.org>
1198
1199 * config/i386/i386.c: Do not include c-common.h.
1200
e71da632
MH
12012009-05-07 Mark Heffernan <meheff@google.com>
1202
1203 * doc/invoke.texi (Debugging Options): Document change of debugging
1204 dump location.
e913423f 1205 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
1206 aux_base_name directory.
1207
fe4c7bc6
HS
12082009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1209
1210 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1211 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1212
3b3e44eb
RAE
12132009-05-07 Rafael Avila de Espindola <espindola@google.com>
1214
1215 * Makefile.in (install-plugin): Simplify a bit.
1216
fac41238
PB
12172009-05-07 Paolo Bonzini <bonzini@gnu.org>
1218
1219 * Makefile.in (OBJS-common): Add regcprop.o.
1220 (regcprop.o): New.
1221 * timevar.def (TV_CPROP_REGISTERS): New.
1222 * regrename.c (regrename_optimize): Return 0.
1223 (rest_of_handle_regrename): Delete.
1224 (pass_rename_registers): Point to regrename_optimize.
1225 (struct value_data_entry, struct value_data,
1226 kill_value_one_regno, kill_value_regno, kill_value,
1227 set_value_regno, init_value_data, kill_clobbered_value,
1228 kill_set_value, kill_autoinc_value, copy_value,
1229 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1230 replace_oldest_value_reg, replace_oldest_value_addr,
1231 replace_oldest_value_mem, copyprop_hardreg_forward_1,
1232 debug_value_data, validate_value_data): Move...
1233 * regcprop.c: ... here.
1234 (rest_of_handle_cprop): Delete.
1235 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1236
472e0df9
JJ
12372009-05-07 Jakub Jelinek <jakub@redhat.com>
1238
1239 PR middle-end/40057
1240 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1241 GEN_INT for 1 << bitnum.
1242 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1243 build_int_cst_type.
1244
0d50d55a
UB
12452009-05-07 Uros Bizjak <ubizjak@gmail.com>
1246
1247 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 1248 Remove wrong description of "nand" operation.
0d50d55a 1249
22f597f1
RG
12502009-05-06 Richard Guenther <rguenther@suse.de>
1251 Adam Nemet <anemet@caviumnetworks.com>
1252
1253 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1254 comment. Add that if LHS is not a gimple register, then RHS1 has
1255 to be a single object (GIMPLE_SINGLE_RHS).
1256
641cac0b
AN
12572009-05-06 Adam Nemet <anemet@caviumnetworks.com>
1258
1259 * expr.c (get_def_for_expr): Move it up in the file.
1260 (store_field): When expanding a bit-field store, look at the
1261 defining gimple stmt for the masking conversion.
1262
5a5c6435
JJ
12632009-05-06 Janis Johnson <janis187@us.ibm.com>
1264
1265 PR middle-end/39986
1266 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1267 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1268 32-bit memcpy into long.
1269
96474f36
JJ
12702009-05-06 Jakub Jelinek <jakub@redhat.com>
1271
1272 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1273 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1274 new_reg_loc_descr.
1275 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1276 instead of appending DW_OP_deref*.
1277
529ff441
MM
12782009-05-06 Michael Matz <matz@suse.de>
1279
1280 PR middle-end/40021
1281 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1282 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1283
9419a9fd
RAE
12842009-05-06 Rafael Avila de Espindola <espindola@google.com>
1285
1286 * Makefile.in (install-plugin): Fix srcdir handling.
1287
fff1894c
AB
12882009-05-06 Andrey Belevantsev <abel@ispras.ru>
1289
1290 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1291 when processing for not_regs_needed bitmap.
1292 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1293 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
1294 handling it for rhs.
1295
700ae70c
L
12962009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1297
ab3426a7 1298 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 1299 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
1300 * config/i386/predicates.md (incdec_operand): Likewise.
1301 (aligned_operand): Likewise.
1302 * config/i386/sse.md (divv8sf3): Likewise.
1303 (sqrtv8sf2): Likewise.
1304
67341fb5
L
13052009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1306
1307 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1308
1309 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1310
87946f42
L
13112009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1312
1313 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1314 ssemodesuffixf2c with avxmodesuffixf2c.
1315
1202aec1
JM
13162009-05-06 Joseph Myers <joseph@codesourcery.com>
1317
1318 PR c/40032
aa016ff7 1319 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 1320
6e57a01d
JJ
13212009-05-05 Jakub Jelinek <jakub@redhat.com>
1322
1323 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1324 (struct tree_base): Adjust spacing for 8 bit boundaries.
1325 (struct tree_decl_common): Add decl_by_reference_flag bit.
1326 (DECL_BY_REFERENCE): Adjust.
1327 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1328 print DECL_BY_REFERENCE bit.
1329 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1330 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1331 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1332 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
1333 unconditionally.
1334
32f579f6
JJ
1335 PR middle-end/39666
1336 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1337 range of the type, but default label is missing, add it with one
1338 of the existing labels instead of adding a new label for it.
1339
617ab743
JM
13402009-05-05 Joseph Myers <joseph@codesourcery.com>
1341
1342 * dwarf.h: Remove.
1343
bf016de8
RAE
13442009-05-05 Rafael Avila de Espindola <espindola@google.com>
1345
1346 * Makefile.in (enable_plugin, plugin_includedir): New.
1347 (install): Depend on install-plugin.
1348 (PLUGIN_HEADERS): New.
1349 (install-plugin): New.
1350 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1351
7f8fdb9f
RG
13522009-05-05 Richard Guenther <rguenther@suse.de>
1353
1354 PR tree-optimization/40022
1355 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1356 the only vuse.
1357 (phivn_valid_p): Fix tuplification error, simplify.
1358 (phiprop_insert_phi): Add dumps.
1359 (propagate_with_phi): Simplify.
1360
8d972839
RG
13612009-05-05 Richard Guenther <rguenther@suse.de>
1362
1363 PR middle-end/40023
aa016ff7 1364 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 1365
66ba9b0b
SZ
13662009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
1367
1368 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
1369 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1370 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1371 block_ultimate_origin): Rearrange the declarations line to match the
1372 comment that indicates the .c file which the functions are defined.
1373 (dwarf2out_*, set_decl_rtl): Add comment.
1374 (get_base_address): Adjust comment.
1375 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1376 declarations line and add comment.
1377 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 1378
4f1e4960
JM
13792009-05-04 Joseph Myers <joseph@codesourcery.com>
1380
1381 * attribs.c (decl_attributes): Use %qE for identifiers in
1382 diagnostics.
1383 * cgraphunit.c (verify_cgraph_node): Translate function names to
1384 locale character set in diagnostics.
1385 * coverage.c (get_coverage_counts): Use %qE for identifiers in
1386 diagnostics.
1387 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1388 Document that functions are named in UTF-8.
1389 * expr.c (expand_expr_real_1): Translate function names to locale
1390 character set in diagnostics.
1391 * gimplify.c (omp_notice_variable, omp_is_private,
1392 gimplify_scan_omp_clauses): Use %qE for identifiers in
1393 diagnostics.
1394 * langhooks.c (lhd_print_error_function): Translate function names
1395 to locale character set.
1396 * langhooks.h (decl_printable_name): Document that return value is
1397 in internal character set.
1398 * stmt.c: Include pretty-print.h
1399 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1400 diagnostics.
1401 (resolve_operand_name_1): Translate named operand name to locale
1402 character set.
1403 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1404 diagnostics.
1405 * toplev.c (announce_function): Translate function names to locale
1406 character set.
1407 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1408 (default_tree_printer): Use pp_identifier or translate identifiers
1409 to locale character set. Mark "<anonymous>" for translation.
1410 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1411 for identifiers in diagnostics.
1412 * tree.c (handle_dll_attribute): Use %qE for identifiers in
1413 diagnostics.
1414 * varasm.c (output_constructor): Use %qE for identifiers in
1415 diagnostics.
1416
40540e68
RAE
14172009-05-04 Rafael Avila de Espindola <espindola@google.com>
1418
1419 * configure.ac: use ` ` instead of $()
1420 * configure: Regenerate.
1421
33fc884c
BE
14222009-05-05 Ben Elliston <bje@au.ibm.com>
1423
1424 * config/pa/linux-atomic.c: Eliminate conditional include of
1425 errno.h on non-LP64 systems to simplify build requirements.
1426
88388a52
JM
14272009-05-04 Joseph Myers <joseph@codesourcery.com>
1428
1429 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1430 diagnostics.
1431 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1432 and pass value to identifier_to_locale.
1433 (warn_variable_length_array): Make name a tree.
1434 (grokdeclarator): Separate diagnostic texts for named and unnamed
1435 declarators. Use %qE for named declarators.
1436 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
1437 diagnostics.
1438 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
1439 identifiers in diagnostics.
1440 * c-typeck.c (push_member_name, start_init): Pass identifiers to
1441 identifier_to_locale. Mark "anonymous" strings for translation.
1442
960c5c79
ME
14432009-05-04 Michael Eager <eager@eagercon.com>
1444
1445 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 1446 address for DImode/DFmode only if double-precision FP regs.
960c5c79 1447
d083fbba
ME
14482009-05-04 Michael Eager <eager@eagercon.com>
1449
1450 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
1451 TARGET_SINGLE_FLOAT check.
1452
c3ba8d32
ME
14532009-05-04 Michael Eager <eager@eagercon.com>
1454
1455 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
1456
edce9f18
ME
14572009-05-04 Michael Eager <eager@eagercon.com>
1458
1459 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
1460 * config/rs6000/t-xilinx: New
1461
506d7b68
PB
14622009-05-04 Paolo Bonzini <bonzini@gnu.org>
1463
e913423f 1464 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
1465 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
1466 * gcc/explow.c (memory_address): Use target hook.
1467 * gcc/targhooks.c (default_legitimize_address): New.
1468 * gcc/targhooks.h (default_legitimize_address): New.
1469 * gcc/target.h (legitimize_address): New.
1470 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
1471 (TARGET_INITIALIZER): Include it.
1472 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
1473
1474 * config/bfin/bfin-protos.h (legitimize_address): Remove.
1475 * config/bfin/bfin.c (legitimize_address): Remove.
1476 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
1477 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
1478 Remove.
506d7b68
PB
1479 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
1480 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
1481
1482 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
1483 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
1484 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
1485 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
1486 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
1487 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
1488 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
1489 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
1490 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
1491 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
1492 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
1493 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
1494 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
1495 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
1496 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
1497 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
1498 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
1499 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
1500 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
1501 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
1502 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
1503 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
1504 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
1505
1506 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
1507 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
1508 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
1509 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
1510 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
1511 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
1512 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
1513 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
1514 (thumb_legitimize_address): Delete.
1515 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
1516 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
1517 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
1518 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
1519 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
1520 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
1521 Delete.
1522 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
1523 Delete.
506d7b68
PB
1524
1525 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
1526 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
1527 * config/m32r/m32r.c (m32r_legitimize_address): New.
1528 * config/m68k/m68k.c (m68k_legitimize_address): New.
1529 * config/score/score.c (score_legitimize_address): Standardize.
1530 * config/score/score3.c (score3_legitimize_address): Standardize.
1531 * config/score/score3.h (score3_legitimize_address): Adjust.
1532 * config/score/score7.c (score7_legitimize_address): Standardize.
1533 * config/score/score7.h (score7_legitimize_address): Adjust.
1534 * config/sh/sh.c (sh_legitimize_address): New.
1535 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
1536
1537 * gcc/config/s390/s390.c (legitimize_address): Rename to...
1538 (s390_legitimize_address): ... this.
1539 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
1540 (sparc_legitimize_address): ... this.
1541 * gcc/config/i386/i386.c (legitimize_address): Rename to...
1542 (ix86_legitimize_address): ... this.
1543 * gcc/config/avr/avr.c (legitimize_address): Rename to...
1544 (avr_legitimize_address): ... this.
1545 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
1546 (mn10300_legitimize_address): ... this.
1547 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
1548 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
1549 (alpha_expand_mov): Adjust call.
1550
1551 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
1552 * config/spu/spu.c (spu_legitimize_address): Likewise.
1553 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
1554 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
1555
a3af5087
JM
15562009-05-04 Joseph Myers <joseph@codesourcery.com>
1557
1558 * intl.c (locale_encoding, locale_utf8): New.
1559 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
1560 * intl.h (locale_encoding, locale_utf8): Declare.
1561 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
1562 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
1563 New.
1564 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
1565 argument.
1566 (pp_tree_identifier): Define to call pp_base_tree_identifier.
1567 (pp_base_tree_identifier): Declare as function.
1568 (identifier_to_locale): Declare.
1569 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 1570 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 1571
ea5cd5f1
RG
15722009-05-04 Richard Guenther <rguenther@suse.de>
1573
1574 PR middle-end/40015
1575 * builtins.c (fold_builtin_memory_op): Do not decay to element
1576 type if the size matches the whole array.
1577
ddc2690a
KH
15782009-05-04 Kazu Hirata <kazu@codesourcery.com>
1579
1580 * expmed.c (synth_mult): When trying out a shift, pass the result
1581 of a signed shift.
1582
ef268d34
KH
15832009-05-04 Kazu Hirata <kazu@codesourcery.com>
1584
1585 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
1586 (shiftsub1_cost): New.
1587 (init_expmed): Compute shiftsub1_cost.
1588 (synth_mult): Optimize multiplications by constants of the form
1589 -(2^^m-1) for some constant positive integer m.
1590
255d3827
RG
15912009-05-03 Richard Guenther <rguenther@suse.de>
1592
1593 PR c/39983
1594 * c-typeck.c (array_to_pointer_conversion): Do not built
1595 ADDR_EXPRs of arrays of pointer-to-element type.
1596 * c-gimplify.c (c_gimplify_expr): Revert change fixing
1597 up wrong ADDR_EXPRs after-the-fact.
1598 * c-common.c (strict_aliasing_warning): Strip pointer
1599 conversions for obtaining the original type.
1600 * builtins.c (fold_builtin_memset): Handle array types.
1601 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
1602 and array types
1603
16c33770
RG
16042009-05-03 Richard Guenther <rguenther@suse.de>
1605
1606 PR middle-end/23329
1607 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
1608 Do not lose casts from array types with unknown extent to array
1609 types with known extent.
1610 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
1611 alias set compatibility.
1612
62a67c94
MLI
16132009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
1614
1615 * flags.h (extra_warnings): Delete.
1616 * toplev.c (process_options): Handle Wuninitialized here.
1617 * opts.c (extra_warnings): Delete.
1618 (set_Wextra): Delete.
1619 (common_handle_option): -Wextra can be handled automatically.
1620 * c-opts.c (c_common_handle_option): Delete obsolete code.
1621 (c_common_post_options): Simplify comment.
1622 * common.opt (W): Add Var.
1623 (Wextra): Add Var.
1624 (Wuninitialized): Initialize to -1.
1625
8c7926c4
AN
16262009-05-03 Adam Nemet <anemet@caviumnetworks.com>
1627 Richard Guenther <rguenther@suse.de>
1628
1629 * expr.c (get_def_for_expr): New function.
1630 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
1631 SSA rather than trees.
1632 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
1633 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
1634
fa5da7de
JM
16352009-05-03 Joseph Myers <joseph@codesourcery.com>
1636
1637 * c-common.c (reswords): Add _Imaginary.
1638 * c-common.c (enum rid): Add RID_IMAGINARY.
1639
2ddd5020
PB
16402009-05-03 Paolo Bonzini <bonzini@gnu.org>
1641
1642 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
1643 Patch by Richard Guenther.
1644
aea88c05
AS
16452009-05-03 Anatoly Sokolov <aesok@post.ru>
1646
1647 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
1648 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1649 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
1650 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
1651 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
1652 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
1653 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
1654 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
1655 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
1656 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
1657 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
1658 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
1659 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
1660 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
1661 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
1662 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
1663 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
1664 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
1665
85e59f3a
RG
16662009-05-02 Richard Guenther <rguenther@suse.de>
1667
1668 PR tree-optimization/39940
1669 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
1670 doing so.
1671
4636b850
RG
16722009-05-02 Richard Guenther <rguenther@suse.de>
1673
1674 PR middle-end/40001
1675 * tree-ssa.c (execute_update_addresses_taken): Properly check
1676 if we can mark a variable DECL_GIMPLE_REG_P.
1677 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
1678 back to the end of the function.
1679 (is_gimple_reg_type): Remove complex type special casing.
1680 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
1681 if not optimizing.
1682
5e10cb5a
BE
16832009-05-02 Ben Elliston <bje@au.ibm.com>
1684
1685 * doc/collect2.texi (Collect2): Document search path behaviour
1686 when configured with --with-ld.
1687
048bf48b
JH
16882009-05-02 Jan Hubicka <jh@suse.cz>
1689
1690 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
1691 parameter; update callers.
aa016ff7
UB
1692 (coalesce_cost_edge): EH edges are costier because they needs
1693 splitting even if not critical and even more costier when there are
1694 multiple EH predecestors.
048bf48b 1695
d5c5f9ab
JH
16962009-05-02 Jan Hubicka <jh@suse.cz>
1697
1698 * except.c (remove_eh_handler_and_replace): Handle updating after
1699 removing TRY blocks.
1700
2ed1959a
EB
17012009-05-02 Eric Botcazou <ebotcazou@adacore.com>
1702
1703 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
1704
d363a7e7
SB
17052009-05-02 Steven Bosscher <steven@gcc.gnu.org>
1706
1707 * varasm.c: Do not include c-pragma.h.
1708 * attribs.c: Do not incude c-common.h.
1709
9c3d55b4
MM
17102009-05-01 Michael Matz <matz@suse.de>
1711
1712 * calls.c (initialize_argument_information): Handle SSA names like
1713 decls with a non MEM_P DECL_RTL.
1714
ea264ca5
SB
17152009-05-01 Steven Bosscher <steven@gcc.gnu.org>
1716
1717 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
1718 * ipa-utils.c: Likewise.
1719 * ipa-type-escape.c: Likewise.
1720 * cgraphunit.c Do not include c-common.h.
1721 * ipa-pure-const.c: Likewise.
1722 * tree-if-conv.c: Likewise.
1723 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
1724 * ipa-struct-reorg.c: Likewise.
1725 * tree-nomudflap.c: Likewise.
1726 * tree-ssa-structalias.c: Likewise.
1727
6c5d4d1a
SB
17282009-05-01 Steven Bosscher <steven@gcc.gnu.org>
1729
1730 * store-motion.c: Many cleanups to make this pass a first-class
1731 citizen instead of an appendix to gcse load motion. Add TODO list
1732 to make this pass faster/cleaner/better.
1733
1734 (struct ls_expr): Post gcse.c-split cleanups.
1735 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
1736 "stores" field to "avail_stores".
1737 (pre_ldst_mems): Rename to store_motion_mems.
1738 (pre_ldst_table): Rename to store_motion_mems_table.
1739 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
1740 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
1741 (ldst_entry): Rename to st_expr_entry, update users.
1742 (free_ldst_entry): Rename to free_st_expr_entry, update users.
1743 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
1744 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
1745 update caller.
6c5d4d1a
SB
1746 (first_ls_expr): Rename to first_st_expr, update users.
1747 (next_ls_expr): Rename to next_st_expr, update users.
1748 (print_ldst_list): Rename to print_store_motion_mems. Print names of
1749 fields properly for store motion instead of names inherited from load
1750 motion in gcse.c.
1751 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
1752 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
1753 are done with it.
1754
1755 (ae_kill): Rename to st_kill, update users.
1756 (ae_gen): Rename to st_avloc, update users.
1757 (transp): Rename to st_transp, update users.
1758 (pre_insert_map): Rename to st_insert_map, update users.
1759 (pre_delete_map): Rename to st_delete_map, update users.
1760 (insert_store, build_store_vectors, free_store_memory,
1761 one_store_motion_pass): Update for abovementioned changes.
1762
1763 (gcse_subst_count, gcse_create_count): Remove.
1764 (one_store_motion_pass): New statistics counters "n_stores_deleted"
1765 and "n_stores_created", local variables.
1766
1767 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
1768 use for_each_rtx.
1769
1770 (regvec, compute_store_table_current_insn): Remove.
1771 (reg_set_info, reg_clear_last_set): Remove.
1772 (compute_store_table): Use DF caches instead of local dataflow
1773 solvers.
1774
b02cec6e
JM
17752009-05-01 Joseph Myers <joseph@codesourcery.com>
1776
1777 * c-objc-common.c (c_tree_printer): Print identifiers with
1778 pp_identifier, not pp_string. Mark "({anonymous})" for
1779 translation.
1780 * c-pretty-print.c (pp_c_ws_string): New.
1781 (pp_c_cv_qualifier, pp_c_type_specifier,
1782 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
1783 pp_c_storage_class_specifier, pp_c_function_specifier,
1784 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
1785 pp_c_primary_expression, pp_c_postfix_expression,
1786 pp_c_unary_expression, pp_c_shift_expression,
1787 pp_c_relational_expression, pp_c_equality_expression,
1788 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
1789 use pp_string and pp_c_ws_string in place of pp_identifier and
1790 pp_c_identifier for non-identifiers. Mark English strings for
1791 translation.
1792 * c-pretty-print.h (pp_c_ws_string): Declare.
1793
cd533689
PP
17942009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
1795 Roland McGrath <roland@redhat.com>
1796
aa016ff7 1797 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
1798 (ENABLE_LD_BUILDID): New configuration option.
1799 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
1800 (LINK_BUILDID_SPEC): New macro.
1801 (init_spec): If defined, prepend it between LINK_EH_SPEC and
1802 link_spec.
1803 * doc/install.texi: Document --enable-linker-build-id option.
1804 * configure: Rebuild.
1805 * config.in: Rebuild.
1806
ba6adec4
AN
18072009-04-30 Adam Nemet <anemet@caviumnetworks.com>
1808
1809 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
1810 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
1811 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
1812 MIPS_GP_SAVE_AREA_SIZE.
1813 * config/mips/mips.c (struct mips_frame_info): Update comment
1814 before arg_pointer_offset and hard_frame_pointer_offset.
1815 (mips_compute_frame_info): Update diagram before function: to
1816 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
1817 indicate the position of frame_pointer_rtx with -fstack-protector and
1818 to show args_size. Don't allocate cprestore area for leaf functions
1819 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
1820 cprestore_size.
1821 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
1822
48f5b722
MM
18232009-04-30 Michael Matz <matz@suse.de>
1824
ba6adec4
AN
1825 PR tree-optimization/39955
1826 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 1827
b65d6744
DK
18282009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
1829
1830 * ira.c (setup_cover_and_important_classes): Use safe macro
1831 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
1832 directly.
1833 * genpreds.c (write_tm_preds_h): Output suitable definition of
1834 REG_CLASS_FOR_CONSTRAINT.
1835
f136c8ae
RAE
18362009-04-30 Rafael Avila de Espindola <espindola@google.com>
1837
1838 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
1839 instead of an int.
1840 * bitmap.c (bitmap_descriptor): Likewise.
1841 * ggc-common.c (loc_descriptor): Likewise.
1842 * varray.c (varray_descriptor): Likewise.
1843 * vec.c (vec_descriptor): Likewise.
1844
43fcece8 18452009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
1846
1847 * Makefile.in (dce.o): Add $(EXCEPT_H).
1848 * dce.c: Include except.h and delete redundant vector definitions.
1849 (deletable_insn_p): Return false for non-call insns that can throw
1850 if DF is running.
1851
df35c271
SB
18522009-04-30 Steven Bosscher <steven@gcc.gnu.org>
1853
1854 * gcse.c (ae_gen): Remove.
1855 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
1856 and make non-static function to make it available in store-motion.c.
1857 Update call sites with search-and-replace.
1858 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
1859 extract_mentioned_regs, extract_mentioned_regs_helper,
1860 find_moveable_store, compute_store_table, load_kills_store, find_loads,
1861 store_killed_in_insn, store_killed_after, store_killed_before,
1862 build_store_vectors, insert_insn_start_basic_block, insert-store,
1863 remove_reachable_equiv_notes, replace_store_insn, delete_store,
1864 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
1865 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
1866 * store-motion.c: ...new file. Also copy data structures from gcse.c
1867 and clean up to remove parts not used by store motion.
1868 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
1869 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
1870
f711a87a
RR
18712009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1872
1873 PR target/38571
1874 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
1875 when optimizing for size.
1876
fa5ed76e
HPN
18772009-04-30 Hans-Peter Nilsson <hp@axis.com>
1878
1879 * gcse.c (gcse_constant_p): Fix typo in last change.
1880
0acbbdb0
RAE
18812009-04-30 Rafael Avila de Espindola <espindola@google.com>
1882
1883 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
1884
82f5c05d
AK
18852009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
1886
1887 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
1888
6d8f135b
JW
18892009-04-29 James E. Wilson <wilson@codesourcery.com>
1890
1891 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
1892 CONST_HIGH_PART result.
1893
c21ca196
AS
18942009-04-29 Anatoly Sokolov <aesok@post.ru>
1895
1896 * config/avr/avr.c (initial_elimination_offset): Rename to
1897 avr_initial_elimination_offset.
1898 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
1899 change return type to bool.
1900 (avr_can_eliminate): New function.
1901 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
1902 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
1903 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 1904 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
1905 avr_initial_elimination_offset.
1906 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
1907 (avr_initial_elimination_offset): Define.
1908
2a34bece 19092009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 1910 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
1911
1912 PR rtl-optimization/39938
1913 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
1914 * cfgrtl.c: Include insn-attr.h.
1915 (rest_of_pass_free_cfg): New function.
1916 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
1917 * resource.c (init_resource_info): Remove call to df_analyze.
1918
5dc7911e
RG
19192009-04-29 Richard Guenther <rguenther@suse.de>
1920
1921 PR target/39943
1922 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
1923 allow conversion to signed integers.
1924
1fe479fd
RG
19252009-04-29 Richard Guenther <rguenther@suse.de>
1926
1927 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
1928 shifts of floating point vectors if the shift amount is
1929 a constant multiple of the element size.
1930
8e001680
AK
19312009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
1932 Michael Matz <matz@suse.de>
1933
1934 PR middle-end/39927
1935 PR bootstrap/39929
1936 * tree-outof-ssa.c (emit_partition_copy): New function.
1937 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
1938 insert_part_to_rtx_on_edge): Perform the partition base var
1939 copy using emit_partition_copy.
1940 (insert_value_copy_on_edge): Convert constants to the right mode.
1941 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
1942 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
1943
e50e3081
BS
19442009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1945
1946 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
1947 scan backwards to try to find a constant to initialize it.
1948
4e5d521b
BS
1949 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
1950 insn before the loop_end instruction, don't look past labels.
1951
7c90021d
RG
19522009-04-29 Richard Guenther <rguenther@suse.de>
1953
1954 PR middle-end/39937
1955 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
1956 loose type conversions.
1957 (forward_propagate_addr_expr): Fix tuplification bug. Remove
1958 stmts only if there are no uses of its definition.
1959
97a988bc
BS
19602009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1961
1962 * config/bfin/bfin.h (splitting_loops): Declare.
1963 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
1964 Reorder bit definitions to be ascending.
1965 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
1966 * config/bfin/bfin.c (splitting_loops): New variable.
1967 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
1968 (struct loop_info): Remove members INIT and LOOP_INIT.
1969 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
1970 the LSETUP sequence. Allow LC to be loaded from any register, but
1971 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
1972 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
1973 set to 1.
1974 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
1975 of reload_completed.
aa016ff7 1976
97a988bc
BS
1977 From Jie Zhang:
1978 * config/bfin/bfin.md (movsi_insn): Refine constraints.
1979
0c463e16
RAE
19802009-04-29 Rafael Avila de Espindola <espindola@google.com>
1981
1982 * Makefile.in (PLUGIN_VERSION_H): New.
1983 (OBJS-common): Remove plugin-version.o.
1984 (plugin.o): Depend on (PLUGIN_VERSION_H).
1985 (plugin-version.o): Remove.
1986 * configure: Regenerate
1987 * configure.ac: Create plugin-version.h.
1988 * gcc-plugin.h (plugin_gcc_version): Remove.
1989 (plugin_default_version_check): Change signature.
1990 * plugin-version.c: Remove.
1991 * plugin.c: Include plugin-version.h.
1992 (str_plugin_gcc_version_name): Remove.
1993 (try_init_one_plugin): Pass gcc version to plugin_init.
1994 (plugin_default_version_check): Both gcc and plugin versions are now
1995 arguments.
1996
307e7eab
BS
19972009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
1998
1999 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
2000 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
2001 Remove special case testing for last insn of inner loops. Don't fail
2002 if the loop ends with a jump, emit an extra nop instead.
307e7eab 2003
c5d96723
BS
2004 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
2005 DREGS rather than comparing directly. Remove code that tries to
2006 account for latencies.
2007
de0b4ad5
RG
20082009-04-29 Richard Guenther <rguenther@suse.de>
2009
2010 PR tree-optimization/39941
2011 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
2012 eliminating an indirect call.
2013
3a19701a
RG
20142009-04-29 Richard Guenther <rguenther@suse.de>
2015
2016 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
2017 parameter. Allow invariants as base if !require_lvalue.
2018 (verify_gimple_assign_single): Adjust.
2019
a0a31d1e
BS
20202009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2021
2022 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
2023 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
2024 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
2025 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
2026 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
2027 a VEC_SELECT.
aa016ff7
UB
2028 * config/bfin/bfin.c (bfin_expand_builtin,
2029 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 2030
795bd26a
RG
20312009-04-28 Richard Guenther <rguenther@suse.de>
2032
2033 * tree-vect-loop.c (get_initial_def_for_induction): Use
2034 correct types for pointer increment.
2035
04be270f
KG
20362009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2037
2038 * toplev.c (print_version): Update GMP version string calculation.
2039
e1a3b85c
EB
20402009-04-28 Eric Botcazou <ebotcazou@adacore.com>
2041
2042 PR rtl-optimization/39938
2043 * resource.c (init_resource_info): Add call to df_analyze.
2044
8224166e
UB
20452009-04-28 Uros Bizjak <ubizjak@gmail.com>
2046
2047 * config/alpha/alpha.md (usegp): Cast the result of
2048 alpha_find_lo_sum_using_gp to enum attr_usegp.
2049 * config/alpha/alpha.c (override_options): Remove end-of-structure
2050 marker element from cpu_table. Use array size of cpu_table to handle
2051 -mcpu and -mtune options.
2052 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2053
c5f0fe67
JM
20542009-04-28 Joseph Myers <joseph@codesourcery.com>
2055
2056 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
2057 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
2058 tune_32 and tune_64.
2059 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2060 support on PowerPC.
2061 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
2062 * config/rs6000/option-defaults.h: ... here. New file.
2063 (OPT_64, OPT_32): Define.
2064 (MASK_64BIT): Define to 0 if not already defined.
2065 (OPT_ARCH64, OPT_ARCH32): Define.
2066 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
2067 and tune_64.
2068
0c48a567
RR
20692009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2070
2071 * config/arm/arm.c (arm_override_options): Emit error on using
2072 fpa with AAPCS.
2073
f1028b9d
UB
20742009-04-28 Uros Bizjak <ubizjak@gmail.com>
2075
2076 PR rtl-optimization/39914
2077 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2078 registers for allocnos created from user-defined variables only
2079 when not optimizing.
2080
e0dd989a
RG
20812009-04-28 Richard Guenther <rguenther@suse.de>
2082
2083 PR middle-end/39937
2084 * fold-const.c (fold_binary): Use distribute_real_division only
2085 on float types.
2086
9a17c91d
SE
20872009-04-28 Steve Ellcey <sje@cup.hp.com>
2088
2089 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
2090 add hpux-stdint.h to tm_file.
2091 (hppa[12]*-*-hpux11*): Ditto.
2092 (ia64*-*-hpux*): Ditto.
2093 * config/hpux-stdint.h: New.
60839f5d 2094 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 2095 __STDC_EXT__ for all compiles.
60839f5d
EB
2096 * config/pa/pa-hpux.h: Ditto.
2097 * config/pa/pa-hpux10.h: Ditto.
2098 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 2099
af04e659
CM
21002009-04-28 Catherine Moore <clm@codesourcery.com>
2101
2102 * debug.h (set_name): Add comment.
2103
04ef80ce
AP
21042009-04-28 Andrew Pinski <pinskia@gmail.com>
2105
2106 PR target/39929
2107 * config/darwin.c (machopic_gen_offset): Check
2108 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2109 * config/arm/arm.c (require_pic_register): Likewise.
2110
65ad77af
PB
21112009-04-28 Paolo Bonzini <bonzini@gnu.org>
2112
8224166e
UB
2113 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2114 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2115 m32c_promote_prototypes): Delete.
65ad77af 2116
1b15a008
MM
21172009-04-28 Michael Matz <matz@suse.de>
2118
2119 PR middle-end/39922
2120 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2121 constants.
2122
7569a6cc
RG
21232009-04-28 Richard Guenther <rguenther@suse.de>
2124
f1028b9d 2125 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 2126
ead204d9
RR
21272009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2128
2129 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2130 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2131 * config/arm/arm-tune.md: Regenerate.
2132
f2c45f08 21332009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 2134
f2c45f08
AM
2135 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2136 block if there are complex incoming edges.
2137 (sel_merge_blocks): Remove useless assert.
2138 (sel_redirect_edge_and_branch): Check that edge was redirected.
2139 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2140 (sel_find_rgns): Delete declaration.
2141 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2142 the region when it is not a preheader.
2143
7a00d767
UB
21442009-04-28 Uros Bizjak <ubizjak@gmail.com>
2145
2146 PR c/39323
2147 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2148
448ee662
RG
21492009-04-28 Richard Guenther <rguenther@suse.de>
2150
2151 * tree.h (SSA_NAME_VALUE): Remove.
2152 (struct tree_ssa_name): Remove value_handle member.
2153 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2154 array for jump threading.
2155 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2156 SSA_NAME_VALUEs.
2157 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2158 * tree-flow.h (threadedge_initialize_values): Declare.
2159 (threadedge_finalize_values): Likewise.
2160 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2161 (SSA_NAME_VALUE): Define.
2162 (threadedge_initialize_values): New function.
2163 (threadedge_finalize_values): Likewise.
2164 * tree-ssa-dom.c (ssa_name_values): New global variable.
2165 (SSA_NAME_VALUE): Define.
f1028b9d 2166 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 2167
8644a673
IR
21682009-04-28 Ira Rosen <irar@il.ibm.com>
2169
2170 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2171 Use REPORT_VECTORIZED_LOCATIONS instead
2172 REPORT_VECTORIZED_LOOPS.
2173 * tree-vectorizer.c (vect_verbosity_level): Make static.
2174 (vect_loop_location): Rename to vect_location.
2175 (vect_set_verbosity_level): Update comment.
2176 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2177 and vect_location.
2178 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2179 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2180 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
2181 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2182 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 2183 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 2184 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
2185 REPORT_UNVECTORIZED_LOCATIONS.
2186 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2187 and vect_used_in_loop and to vect_unused_in_scope and
2188 vect_used_in_scope.
2189 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2190 (vect_verbosity_level): Remove declaration.
2191 (vect_analyze_operations): Likewise.
2192 (vect_analyze_stmt): Declare.
2193 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2194 REPORT_UNVECTORIZED_LOCATIONS.
2195 (vect_get_loop_niters): Fix indentation.
2196 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2197 (vect_analyze_loop_operations): New function.
2198 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2199 vect_analyze_operations.
2200 (vect_is_simple_reduction): Use new names.
2201 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
2202 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2203 to specify whether the data references can be a part of interleaving
2204 chain.
8644a673
IR
2205 (vect_analyze_data_ref_dependence): Use new names.
2206 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2207 (vect_create_addr_base_for_vector_ref): Remove redundant code.
2208 * tree-vect-patterns.c (widened_name_p): Use new names.
2209 (vect_recog_dot_prod_pattern): Likewise.
2210 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2211 (process_use, vect_mark_stmts_to_be_vectorized,
2212 vect_model_simple_cost, vect_model_store_cost,
2213 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2214 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2215 vectorizable_operation, vectorizable_type_demotion,
2216 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2217 vectorizable_condition): Likewise.
2218 (vect_analyze_operations): Split into vect_analyze_loop_operations
2219 and ...
2220 (vect_analyze_stmt): ... new function.
2221 (new_stmt_vec_info): Use new names.
2222 (vect_is_simple_use): Use new names and fix comment.
2223 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2224 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2225
b91322f2
UB
22262009-04-28 Uros Bizjak <ubizjak@gmail.com>
2227
2228 PR target/39911
2229 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2230 and integer modes for x87 operands. Do not ICE for unsupported size,
2231 generate error instead. Generate error for unsupported operand types.
2232 ['z']: Do not handle HImode memory operands specially. Warning
2233 for floating-point operands. Fallthru to 'Z' for unsupported operand
2234 types. Do not ICE for unsupported size, generate error instead.
2235 (output_387_binary_op): Use %Z to output operands.
2236 (output_fp_compare): Ditto.
2237 (output_387_reg_move): Ditto.
2238
b2ed71b6
BE
22392009-04-28 Ben Elliston <bje@au.ibm.com>
2240
2241 PR c++/35652
2242 Revert:
2243
2244 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2245
2246 * builtins.c (c_strlen): Do not warn here.
2247 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2248 * c-common.c (pointer_int_sum): Take an explicit location.
2249 Warn about offsets out of bounds.
2250 * c-common.h (pointer_int_sum): Adjust declaration.
2251
81f40b79
ILT
22522009-04-27 Ian Lance Taylor <iant@google.com>
2253
2254 * collect2.c (is_ctor_dtor): Change type of ret field in struct
2255 names to symkind.
2256 * dce.c (run_fast_df_dce): Change type of old_flags to int.
2257 * df-core.c (df_set_flags): Change return type to int. Change
2258 type of old_flags to int.
2259 (df_clear_flags): Likewise.
2260 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2261 (df_get_conditional_uses): Likewise.
2262 * df.h (df_set_flags, df_clear_flags): Update declarations.
2263 * dwarf2out.c (struct indirect_string_node): Change type of form
2264 field to enum dwarf_form.
2265 (AT_string_form): Change return type to enum dwarf_form.
2266 * fixed-value.c (fixed_compare): Add cast to enum type.
2267 * fwprop.c (update_df): Change 0 to VOIDmode.
2268 * gensupport.c: Change 0 to UNKNOWN.
2269 * gimple.h (gimple_cond_code): Add cast to enum type.
2270 * haifa-sched.c (reemit_notes): Add cast to enum type.
2271 * hooks.c (hook_int_void_no_regs): Remove function.
2272 * hooks.h (hook_int_void_no_regs): Remove declaration.
2273 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 2274 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
2275 * real.c (real_arithmetic): Add cast to enum type.
2276 (real_compare): Likewise.
2277 * target.h (struct gcc_target): Change return type of
2278 branch_target_register_class to enum reg_class.
2279 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2280 default_branch_target_register_class.
7a00d767 2281 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 2282 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 2283 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
2284 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2285 cast to int.
2286 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2287 ERROR_MARK.
2288 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2289 vect_uninitialized_def. Change 0 to ERROR_MARK.
2290 * tree-vect-stmts.c (supportable_widening_operation): Don't
2291 initialize icode1 and icode2.
7a00d767 2292 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
2293 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2294 and to STD_C89.
2295 (cmn_err_flag_specs): Change 0 to STD_C89.
2296 (cmn_err_char_table): Likewise.
2297 * config/arm/arm.c (get_arm_condition_code): Change type of code
2298 to enum arm_cond_code.
2299 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2300 (IWMMXT_BUILTIN2): Likewise.
2301 (neon_builtin_type_bits): Don't define typedef.
2302 (neon_builtin_datum): Change type of bits field to int.
2303 (arm_expand_neon_args): Add cast to enum type.
2304 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2305 TLS_MODEL_NONE.
2306 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
2307 casts to enum type.
2308 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2309 MIPS_FP_COND_f.
2310 * config/mips/mips.md (jal_macro): Return enum constant.
2311 (single_insn): Likewise.
2312 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2313 CODE_FOR_nothing.
2314 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2315 casts to enum type.
2316 * config/s390/s390.c (s390_tune_flags): Change type to int.
2317 (s390_arch_flags): Likewise.
7a00d767 2318 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
2319 * config/s390/s390.h (s390_tune_flags): Update declaration.
2320 (s390_arch_flags): Likewise.
2321 * config/sh/sh.c (prepare_move_operands): Compare
2322 tls_symbolic_operand result with enum constant.
2323 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2324 (sh_expand_prologue): Add cast to enum type.
2325 (sh_expand_epilogue): Likewise.
2326 (tls_symbolic_operand): Change return type to enum tls_model.
2327 (fpscr_set_from_mem): Add cast to enum type.
2328 (legitimize_pic_address): Compare tls_symbolic_operand result with
2329 enum constant.
2330 (sh_target_reg_class): Change return type to enum reg_class.
2331 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2332 PROCESSOR_xxx.
7a00d767
UB
2333 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2334 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
2335 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2336 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2337 (delayed_branch, tls_call_delay): Likewise.
2338 (eligible_for_sibcall_delay): Likewise.
2339 (eligible_for_return_delay): Likewise.
2340 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2341 (spu_expand_builtin_1): Likewise.
2342
2343 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2344 for all types of conversions.
2345 (output_init_element): Issue -Wc++-compat warning if needed when
2346 initializing a bitfield with enum type.
2347 * c-parser.c (c_parser_expression): Set original_type to
2348 original_type of right hand operand of comman operator.
2349
e4ae5e77
RW
23502009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2351
2352 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2353 grammar nits.
7a00d767 2354 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
2355 * doc/cpp.texi (Standard Predefined Macros)
2356 (Implementation-defined behavior): Likewise.
7a00d767 2357 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
2358 * doc/gimple.texi (GIMPLE Exception Handling)
2359 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 2360 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
2361 * doc/invoke.texi (Warning Options, Optimize Options)
2362 (AVR Options, Darwin Options): Likewise.
2363 (Optimize Options): Reformulate -fwhole-program description.
2364 * doc/loop.texi (Lambda): Likewise.
2365 * doc/md.texi (Output Template, Define Constraints)
2366 (Standard Names, Insn Splitting): Likewise.
2367 * doc/options.texi (Option properties): Likewise.
2368 * doc/passes.texi (Tree-SSA passes): Likewise.
2369 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2370 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2371 (File Names and DBX): Likewise.
2372 * doc/trouble.texi (Incompatibilities): Likewise.
2373
1883802f 23742009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
2375
2376 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2377 instruction is correct.
2378
1883802f 23792009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
2380
2381 Allow non-constant arguments to conversion intrinsics.
2382 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2383 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2384 * spu.c (print_operand): Handle 'v' and 'w'.
2385 (exp2_immediate_p, spu_gen_exp2): Define.
2386 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2387 spu_convtf_1): Update parameter descriptions.
7a00d767 2388 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
2389 * constraints.md ('v', 'w'): New.
2390 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2391 Remove.
2392 (i2f, I2F): New define_mode_attr.
2393 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2394 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2395 fixuns_truncv4sfv4si2): Update to use mode attribute.
2396 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2397 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2398 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2399 patterns for combine.
2400
5f39ad47
SB
24012009-04-27 Steven Bosscher <steven@gcc.gnu.org>
2402
2403 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2404 (cprop, hoist, pre, store_motion): New debug counters.
2405 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2406 is not an RTL pass anymore.
2407 (pass_profiling): Remove extern decl for pass removed in 2005.
2408 (pass_gcse, pass_jump_bypass): Remove.
2409 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2410 to 0 for clean state.
2411 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2412 * cse.c (gate_handle_cse_after_global_opts,
2413 rest_of_handle_cse_after_global_opts): New functions.
2414 (pass_cse_after_global_opts): New pass, does local CSE.
2415 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2416 (TV_CPROP): New timevar.
2417 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2418 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2419 (gcse_main, recompute_all_luids): Remove.
2420 (compute_hash_table_work): Call max_reg_num instead of reading
2421 max_gcse_regno.
2422 (cprop_jump): Don't set run_jump_opt_after_gcse.
2423 (constprop_register): Always allow to alter jumps.
2424 (cprop_insn): Likewise.
2425 (do_local_cprop): Likewise.
2426 (local_cprop_pass): Likewise. Return non-zero if something changed.
2427 (cprop): Remove function, fold interesting bits into one_cprop_pass.
2428 (find_implicit_sets): Add note about missed optimization opportunity.
2429 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2430 pass_rtl_cprop execute function.
2431 Don't bother tracking the pass number, each pass gets its own dumpfile
2432 now anyway.
2433 Always allow to alter jumpsand bypass jumps.
2434 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
2435 will just find no suitable set.
2436 (pre_edge_insert): Fix dumping, this function is for PRE only.
2437 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
2438 pass_rtl_pre execute function.
2439 (hoist_code): Return non-zero if something changed. Keep track of
2440 substitutions and insertions for statistics gathering similar to PRE.
2441 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
2442 called from the pass_rtl_hoist execute function. Show pass statistics.
2443 (compute_store_table): Use max_reg_num directly instead of using the
2444 formerly global max_gcse_regno.
2445 (build_store_vectors): Likewise.
2446 (replace_store_insn): Fix dumping.
2447 (store_motion): Rename to ...
2448 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
2449 pass, called from the pass_rtl_store_motion execute function. Keep
2450 track of substitutions and insertions for statistics gathering similar
2451 to PRE.
2452 (bypass_jumps): Remove, fold interesting bits into ...
2453 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
2454 from the pass_rtl_cprop execute function.
2455 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
2456 pass_jump_bypass): Remove.
2457 (gate_handle_gcse, rest_of_handle_gcse): Remove.
2458 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
2459 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
2460 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
2461 (gate_rtl_store_motion, execute_rtl_store_motion,
2462 pass_rtl_store_motion): New.
2463 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
2464 make it clear that -fcse-skip-blocks is a no-op for backward compat.
2465 * passes.c (init_optimization_passes): Remove pass_gcse and
2466 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
2467 and cse_after_global_opts in place of pass_gcse. Schedule cprop
2468 instead of pass_jump_bypass.
2469
c685de4a
RG
24702009-04-27 Richard Guenther <rguenther@suse.de>
2471
2472 PR middle-end/39928
2473 * gimplify.c (gimplify_expr): If we are required to create
2474 a temporary make sure it ends up as register.
2475
72d41f29
L
24762009-04-27 H.J. Lu <hongjiu.lu@intel.com>
2477
2478 PR target/39903
2479 * config/i386/i386.c (construct_container): Don't call
2480 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
2481 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
2482
e97809c6
MM
24832009-04-27 Michael Matz <matz@suse.de>
2484
2485 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
2486 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
2487 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
2488 (dump_replaceable_exprs): Take a bitmap.
2489 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
2490 array.
2491 (expand_gimple_basic_block): Likewise.
2492 * tree-ssa-ter.c (struct temp_expr_table_d): Make
2493 replaceable_expressions member a bitmap.
2494 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
2495 (mark_replaceable): Likewise.
2496 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
2497 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
2498
211ca15c
RG
24992009-04-27 Richard Guenther <rguenther@suse.de>
2500
2501 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
2502 (verify_stmts): Dispatch to gimple/type verification code.
2503 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
2504 issue with call argument types.
2505
fca5f3d1
MM
25062009-04-27 Michael Matz <matz@suse.de>
2507
2508 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
2509 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
2510 to above.
2511
a1fa3e79 25122009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 2513 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
2514
2515 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
2516 a label's basic block.
2517 (mark_target_live_regs): Tidy and rework obsolete comments.
2518 Change back DF problem to LIVE. If a label starts a basic block,
2519 assume that all registers that used to be live then still are.
2520 (init_resource_info): If a label starts a basic block, set its
2521 BLOCK_FOR_INSN accordingly.
2522 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
2523
33b223c0
RG
25242009-04-27 Richard Guenther <rguenther@suse.de>
2525
2526 * tree-flow-inline.h (function_ann): Remove.
2527 (get_function_ann): Likewise.
2528 * tree-dfa.c (create_function_ann): Remove.
2529 * tree-flow.h (struct static_var_ann_d): Remove.
2530 (struct function_ann_d): Likewise.
2531 (union tree_ann_d): Remove fdecl member.
2532 (function_ann_t): Remove.
2533 (function_ann, get_function_ann, create_function_ann): Remove
2534 declarations.
2535
e3136fa2
UB
25362009-04-27 Uros Bizjak <ubizjak@gmail.com>
2537
2538 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
2539
f87c9042
JH
25402009-04-27 Jan Hubicka <jh@suse.cz>
2541
2542 * ipa-pure-const.c (struct funct_state_d): New fields
2543 state_previously_known, looping_previously_known; remove
2544 state_set_in_source.
2545 (analyze_function): Use new fields.
2546 (propagate): Avoid assumption that state_set_in_source imply
2547 nonlooping.
2548
2549 * tree-ssa-loop-niter.c (finite_loop_p): New function.
2550 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
2551 * cfgloop.h (finite_loop_p): Declare.
2552
33abd718
MM
25532009-04-26 Michael Matz <matz@suse.de>
2554
e3136fa2 2555 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 2556
ddc34084
MM
25572009-04-26 Michael Matz <matz@suse.de>
2558
2559 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
2560 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
2561 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
2562 pass_mark_used_blocks): Remove.
2563 * tree-optimize.c (pass_free_datastructures,
2564 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
2565 * passes.c (init_optimization_passes): Don't call
2566 pass_mark_used_blocks, remove dead code.
2567
1fec7ed4
L
25682009-04-26 H.J. Lu <hongjiu.lu@intel.com>
2569
2570 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
2571 * tree-ssa-live.h (register_ssa_partition): Likewise.
2572
4e3825db
MM
25732009-04-26 Michael Matz <matz@suse.de>
2574
2575 Expand from SSA.
2576 * builtins.c (fold_builtin_next_arg): Handle SSA names.
2577 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
2578 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
2579 SSA names.
2580 (compare_pairs): Swap cost comparison.
2581 (coalesce_ssa_name): Don't use change_partition_var.
2582 * tree-nrv.c (struct nrv_data): Add modified member.
2583 (finalize_nrv_r): Set it.
2584 (tree_nrv): Use it to update statements.
2585 (pass_nrv): Require PROP_ssa.
2586 * tree-mudflap.c (mf_decl_cache_locals,
2587 mf_build_check_statement_for): Use make_rename_temp.
2588 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
2589 * alias.c (find_base_decl): Handle SSA names.
2590 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
2591 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
2592 * rtl.h (set_reg_attrs_for_parm): Declare.
2593 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
2594 to "optimized", remove unused locals at finish.
2595 (execute_free_datastructures): Make global, call
2596 delete_tree_cfg_annotations.
2597 (execute_free_cfg_annotations): Don't call
2598 delete_tree_cfg_annotations.
2599
2600 * ssaexpand.h: New file.
2601 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 2602 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
2603 (expand_expr_real_1): Expand SSA names.
2604 * cfgexpand.c (toplevel): Include ssaexpand.h.
2605 (SA): New global variable.
2606 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
2607 (SSAVAR): New macro.
2608 (set_rtl): New helper function.
2609 (add_stack_var): Deal with SSA names, use set_rtl.
2610 (expand_one_stack_var_at): Likewise.
2611 (expand_one_stack_var): Deal with SSA names.
2612 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
2613 before unique numbers.
2614 (expand_stack_vars): Use set_rtl.
2615 (expand_one_var): Accept SSA names, add asserts for them, feed them
2616 to above subroutines.
2617 (expand_used_vars): Expand all partitions (without default defs),
2618 then only the local decls (ignoring those expanded already).
2619 (expand_gimple_cond): Remove edges when jumpif() expands an
2620 unconditional jump.
2621 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
2622 or remove abnormal edges. Ignore insns setting the LHS of a TERed
2623 SSA name.
2624 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
2625 members of SA; deal with PARM_DECL partitions here; expand
2626 all PHI nodes, free tree datastructures and SA. Commit instructions
2627 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
2628 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
2629 info and statements at start, collect garbage at finish.
2630 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
2631 (VAR_ANN_PARTITION) Remove.
2632 (change_partition_var): Don't declare.
2633 (partition_to_var): Always return SSA names.
2634 (var_to_partition): Only accept SSA names.
2635 (register_ssa_partition): Only check argument.
2636 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
2637 member.
2638 (delete_var_map): Don't free it.
2639 (var_union): Only accept SSA names, simplify.
2640 (partition_view_init): Mark only useful SSA names as used.
2641 (partition_view_fini): Only deal with SSA names.
2642 (change_partition_var): Remove.
2643 (dump_var_map): Use ssa_name instead of partition_to_var member.
2644 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
2645 basic blocks.
2646 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
2647 (struct _elim_graph): New member const_dests; nodes member vector of
2648 ints.
2649 (set_location_for_edge): New static helper.
2650 (create_temp): Remove.
2651 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 2652 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
2653 (new_elim_graph): Allocate const_dests member.
2654 (clean_elim_graph): Truncate const_dests member.
2655 (delete_elim_graph): Free const_dests member.
2656 (elim_graph_size): Adapt to new type of nodes member.
2657 (elim_graph_add_node): Likewise.
2658 (eliminate_name): Likewise.
2659 (eliminate_build): Don't take basic block argument, deal only with
2660 partition numbers, not variables.
2661 (get_temp_reg): New static helper.
2662 (elim_create): Use it, deal with RTL temporaries instead of trees.
2663 (eliminate_phi): Adjust all calls to new signature.
2664 (assign_vars, replace_use_variable, replace_def_variable): Remove.
2665 (rewrite_trees): Only do checking.
2666 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
2667 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
2668 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
2669 contains_tree_r, MAX_STMTS_IN_LATCH,
2670 process_single_block_loop_latch, analyze_edges_for_bb,
2671 perform_edge_inserts): Remove.
2672 (expand_phi_nodes): New global function.
2673 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
2674 functions, initialize new parameter, remember partitions having a
2675 default def.
2676 (finish_out_of_ssa): New global function.
2677 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
2678 don't reset in_ssa_p here, don't disable TER when mudflap.
2679 (pass_del_ssa): Remove.
2680 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
2681 partition members.
2682 (execute_free_datastructures): Declare.
2683 * Makefile.in (SSAEXPAND_H): New variable.
2684 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
2685 * basic-block.h (commit_one_edge_insertion): Declare.
2686 * passes.c (init_optimization_passes): Move pass_nrv and
2687 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
2688 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
2689 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
2690 (redirect_branch_edge): Deal with super block when expanding, split
2691 out jump patching itself into ...
2692 (patch_jump_insn): ... here, new static helper.
2693
17c665a9
MM
26942009-04-26 Michael Matz <matz@suse.de>
2695
2696 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
2697 beyond num_ssa_names.
2698 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
2699 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
2700
92061771
JJ
27012009-04-26 Jakub Jelinek <jakub@redhat.com>
2702
ce372372
JJ
2703 PR inline-asm/39543
2704 * fwprop.c (forward_propagate_asm): New function.
2705 (forward_propagate_and_simplify): Propagate also into __asm, if it
2706 doesn't increase the number of referenced registers.
2707
92061771
JJ
2708 PR c/39889
2709 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
2710
27112009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
2712
2713 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
2714 note_nonlocal_vla_type for nonlocal VLAs.
2715 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
2716 contains_remapped_vars, remap_vla_decls): New functions.
2717 (convert_nonlocal_reference_stmt): If not optimizing, call
2718 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
2719 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
2720 if it wasn't found in var_map.
2721 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
2722 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
2723 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
2724 declare_vars.
2725 * gimplify.c (nonlocal_vlas): New variable.
2726 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
2727 referenced VLAs.
2728 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 2729
4561e242
JJ
2730 * dwarf2out.c (loc_descr_plus_const): New function.
2731 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
2732 mem_loc_descriptor, loc_descriptor_from_tree_1,
2733 descr_info_loc, gen_variable_die): Use it.
2734
a9548ddf
JJ
2735 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
2736 !TREE_STATIC VAR_DECLs.
2737 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
2738 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
2739 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
2740 DECL_BY_REFERENCE is valid.
2741 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
2742 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
2743 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
2744 Copy DECL_BY_REFERENCE.
2745 (struct nesting_copy_body_data): New type.
2746 (nesting_copy_decl): New function.
2747 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
2748 if they have variable length.
2749
10555d08
MM
27502009-04-26 Michael Matz <matz@suse.de>
2751
2752 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
2753 mark new temporaries for renaming.
2754
e11187cc
JM
27552009-04-26 Joseph Myers <joseph@codesourcery.com>
2756
2757 PR c/39581
2758 * c-decl.c (global_bindings_p): Return negative value.
2759 (c_variable_size): New. Based on variable_size from
2760 stor-layout.c.
2761 (grokdeclarator): Call c_variable_size not variable_size.
2762
f6a51d31
UB
27632009-04-26 Uros Bizjak <ubizjak@gmail.com>
2764
2765 * config/i386/i386.c (print_operand) ['z']: Fix typo.
2766
4b97723d
KT
27672009-04-26 Kai Tietz <kai.tietz@onevision.com>
2768
2769 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
2770 Redefine it to just use mingw/include.
2771 (ASM_SPEC): Rules for -m32 and -m64.
2772 (LINK_SPEC): Use Likewise.
2773 (SPEC_32): New define.
2774 (SPEC_64): Likewise.
2775 (SUB_LINK_SPEC): Likewise.
2776 (MULTILIB_DEFAULTS): New define.
2777 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
2778 Add multilib options.
2779 (MULTILIB_DIRNAMES): Likewise.
2780 (MULTILIB_OSDIRNAMES): Likewise.
2781 (LIBGCC): Likewise.
2782 (INSTALL_LIBGCC): Likewise.
2783
991d6621
JM
27842009-04-26 Joseph Myers <joseph@codesourcery.com>
2785
2786 PR c/39556
2787 * c-tree.h (enum c_inline_static_type): New.
2788 (record_inline_static): Declare.
2789 * c-decl.c (struct c_inline_static, c_inline_statics,
2790 record_inline_static, check_inline_statics): New.
2791 (pop_file_scope): Call check_inline_statics.
2792 (start_decl): Call record_inline_static instead of pedwarning
2793 directly for static in inline function.
2794 * c-typeck.c (build_external_ref): Call record_inline_static
2795 instead of pedwarning directly for static referenced in inline
2796 function.
2797
4a81774c
SB
27982009-04-26 Steven Bosscher <steven@gcc.gnu.org>
2799
2800 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
2801 not new but only being rescanned.
2802 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
2803 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
2804 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
2805 record_set_info, compute_set, grealloc): Remove.
2806 (recompute_all_luids): New function.
2807 (gcse_main): Don't compute sets, and don't do related memory
2808 allocations/free-ing. If something changed before the end of the
2809 pass, update LUIDs using recompute_all_luids.
2810 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
2811 (free_gcse_mem): Don't free it either.
2812 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
2813 Use the df insn LUIDs.
2814 (load_killed_in_block): Likewise.
2815 (compute_hash_table_work): Don't compute reg_set_in_block.
2816 (compute_transp): Use DF_REG_DEF_CHAINs.
2817 (local_cprop_pass): Don't use compute_sets and related functions.
2818 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
2819 Use get_max_uid() instead of max_cuid.
2820 (insert_insn_end_basic_block, pre_insert_copy_insn,
2821 update_ld_motion_stores): Don't try to
2822 keep reg_set tables up to date.
2823 (pre_insert_copies): Use df insn LUIDs.
2824 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
2825 (reg_set_info): Don't use extra bitmap argument.
2826 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
2827 information to compute regs_set_in_block.
2828 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
2829 (bypass_jumps): Don't use compute_sets and friends.
2830
e8f99a9d
RW
28312009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2832
2833 PR testsuite/39710
2834 * opts.c (undocumented_msg): Do not leave blank even with
2835 ENABLE_CHECKING.
2836
6895bac8
JM
28372009-04-25 Joseph Myers <joseph@codesourcery.com>
2838
2839 * c-decl.c (build_enumerator): Allow values folding to integer
2840 constants but not integer constant expressions with a pedwarn if
2841 pedantic.
2842
24070fcb
JM
28432009-04-25 Joseph Myers <joseph@codesourcery.com>
2844
2845 PR c/39582
2846 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
2847 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
2848 type is an integer constant.
2849
d6d89aa1
UB
28502009-04-25 Uros Bizjak <ubizjak@gmail.com>
2851
2852 PR target/39897
2853 * config/i386/i386.c (print_operand) ['z']: Revert handling of
2854 HImode operands.
2855
92f6fd0b
JM
28562009-04-25 Joseph Myers <joseph@codesourcery.com>
2857
2858 PR c/39564
2859 * c-decl.c (grokdeclarator): Diagnose declarations of functions
2860 with variably modified return type and no storage class
2861 specifiers, except for the case of nested functions. Distinguish
2862 extern declarations of functions with variably modified return
2863 types from those of objects with variably modified types.
2864
a3710436
JH
28652009-04-25 Jan Hubicka <jh@suse.cz>
2866
2867 * tree.c (list_equal_p): New function.
2868 * tree.h (list_equal_p): Declare.
2869 * coretypes.h (edge_def, edge, const_edge, basic_block_def
2870 basic_block_def, basic_block, const_basic_block): New.
2871 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
2872 (redirect_eh_edge): New function.
2873 (make_eh_edge_update_phi): EH edges are not abnormal.
2874 * except.c: Include tree-flow.h.
2875 (list_match): New function.
2876 (eh_region_replaceable_by_p): New function.
2877 (replace_region): New function.
2878 (hash_type_list): New function.
2879 (hash_eh_region): New function.
2880 (eh_regions_equal_p): New function.
2881 (merge_peers): New function.
2882 (remove_unreachable_regions): Verify EH tree when checking;
2883 merge peers.
2884 (copy_eh_region_1): New function.
2885 (copy_eh_region): New function.
2886 (push_reachable_handler): New function.
2887 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
2888 regions without label but with live RESX.
2889 * except.h (redirect_eh_edge_to_label): New.
2890 * tree-flow.h (redirect_eh_edge): New.
2891 * coretypes.h (edge_def, edge, const_edge, basic_block_def
2892 basic_block_def, basic_block, const_basic_block): Remove.
2893 * Makefile.in (except.o): Add dependency on tree-flow.h
2894 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
2895 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
2896 Remove.
2897
3764d512
EB
28982009-04-25 Eric Botcazou <ebotcazou@adacore.com>
2899
2900 PR bootstrap/39645
2901 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
2902 on the destination of memcpy.
2903
1c62e8f2
PB
29042009-04-25 Paolo Bonzini <bonzini@gnu.org>
2905
2906 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
2907 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
2908 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
2909
496a4ef5
JH
29102009-04-25 Jan Hubicka <jh@suse.cz>
2911
2912 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
2913 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
2914 to be reached by different label than left.
2915 (update_eh_edges): Update comment; remove edge_to_remove if possible
2916 and return true if suceeded.
2917 (cleanup_empty_eh): Accept sharing map; handle shared regions.
2918 (cleanup_eh): Compute sharing map.
2919 * except.c (remove_eh_handler_and_replace): Add argument if we should
2920 update regions.
2921 (remove_unreachable_regions): Update for label sharing.
2922 (label_to_region_map): Likewise.
2923 (get_next_region_sharing_label): New function.
2924 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
2925 prev_try pointers.
2926 (remove_eh_handler): Update.
2927 (remove_eh_region_and_replace_by_outer_of): New function.
2928 * except.h (struct eh_region): Add next_region_sharing_label.
2929 (remove_eh_region_and_replace_by_outer_of,
2930 get_next_region_sharing_label): Declare.
2931 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
2932
29332009-04-25 Jan Hubicka <jh@suse.cz>
2934
2935 * tree-cfg.c (split_critical_edges): Split also edges where we can't
2936 insert code even if they are not critical.
2937
29382009-04-25 Jan Hubicka <jh@suse.cz>
2939
2940 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2941 (gimple_can_remove_branch_p): EH edges won't remove branch by
2942 redirection.
2943 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
2944 updating of non-abnormal EH edges.
2945 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
2946 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
2947 (split_critical_edges): Split also edges where emitting code on them
2948 will lead to splitting later.
2949
a3a5e3d1
UB
29502009-04-25 Uros Bizjak <ubizjak@gmail.com>
2951 H.J. Lu <hongjiu.lu@intel.com>
2952
2953 PR target/39590
2954 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
2955 the configured assembler supports fildq and fistpq mnemonics.
2956 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
2957 * configure: Regenerated.
2958 * config.in: Ditto.
2959
2960 * config/i386/i386.c (print_operand): Handle 'Z'.
2961 ['z']: Remove handling of special fild/fist suffixes.
2962 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
2963 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
2964 suffix of fild insn.
2965 (*floatsi<mode>2_vector_mixed): Ditto.
2966 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
2967 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
2968 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
2969 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
2970 * config/i386/gas.h (GAS_MNEMONICS): Remove.
2971
23750d7f
BE
29722009-04-25 Ben Elliston <bje@au.ibm.com>
2973
2974 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
2975 the source of a set operation.
2976
e6ff3083
AS
29772009-04-25 Anatoly Sokolov <aesok@post.ru>
2978
2979 * target.h (struct gcc_target): Add case_values_threshold field.
2980 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
2981 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
2982 * targhooks.c (default_case_values_threshold): New function.
2983 * targhooks.h (default_case_values_threshold): Declare function.
2984 * stmt.c (expand_case): Use case_values_threshold target hook.
2985 * expr.h (case_values_threshold): Remove declartation.
2986 * expr.c (case_values_threshold): Remove function.
2987 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
2988
2989 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
2990 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2991 (avr_case_values_threshold): Declare as static.
2992 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
2993
2994 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
2995 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2996 (mn10300_case_values_threshold): New function.
2997
569c72fc
L
29982009-04-24 H.J. Lu <hongjiu.lu@intel.com>
2999
3000 * ira.c (setup_cover_and_important_classes): Add enum cast.
3001
ff3cb468
VM
30022009-04-24 Vladimir Makarov <vmakarov@redhat.com>
3003
3004 * genpreds.c (write_enum_constraint_num): Output definition of
3005 CONSTRAINT_NUM_DEFINED_P macro.
3006 * ira.c (setup_cover_and_important_classes): Use
3007 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
3008
4f7be849
DD
30092009-04-24 DJ Delorie <dj@redhat.com>
3010
3011 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
3012 __SH2A_SINGLE_ONLY__ also.
3013
735b94a7
SE
30142009-04-24 Steve Ellcey <sje@cup.hp.com>
3015
3016 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
3017 (movdf_internal): Ditto.
3018 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
3019 SFmode and DFmode constants.
3020 (ia64_print_operand): Add 'G' format for printing
3021 floating point constants.
3022
77a30264
RG
30232009-04-24 Richard Guenther <rguenther@suse.de>
3024
3025 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
3026 from unsigned additions.
3027
2b6da65c
JM
30282009-04-24 Joseph Myers <joseph@codesourcery.com>
3029
3030 * c-typeck.c (set_init_index): Allow array designators that are
3031 not integer constant expressions with a pedwarn if pedantic.
3032
f5a17c43
BS
30332009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3034
3035 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
3036 zero if no overlap in nonzero bits between the operands.
3037
32e8bb8e
ILT
30382009-04-24 Ian Lance Taylor <iant@google.com>
3039
3040 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
3041 (record_dead_and_set_regs): Likewise.
3042 * df.h (struct df_mw_hardreg): Change flags field to int.
3043 (struct df_base_ref): Likewise.
3044 (struct df): Change changeable_flags field to int.
3045 * df-scan.c (df_defs_record): Change clobber_flags to int.
3046 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
3047 constants rather than #define macros.
3048 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
3049 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
3050 (enum dwarf_calling_convention): Likewise.
3051 (enum dwarf_line_number_x_ops): Likewise.
3052 (enum dwarf_call_frame_info): Likewise.
3053 (enum dwarf_source_language): Likewise.
3054 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
3055 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
3056 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
3057 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
3058 * genrecog.c (maybe_both_true_2): Change c to int.
3059 (write_switch): Likewise. Add cast to enum type.
3060 * gimplify.c (gimplify_omp_for): Handle return values from
3061 gimplify_expr using MIN rather than bitwise or.
3062 (gimplify_expr): Add cast to enum type.
3063 * ipa-prop.c (update_jump_functions_after_inlining): Change
3064 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
3065 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
3066 Add casts to enum type.
32e8bb8e
ILT
3067 (setup_cover_and_important_classes): Change cl to int. Add casts
3068 to enum type.
3069 (setup_class_translate): Change cl and mode to int.
3070 (ira_init_once): Change mode to int.
3071 (free_register_move_costs): Likewise.
3072 (setup_prohibited_mode_move_regs): Add casts to enum type.
3073 * langhooks.c (add_builtin_function_common): Rework assertion that
3074 value fits bitfield.
3075 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
3076 * omega.c (omega_do_elimination): Avoid math on enum types.
3077 * optabs.c (expand_vec_shift_expr): Remove casts to int.
3078 * opts.c (set_debug_level): Change 2 to enum constant. Use new
3079 int local to handle integral_argment value.
3080 * regmove.c (try_auto_increment): Change PUT_MODE to
3081 PUT_REG_NOTE_KIND.
3082 * reload.c (push_secondary_reload): Add casts to enum type.
3083 (secondary_reload_class, find_valid_class): Likewise.
3084 * reload1.c (emit_input_reload_insns): Likewise.
3085 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
3086 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
3087 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
3088 constant.
3089 * tree.c (build_common_builtin_nodes): Add casts to enum type.
3090 * tree-complex.c (complex_lattice_t): Typedef to int rather than
3091 enum type.
3092 (expand_complex_libcall): Add casts to enum type.
3093 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3094 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3095 with ERROR_MARK, not NUM_TREE_CODES.
3096 (vect_create_epilog_for_reduction): Likewise.
3097 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 3098 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
3099 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3100 enum machine_mode.
3101 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3102 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 3103 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
3104 * var-tracking.c (get_init_value): Change return type to enum
3105 var_init_status.
3106 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3107 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3108 arm_fp_model.
3109 (arm_override_options): Add casts to enum type.
3110 (arm_emit_tls_decoration): Likewise.
3111 * config/i386/i386.c (ix86_function_specific_restore): Add casts
3112 to enum type.
3113 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3114 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3115 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3116 enum type.
3117 * config/s390/s390.c (code_for_builtin_64): Change to array of
3118 enum insn_code.
3119 (code_for_builtin_31): Likewise.
3120 (s390_expand_builtin): Change code_for_builtin to enum insn_code
3121 const *.
3122 * config/sparc/sparc.c (sparc_override_options): Change value
3123 field in struct code_model to enum cmodel. In initializer change
3124 0 to NULL and add cast to enum type.
3125
3126 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3127 Change all callers. Issue a -Wc++-compat warning using
3128 lhs_origtype if necessary.
3129 (convert_for_assignment): Issue -Wc++-compat warnings about
3130 invalid conversions to enum type on assignment.
3131 * c-common.h (build_modify_expr): Update declaration.
3132
ac4fc08a
NC
31332009-04-24 Nick Clifton <nickc@redhat.com>
3134
3135 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3136 (function_arg_advance): Likewise.
3137 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3138 5th alternative.
3139
f22e891a
AK
31402009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
3141
3142 * config/s390/constraints.md ('I', 'J'): Fix condition.
3143
ad58aabe
DN
31442009-04-24 Diego Novillo <dnovillo@google.com>
3145
3146 * gengtype-parse.c (parse_error): Add newline after message.
3147
879a4a01
L
31482009-04-24 H.J. Lu <hongjiu.lu@intel.com>
3149
3150 * config/i386/sse.md (avxmodesuffixs): Removed.
3151 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3152 (*avx_pinsr<ssevecsize>): This.
3153
f63426af
BS
31542009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3155
3156 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3157 follow chains of regs with a single definition, and allow expressions
3158 that are function_invariant_p.
ce72fe6c 3159 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 3160
30349c74
PB
31612009-04-24 Paolo Bonzini <bonzini@gnu.org>
3162
3163 PR middle-end/39867
3164 * fold-const.c (fold_cond_expr_with_comparison): When folding
3165 > and >= to MAX, make sure the MAX uses the same type as the
3166 comparison's operands.
3167
8d8256c1
NC
31682009-04-24 Nick Clifton <nickc@redhat.com>
3169
3170 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3171 addressing for DImode accesses.
3172 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 3173 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 3174
6216f94e
JJ
31752009-04-24 Jakub Jelinek <jakub@redhat.com>
3176
3177 PR rtl-optimization/39794
3178 * alias.c (canon_true_dependence): Add x_addr argument.
3179 * rtl.h (canon_true_dependence): Adjust prototype.
3180 * cse.c (check_dependence): Adjust canon_true_dependence callers.
3181 * cselib.c (cselib_invalidate_mem): Likewise.
3182 * gcse.c (compute_transp): Likewise.
3183 * dse.c (scan_reads_nospill): Likewise.
3184 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
3185 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3186 canon_base_addr of the group, plus optional offset.
3187 (struct group_info): Rename canon_base_mem to
3188 canon_base_addr.
3189 (get_group_info): Set canon_base_addr to canon_rtx of base, not
3190 canon_rtx of base_mem.
3191
6de7a512
PB
31922009-04-23 Paolo Bonzini <bonzini@gnu.org>
3193
3194 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3195 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3196
4a3a2376
UW
31972009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3198
3199 * config/spu/spu-builtins.h: Delete file.
3200
3201 * config/spu/spu.h (enum spu_builtin_type): Move here from
3202 spu-builtins.h.
3203 (struct spu_builtin_description): Likewise. Add GTY marker.
3204 Do not use enum spu_function_code or enum insn_code.
3205 (spu_builtins): Add extern declaration.
3206
3207 * config/spu/spu.c: Do not include "spu-builtins.h".
3208 (enum spu_function_code, enum spu_builtin_type_index,
3209 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3210 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3211 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3212 unsigned_V2DI_type_node): Move here from spu-builtins.h.
3213 (spu_builtin_types): Make static. Add GTY marker.
3214 (spu_builtins): Add extern declaration with GTY marker.
3215 Include "gt-spu.h".
3216
3217 * config/spu/spu-c.c: Do not include "spu-builtins.h".
3218 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3219 Check programmatically whether all parameters are scalar.
3220
3221 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3222
bbaba73f
EB
32232009-04-23 Eric Botcazou <ebotcazou@adacore.com>
3224
3225 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3226 assignment from the constructor either if the target is volatile.
3227
ee93c1c6
DJ
32282009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
3229
3230 * config/arm/arm.md (insv): Do not share operands[0].
3231
b2f21330
NS
32322009-04-23 Nathan Sidwell <nathan@codesourcery.com>
3233
3234 * config/vxlib-tls.c (active_tls_threads): Delete.
3235 (delete_hook_installed): New.
3236 (tls_delete_hook): Don't delete the delete hook.
3237 (tls_destructor): Delete it here.
3238 (__gthread_set_specific): Adjust installing the delete hook.
3239 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3240 __gthread_leave_tsd_dtor_context.
3241
4782dfa7
RAE
32422009-04-23 Rafael Avila de Espindola <espindola@google.com>
3243
3244 * c-format.c (gcc_tdiag_char_table): Add support for %E.
3245
bf758008
UB
32462009-04-23 Uros Bizjak <ubizjak@gmail.com>
3247
3248 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3249 enum type.
3250 (alpha_rtx_costs): Ditto.
3251 (emit_unlikely_jump): Use add_reg_note.
3252 (emit_frame_store_1): Ditto.
3253 (alpha_expand_prologue): Ditto.
3254 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3255 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3256
7323a100
NC
32572009-04-23 Nick Clifton <nickc@redhat.com>
3258
3259 * config/v850/v850.md (epilogue): Remove suppressed code.
3260 (return): Rename to return_simple and remove test of frame size.
3261 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3262 to gen_return_simple.
3263
360032ba
JY
32642009-04-22 Jing Yu <jingyu@google.com>
3265
3266 PR testsuite/39781
3267 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3268
53650abe
AP
32692009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
3270
3271 PR C/31499
3272 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3273 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
3274 value is a VECTOR_CST, the element type is the element type of the
3275 vector.
3276
89043e8a
DD
32772009-04-22 DJ Delorie <dj@redhat.com>
3278
3279 * config/m32c/m32c.h: Update GTY annotations to new syntax.
3280
023f059b
JJ
32812009-04-22 Jakub Jelinek <jakub@redhat.com>
3282
3283 * alias.c (find_base_term): Move around LO_SUM case, so that
3284 CONST falls through into PLUS/MINUS handling.
3285
2c0eba5a
JJ
3286 PR c/39855
3287 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3288 into 0, use omit_one_operand.
3289
9a461028
BE
32902009-04-23 Ben Elliston <bje@au.ibm.com>
3291
3292 * config/rs6000/linux-unwind.h (get_regs): Remove type
3293 puns. Change the type of `pc' to an array of unsigned ints and
3294 update all users. Constify frame24.
3295
653e2568
DD
32962009-04-22 DJ Delorie <dj@redhat.com>
3297
3298 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3299 declarations before code.
3300 (current_function_special_page_vector): Likewise.
3301 (m32c_expand_insv): Silence a warning.
3302
60839f5d 33032009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
3304
3305 * alias.c: Update GTY annotations to new syntax.
3306 * basic-block.h: Likewise.
3307 * bitmap.h: Likewise.
3308 * c-common.h: Likewise.
3309 * c-decl.c: Likewise.
3310 * c-parser.c: Likewise.
3311 * c-pragma.c: Likewise.
3312 * c-tree.h: Likewise.
3313 * cfgloop.h: Likewise.
3314 * cgraph.h: Likewise.
3315 * config/alpha/alpha.c: Likewise.
3316 * config/arm/arm.h: Likewise.
3317 * config/avr/avr.h: Likewise.
3318 * config/bfin/bfin.c: Likewise.
3319 * config/cris/cris.c: Likewise.
3320 * config/darwin.c: Likewise.
3321 * config/frv/frv.c: Likewise.
3322 * config/i386/i386.c: Likewise.
3323 * config/i386/i386.h: Likewise.
3324 * config/i386/winnt.c: Likewise.
3325 * config/ia64/ia64.h: Likewise.
3326 * config/iq2000/iq2000.c: Likewise.
3327 * config/mips/mips.c: Likewise.
3328 * config/mmix/mmix.h: Likewise.
3329 * config/pa/pa.c: Likewise.
3330 * config/pa/pa.h: Likewise.
3331 * config/rs6000/rs6000.c: Likewise.
3332 * config/s390/s390.c: Likewise.
3333 * config/sparc/sparc.c: Likewise.
3334 * config/xtensa/xtensa.c: Likewise.
3335 * cselib.h: Likewise.
3336 * dbxout.c: Likewise.
3337 * dwarf2out.c: Likewise.
3338 * except.c: Likewise.
3339 * except.h: Likewise.
3340 * fixed-value.h: Likewise.
3341 * function.c: Likewise.
3342 * function.h: Likewise.
3343 * gimple.h: Likewise.
3344 * integrate.c: Likewise.
3345 * optabs.c: Likewise.
3346 * output.h: Likewise.
3347 * real.h: Likewise.
3348 * rtl.h: Likewise.
3349 * stringpool.c: Likewise.
3350 * tree-data-ref.c: Likewise.
3351 * tree-flow.h: Likewise.
3352 * tree-scalar-evolution.c: Likewise.
3353 * tree-ssa-address.c: Likewise.
3354 * tree-ssa-alias.h: Likewise.
3355 * tree-ssa-operands.h: Likewise.
3356 * tree.c: Likewise.
3357 * tree.h: Likewise.
3358 * varasm.c: Likewise.
3359 * varray.h: Likewise.
3360 * vec.h: Likewise.
bf758008 3361 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
3362 * doc/gty.texi: Update GTY documentation to new syntax.
3363 * gengtype-lex.l: Enforce attribute-like syntax for GTY
3364 annotations on structs.
3365 * gengtype-parse.c: Likewise.
3366
a123d175
MH
33672009-04-22 Mark Heffernan <meheff@google.com>
3368
bf758008 3369 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 3370
4c7c486a
KH
33712009-04-22 Kazu Hirata <kazu@codesourcery.com>
3372
3373 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3374 where appropriate.
3375
6e782a29
KH
33762009-04-22 Kazu Hirata <kazu@codesourcery.com>
3377
3378 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3379 the same as a PLUS without a shift. Increase the cost of a
3380 CONST_INT in MULT.
3381
38d2336a
MLI
33822009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3383
3384 * Makefile.in: Update dependencies.
bf758008 3385 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
3386 * errors.h: Remove bogus comment about compatibility.
3387 (warning): Update declaration.
3388 * genautomata.c: Update all calls to warning.
3389 * gimple.c: Do not include errors.h. Include toplev.h.
3390 * tree-ssa-structalias.c: Do not include errors.h.
3391 * omega.c: Likewise.
3392 * tree-ssa-reassoc.c: Likewise.
3393 * config/spu/spu-c.c: Likewise.
3394 * config/spu/t-spu-elf: Update dependencies.
3395
aea4deba
RG
33962009-04-22 Richard Guenther <rguenther@suse.de>
3397
3398 PR tree-optimization/39824
3399 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3400 make sure the types are compatible.
3401
cfc93532
MLI
34022009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3403
3404 PR c++/14875
3405 * c-common.c (c_parse_error): Take a token_flags parameter.
3406 Use token_type for the token type instead.
3407 Pass token_flags to cpp_type2name.
3408 * c-common.h (c_parse_error): Update declaration.
3409 * c-parser.c (c_parser_error): Pass 0 as token flags.
3410
8632d02a
AB
34112009-04-22 Andrey Belevantsev <abel@ispras.ru>
3412
3413 PR rtl-optimization/39580
3414 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
3415
4c33221c
UW
34162009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3417
3418 * function.c (expand_function_end): Do not emit a jump to the "naked"
3419 return label for fall-through returns.
3420 * except.c (sjlj_emit_function_exit): Always place the call to the
3421 unregister function at the location installed by expand_function_end.
3422
9925bce0
RG
34232009-04-22 Richard Guenther <rguenther@suse.de>
3424
3425 PR tree-optimization/39845
3426 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3427 (gen_inbound_check): Likewise.
3428
24a40b35
NS
34292009-04-22 Nathan Sidwell <nathan@codesourcery.com>
3430
3431 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3432 padding for PPC.
3433 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
3434 * config/vxlib.c (__gthread_once): Add race guard for PPC.
3435
6c34a092
PB
34362009-04-22 Paolo Bonzini <bonzini@gnu.org>
3437
3438 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
3439 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
3440 shift counts to avoid out-of-bounds array accesses.
3441
baa48dfa
PB
34422009-04-22 Paolo Bonzini <bonzini@gnu.org>
3443
3444 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
3445 (Pmode): Move above.
3446
7d83f4f5
UB
34472009-04-22 Uros Bizjak <ubizjak@gmail.com>
3448
3449 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
3450 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
3451 GET_CODE macro. Use IN_RANGE macro where appropriate.
3452 * config/alpha/alpha.h: Ditto.
3453 * config/alpha/alpha.md: Ditto.
3454 * config/alpha/constraints.md: Ditto.
3455 * config/alpha/predicates.md: Ditto.
3456
3ad606bc
PB
34572009-04-22 Paolo Bonzini <bonzini@gnu.org>
3458
3459 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
3460 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3461 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3462 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3463 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3464 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3465 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3466 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3467 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3468 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3469 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3470 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3471 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3472 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3473 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3474 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3475 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3476 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3477 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3478 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3479 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3480 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3481 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3482 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3483 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3484 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3485 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3486
3cabd6d1
LB
34872009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3488
3489 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
3490 references from comments.
3491 * cfgbuild.c: (count_basic_blocks): Delete.
3492 (find_basic_blocks_1): Delete.
3493 (find_basic_blocks): Delete.
3494 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 3495 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
3496 * except.h (finish_eh_generation): Delete.
3497 * basic-block.h (find_basic_blocks): Delete.
3498 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
3499
270d1bcd
DK
35002009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
3501
3502 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
3503 (sdbout_parms): Likewise.
3504
b757d36f
KK
35052009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
3506
3507 * config/sh/sh.c (prepare_cbranch_operands): Use
3508 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
3509 (expand_cbranchdi4): Likewise.
3510 (from_compare): Add cast to enum type.
3511 (expand_cbranchsi4): Use add_reg_note.
3512 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
3513 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
3514 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
3515 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3516 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
3517 instead of CODE_FOR_nothing.
3518 (cbranchdi4): Likewise. Fix the order of arguments for
3519 gen_rtx_fmt_ee.
3520 (push_fpscr): Use add_reg_note.
3521 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
3522 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
3523
ad41bd84
JM
35242009-04-21 Joseph Myers <joseph@codesourcery.com>
3525
3526 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
3527 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3528 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3529 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
3530 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
3531 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
3532 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
3533 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
3534 config/alpha/x-vms, config/arc/t-arc,
3535 config/arm/README-interworking, config/arm/arm-c.c,
3536 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
3537 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
3538 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
3539 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
3540 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
3541 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
3542 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
3543 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
3544 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
3545 config/cris/t-elfmulti, config/crx/t-crx,
3546 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
3547 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
3548 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
3549 config/h8300/t-h8300, config/i386/athlon.md,
3550 config/i386/darwin-libgcc.10.4.ver,
3551 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
3552 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
3553 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
3554 config/i386/t-linux64, config/i386/t-nwld,
3555 config/i386/t-rtems-i386, config/i386/t-sol2-10,
3556 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
3557 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
3558 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
3559 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
3560 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
3561 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
3562 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
3563 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
3564 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
3565 config/m68k/t-uclinux, config/mcore/t-mcore,
3566 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
3567 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
3568 config/mips/crtn.asm, config/mips/irix-crti.asm,
3569 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
3570 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
3571 config/mips/mips-fixed.md, config/mips/sb1.md,
3572 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
3573 config/mips/t-iris6, config/mips/t-isa3264,
3574 config/mips/t-libgcc-mips16, config/mips/t-linux64,
3575 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
3576 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
3577 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
3578 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
3579 config/mn10300/t-linux, config/mn10300/t-mn10300,
3580 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
3581 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
3582 config/picochip/libgccExtras/clzsi2.asm,
3583 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
3584 config/rs6000/darwin-libgcc.10.4.ver,
3585 config/rs6000/darwin-libgcc.10.5.ver,
3586 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
3587 config/rs6000/t-aix43, config/rs6000/t-aix52,
3588 config/rs6000/t-darwin, config/rs6000/t-fprules,
3589 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
3590 config/rs6000/t-lynx, config/rs6000/t-netbsd,
3591 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
3592 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
3593 config/rs6000/t-rtems, config/rs6000/t-spe,
3594 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
3595 config/score/t-score-elf, config/sh/divcost-analysis,
3596 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
3597 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
3598 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
3599 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
3600 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
3601 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
3602 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
3603 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
3604 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
3605 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
3606 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
3607 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
3608 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
3609 limitx.h, version.c, xcoff.h: Add copyright and license notices.
3610 * config/h8300/genmova.sh: Include copyright and license notices
3611 in generated output.
3612 * config/h8300/mova.md: Regenerate.
3613 * doc/install.texi2html: Include word "Copyright" in copyright
3614 notice and use name "Free Software Foundation, Inc.".
3615 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3616 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3617 ChangeLog-2007, ChangeLog-2008: Correct dates.
3618
ca80e52b
EB
36192009-04-21 Eric Botcazou <ebotcazou@adacore.com>
3620
3621 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
3622 NE_EXPR operations as well.
3623 * c-parser.c (c_parser_condition): Do not set location information on
3624 the condition.
3625 (c_parser_conditional_expression): Likewise.
3626 (c_parser_binary_expression): Set location information on operators.
3627 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
3628 TRUTH_NOT_EXPR has been folded.
3629 * fold-const.c (fold_truth_not_expr): Copy location information from
3630 the incoming expression to the outgoing one.
3631 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
3632 recursive calls on the LHS of the operator but pass that of the
3633 operator to recursive calls on the RHS of the operator. Set it
3634 on the COND_EXPR.
3635 (shortcut_cond_expr): Set the locus of the operator on the second
3636 COND_EXPR and that of the expression on the first in degenerate cases.
3637 Pass the locus of the expression to calls to shortcut_cond_r.
3638 Set the locus of the 'then' block on the associated jump, if any.
3639 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
3640 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
3641 expression to call to gimplify_boolean_expr.
3642
35091630
KT
36432009-04-21 Kai Tietz <kai.tietz@onevision.com>
3644
3645 * config.gcc: Add additional configuration for
3646 i686-w64-mingw* and x86_64-w64-mingw* triplet.
3647 * config/i386/mingw-w64.h: New mingw-w64 specific header.
3648 (CPP_SPEC): Redefine for allowing -municode option.
3649 (STARTFILE_SPEC): Likewise.
3650 * config/i386/t-mingw-w64: New.
3651 * config/i386/mingw-w64.opt: New.
3652 (municode): Add new target option.
3653 * doc/invoke.texi (municode): Add documentation for new option.
3654
0267afc4
ILT
36552009-04-21 Ian Lance Taylor <iant@google.com>
3656
3657 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3658 Correct test for number of arguments.
3659 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
3660
2ba9daa7
AS
36612009-04-21 Andreas Schwab <schwab@linux-m68k.org>
3662
3663 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
3664 argument of emit_library_call.
3665
ad8a1ac0
RG
36662009-04-21 Richard Guenther <rguenther@suse.de>
3667
3668 PR middle-end/39829
3669 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
3670 inside VIEW_CONVERT_EXPRs.
3671
7156c8ab
MJ
36722009-04-21 Martin Jambor <mjambor@suse.cz>
3673
3674 * tree-switch-conversion.c (build_constructors): Split a long line.
3675 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
3676 (build_one_array): Create assigns of constants if possible, do not
3677 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
3678 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
3679 make_rename_temp. Do not call mark_symbols_for_renaming, call
3680 update_stmt.
3681 (gen_def_assigns): Do not call mark_symbols_for_renaming or
3682 find_new_referenced_vars, call update_stmt.
3683 (gen_inbound_check): Use create_tmp_var and create ssa names manually
3684 instead of calling make_rename_temp. Do not call
3685 find_new_referenced_vars or mark_symbols_for_renaming, call
3686 update_stmt.
3687
2970ccb3
RG
36882009-04-21 Richard Guenther <rguenther@suse.de>
3689
3690 PR tree-optimization/39827
7d83f4f5 3691 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
3692 (tree_ssa_phiprop): Pass the correct array size.
3693
47f402d1
UB
36942009-04-21 Uros Bizjak <ubizjak@gmail.com>
3695
3696 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
3697
1e4ae551
MLI
36982009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
3699
3700 PR 16202
3701 * c-typeck.c (lvalue_p): Move declaration ...
3702 * c-common.h (lvalue_p): ... to here.
3703 * c-common.c (candidate_equal_p): New.
3704 (add_tlist): Use it.
3705 (merge_tlist): Use it.
3706 (warn_for_collisions_1): Likewise.
3707 (warning_candidate_p): Accept more candidates.
3708 (verify_tree): A warning candidate can be an expression. Use
3709 candidate_equal_p.
3710
244609a6
BE
37112009-04-21 Ben Elliston <bje@au.ibm.com>
3712
3713 PR target/5267
3714 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3715 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
3716 options. Remove -mcall-solaris documentation.
3717
9c650d90
MLI
37182009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3719
3720 PR c++/13358
3721 * doc/invoke.texi (-Wlong-long): Update description.
3722 * c-lex (interpret_integer): Only warn if there was no previous
3723 overflow and -Wlong-long is enabled.
3724 * c-decl.c (declspecs_add_type): Drop redundant flags.
3725 * c.opt (Wlong-long): Init to -1.
3726 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
3727 and front-end warn_long_long. Wlong-long only depends on other
3728 flags if it is uninitialized.
3729 * c-parser.c (disable_extension_diagnostics): warn_long_long is
3730 the same for CPP and FE.
3731 (restore_extension_diagnostics): Likewise.
3732
bbbbb16a
ILT
37332009-04-20 Ian Lance Taylor <iant@google.com>
3734
3735 Fix enum conversions which are invalid in C++:
47f402d1
UB
3736 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
3737 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3738 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
3739 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 3740 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 3741 (dbxout_parms): Likewise.
47f402d1 3742 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
3743 (df_clear_flags): Likewise.
3744 * df-problems.c (df_rd_bb_local_compute_process_def): Change
3745 top_flag parameter to int.
3746 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
3747 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
3748 Remove cast.
bbbbb16a
ILT
3749 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
3750 (df_ref_create_structure, df_def_record_1): Likewise.
3751 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
3752 (df_notes_rescan): Change 0 to VOIDmode in function call.
3753 (df_get_call_refs, df_insn_refs_collect): Likewise.
3754 (df_bb_regs_collect): Likewise.
3755 (df_entry_block_defs_collect): Likewise.
3756 (df_exit_block_uses_collect): Likewise.
3757 * df.h: Update declarations.
3758 * double-int.c (double_int_divmod): Add cast to enum type.
3759 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
3760 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
3761 (based_loc_descr): Likewise.
3762 (loc_descriptor_from_tree_1): Change first_op and second_op to
3763 enum dwarf_location_atom. Add cast to enum type.
3764 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 3765 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
3766 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
3767 (do_store_flag): Likewise.
3768 * fixed-value.h (struct fixed_value): Change mode to enum
3769 machine_mode.
47f402d1 3770 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
3771 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
3772 function call.
3773 (insert_insn_decl, insert_decl, insert_state): Likewise.
3774 (automata_list_finish): Likewise.
3775 * genrecog.c (process_define_predicate): Add cast to enum type.
3776 * gensupport.c (init_predicate_table): Add cast to enum type.
3777 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
3778 function call.
3779 (gimple_build_call_1, gimple_build_label): Likewise.
3780 (gimple_build_goto, gimple_build_asm_1): Likewise.
3781 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 3782 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
3783 (enum fallback): Rename from enum fallback_t.
3784 (fallback_t): Typedef as int.
3785 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
3786 GSI_SAME_STMT in function call.
3787 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
3788 enum type.
3789 (setup_reg_class_relations): Likewise.
47f402d1 3790 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
3791 (setup_prohibited_class_mode_regs): Add cast to enum type.
3792 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 3793 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
3794 (record_address_regs): Change i to enum reg_class.
3795 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
3796 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
3797 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
3798 (GET_MODE_2XWIDER_MODE): Likewise.
3799 (GET_CLASS_NARROWEST_MODE): Likewise.
3800 * omp-low.c (expand_omp_for): Add cast to enum type.
3801 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
3802 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
3803 * postreload.c (reload_cse_simplify_operands): Change rclass local
3804 to enum reg_class.
3805 * predict.c (combine_predictions_for_insn): Change best_predictor
3806 and predictor to enum br_predictor.
3807 (combine_predictions_for_bb): Likewise.
3808 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
3809 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 3810 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
3811 * reginfo.c (init_move_cost): Add casts to enum type.
3812 (init_reg_sets_1, init_fake_stack_mems): Likewise.
3813 * regmove.c (regclass_compatible_p): Change class0 and class1 to
3814 enum reg_class.
3815 * reload.c (find_valid_class): Add casts to enum type.
3816 (push_reload): Change 0 to NO_REGS in function call.
3817 (find_reloads): Change this_alternative to array of enum
3818 reg_class. Remove some now-unnecessary casts.
3819 (make_memloc): Change 0 to VOIDmode in function call.
3820 * reload1.c (reload): Change 0 to VOIDmode in function call.
3821 (eliminate_regs_1, elimination_effects): Likewise.
3822 (eliminate_regs_in_insn): Likewise.
3823 (emit_input_reload_insns): Add cast to enum type.
3824 (delete_output_reload): Change 0 to VOIDmode in function call.
3825 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
3826 to enum type in function call.
3827 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
3828 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 3829 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
3830 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
3831 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
3832 (dump_function): Likewise.
3833 * tree-dump.h: Update declarations.
3834 * tree-pass.h: Update declarations.
3835 * varasm.c (assemble_integer): Change mclass to enum mode_class.
3836 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
3837 enum type.
3838 (arm_rtx_costs_1): Correct parenthesization.
3839 (arm_rtx_costs): Add casts to enum type.
3840 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
3841 (vfp_emit_fstmd): Use add_rg_note.
3842 (emit_multi_reg_push, emit_sfm): Likewise.
3843 (thumb_set_frame_pointer): Likewise.
3844 (arm_expand_prologue): Likewise.
3845 (arm_regno_class): Change return type to enum reg_class.
3846 (thumb1_expand_prologue): Use add_reg_note.
3847 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
3848 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
3849 in function call.
3850 * config/arm/gentune.sh: Add cast to enum type.
3851 * config/arm/arm-tune.md: Rebuild.
3852 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
3853 (ix86_split_fp_branch, predict_jump): Likewise.
3854 (ix86_expand_multi_arg_builtin): Change sub_code from enum
3855 insn_code to enum rtx_code.
3856 (ix86_builtin_vectorized_function): Add cast to enum type.
3857 * config/i386/i386.md (truncdfsf2): Change slot to enum
3858 ix86_stack_slot.
3859 (truncxf<mode>2, isinf<mode>2): Likewise.
3860 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
3861 enum type.
3862 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
3863 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
3864 (insert_bundle_state): Change 1 to INSERT in function call.
3865 (ia64_add_bundle_selector_before): Likewise.
3866 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
3867 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
3868 (restore_stack_nonlocal): Likewise.
3869 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
3870 function call.
3871 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
3872 function call.
3873 (mips_rtx_costs): Likewise.
3874 (mips_override_options): Add casts to enum type.
3875 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
3876 in function call.
3877 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
3878 (store_reg, set_reg_plus_d): Likewise.
3879 (hppa_expand_prologue, hppa_profile_hook): Likewise.
3880 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
3881 cast to enum type.
3882 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
3883 function call.
3884 (emit_unlikely_jump): Use add_reg_note.
3885 (rs6000_emit_allocate_stack): Likewise.
3886 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
3887 (output_toc): Change 1 to INSERT in function call.
3888 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
3889 (rs6000_initialize_trampoline): Likewise.
3890 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
3891 function call.
3892 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
3893 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
3894 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
3895 (save_gprs): Use add_reg_note.
3896 (s390_emit_prologue): Likewise.
47f402d1 3897 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3898 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
3899 (sparc_fold_builtin): Add cast to enum type.
3900 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
3901 enum insn_code.
3902 (spu_expand_prologue): Use add_reg_note.
47f402d1 3903 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
3904
39052009-04-20 Ian Lance Taylor <iant@google.com>
3906
3907 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
3908 (c_parser_postfix_expression_after_primary): Get VEC for list of
3909 arguments. Get original types of arguments. Call
3910 build_function_call_vec.
3911 (cached_expr_list_1, cached_expr_list_2): New static variables.
3912 (c_parser_expr_list): Change return type to VEC *. Add
3913 p_orig_types parameter. Change all callers.
3914 (c_parser_release_expr): New static function.
3915 (c_parser_vec_to_tree_list): New static function.
3916 * c-typeck.c (build_function_call): Rewrite to build a VEC and
3917 call build_function_call_vec.
3918 (build_function_call_vec): New function, based on old
3919 build_function_call.
3920 (convert_arguments): Remove nargs and argarray parameters. Change
3921 values to a VEC. Add origtypes parameter.
47f402d1 3922 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
3923 (convert_for_assignment): Add origtype parameter. Change all
3924 callers. If warn_cxx_compat, check for conversion to an enum
3925 type when calling a function.
3926 (store_init_value): Add origtype parameter. Change all callers.
3927 (digest_init): Likewise.
3928 (struct init_node): Add origtype field.
3929 (add_pending_init): Add origtype parameter. Change all callers.
3930 (output_init_element): Likewise.
3931 (output_pending_init_elements): Pass origtype from init_node to
3932 output_init_element.
f28a61ab 3933 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
3934 output_init_element.
3935 (c_finish_return): Add origtype parameter. Change all callers.
3936 * c-common.c (sync_resolve_size): Change params to VEC *. Change
3937 caller.
3938 (sync_resolve_params): Likewise.
47f402d1 3939 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 3940 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 3941 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
3942 * c-decl.c (finish_decl): Add origtype parameter. Change all
3943 callers. Call build_function_call_vec rather than
3944 build_function_call for cleanup.
3945 * c-tree.h: Update declarations.
3946 * c-common.h: Update declarations.
3947 * stub-objc.c (objc_rewrite_function_call): Change parameter from
3948 params to first_param.
3949 * target.h (struct gcc_target): Change resolve_overloaded_builtin
3950 params parameter from tree to void *.
3951 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3952 Change arglist parameter to have type void *, and to be a pointer
3953 to a VEC.
3954 * config/rs6000/rs6000-protos.h
3955 (altivec_resolve_overloaded_builtin): Update declaration.
3956 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
3957 fnargs parameter to have type void *, and to be a pointer to a
3958 VEC. Call build_function_call_vec instead of
3959 build_function_call.
47f402d1 3960 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 3961
6ff078d4 39622009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 3963 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
3964 H.J. Lu <hongjiu.lu@intel.com>
3965
3966 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
3967
3968 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
3969 (IX86_LEA_PRIORITY): Likewise.
3970 (distance_non_agu_define): New function.
3971 (distance_agu_use): Likewise.
3972 (ix86_lea_for_add_ok): Likewise.
3973 (ix86_dep_by_shift_count): Likewise.
3974
3975 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
3976 should split for LEA.
3977
3978 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
3979 function.
3980 (ix86_dep_by_shift_count): Likewise.
3981
87a5b4cc
RG
39822009-04-20 Richard Guenther <rguenther@suse.de>
3983
3984 * expr.c (handled_component_p): Move ...
3985 * tree.h (handled_component_p): ... here.
3986 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
3987 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
3988 and REALPART_EXPR to be in one group.
3989
438c239d
RG
39902009-04-20 Richard Guenther <rguenther@suse.de>
3991
3992 * basic-block.h (get_all_dominated_blocks): Declare.
3993 * dominance.c (get_all_dominated_blocks): New function.
3994 * tree-cfg.c (get_all_dominated_blocks): Remove.
3995 (remove_edge_and_dominated_blocks): Adjust.
3996 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
3997 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
3998 instead of recursing.
3999
fed5ae11
DK
40002009-04-20 Doug Kwan <dougkwan@google.com>
4001
4002 * cgraph.h (cgraph_node_ptr): New type for vector functions.
4003 (struct cgraph_node_set_def): New type.
4004 (cgraph_node_set) New type. Also declare vector functions.
4005 (struct cgraph_node_set_element_def): New type.
4006 (cgraph_node_set_element): Ditto.
4007 (cgraph_node_set_iterator): New iterator type.
4008 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
4009 cgraph_node_set_remove, dump_cgraph_node_set,
4010 debug_cgraph_node_set): New prototypes.
4011 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
4012 cgraph_node_set_size): New inlines.
4013 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
4014 including cgraph.h.
4015 (struct ipa_opt_pass): Add struct cgraph_node_set_def
4016 argument to function 'write_summary'.
4017 * ipa.c: Include ggc.h.
4018 (hash_cgraph_node_set_element,
4019 eq_cgraph_node_set_element, cgraph_node_set_new,
4020 cgraph_node_set_add, cgraph_node_set_remove,
4021 cgraph_node_set_find, dump_cgraph_node_set,
4022 debug_cgraph_node_set): New functions.
4023 * Makefile.in (ipa.o): Add dependency on GGC_H.
4024
c4551b28
IR
40252009-04-20 Ira Rosen <irar@il.ibm.com>
4026
4027 PR tree-optimization/39675
2ba9daa7 4028 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
4029 check of the return code of vect_schedule_slp. Check that
4030 stmt_vec_info still exists for the statement, before checking its
4031 vectorization type.
c4551b28 4032
21a495fb
MM
40332009-04-20 Michael Matz <matz@suse.de>
4034
4035 * Makefile.in (generated_files): Take out $(simple_generated_c).
4036
8e208874
DK
40372009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
4038
4039 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
4040 (UINTPTR_TYPE): Likewise.
4041
a45e580b
JM
40422009-04-19 Joseph Myers <joseph@codesourcery.com>
4043
4044 PR c/37481
4045 * c-typeck.c (digest_init): Check for initializing an array with a
4046 string literal.
4047
20845d35
JM
40482009-04-19 Joseph Myers <joseph@codesourcery.com>
4049
4050 PR c/19771
4051 * c-semantics.c (pop_stmt_list): Propagate
4052 STATEMENT_LIST_HAS_LABEL to parent statement list.
4053
28143fdd
AN
40542009-04-19 Adam Nemet <anemet@caviumnetworks.com>
4055
4056 * config/mips/mips.h (mips_tune_attr): New macro.
4057 * config/mips/mips.md (cpu): Use it.
4058
da377db9
JM
40592009-04-19 Joseph Myers <joseph@codesourcery.com>
4060
4061 PR c/38243
4062 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
4063 declaring a tag.
4064
3baf459d
DN
40652009-04-19 Diego Novillo <dnovillo@google.com>
4066
4067 * toplev.c (compile_file): Move call to coverage_finish ...
4068 * cgraphunit.c (ipa_passes): ... here.
4069 Call cgraph_process_new_functions.
4070 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
4071 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
4072
b6fa5b01
JH
40732009-04-19 Jan Hubicka <jh@suse.cz>
4074
47f402d1
UB
4075 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
4076 cfun.
b6fa5b01
JH
4077 (dump_cgraph_node): Dump can throw external flag.
4078 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
4079
ca409efd
MLI
40802009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4081
4082 PR c/32061
4083 PR c++/36954
4084 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
4085 * common.opt (Wlogical-op): Move from here...
4086 * c.opt (Wlogical-op): ... to here.
4087 * c-typeck.c (parser_build_binary_op): Update call to
4088 warn_logical_operator.
4089 * c-opts.c (c_common_post_options): Enable warn_logical_op with
4090 extra_warnings.
4091 * c-common.c (warn_logical_op): Update.
4092 * c-common.h (warn_logical_op): Update declaration.
4093
9db4cdd3
EB
40942009-04-19 Eric Botcazou <ebotcazou@adacore.com>
4095
4096 * tree.c (protected_set_expr_location): Fix formatting.
4097
f37acdf9
JM
40982009-04-18 Joseph Myers <joseph@codesourcery.com>
4099
4100 PR c/27676
4101 * c-typeck.c (readonly_warning): new.
4102 (build_unary_op, build_modify_expr): Use readonly_warning for
4103 storing into something readonly but not const-qualified.
4104
2b4b7036
JM
41052009-04-18 Joseph Myers <joseph@codesourcery.com>
4106
4107 PR c/22367
4108 * c-typeck.c (build_unary_op): Check for taking address of
4109 expression of type void.
4110
3ce62965
JM
41112009-04-18 Joseph Myers <joseph@codesourcery.com>
4112
4113 PR c/35210
4114 * c-typeck.c (build_function_call): Check for calling a function
4115 with qualified void return types. Call require_complete_type when
4116 generating a trap.
4117
2505c5ed
JH
41182009-04-18 Jan Hubicka <jh@suse.cz>
4119
4120 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4121 Set nothrow flag.
4122 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4123 can_throw_external flag.
4124 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4125 * ipa-pure-const.c (ignore_edge): New function.
4126 (propagate): Compute order for NOTHROW computation; set NOTHROWs
4127 only over can_throw_external edges.
4128 (local_pure_const): Add nothrow flag.
4129 * ipa-utils.c (searchc): Add ignore_edge callback.
4130 (ipa_utils_reduced_inorder): Add ignore_edge callback.
4131 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4132 (set_nothrow_function_flags): Update cgraph.
4133 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4134
2586ba4b
RG
41352009-04-18 Richard Guenther <rguenther@suse.de>
4136
4137 PR middle-end/39804
4138 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4139 (fold_stmt): ... this and ...
4140 (fold_stmt_inplace): ... this.
4141 (fold_stmt_1): Fold references in calls and asms.
4142 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4143
1eefab17
KH
41442009-04-18 Kazu Hirata <kazu@codesourcery.com>
4145
4146 * tree-vrp.c (ssa_name_nonzero_p): Remove.
4147 * tree.h: Remove the prototype for ssa_name_nonzero_p.
4148
aa424b01
KH
41492009-04-18 Kazu Hirata <kazu@codesourcery.com>
4150
4151 * tree.c (function_args_count): Remove.
4152 * tree.h: Remove the prototype for function_args_count.
4153
613a896b
KH
41542009-04-18 Kazu Hirata <kazu@codesourcery.com>
4155
4156 * tree-iterator.c (expr_only): Remove.
4157 * tree.h: Remove the prototype for expr_only.
4158
579e694c
KH
41592009-04-18 Kazu Hirata <kazu@codesourcery.com>
4160
4161 * reginfo.c (cannot_change_mode_set_regs): Remove.
4162 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4163
ee7e3ad3
AS
41642009-04-08 Anatoly Sokolov <aesok@post.ru>
4165
4166 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4167 whether operands 0 and 1 overlaps.
4168
92ef7fb1
MLI
41692009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
4170
4171 PR middle-end/36902
4172 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4173 pointer. Use warning_at instead of warning.
4174 (search_for_addr_array): Likewise.
4175 (check_array_bounds): Likewise.
4176 (check_all_array_refs): Check that the incoming edge is not in the
4177 list of edges to be removed.
4178 (check_all_array_refs): Avoid the temporal pointer.
4179 (vrp_visit_cond_stmt): Fix typo.
4180 (simplify_switch_using_ranges): Handle the case where the switch
4181 index is an integer constant.
4182
0e097268
AN
41832009-04-18 Adam Nemet <anemet@caviumnetworks.com>
4184
4185 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4186
c782f1dd
KH
41872009-04-18 Kazu Hirata <kazu@codesourcery.com>
4188
4189 * doc/extend.texi, doc/invoke.texi: Fix typos.
4190
668fb0e8
CC
41912009-04-17 Cary Coutant <ccoutant@google.com>
4192
4193 * tree-flow-inline.h (get_lineno): Fix inverted test.
4194
4d4014c1
DN
41952009-04-17 Diego Novillo <dnovillo@google.com>
4196
4197 * tree-ssa-pre.c (create_expression_by_pieces): Remove
4198 assertion for AVAIL_OUT.
4199
2984e1b6
MF
42002009-04-17 Mike Frysinger <vapier@gentoo.org>
4201
4202 PR target/38627
4203 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4204 * config/sh/linux-atomic.asm: Likewise.
4205
9994a182
DN
42062009-04-17 Diego Novillo <dnovillo@google.com>
4207
4208 * except.c (debug_eh_tree): New.
4209 (struct eh_region, struct eh_status): Move ...
4210 * except.h: ... here.
4211 (add_type_for_runtime): Declare extern.
4212 (lookup_type_for_runtime): Likewise.
4213 (debug_eh_tree): Declare.
4214 * Makefile.in (GTFILES): List except.h before except.c
4215
07485407
DN
42162009-04-17 Diego Novillo <dnovillo@google.com>
4217
47f402d1 4218 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
4219 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4220 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4221 (find_vars_r): ... here.
4222 * tree-flow.h (find_referenced_vars_in): Declare.
4223 * tree-ssa-pre.c (create_expression_by_pieces): Assert
4224 that AVAIL_OUT exists for BLOCK.
4225 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4226 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4227 (tree-parloops.o): Likewise.
4228
4e53d196
SB
42292009-04-17 Simon Baldwin <simonb@google.com>
4230
4231 * toplev.c (default_tree_printer): Add handling for %E format.
4232
413d3aa8
DN
42332009-04-17 Diego Novillo <dnovillo@google.com>
4234
47f402d1
UB
4235 * tree-pretty-print.c (dump_generic_node): Add break after
4236 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
4237 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
4238 FUNCTION_TYPE together. Call print_struct_decl when printing
4239 structures and TDF_SLIM is not given.
413d3aa8
DN
4240 (print_struct_decl): Fix logic for detecting recursion.
4241
5a691e98
RAE
42422009-04-17 Rafael Avila de Espindola <espindola@google.com>
4243
4244 PR 31567
4245 * gcc.c (create_at_file): New.
4246 (compile_input_file_p): New.
4247 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4248 * main.c (main): Update call to toplev_main.
4249 * toplev.c (toplev_main): Change signature. Call expandargv.
4250 * toplev.h (toplev_main): Change signature.
4251
9eacf7a6
EB
42522009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4253
4254 * dwarf2out.c (field_byte_offset): Use the type size as the field size
4255 if the latter is not constant.
4256
58298177
DE
42572009-04-17 David Edelsohn <edelsohn@gnu.org>
4258
4259 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4260
5b4c43d7
EB
42612009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4262
4263 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4264 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4265
b51605c4
RG
42662009-04-17 Richard Guenther <rguenther@suse.de>
4267
4268 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4269 Handle component references view-converting an invariant address.
4270
9e3be889
AN
42712009-04-17 Adam Nemet <anemet@caviumnetworks.com>
4272
4273 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4274 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4275 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4276 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4277 Use @deftypevr rather than @deftypevar.
4278
7c3e9dc3
RG
42792009-04-17 Richard Guenther <rguenther@suse.de>
4280
47f402d1 4281 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
4282 (get_prop_source_stmt): Likewise.
4283 (can_propagate_from): Likewise.
4284
aca600aa
AS
42852009-04-17 Andrew Stubbs <ams@codesourcery.com>
4286
4287 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4288 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4289 (--with-multilib-list): Add default value.
4290 * configure: Regenerate.
4291 * Makefile.in (TM_ENDIAN_CONFIG): Define.
4292 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4293 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4294 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4295 Don't add default cpu to multilib list unnecessarily, but do enable
4296 the relevant compiler option..
4297 Add support for --with-multilib-list=<blank> and
4298 --with-multilib-list=!<somelib> to supress unwanted multilibs.
4299 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4300 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4301 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4302 TM_MULTILIB_CONFIG.
4303 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4304 (MULTILIB_OSDIRNAMES): New variable.
4305 * config/sh/t-1e: Delete file.
4306 * config/sh/t-mlib-sh1: Delete file.
4307 * config/sh/t-mlib-sh2: Delete file.
4308 * config/sh/t-mlib-sh2a: Delete file.
4309 * config/sh/t-mlib-sh2a-nofpu: Delete file.
4310 * config/sh/t-mlib-sh2a-single: Delete file.
4311 * config/sh/t-mlib-sh2a-single-only: Delete file.
4312 * config/sh/t-mlib-sh2e: Delete file.
4313 * config/sh/t-mlib-sh3e: Delete file.
4314 * config/sh/t-mlib-sh4: Delete file.
4315 * config/sh/t-mlib-sh4-nofpu: Delete file.
4316 * config/sh/t-mlib-sh4-single: Delete file.
4317 * config/sh/t-mlib-sh4-single-only: Delete file.
4318 * config/sh/t-mlib-sh4a: Delete file.
4319 * config/sh/t-mlib-sh4a-nofpu: Delete file.
4320 * config/sh/t-mlib-sh4a-single: Delete file.
4321 * config/sh/t-mlib-sh4a-single-only: Delete file.
4322 * config/sh/t-mlib-sh4al: Delete file.
4323 * config/sh/t-mlib-sh5-32media: Delete file.
4324 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4325 * config/sh/t-mlib-sh5-64media: Delete file.
4326 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4327 * config/sh/t-mlib-sh5-compact: Delete file.
4328 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4329 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4330 * doc/install.texi (Options specification): Add
4331 --with-multilib-list and --with-endian.
4332
cf8aba7f
RAE
43332009-04-17 Rafael Avila de Espindola <espindola@google.com>
4334
4335 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4336 REVISION_c.
4337 (OBJS-common): Add plugin-version.o.
4338 (plugin-version.o): New.
4339 * gcc-plugin.h (plugin_gcc_version): New.
4340 (plugin_default_version_check): New.
4341 (plugin_init_func, plugin_init): Add version argument.
4342 * plugin-version.c: New.
4343 * plugin.c (str_plugin_gcc_version_name): New.
4344 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4345 pass it to the init function.
4346 (plugin_default_version_check): New.
4347
61e20b90
RG
43482009-04-17 Richard Guenther <rguenther@suse.de>
4349
4350 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4351 for decl-vs-decl disambiguation.
4352
90c6fd8a
AK
43532009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
4354
4355 * config/s390/s390.h (s390_tune_attr): New macro definition.
4356 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4357
9fe9fe04
RG
43582009-04-17 Richard Guenther <rguenther@suse.de>
4359
4360 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4361 (fold_stmt_r): Likewise.
4362 (maybe_fold_reference): New function.
4363 (fold_gimple_assign): Handle cases fold_stmt_r did.
4364 (fold_stmt): Do not use fold_stmt_r.
4365 (fold_stmt_inplace): Likewise.
4366
7e673273
RG
43672009-04-17 Richard Guenther <rguenther@suse.de>
4368
4369 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4370 (record_equivalences_from_stmt): Remove useless checks and
4371 simplifications.
4372 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4373 the type is already suitable.
4374
fabf2749
PB
43752009-04-17 Paolo Bonzini <bonzini@gnu.org>
4376
4377 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4378
68f7b061
UB
43792009-04-17 Uros Bizjak <ubizjak@gmail.com>
4380
4381 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4382 (CMPtype): Define as __gcc_CMPtype.
4383
532bfb0a
AJ
43842009-04-17 Aurelien Jarno <aurelien@aurel32.net>
4385
4386 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4387 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4388
e3ac77ff
RG
43892009-04-17 Richard Guenther <rguenther@suse.de>
4390
4391 PR tree-optimization/39746
4392 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4393 special-casing for builtins and static variable use/def.
4394 (call_may_clobber_ref_p_1): Likewise.
4395
7072a650
ILT
43962009-04-16 Ian Lance Taylor <iant@google.com>
4397
4398 * df.h: Include "timevar.h".
4399 (struct df_problem): Change tv_id field to timevar_id_t.
4400 * tree-pass.h: Include "timevar.h".
4401 (struct opt_pass): Change tv_id field to timevar_id_t.
4402 * timevar.h (timevar_id_t): Define TV_NONE.
4403 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4404 TV_NONE rather than tv_id != 0.
4405 (execute_one_pass): Likewise.
4406 * Makefile.in (DF_H): Add $(TIMEVAR_H).
4407 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
4408 dependencies to $(TREE_PASS_H).
4409 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4410 to TV_NONE.
4411 (pass_branch_target_load_optimize2): Likewise.
4412 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4413 (pass_outof_cfg_layout_mode): Likewise.
4414 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4415 (pass_rebuild_cgraph_edges): Likewise.
4416 (pass_remove_cgraph_callee_edges): Likewise.
4417 * df-core.c (pass_df_initialize_opt): Likewise.
4418 (pass_df_initialize_no_opt): Likewise.
4419 (pass_df_finish): Likewise.
4420 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4421 * except.c (pass_set_nothrow_function_flags): Likewise.
4422 (pass_convert_to_eh_region_ranges): Likewise.
4423 * final.c (pass_compute_alignments): Likewise.
4424 * function.c (pass_instantiate_virtual_regs): Likewise.
4425 (pass_init_function): Likewise.
4426 (pass_leaf_regs): Likewise.
4427 (pass_match_asm_constraints): Likewise.
4428 * gimple-low.c (pass_lower_cf): Likewise.
4429 (pass_mark_used_blocks): Likewise.
4430 * init-regs.c (pass_initialize_regs): Likewise.
4431 * integrate.c (pass_initial_value_sets): Likewise.
4432 * ira.c (pass_ira): Likewise.
4433 * jump.c (pass_cleanup_barriers): Likewise.
4434 * omp-low.c (pass_expand_omp): Likewise.
4435 (pass_lower_omp): Likewise.
4436 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
4437 * recog.c (pass_split_all_insns): Likewise.
4438 (pass_split_after_reload): Likewise.
4439 (pass_split_before_regstack): Likewise.
4440 (pass_split_before_sched2): Likewise.
4441 (pass_split_for_shorten_branches): Likewise.
4442 * reginfo.c (pass_reginfo_init): Likewise.
4443 (pass_subregs_of_mode_init): Likewise.
4444 (pass_subregs_of_mode_finish): Likewise.
4445 * passes.c (pass_postreload): Likewise.
4446 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
4447 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
4448 (pass_warn_function_return): Likewise.
4449 (pass_warn_function_noreturn): Likewise.
4450 * tree-complex.c (pass_lower_complex): Likewise.
4451 (pass_lower_complex_O0): Likewise.
4452 * tree-if-conv.c (pass_if_conversion): Likewise.
4453 * tree-into-ssa.c (pass_build_ssa): Likewise.
4454 * tree-mudflap.c (pass_mudflap_1): Likewise.
4455 (pass_mudflap_2): Likewise.
4456 * tree-nomudflap.c (pass_mudflap_1): Likewise.
4457 (pass_mudflap_2): Likewise.
4458 * tree-nrv.c (pass_return_slot): Likewise.
4459 * tree-object-size.c (pass_object_sizes): Likewise.
4460 * tree-optimize.c (pass_all_optimizations): Likewise.
4461 (pass_early_local_passes): Likewise.
4462 (pass_all_early_optimizations): Likewise.
4463 (pass_cleanup_cfg): Likewise.
4464 (pass_cleanup_cfg_post_optimizing): Likewise.
4465 (pass_free_datastructures): Likewise.
4466 (pass_free_cfg_annotations): Likewise.
4467 (pass_fixup_cfg): Likewise.
4468 (pass_init_datastructures): Likewise.
4469 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
4470 (pass_late_warn_uninitialized): Likewise.
4471 (pass_update_address_taken): Likewise.
4472 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
4473 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
4474 (pass_cse_sincos): Likewise.
4475 (pass_convert_to_rsqrt): Likewise.
4476 * tree-ssa-structalias.c (pass_build_alias): Likewise.
4477 * tree-stdarg.c (pass_stdarg): Likewise.
4478 * tree-tailcall.c (pass_tail_recursion): Likewise.
4479 (pass_tail_calls): Likewise.
4480 * tree-vect-generic.c (pass_lower_vector): Likewise.
4481 (pass_lower_vector_ssa): Likewise.
4482 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
4483
0051ef59
JM
44842009-04-16 Joseph Myers <joseph@codesourcery.com>
4485
4486 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4487 XLR entry.
4488 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
4489 Handle -march=xlr.
4490 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
4491 logical and signext.
4492
b3f8558a
KK
44932009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
4494
4495 PR target/39767
4496 * config/sh/predicates.md (arith_operand): Check if the operand
4497 of TRUNCATE is a REG.
4498
f57597d9
KH
44992009-04-16 Kazu Hirata <kazu@codesourcery.com>
4500
4501 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4502 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4503
b172d063
KH
45042009-04-16 Kazu Hirata <kazu@codesourcery.com>
4505
4506 * tree-iterator.c (tsi_split_statement_list_after,
4507 tsi_split_statement_list_before): Remove.
4508 * tree-iterator.h: Remove the prototypes for
532bfb0a 4509 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 4510
78fe4f1f
KH
45112009-04-16 Kazu Hirata <kazu@codesourcery.com>
4512
4513 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
4514 * tree-ssa-propagate.h: Remove the prototype for
4515 stmt_makes_single_load.
4516
43dd3201
KH
45172009-04-16 Kazu Hirata <kazu@codesourcery.com>
4518
4519 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
4520 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
4521
4252a4aa
KH
45222009-04-16 Kazu Hirata <kazu@codesourcery.com>
4523
4524 * tree-iterator.c (EXPR_LAST_BODY): Remove.
4525
bfb69968
KH
45262009-04-16 Kazu Hirata <kazu@codesourcery.com>
4527
4528 * except.c (eh_region_outer_p): Remove.
4529 * except.h: Remove the prototype for eh_region_outer_p.
4530
c7db7fa5
KH
45312009-04-16 Kazu Hirata <kazu@codesourcery.com>
4532
4533 * function.c (current_function_assembler_name): Remove.
4534 * function.h: Remove the prototype for
4535 current_function_assembler_name.
4536
efc0b2bd
ILT
45372009-04-16 Ian Lance Taylor <iant@google.com>
4538
532bfb0a 4539 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
4540 (add_reg_note): Call alloc_reg_note.
4541 * rtl.h (alloc_reg_note): Declare.
4542 * combine.c (try_combine): Use alloc_reg_note.
4543 (recog_for_combine, move_deaths): Likewise.
4544 (distribute_notes): Use alloc_reg_note and add_reg_note.
4545 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
4546 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
4547 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
4548
6080348f
VM
45492009-04-16 Vladimir Makarov <vmakarov@redhat.com>
4550
4551 PR rtl-optimization/39762
4552 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
4553 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 4554 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 4555
6080348f
VM
4556 * ira-conflicts.c (process_regs_for_copy): Use function
4557 ira_get_register_move_cost instead of global
4558 ira_register_move_cost.
4559
4560 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
4561 color_pass, move_spill_restore, update_curr_costs): Ditto.
4562
4563 * ira-lives.c (process_single_reg_class_operands): Ditto.
4564
4565 * ira-emit.c (emit_move_list): Ditto.
4566
4567 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
4568 (record_reg_classes): Ditto. Use functions
4569 ira_get_register_move_cost and ira_get_may_move_cost instead of
4570 global vars ira_register_move_cost, ira_may_move_out_cost and
4571 ira_may_move_in_cost.
4572 (record_address_regs): Don't call ira_init_register_move_cost.
4573 Use function ira_get_may_move_cost instead of global
4574 ira_may_move_in_cost.
4575 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 4576 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 4577 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 4578
646bea10
RG
45792009-04-16 Richard Guenther <rguenther@suse.de>
4580
4581 * tree-cfg.c (verify_gimple_assign_binary):
4582 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
4583 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
4584 (create_general_new_stmt): Note that this function is broken.
4585
02e819ff
RAE
45862009-04-16 Rafael Avila de Espindola <espindola@google.com>
4587
4588 * common.opt (fhelp): Add Var(help_flag).
4589 * gcc-plugin.h (plugin_info): Add help.
4590 * plugin.c (plugin_name_args): Add help.
4591 (register_plugin_info): Set plugin->help.
4592 (print_help_one_plugin): New.
4593 (print_plugins_help): New.
4594 * plugin.h (print_plugins_help): New.
4595 * toplev.c (toplev_main): Call print_plugins_help if needed.
4596
ccacdf06
RG
45972009-04-16 Richard Guenther <rguenther@suse.de>
4598
4599 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
4600 (gimple_ior_addresses_taken_1): New function.
4601 (gimple_ior_addresses_taken): Likewise.
4602 * gimple.h (struct gimple_statement_with_ops_base): Remove
4603 addresses_taken member.
4604 (gimple_ior_addresses_taken): Declare.
4605 (gimple_addresses_taken, gimple_addresses_taken_ptr,
4606 gimple_set_addresses_taken): Remove.
4607 * ipa-reference.c (mark_address): New function.
4608 (scan_stmt_for_static_refs): Use it for marking addresses taken.
4609 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
4610 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
4611 (gimple_add_to_addresses_taken): Remove.
4612 (get_tmr_operands): Call mark_address_taken.
4613 (get_asm_expr_operands): Likewise.
4614 (get_expr_operands): Likewise.
4615 (build_ssa_operands): Do not clear the addresses_taken bitmap.
4616 (free_stmt_operands): Do not free it.
4617 * tree-ssa.c (delete_tree_ssa): Likewise.
4618 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
4619
346ef3fa
RG
46202009-04-16 Richard Guenther <rguenther@suse.de>
4621
4622 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
4623 (walk_stmt_load_store_ops): Likewise.
4624 * gimple.c (get_base_loadstore): New function.
4625 (walk_stmt_load_store_addr_ops): Likewise.
4626 (walk_stmt_load_store_ops): Likewise.
4627 * ipa-pure-const.c (check_op): Simplify.
4628 (check_load, check_store): New functions.
4629 (check_stmt): Use walk_stmt_load_store_ops.
4630 * ipa-reference.c (mark_load): Adjust signature.
4631 (mark_store): Likewise.
4632 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
4633
44e9f006
RAE
46342009-04-16 Rafael Avila de Espindola <espindola@google.com>
4635
4636 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
4637 (plugin_info): New.
4638 * opts.c (common_handle_option): Don't call print_version.
4639 * plugin.c (plugin_name_args): Add version.
4640 (register_plugin_info): New.
4641 (register_callback): Handle PLUGIN_INFO.
4642 (try_init_one_plugin): New.
4643 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
4644 if failed to init.
4645 (finalize_one_plugin): New.
4646 (finalize_plugins): New.
4647 (print_one_plugin): New.
4648 (print_plugins_versions): New.
4649 * plugin.h (print_plugins_versions): New.
4650 (finalize_plugins): New.
4651 * toplev.c (compile_file): Don't call initialize_plugins.
4652 (print_version): Call print_plugins_versions.
4653 (toplev_main): Call initialize_plugins. Print version if needed.
4654 Call finalize_plugins.
4655
41fd0f9b
RAE
46562009-04-16 Rafael Avila de Espindola <espindola@google.com>
4657
4658 * common.opt (fversion): New.
4659 * gcc.c (print_version): New.
4660 (process_command): Don't print the version. Just set print_version.
4661 (main): Print version. Call subprocesses if print_version and
4662 verbose_flag are set.
4663 * opts.c (common_handle_option): Handle OPT_fversion.
4664
550918ca 46652009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 4666 Ira Rosen <irar@il.ibm.com>
550918ca
RG
4667
4668 PR tree-optimization/39698
4669 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
4670 type of the reduction variable. Only generate the def if
4671 it is needed.
4672
4673 * omp-low.c (expand_omp_for_generic): When converting to a pointer
4674 make sure to first convert to an integer of the same precision.
4675 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
4676 the type of the evolution correctly in computing the new
4677 induction variable base.
4678
54634841
RG
46792009-04-16 Richard Guenther <rguenther@suse.de>
4680
4681 PR middle-end/39625
4682 * tree-cfg.c (make_blocks): Split statements with to-be
4683 abnormal SSA names on the lhs.
4684
b6fc2cdb
PB
46852009-04-16 Paolo Bonzini <bonzini@gnu.org>
4686
4687 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
4688 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
4689 * c-typeck.c (really_start_incremental_init): Likewise.
4690 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
4691 (TARGET_INITIALIZER): Remove it.
4692 * target.h (struct target): Remove vector_opaque_p.
4693 * tree.c (build_opaque_vector_type): New.
4694 * tree.h (TYPE_VECTOR_OPAQUE): New.
4695 (build_opaque_vector_type): Declare.
4696 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
4697 * config/rs6000/rs6000.c (build_opaque_vector_type,
4698 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
4699 (rs6000_init_builtins): Use build_opaque_vector_type for
4700 opaque_V4SI_type_node.
4701
a417cdd9
CM
47022009-04-15 Catherine Moore <clm@codesourcery.com>
4703
532bfb0a
AJ
4704 * debug.h (set_name): Declare.
4705 * dwarf2out.c (dwarf2out_set_name): Declare.
4706 (dwarf2_debug_hooks): Add set_name.
4707 (find_AT_string): New.
4708 (add_AT_string): Call find_AT_string.
4709 (dwarf2out_set_name): New.
4710 * cp/decl.c (grokdeclarator): Call set_name.
4711 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
4712 * debug.c (do_nothing_debug_hooks): Likewise.
4713 * dbxout.c (dbx_debug_hooks): Likewise.
4714 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 4715
60839f5d 47162009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 4717
532bfb0a
AJ
4718 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
4719 reg for single-precision FPU.
4720 * config/rs6000/rs6000.md (movsi_internal1): Only for
4721 !TARGET_SINGLE_FPU.
4722 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
4723 single-precision FP regs.
4724
ada39f0b
RG
47252009-04-15 Richard Guenther <rguenther@suse.de>
4726
4727 * omp-low.c (lower_rec_input_clauses): Build correct address
4728 expressions.
4729 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 4730 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
4731 (generate_memset_zero): Fix types.
4732 * tree-profile.c (prepare_instrumented_value): Correctly
4733 widen a pointer.
4734
6866c6e8
ILT
47352009-04-15 Ian Lance Taylor <iant@google.com>
4736
4737 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
4738 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
4739 for -Wall and for -Wc++-compat.
4740 (c_common_post_options): For C++, set warn_enum_compare if not
4741 already set.
4742 * c-tree.h (struct c_expr): Add field original_type.
4743 (build_external_ref): Update declaration.
4744 * c-parser.c (c_parser_braced_init): Set original_type.
4745 (c_parser_initelt): Likewise.
4746 (c_parser_expr_no_commas): Likewise.
4747 (c_parser_conditional_expression): Likewise.
4748 (c_parser_cast_expression): Likewise.
4749 (c_parser_unary_expression): Likewise. Pull setting of
4750 original_code to top of function.
4751 (c_parser_sizeof_expression): Set original_type.
4752 (c_parser_alignof_expression): Likewise.
4753 (c_parser_postfix_expression): Likewise. Pull setting of
4754 original_code to top of function.
532bfb0a 4755 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
4756 (c_parser_postfix_expression_after_primary): Likewise.
4757 (c_parser_expression): Likewise.
4758 * c-typeck.c (build_external_ref): Add type parameter. Change all
4759 callers.
4760 (c_expr_sizeof_expr): Set original_type field.
4761 (parser_build_unary_op): Likewise.
4762 (parser_build_binary_op): Likewise. Optionally warn about
4763 comparisons of enums of different types.
4764 (digest_init): Set original_type field.
4765 (really_start_incremental_init): Likewise.
4766 (push_init_level, pop_init_level): Likewise.
4767 * doc/invoke.texi (Warning Options): -Wenum-compare now
4768 supported in C.
4769
f116fecf
RG
47702009-04-15 Richard Guenther <rguenther@suse.de>
4771
4772 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
4773 out a necessary conversion.
4774 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
4775 names we didn't value number.
4776 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
4777
25e20805
RG
47782009-04-15 Richard Guenther <rguenther@suse.de>
4779
4780 PR tree-optimization/39764
4781 * tree-ssa-ccp.c (get_value): Canonicalize value with
4782 canonicalize_float_value.
4783
90cc3676
JH
47842009-04-15 Jan Hubicka <jh@suse.cz>
4785
4786 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
4787 Wrong version of patch.
4788
6d14c006
JH
47892009-04-15 Jan Hubicka <jh@suse.cz>
4790
4791 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
4792
5afaa917
NS
47932009-04-15 Nathan Sidwell <nathan@codesourcery.com>
4794
4795 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
4796 our distinct integral and vector types.
4797
3b482fca
RAE
47982009-04-15 Rafael Avila de Espindola <espindola@google.com>
4799
4800 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
4801 * init.c (build_vtbl_address): Remove call to assemble_external.
4802
6cd1d2e2
DJ
48032009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
4804
4805 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
4806 output for other floating point modes.
4807
dab71827
DN
48082009-04-14 Diego Novillo <dnovillo@google.com>
4809
4810 * diagnostic.c (diagnostic_report_diagnostic): Do not
4811 warn about loaded plugins for DK_ERROR and DK_WARNING.
4812 * c-decl.c (declspecs_add_type): Move call to
4813 invoke_plugin_callbacks ...
4814 * c-parser.c (c_parser_declspecs): ... here.
4815 * plugin.c (dump_active_plugins): Tidy output.
4816
68a607d8
DN
48172009-04-14 Diego Novillo <dnovillo@google.com>
4818 Le-Chun Wu <lcwu@google.com>
4819
4820 * configure.ac: Add --enable-plugin support.
4821 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
4822 * Makefile.in (PLUGIN_H): Define.
4823 Export ENABLE_PLUGIN and GMPINC to site.exp.
4824 Add PLUGINLIBS to link command.
4825 Add/modify dependencies for plugin.o and files including plugin.h.
4826 (plugin.o): New.
4827 * config.in: Regenerate.
2ba9daa7 4828
68a607d8
DN
4829 * opts.c (common_handle_option): Handle OPT_fplugin_ and
4830 OPT_fplugin_arg_.
4831
48322009-04-14 Le-Chun Wu <lcwu@google.com>
4833
4834 * tree-pass.h (register_one_dump_file): Add a prototype for
4835 register_one_dump_file.
4836 * toplev.c (compile_file): Call initialize_plugins.
4837 (do_compile): Call invoke_plugin_callbacks.
4838 (toplev_main): Call invoke_plugin_callbacks.
4839 * common.opt: Add -fplugin= and -fplugin-arg-.
4840 * gcc-plugin.h: New public header file for plugins to include.
4841 * plugin.c: New source file.
4842 * plugin.h: New internal header file.
4843 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 4844
68a607d8
DN
4845 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
4846
48472009-04-14 Diego Novillo <dnovillo@google.com>
4848
4849 * doc/plugins.texi: New.
4850 * doc/gccint.texi: Add reference to Plugins chapter.
4851 * doc/invoke.texi: Document -fplugin and -fplugin-arg
4852 * diagnostic.c (diagnostic_report_diagnostic): Warn about
4853 loaded plugins, if any.
4854 * timevar.def (TV_PLUGIN_INIT): Define.
4855 (TV_PLUGIN_RUN): Define.
4856 * plugin.c: Include timevar.h
4857 (plugins_active_p): New.
4858 (dump_active_plugins): New.
4859 (debug_active_plugins): New.
4860
50617257
JM
48612009-04-14 Joseph Myers <joseph@codesourcery.com>
4862
4863 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
4864 library paths.
4865 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
4866
b32f6fff
KH
48672009-04-14 Kazu Hirata <kazu@codesourcery.com>
4868
4869 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
4870 the same as a minus without a shift.
4871
85d04fa2
NC
48722009-04-14 Nick Clifton <nickc@redhat.com>
4873
4874 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
4875 comparisons with small integers will always produce a short
4876 branch.
4877
e495a0c8
RAE
48782009-04-14 Rafael Avila de Espindola <espindola@google.com>
4879
4880 Merge:
e495a0c8
RAE
4881 2008-12-19 Diego Novillo <dnovillo@google.com>
4882
532bfb0a 4883 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 4884
ad41bd84 48852009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
4886
4887 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
4888 verification.
4889 (verify_gimple_assign_binary): Likewise. Handle shifts and
4890 rotates correctly.
4891 (verify_gimple_phi): Print the mismatched argument position.
4892 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
4893 Fix types.
4894 (vect_update_init_of_dr): Likewise.
4895 * matrix-reorg.c (transform_access_sites): Do what the
4896 comment suggests.
4897 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
4898
60839f5d 48992009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
4900
4901 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
4902 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
4903 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 4904 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
4905 remove duplicate config
4906
b0e2d008
DR
49072009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
4908
4909 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
4910 file_name:line_number type locator of the call site.
2ba9daa7 4911
1244a8b7
VM
49122009-04-13 Vladimir Makarov <vmakarov@redhat.com>
4913
4914 * genautomata.c: Put blank after comma.
4915 (automaton_decls): New.
4916 (struct unit_usage): Add comments to member next.
4917 (store_alt_unit_usage): Keep the list ordered.
4918 (unit_present_on_list_p, equal_alternatives_p): New.
4919 (check_regexp_units_distribution): Check units distribution
4920 correctness correctly.
4921 (main): Don't write automata if error is found. Return correct
4922 exit code.
2ba9daa7 4923
1244a8b7
VM
4924 * config/m68k/cf.md (cfv4_ds): Remove.
4925 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
4926 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
4927
4928 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
4929 power4-load-ext, power4-store, power4-store-update,
4930 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
4931 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
4932 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
4933 power4-sqrt, power4-isync): Modify reservation to make correct
4934 unit distribution to automata.
4935
4936 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
4937 power5-store-update, power5-two, power5-three, power5-lmul,
4938 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 4939
f7dd1864
AN
49402009-04-13 Adam Nemet <anemet@caviumnetworks.com>
4941
4942 * except.c (pass_set_nothrow_function_flags): Set name and add
4943 TODO_dump_func.
4944 (set_nothrow_function_flags): Mention in the dump file when
4945 changing a function to nothrow.
4946
59a1171f
OS
49472009-04-13 Ozkan Sezer <sezeroz@gmail.com>
4948
4949 PR/39066
4950 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
4951 instead of unsigned long.
4952
934c2060
RR
49532009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4954
f7dd1864
AN
4955 * config/arm/arm.c (return_used_this_function): Remove.
4956 (arm_output_function_prologue): Remove use of
934c2060 4957 return_used_this_function.
f7dd1864 4958 (output_return_instruction): Replace use of
934c2060
RR
4959 return_used_this_function
4960 by cfun->machine->return_used_this_function.
f7dd1864
AN
4961 (arm_output_epilogue): Likewise.
4962 (arm_output_function_epilogue): Likewise.
4963 (thumb_unexpanded_epilogue): Likewise.
4964 * config/arm/arm.h (struct machine_function):
934c2060 4965 New member return_used_this_function.
f7dd1864 4966
ae5cc016
MM
49672009-04-12 Mark Mitchell <mark@codesourcery.com>
4968
4969 * doc/install.texi: Correct description of default directory for
4970 --with-gxx-include-dir.
4971
a0ce68df 49722009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
4973
4974 * fold-const.c (build_range_check): Properly deal with enumeral and
4975 boolean base types.
4976
3906a4a1
SB
49772009-04-12 Steven Bosscher <steven@gcc.gnu.org>
4978
4979 * doc/invoke.texi (max_gcse_passes): Remove documentation.
4980 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
4981 * params.h (MAX_GCSE_PASSES): Remove.
4982 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
4983 in sequence. Remove ability to run multiple passes.
4984 (bypass_jumps): Report run as third CPROP pass.
4985
efaadb93
AN
49862009-04-12 Adam Nemet <anemet@caviumnetworks.com>
4987
4988 PR middle-end/39651
4989 * except.c (can_throw_external): Look at each insn in a SEQUENCE
4990 when deciding whether the whole SEQUENCE can throw.
4991
4c48007b
UB
49922009-04-12 Uros Bizjak <ubizjak@gmail.com>
4993
4994 PR target/39740
4995 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
4996 offseted label references.
4997
b4104018
JH
49982009-04-11 Jan Hubicka <jh@suse.cz>
4999
5000 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
5001
32848948
RG
50022009-04-11 Richard Guenther <rguenther@suse.de>
5003
5004 PR middle-end/39732
5005 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
5006 return variables as TREE_ADDRESSABLE.
5007
8810712e
RG
50082009-04-11 Richard Guenther <rguenther@suse.de>
5009
5010 PR tree-optimization/39713
5011 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
5012 reference trees have SSA_NAME operands.
5013
fa78c0c1
RG
50142009-04-11 Richard Guenther <rguenther@suse.de>
5015
5016 PR c/39712
5017 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
5018 address expressions.
5019
4d722130
DK
50202009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
5021
5022 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
5023 match changes in Cygwin 1.7
5024 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
5025 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
5026
567a90f5
PB
50272009-04-10 Paolo Bonzini <bonzini@gnu.org>
5028
5029 PR tree-optimization/39701
5030 * doc/invoke.texi (Optimization Options): Document change in
5031 meaning and initialization of -fdelete-null-pointer-checks.
5032
1ad2f450
L
50332009-04-10 H.J. Lu <hongjiu.lu@intel.com>
5034
5035 PR middle-end/39701
5036 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5037
5038 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
5039 here.
5040
5041 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
5042
1afc5373
CF
50432009-04-10 Chao-ying Fu <fu@mips.com>
5044
5045 * doc/tm.texi (Instruction Output): Document
5046 TARGET_ASM_FINAL_POSTSCAN_INSN.
5047 * target.h (final_postscan_insn): New field in asm_out.
5048 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5049 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
5050 * final.c (final_scan_insn): Call
5051 targetm.asm_out.final_postscan_insn after outputting
5052 an asm macro and a normal instruction.
5053
5054 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
5055 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
5056 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
5057 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
5058 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5059
4d35e75c
PB
50602009-04-10 Paolo Bonzini <bonzini@gnu.org>
5061
5062 PR middle-end/39701
1ad2f450
L
5063 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
5064 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 5065
62c49b83
L
50662009-04-10 H.J. Lu <hongjiu.lu@intel.com>
5067
5068 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
5069
80558628
L
50702009-04-09 H.J. Lu <hongjiu.lu@intel.com>
5071
5072 PR target/39678
5073 * config/i386/i386.c (classify_argument): Handle SCmode with
5074 (bit_offset % 64) != 0.
5075
8c70d28b
SL
50762009-04-09 Sandra Loosemore <sandra@codesourcery.com>
5077
5078 * doc/invoke.texi (Optimize Options): Add cross-reference to
5079 -Q --help=optimizers examples.
5080
e1ff19bf
BE
50812009-04-10 Ben Elliston <bje@au.ibm.com>
5082
5083 PR target/36800
5084 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
5085 regalign for the reg == fpr and TDmode case.
5086
52daca75
DA
50872009-04-09 David Ayers <ayers@fsfe.org>
5088
5089 PR objc/29200
5090 * objc/objc-act.c (warn_with_method): Remove helper function.
5091 (check_duplicates): Call warning and inform directly.
5092 (really_start_method): Likewise.
5093
b45f0e58
PB
50942009-04-09 Paolo Bonzini <bonzini@gnu.org>
5095
5096 * expmed.c (expand_divmod): Always use a comparison for a division
5097 by a large unsigned integer.
5098
1ad2f450
L
5099 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5100 for things others than variables or functions as nonzero.
b45f0e58 5101
748086b7
JJ
51022009-04-09 Nick Clifton <nickc@redhat.com>
5103
5104 * unwind-compat.c: Change copyright header to refer to version
5105 3 of the GNU General Public License with version 3.1 of the
5106 GCC Runtime Library Exception and to point readers at the
7a715bba 5107 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
5108 * config/alpha/crtfastmath.c: Likewise.
5109 * config/alpha/linux-unwind.h: Likewise.
5110 * config/alpha/qrnnd.asm: Likewise.
5111 * config/alpha/vms-crt0-64.c: Likewise.
5112 * config/alpha/vms-crt0.c: Likewise.
5113 * config/alpha/vms-dwarf2.asm: Likewise.
5114 * config/alpha/vms-dwarf2eh.asm: Likewise.
5115 * config/alpha/vms-psxcrt0-64.c: Likewise.
5116 * config/alpha/vms-psxcrt0.c: Likewise.
5117 * config/alpha/vms_tramp.asm: Likewise.
5118 * config/arc/initfini.c: Likewise.
5119 * config/arc/lib1funcs.asm: Likewise.
5120 * config/arm/bpabi-v6m.S: Likewise.
5121 * config/arm/bpabi.S: Likewise.
5122 * config/arm/bpabi.c: Likewise.
5123 * config/arm/crti.asm: Likewise.
5124 * config/arm/crtn.asm: Likewise.
5125 * config/arm/ieee754-df.S: Likewise.
5126 * config/arm/ieee754-sf.S: Likewise.
5127 * config/arm/lib1funcs.asm: Likewise.
5128 * config/arm/libunwind.S: Likewise.
5129 * config/arm/linux-atomic.c: Likewise.
5130 * config/arm/mmintrin.h: Likewise.
5131 * config/arm/pr-support.c: Likewise.
5132 * config/arm/unaligned-funcs.c: Likewise.
5133 * config/arm/unwind-arm.c: Likewise.
5134 * config/arm/unwind-arm.h: Likewise.
5135 * config/avr/libgcc.S: Likewise.
5136 * config/bfin/crti.s: Likewise.
5137 * config/bfin/crtlibid.s: Likewise.
5138 * config/bfin/crtn.s: Likewise.
5139 * config/bfin/lib1funcs.asm: Likewise.
5140 * config/bfin/linux-unwind.h: Likewise.
5141 * config/cris/arit.c: Likewise.
5142 * config/cris/cris_abi_symbol.c: Likewise.
5143 * config/darwin-64.c: Likewise.
5144 * config/darwin-crt2.c: Likewise.
5145 * config/darwin-crt3.c: Likewise.
5146 * config/darwin.h: Likewise.
5147 * config/dbxelf.h: Likewise.
5148 * config/dfp-bit.c: Likewise.
5149 * config/dfp-bit.h: Likewise.
5150 * config/elfos.h: Likewise.
5151 * config/fixed-bit.c: Likewise.
5152 * config/fixed-bit.h: Likewise.
5153 * config/fp-bit.c: Likewise.
5154 * config/fp-bit.h: Likewise.
5155 * config/fr30/crti.asm: Likewise.
5156 * config/fr30/crtn.asm: Likewise.
5157 * config/fr30/lib1funcs.asm: Likewise.
5158 * config/freebsd-spec.h: Likewise.
5159 * config/frv/cmovd.c: Likewise.
5160 * config/frv/cmovh.c: Likewise.
5161 * config/frv/cmovw.c: Likewise.
5162 * config/frv/frvbegin.c: Likewise.
5163 * config/frv/frvend.c: Likewise.
5164 * config/frv/lib1funcs.asm: Likewise.
5165 * config/glibc-stdint.h: Likewise.
5166 * config/h8300/clzhi2.c: Likewise.
5167 * config/h8300/crti.asm: Likewise.
5168 * config/h8300/crtn.asm: Likewise.
5169 * config/h8300/ctzhi2.c: Likewise.
5170 * config/h8300/fixunssfsi.c: Likewise.
5171 * config/h8300/lib1funcs.asm: Likewise.
5172 * config/h8300/parityhi2.c: Likewise.
5173 * config/h8300/popcounthi2.c: Likewise.
5174 * config/i386/ammintrin.h: Likewise.
5175 * config/i386/att.h: Likewise.
5176 * config/i386/avxintrin.h: Likewise.
5177 * config/i386/biarch64.h: Likewise.
5178 * config/i386/bmmintrin.h: Likewise.
5179 * config/i386/cpuid.h: Likewise.
5180 * config/i386/cross-stdarg.h: Likewise.
5181 * config/i386/crtfastmath.c: Likewise.
5182 * config/i386/crtprec.c: Likewise.
5183 * config/i386/cygming-crtbegin.c: Likewise.
5184 * config/i386/cygming-crtend.c: Likewise.
5185 * config/i386/cygwin.asm: Likewise.
5186 * config/i386/emmintrin.h: Likewise.
5187 * config/i386/gmm_malloc.h: Likewise.
5188 * config/i386/gthr-win32.c: Likewise.
5189 * config/i386/i386.h: Likewise.
5190 * config/i386/immintrin.h: Likewise.
5191 * config/i386/linux-unwind.h: Likewise.
5192 * config/i386/linux64.h: Likewise.
5193 * config/i386/mm3dnow.h: Likewise.
5194 * config/i386/mmintrin-common.h: Likewise.
5195 * config/i386/mmintrin.h: Likewise.
5196 * config/i386/nmmintrin.h: Likewise.
5197 * config/i386/pmm_malloc.h: Likewise.
5198 * config/i386/pmmintrin.h: Likewise.
5199 * config/i386/smmintrin.h: Likewise.
5200 * config/i386/sol2-c1.asm: Likewise.
5201 * config/i386/sol2-ci.asm: Likewise.
5202 * config/i386/sol2-cn.asm: Likewise.
5203 * config/i386/sol2-gc1.asm: Likewise.
5204 * config/i386/tmmintrin.h: Likewise.
5205 * config/i386/unix.h: Likewise.
5206 * config/i386/w32-unwind.h: Likewise.
5207 * config/i386/wmmintrin.h: Likewise.
5208 * config/i386/x86-64.h: Likewise.
5209 * config/i386/x86intrin.h: Likewise.
5210 * config/i386/xmmintrin.h: Likewise.
5211 * config/ia64/crtbegin.asm: Likewise.
5212 * config/ia64/crtend.asm: Likewise.
5213 * config/ia64/crtfastmath.c: Likewise.
5214 * config/ia64/crti.asm: Likewise.
5215 * config/ia64/crtn.asm: Likewise.
5216 * config/ia64/fde-glibc.c: Likewise.
5217 * config/ia64/lib1funcs.asm: Likewise.
5218 * config/ia64/linux-unwind.h: Likewise.
5219 * config/ia64/quadlib.c: Likewise.
5220 * config/ia64/unwind-ia64.c: Likewise.
5221 * config/linux.h: Likewise.
5222 * config/m32c/m32c-lib1.S: Likewise.
5223 * config/m32c/m32c-lib2-trapv.c: Likewise.
5224 * config/m32c/m32c-lib2.c: Likewise.
5225 * config/m32r/initfini.c: Likewise.
5226 * config/m68hc11/larith.asm: Likewise.
5227 * config/m68hc11/m68hc11-crt0.S: Likewise.
5228 * config/m68k/cf.md: Likewise.
5229 * config/m68k/crti.s: Likewise.
5230 * config/m68k/crtn.s: Likewise.
5231 * config/m68k/lb1sf68.asm: Likewise.
5232 * config/m68k/linux-unwind.h: Likewise.
5233 * config/mcore/crti.asm: Likewise.
5234 * config/mcore/crtn.asm: Likewise.
5235 * config/mcore/lib1.asm: Likewise.
5236 * config/mips/linux-unwind.h: Likewise.
5237 * config/mips/loongson.h: Likewise.
5238 * config/mips/mips16.S: Likewise.
5239 * config/mmix/crti.asm: Likewise.
5240 * config/mmix/crtn.asm: Likewise.
5241 * config/pa/fptr.c: Likewise.
5242 * config/pa/hpux-unwind.h: Likewise.
5243 * config/pa/lib2funcs.asm: Likewise.
5244 * config/pa/linux-atomic.c: Likewise.
5245 * config/pa/linux-unwind.h: Likewise.
5246 * config/pa/milli64.S: Likewise.
5247 * config/pa/quadlib.c: Likewise.
5248 * config/pa/stublib.c: Likewise.
5249 * config/picochip/libgccExtras/adddi3.asm: Likewise.
5250 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5251 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5252 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5253 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5254 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5255 * config/picochip/libgccExtras/divmod15.asm: Likewise.
5256 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5257 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5258 * config/picochip/libgccExtras/longjmp.asm: Likewise.
5259 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5260 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5261 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5262 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5263 * config/picochip/libgccExtras/setjmp.asm: Likewise.
5264 * config/picochip/libgccExtras/subdi3.asm: Likewise.
5265 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5266 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5267 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5268 * config/rs6000/750cl.h: Likewise.
5269 * config/rs6000/altivec.h: Likewise.
5270 * config/rs6000/biarch64.h: Likewise.
5271 * config/rs6000/crtresfpr.asm: Likewise.
5272 * config/rs6000/crtresgpr.asm: Likewise.
5273 * config/rs6000/crtresxfpr.asm: Likewise.
5274 * config/rs6000/crtresxgpr.asm: Likewise.
5275 * config/rs6000/crtsavfpr.asm: Likewise.
5276 * config/rs6000/crtsavgpr.asm: Likewise.
5277 * config/rs6000/darwin-asm.h: Likewise.
5278 * config/rs6000/darwin-fallback.c: Likewise.
5279 * config/rs6000/darwin-fpsave.asm: Likewise.
5280 * config/rs6000/darwin-ldouble.c: Likewise.
5281 * config/rs6000/darwin-tramp.asm: Likewise.
5282 * config/rs6000/darwin-unwind.h: Likewise.
5283 * config/rs6000/darwin-vecsave.asm: Likewise.
5284 * config/rs6000/darwin-world.asm: Likewise.
5285 * config/rs6000/e500crtres32gpr.asm: Likewise.
5286 * config/rs6000/e500crtres64gpr.asm: Likewise.
5287 * config/rs6000/e500crtres64gprctr.asm: Likewise.
5288 * config/rs6000/e500crtrest32gpr.asm: Likewise.
5289 * config/rs6000/e500crtrest64gpr.asm: Likewise.
5290 * config/rs6000/e500crtresx32gpr.asm: Likewise.
5291 * config/rs6000/e500crtresx64gpr.asm: Likewise.
5292 * config/rs6000/e500crtsav32gpr.asm: Likewise.
5293 * config/rs6000/e500crtsav64gpr.asm: Likewise.
5294 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5295 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5296 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5297 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5298 * config/rs6000/eabi-ci.asm: Likewise.
5299 * config/rs6000/eabi-cn.asm: Likewise.
5300 * config/rs6000/eabi.asm: Likewise.
5301 * config/rs6000/linux-unwind.h: Likewise.
5302 * config/rs6000/linux64.h: Likewise.
5303 * config/rs6000/paired.h: Likewise.
5304 * config/rs6000/paired.md: Likewise.
5305 * config/rs6000/ppc64-fp.c: Likewise.
5306 * config/rs6000/ppu_intrinsics.h: Likewise.
5307 * config/rs6000/rs6000.h: Likewise.
5308 * config/rs6000/si2vmx.h: Likewise.
5309 * config/rs6000/sol-ci.asm: Likewise.
5310 * config/rs6000/sol-cn.asm: Likewise.
5311 * config/rs6000/spe.h: Likewise.
5312 * config/rs6000/spu2vmx.h: Likewise.
5313 * config/rs6000/sysv4.h: Likewise.
5314 * config/rs6000/tramp.asm: Likewise.
5315 * config/rs6000/vec_types.h: Likewise.
5316 * config/s390/linux-unwind.h: Likewise.
5317 * config/s390/tpf-unwind.h: Likewise.
5318 * config/score/crti.asm: Likewise.
5319 * config/score/crtn.asm: Likewise.
5320 * config/sh/crt1.asm: Likewise.
5321 * config/sh/crti.asm: Likewise.
5322 * config/sh/crtn.asm: Likewise.
5323 * config/sh/divtab-sh4-300.c: Likewise.
5324 * config/sh/divtab-sh4.c: Likewise.
5325 * config/sh/divtab.c: Likewise.
5326 * config/sh/lib1funcs-4-300.asm: Likewise.
5327 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5328 * config/sh/lib1funcs.asm: Likewise.
5329 * config/sh/lib1funcs.h: Likewise.
5330 * config/sh/linux-atomic.asm: Likewise.
5331 * config/sh/linux-unwind.h: Likewise.
5332 * config/sh/shmedia.h: Likewise.
5333 * config/sh/sshmedia.h: Likewise.
5334 * config/sh/ushmedia.h: Likewise.
5335 * config/sparc/crtfastmath.c: Likewise.
5336 * config/sparc/linux-unwind.h: Likewise.
5337 * config/sparc/sol2-c1.asm: Likewise.
5338 * config/sparc/sol2-ci.asm: Likewise.
5339 * config/sparc/sol2-cn.asm: Likewise.
5340 * config/spu/divmodti4.c: Likewise.
5341 * config/spu/divv2df3.c: Likewise.
5342 * config/spu/float_disf.c: Likewise.
5343 * config/spu/float_unsdidf.c: Likewise.
5344 * config/spu/float_unsdisf.c: Likewise.
5345 * config/spu/float_unssidf.c: Likewise.
5346 * config/spu/mfc_multi_tag_release.c: Likewise.
5347 * config/spu/mfc_multi_tag_reserve.c: Likewise.
5348 * config/spu/mfc_tag_release.c: Likewise.
5349 * config/spu/mfc_tag_reserve.c: Likewise.
5350 * config/spu/mfc_tag_table.c: Likewise.
5351 * config/spu/multi3.c: Likewise.
5352 * config/spu/spu_internals.h: Likewise.
5353 * config/spu/spu_intrinsics.h: Likewise.
5354 * config/spu/spu_mfcio.h: Likewise.
5355 * config/spu/vec_types.h: Likewise.
5356 * config/spu/vmx2spu.h: Likewise.
5357 * config/stormy16/stormy16-lib2.c: Likewise.
5358 * config/svr4.h: Likewise.
5359 * config/sync.c: Likewise.
5360 * config/v850/lib1funcs.asm: Likewise.
5361 * config/vxlib-tls.c: Likewise.
5362 * config/vxlib.c: Likewise.
5363 * config/vxworks-dummy.h: Likewise.
5364 * config/xtensa/crti.asm: Likewise.
5365 * config/xtensa/crtn.asm: Likewise.
5366 * config/xtensa/ieee754-df.S: Likewise.
5367 * config/xtensa/ieee754-sf.S: Likewise.
5368 * config/xtensa/lib1funcs.asm: Likewise.
5369 * config/xtensa/lib2funcs.S: Likewise.
5370 * config/xtensa/linux-unwind.h: Likewise.
5371 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5372 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5373 * coretypes.h: Likewise.
5374 * crtstuff.c: Likewise.
5375 * defaults.h: Likewise.
5376 * dwarf2.h: Likewise.
5377 * emutls.c: Likewise.
5378 * gbl-ctors.h: Likewise.
5379 * gcov-io.h: Likewise.
5380 * ginclude/float.h: Likewise.
5381 * ginclude/iso646.h: Likewise.
5382 * ginclude/stdarg.h: Likewise.
5383 * ginclude/stdbool.h: Likewise.
5384 * ginclude/stddef.h: Likewise.
5385 * ginclude/stdfix.h: Likewise.
5386 * ginclude/stdint-gcc.h: Likewise.
5387 * ginclude/tgmath.h: Likewise.
5388 * gthr-aix.h: Likewise.
5389 * gthr-dce.h: Likewise.
5390 * gthr-gnat.c: Likewise.
5391 * gthr-gnat.h: Likewise.
5392 * gthr-lynx.h: Likewise.
5393 * gthr-mipssde.h: Likewise.
5394 * gthr-nks.h: Likewise.
5395 * gthr-posix.c: Likewise.
5396 * gthr-posix.h: Likewise.
5397 * gthr-posix95.h: Likewise.
5398 * gthr-rtems.h: Likewise.
5399 * gthr-single.h: Likewise.
5400 * gthr-solaris.h: Likewise.
5401 * gthr-tpf.h: Likewise.
5402 * gthr-vxworks.h: Likewise.
5403 * gthr-win32.h: Likewise.
5404 * gthr.h: Likewise.
5405 * libgcc2.c: Likewise.
5406 * libgcc2.h: Likewise.
5407 * libgcov.c: Likewise.
5408 * tsystem.h: Likewise.
5409 * typeclass.h: Likewise.
5410 * unwind-c.c: Likewise.
5411 * unwind-compat.h: Likewise.
5412 * unwind-dw2-fde-compat.c: Likewise.
5413 * unwind-dw2-fde-darwin.c: Likewise.
5414 * unwind-dw2-fde-glibc.c: Likewise.
5415 * unwind-dw2-fde.c: Likewise.
5416 * unwind-dw2-fde.h: Likewise.
5417 * unwind-dw2.c: Likewise.
5418 * unwind-dw2.h: Likewise.
5419 * unwind-generic.h: Likewise.
5420 * unwind-pe.h: Likewise.
5421 * unwind-sjlj.c: Likewise.
5422 * unwind.inc: Likewise.
5423 * config/arm/neon-gen.ml: Change generated copyright header to
5424 refer to version 3 of the GNU General Public License with
5425 version 3.1 of the GCC Runtime Library Exception and to point
5426 readers at the COPYING3 and COPYING3.RUNTIME files and the
5427 FSF's license web page.
5428 * config/arm/arm_neon.h: Regenerate.
5429
54302009-04-09 Jakub Jelinek <jakub@redhat.com>
5431
5432 * config/cris/cris.md: Change copyright header to refer to version
5433 3 of the GNU General Public License.
5434 * doc/install.texi2html: Change copyright header to refer to version
5435 3 of the GNU General Public License and to point readers at the
5436 COPYING3 file and the FSF's license web page.
5437 * config/vax/linux.h: Likewise.
5438
4a77c72b
PB
54392009-04-09 Paolo Bonzini <bonzini@gnu.org>
5440
1ad2f450
L
5441 * config/i386/i386.md (cmpcc): New.
5442 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
5443 (sync_compare_and_swap_cc*): Delete.
5444
5445 * config/s390/s390.c (s390_compare_emitted): Remove.
5446 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
5447 s390_compare_emitted used to be handled. Assert that modes match.
5448 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
5449 refer to sync_compare_and_swap_ccsi.
5450 * config/s390/s390.h (s390_compare_emitted): Remove.
5451 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
5452 instead of s390_compare_emitted.
5453 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
5454 instead of s390_compare_emitted.
5455 * config/s390/s390.md (cmpcc): New.
5456 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
5457 CC_REGNUM, do not pretend it's set.
5458 (sync_compare_and_swap_cc*): Delete.
5459 * config/s390/predicates.md (cc_reg_operand): New.
5460
5461 * expr.c (sync_compare_and_swap_cc): Delete.
5462 * optabs.h (sync_compare_and_swap_cc): Delete.
5463 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
5464 is being used with can_compare_p.
5465 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
5466 (find_cc_set): New.
5467 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
5468 look for a MODE_CC set instead. Use emit_store_flag.
5469 (expand_compare_and_swap_loop): Likewise, with some additional
5470 complication to avoid a force_reg when useless. Use
5471 emit_cmp_and_jump_insns.
5472 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
5473 * doc/md.texi (sync_compare_and_swap_cc): Merge with
5474 sync_compare_and_swap documentation.
4a77c72b 5475
0c0efb33
JH
54762009-04-09 Jan Hubicka <jh@suse.cz>
5477
5478 * except.c (find_prev_try): Break out from ....
5479 (duplicate_eh_regions): ... here; properly update prev_try pointers
5480 when duplication part of tree.
5481 (dump_eh_tree): Improve dumping.
5482 (verify_eh_region): New.
5483 (verify_eh_tree): Use it.
5484
22a65a54
RG
54852009-04-06 Richard Guenther <rguenther@suse.de>
5486
5487 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
5488 &ARRAY addresses by adjusting their types and prepending
5489 a conversion.
5490 * tree-cfg.c (verify_gimple_assign_single): Verify that
5491 addresses are correct.
5492
f76968e6
RG
54932009-04-09 Richard Guenther <rguenther@suse.de>
5494
5495 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
5496 indices into an array reference if possible.
5497 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5498 Fold POINTER_PLUS_EXPR statements with invariant address.
5499
c90c5fb5
AM
55002009-04-09 Alan Modra <amodra@bigpond.net.au>
5501
5502 PR target/39634
5503 * config.gcc (powerpc64-*-linux*): Always build biarch.
5504
17cede2e
JM
55052009-04-09 Joseph Myers <joseph@codesourcery.com>
5506
5507 PR c/39613
5508 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5509 it and pedwarn if this results in an INTEGER_CST.
5510
a3337ea2
KG
55112009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5512
5513 * doc/install.texi: Update minimum GMP version. Remove obsolete
5514 text in MPFR section.
5515
ce9ba79b
JJ
55162009-04-08 Jakub Jelinek <jakub@redhat.com>
5517
5518 * dwarf2out.c (class_scope_p): New static inline.
5519 (class_or_namespace_scope_p): Use it.
5520 (gen_variable_die): Use DW_TAG_member tag for static data member
5521 declarations instead of DW_TAG_variable.
5522
4f0ae266
JJ
5523 PR middle-end/39573
5524 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
5525 variables.
5526
d27f0ddc
RG
55272009-04-08 Richard Guenther <rguenther@suse.de>
5528
5529 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
5530 valueize random data.
5531
557cc596
DE
55322009-04-08 David Edelsohn <edelsohn@gnu.org>
5533
5534 * config.gcc (aix tm_file): Add aix-stdint.h.
5535 (aix tm clause use_gcc_stdint): Set to wrap.
5536 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 5537
75ccc1e7
RG
55382009-04-08 Richard Guenther <rguenther@suse.de>
5539
5540 PR middle-end/36291
5541 * tree-dfa.c (add_referenced_var): Do not recurse into
5542 global initializers.
5543 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
5544 exposed variables.
5545 (fold_const_aggregate_ref): Likewise.
5546
c6963675
PB
55472009-04-08 Paolo Bonzini <bonzini@gnu.org>
5548
6c44cf79
L
5549 * recog.c (ordered_comparison_operator): New.
5550 * gensupport.c (std_preds): Add it.
c6963675
PB
5551 * doc/md.texi (Machine-Independent Predicates): Document it.
5552
6d07ad98
JH
55532009-04-08 Jan Hubicka <jh@suse.cz>
5554
5555 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
5556 * function.h (rtl_eh): Remove exception_handler_label_map.
5557 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
5558 remove_exception_handler_label, for_each_eh_label_1): Remove.
5559 (rtl_remove_unreachable_regions): Remove.
5560 (convert_from_eh_region_ranges): Do not remove unreachable regions.
5561 (find_exception_handler_labels): Don't build the hashtable.
5562 (maybe_remove_eh_handler): Remove.
5563 (for_each_eh_label): Rewrite to walk the tree.
5564 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
5565 * except.h (maybe_remove_eh_handler): Remove.
5566 * passes.c (init_optimization_passes): Schedule second EH cleanup
5567 before out-of-ssa.
5568 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
5569 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
5570
7ddf71e3
PB
55712009-04-08 Paolo Bonzini <bonzini@gnu.org>
5572
5573 * genoutput.c (validate_optab_operands): New.
5574 (gen_insn, gen_expand): Call it.
5575
5576 * genflags.c (gen_insn): Detect misused iterators.
5577 (main): Pass line_no to gen_insn, exit with status 1 on error.
5578
5579 * genextract.c (line_no): Make global.
5580 (VEC_safe_set_locstr): Change assertion to error message.
5581 (main): Exit with status 1 on error.
5582
4d84fe7c
JM
55832009-04-08 Joseph Myers <joseph@codesourcery.com>
5584
5585 PR c/39614
5586 PR c/39673
5587 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
5588 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
5589 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
5590 * c-convert.c (convert): Do not call fold on results of conversion
5591 functions when the result is a C_MAYBE_CONST_EXPR.
5592 * c-parser.c (c_parser_postfix_expression): Do not fold condition
5593 of __builtin_choose_expr.
5594 * c-typeck.c (remove_c_maybe_const_expr): New.
5595 (build_unary_op, build_conditional_expr, build_compound_expr,
5596 build_binary_op, c_objc_common_truthvalue_conversion): Call
5597 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
5598 integer operands.
5599
60839f5d 56002009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 5601
2ba9daa7 5602 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 5603 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 5604
8e481a2c
DS
56052009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
5606
5607 PR bootstrap/39660
5608 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
5609 mix declarations and code.
5610
ee618c17
BE
56112009-04-08 Ben Elliston <bje@au.ibm.com>
5612
5613 * gcc.c: Replace `CC' with `GCC' throughout.
5614
f2a758a2
L
56152009-04-07 H.J. Lu <hongjiu.lu@intel.com>
5616
5617 * doc/invoke.texi: Document Atom support.
5618
6ea2bd47
JM
56192009-04-07 Jason Merrill <jason@redhat.com>
5620
5621 PR c++/25185
5622 * c-common.h, c-common.c: Add flag_pretty_templates.
5623 * c-opts.c (c_common_handle_option): Set it.
5624 * c.opt: Add -fno-pretty-templates.
5625 * doc/invoke.texi (C++ Dialect Options): Likewise.
5626
fcb82ab0
UB
56272009-04-07 Uros Bizjak <ubizjak@gmail.com>
5628
5629 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
5630 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
5631 (ia64_expand_builtin): Likewise.
5632
dc5e7298
MJ
56332009-04-07 Martin Jambor <mjambor@suse.cz>
5634
5635 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
5636 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
5637 ADDR_EXPRS are include too.
5638
0609b355
RG
56392009-04-07 Richard Guenther <rguenther@suse.de>
5640
5641 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
5642 decls are only used if passes as parameters or if they are
5643 local statics and the call is not to a builtin.
5644 (call_may_clobber_ref_p_1): Likewise.
5645
d8e535fa
PB
56462009-04-07 Paolo Bonzini <bonzini@gnu.org>
5647
5648 * expr.c (do_store_flag): Remove last argument. Simplify code
5649 to avoid duplication of tests already done by can_compare_p.
5650 (expand_expr_real_1): Adjust caller.
5651
c3c64f50
PB
56522009-04-07 Paolo Bonzini <bonzini@gnu.org>
5653
fcb82ab0
UB
5654 * optabs.c (can_compare_p): Test the predicate of a
5655 cbranch and cstore pattern.
c3c64f50 5656
9a53bc17
PB
56572009-04-07 Paolo Bonzini <bonzini@gnu.org>
5658
fcb82ab0
UB
5659 * expr.c (convert_move): Use emit_store_flag instead of
5660 "emulating" it.
9a53bc17 5661
67b8f1c1
PB
56622009-04-07 Paolo Bonzini <bonzini@gnu.org>
5663
fcb82ab0
UB
5664 * config/i386/i386.c (ix86_compare_emitted): Remove.
5665 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
5666 ix86_compare_op0 like ix86_compare_emitted used to be handled.
5667 * config/i386/i386.h (ix86_compare_emitted): Remove.
5668 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
5669 instead of ix86_compare_emitted.
5670 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 5671
44509946
AS
56722009-04-07 Andrew Stubbs <ams@codesourcery.com>
5673
5674 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
5675 Add t-sysroot-suffix to tmake_file.
5676 * config/print-sysroot-suffix.sh: New file.
5677 * config/t-sysroot-suffix: New file.
5678
ca22d882
BE
56792009-04-07 Ben Elliston <bje@au.ibm.com>
5680
5681 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
5682 as the latter produces a warning when the target does not support
5683 infinity.
5684
95aac11b
BE
56852009-04-07 Ben Elliston <bje@au.ibm.com>
5686
5687 * dfp.c: Replace type punning assignments with memcpy throughout.
5688 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 5689
633dd061
AM
56902009-04-07 Alan Modra <amodra@bigpond.net.au>
5691
5692 PR target/39634
5693 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
5694 Include soft-fp/t-softfp after rs6000/t-linux64.
5695
fe0a25ec
EB
56962009-04-06 Eric Botcazou <ebotcazou@adacore.com>
5697
5698 * stor-layout.c (set_sizetype): Use the full precision of their
5699 machine mode for bitsize types.
5700
0c011bc3
L
57012009-04-06 H.J. Lu <hongjiu.lu@intel.com>
5702
5703 * config/i386/i386.md: Revert 2 accidental checkins.
5704
b6837b94 57052009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 5706 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
5707 H.J. Lu <hongjiu.lu@intel.com>
5708
5709 Atom pipeline model, tuning and insn selection.
5710 * config.gcc (atom): Add atom config options and target.
5711
5712 * config/i386/atom.md: New.
5713
5714 * config/i386/i386.c (atom_cost): New cost.
5715 (m_ATOM): New macro flag.
5716 (initial_ix86_tune_features): Set m_ATOM.
5717 (x86_accumulate_outgoing_args): Likewise.
5718 (x86_arch_always_fancy_math_387): Likewise.
5719 (processor_target): Add Atom cost.
5720 (cpu_names): Add Atom cpu name.
5721 (override_options): Set Atom ISA.
5722 (ix86_issue_rate): New case PROCESSOR_ATOM.
5723 (ix86_adjust_cost): Likewise.
5724
5725 * config/i386/i386.h (TARGET_ATOM): New target macro.
5726 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
5727 (TARGET_OPT_AGU): New target option.
5728 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
5729 (processor_type): Add PROCESSOR_ATOM.
5730
5731 * config/i386/i386.md (cpu): Add new value "atom".
5732 (use_carry, movu): New attr.
5733 (atom.md): Include atom.md.
5734 (adddi3_carry_rex64): Set attr "use_carry".
5735 (addqi3_carry): Likewise.
5736 (addhi3_carry): Likewise.
5737 (addsi3_carry): Likewise.
5738 (*addsi3_carry_zext): Likewise.
5739 (subdi3_carry_rex64): Likewise.
5740 (subqi3_carry): Likewise.
5741 (subhi3_carry): Likewise.
5742 (subsi3_carry): Likewise.
5743 (x86_movdicc_0_m1_rex64): Likewise.
5744 (*x86_movdicc_0_m1_se): Likewise.
5745 (x86_movsicc_0_m1): Likewise.
5746 (*x86_movsicc_0_m1_se): Likewise.
5747 (*adddi_1_rex64): Emit add insn as much as possible.
5748 (*addsi_1): Likewise.
5749 (return_internal): Set atom_unit.
5750 (return_internal_long): Likewise.
5751 (return_pop_internal): Likewise.
5752 (*rcpsf2_sse): Set atom_sse_attr attr.
5753 (*qrt<mode>2_sse): Likewise.
5754 (*prefetch_sse): Likewise.
5755
5756 * config/i386/i386-c.c (ix86_target_macros_internal): New case
5757 PROCESSOR_ATOM.
5758 (ix86_target_macros_internal): Likewise.
5759
5760 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
5761 (*prefetch_sse_rex): Likewise.
5762 (sse_rcpv4sf2): Likewise.
5763 (sse_vmrcpv4sf2): Likewise.
5764 (sse_sqrtv4sf2): Likewise.
5765 (<sse>_vmsqrt<mode>2): Likewise.
5766 (sse_ldmxcsr): Likewise.
5767 (sse_stmxcsr): Likewise.
5768 (*sse_sfence): Likewise.
5769 (sse2_clflush): Likewise.
5770 (*sse2_mfence): Likewise.
5771 (*sse2_lfence): Likewise.
5772 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
5773 (<sse>_movup<ssemodesuffixf2c>): Likewise.
5774 (avx_movdqu<avxmodesuffix>): Likewise.
5775 (avx_lddqu<avxmodesuffix>): Likewise.
5776 (sse2_movntv2di): Change attr "type" to "ssemov".
5777 (sse2_movntsi): Likewise.
5778 (rsqrtv8sf2): Change attr "type" to "sseadd".
5779 (sse3_addsubv2df3): Set attr "atom_unit".
5780 (sse3_h<plusminus_insn>v4sf3): Likewise.
5781 (*sse2_pmaddwd): Likewise.
5782 (*vec_extractv2di_1_rex64): Likewise.
5783 (*vec_extractv2di_1_avx): Likewise.
5784 (sse2_psadbw): Likewise.
5785 (ssse3_phaddwv8hi3): Likewise.
5786 (ssse3_phaddwv4hi3): Likewise.
5787 (ssse3_phadddv4si3): Likewise.
5788 (ssse3_phadddv2si3): Likewise.
5789 (ssse3_phaddswv8hi3): Likewise.
5790 (ssse3_phaddswv4hi3): Likewise.
5791 (ssse3_phsubwv8hi3): Likewise.
5792 (ssse3_phsubwv4hi3): Likewise.
5793 (ssse3_phsubdv4si3): Likewise.
5794 (ssse3_phsubdv2si3): Likewise.
5795 (ssse3_phsubswv8hi3): Likewise.
5796 (ssse3_phsubswv4hi3): Likewise.
5797 (ssse3_pmaddubsw128): Likewise.
5798 (sse3_pmaddubsw: Likewise.
5799 (ssse3_palignrti): Likewise.
5800 (ssse3_palignrdi): Likewise.
5801
53e350d3
GP
58022009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
5803
5804 * doc/install.texi (Specific): Fix two cross-references to MinGW.
5805
439ef907
RG
58062009-04-06 Richard Guenther <rguenther@suse.de>
5807
5808 PR tree-optimization/28868
5809 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
5810 of which PHI results we inserted.
5811 (insert_into_preds_of_block): Record inserted PHIs.
5812 (eliminate): Eliminate redundant PHI nodes.
5813 (init_pre): Init inserted_phi_names.
5814
4bad83f5
RG
58152009-04-06 Richard Guenther <rguenther@suse.de>
5816
5817 PR tree-optimization/39643
5818 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
5819 IMAGPART_EXPRs of complex constants.
5820 (execute_fold_all_builtins): If we folded a call queue
5821 TODO_update_address_taken.
5822
570c4247
JH
58232009-04-06 Jan Hubicka <jh@suse.cz>
5824
5825 PR middle-end/39659
5826 * except.c (remove_unreachable_regions): Propagate may_contain_throw
5827 flag.
5828
a460d7a1
AS
58292009-04-06 Andrew Stubbs <ams@codesourcery.com>
5830
5831 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
5832 delay slot.
5833 (ic_invalidate_array): Likewise.
5834
60839f5d 58352009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
5836
5837 * calls.c (emit_library_call_value_1): Fix a problem with parameter
5838 alignment for library calls.
5839
7d253f6e
DS
58402009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
5841
5842 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
5843 (mingw32 tm clause use_gcc_stdint): Set to wrap.
5844 * config/i386/mingw-stdint.h: New file.
5845
941c3614
RB
58462009-04-05 Richard Guenther <rguenther@suse.de>
5847
5848 PR tree-optimization/39648
5849 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
5850 our &A vs. &A[0] IL deficiencies.
5851
12633413
JH
58522009-04-04 Jan Hubicka <jh@suse.cz>
5853
941c3614
RB
5854 * except.c (sjlj_find_directly_reachable_regions): Be ready for
5855 removed toplevel regions.
12633413
JH
5856 (sjlj_mark_call_sites): Likewise.
5857
bb2aaded
DK
58582009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
5859
5860 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
5861 (cygwin tm clause use_gcc_stdint): Set to wrap.
5862 * config/i386/cygwin-stdint.h: New file.
5863
86290011
RG
58642009-04-04 Richard Guenther <rguenther@suse.de>
5865
5866 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
5867 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
5868 single-argument PHIs if we are in loop-closed SSA form.
5869 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
5870 for the pre-condition.
5871 (slpeel_tree_peel_loop_to_edge): Likewise.
5872 (vect_build_loop_niters): Take an optional sequence to append stmts.
5873 (vect_generate_tmps_on_preheader): Likewise.
5874 (vect_do_peeling_for_loop_bound): Take extra guards for the
5875 pre-condition.
5876 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
5877 the cost model check.
5878 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 5879 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
5880 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
5881 (vect_do_peeling_for_loop_bound): Likewise.
5882 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
5883 loop bound only record extra pre-conditions, do not apply loop
5884 versioning.
5885
5eeeac64
RG
58862009-04-04 Richard Guenther <rguenther@suse.de>
5887
5888 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
5889 renaming code.
5890
1ff7d06b
JH
58912009-04-04 Jan Hubicka <jh@suse.cz>
5892
5893 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
5894 last_basic_block for size of bb->index indexed array.
5895 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
5896 compute_out, link_btr_uses, build_btr_def_use_webs,
5897 build_btr_def_use_webs, migrate_btr_defs): Likewise.
5898
14925fcd
JH
58992009-04-04 Jan Hubicka <jh@suse.cz>
5900
5901 * except.c (remove_eh_handler_and_replace): Break out from ...
5902 (remove_eh_handler): ... here.
5903 (bring_to_root): New function.
5904 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
5905 handled ones, bring others to root of tree.
5906
4e6d1743
JH
59072009-04-04 Jan Hubicka <jh@suse.cz>
5908
4cb735f7
JH
5909 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
5910 (all_phis_safe_to_merge): New function.
5911 (update_info): New structure.
5912 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
5913 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 5914
c6803d43
RG
59152009-04-04 Richard Guenther <rguenther@suse.de>
5916
5917 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
5918 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
5919 (append_vuse): Likewise.
5920
54f5943c
JJ
59212009-04-04 Jakub Jelinek <jakub@redhat.com>
5922
5923 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
5924 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
5925 instead of REG_UNSAVED for DW_CFA_undefined.
5926 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
5927 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
5928 outermost frame.
5929
aad2bccb
RE
59302009-04-04 Richard Earnshaw <rearnsha@arm.com>
5931
5932 PR target/39501
5933 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
5934 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
5935 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
5936
aa7069aa
RG
59372009-04-04 Richard Guenther <rguenther@suse.de>
5938
5939 PR tree-optimization/8781
5940 PR tree-optimization/37892
5941 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
5942 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
5943 (valueize_refs): Call it for *& valueizations.
5944 (shared_reference_ops_from_ref): Rename to ...
5945 (valueize_shared_reference_ops_from_ref): ... this and valueize.
5946 (shared_reference_ops_from_call): Rename to ...
5947 (valueize_shared_reference_ops_from_call): ... this and valueize.
5948 (vn_reference_lookup): Update.
5949 (visit_reference_op_call): Likewise.
5950 * tree-ssa-pre.c (phi_translate_1): Fold *&.
5951 (eliminate): Value-replace the call address in call statements.
5952
cd15ad3e
RG
59532009-04-04 Richard Guenther <rguenther@suse.de>
5954
5955 PR tree-optimization/39636
5956 * tree-ssa-forwprop.c
5957 (forward_propagate_addr_into_variable_array_index): Check for
5958 GIMPLE_ASSIGN before accessing the rhs code.
5959
462f3262
JM
59602009-04-03 Jason Merrill <jason@redhat.com>
5961
5962 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
5963
6adb807e
SE
59642009-04-03 Steve Ellcey <sje@cup.hp.com>
5965
5966 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
5967 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
5968 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
5969 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
5970 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
5971 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
5972 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
5973 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
5974 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
5975 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
5976 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
5977 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
5978 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
5979 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
5980 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
5981 Use fr_reg_or_fp01_operand instead of fr_register_operand
5982
5983 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
5984 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
5985 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
5986
174b3107
VM
59872009-04-03 Vladimir Makarov <vmakarov@redhat.com>
5988
b844e5d8
L
5989 PR rtl-optimization/39607
5990 PR rtl-optimization/39631
7a715bba
UB
5991
5992 Revert:
2ba9daa7 5993
174b3107
VM
5994 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
5995 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
5996 instead of DF_LR_OUT.
5997 * ira-lives.c (process_bb_node_lives): Ditto.
5998 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
5999 instead of DF_LR_{OUT,IN}.
6000 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6001 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6002
535b544a
SB
60032009-04-03 Steven Bosscher <steven@gcc.gnu.org>
6004
6005 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
6006 (execute_lower_omp): Always run but take the short way out if -fopenmp
6007 is not given.
6008 (gate_lower_omp): Remove, forcing the pass manager to always run the
6009 pass and always set PROP_gimple_lomp.
6010 (pass_lower_omp): Remove gate function.
6011 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
6012 PROP_trees. Instead, require it.
6013 * ipa-cp.c (pass_ipa_cp): Likewise.
6014 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
6015 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
6016 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
6017 and PROP_gimple_leh.
6018
5006671f
RG
60192009-04-03 Richard Guenther <rguenther@suse.de>
6020
6021 PR middle-end/13146
6022 PR tree-optimization/23940
6023 PR tree-optimization/33237
6024 PR middle-end/33974
6025 PR middle-end/34093
6026 PR tree-optimization/36201
6027 PR tree-optimization/36230
6028 PR tree-optimization/38049
6029 PR tree-optimization/38207
6030 PR tree-optimization/38230
6031 PR tree-optimization/38301
6032 PR tree-optimization/38585
6033 PR middle-end/38895
6034 PR tree-optimization/38985
6035 PR tree-optimization/39299
6036 * tree-ssa-structalias.h: Remove.
6037 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
6038 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
6039 (struct vuse_element_d): Remove.
6040 (struct vuse_vec_d): Likewise.
6041 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
6042 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
6043 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
6044 VUSE_ELEMENT_VAR): Likewise.
6045 (struct voptype_d): Likewise.
6046 (NUM_VOP_FREE_BUCKETS): Likewise.
6047 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
6048 (struct stmt_operands_d): Remove.
6049 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
6050 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6051 VDEF_NUM, VDEF_VECT): Likewise.
6052 (copy_virtual_operands): Remove.
6053 (operand_build_cmp): Likewise.
6054 (create_ssa_artificial_load_stmt): Likewise.
6055 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
6056 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
6057 vuse_index and mayuse_index members. Pack and move done and iter_type
6058 members to the front.
6059 (SSA_OP_VMAYUSE): Remove.
6060 (SSA_OP_VIRTUAL_USES): Adjust.
6061 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
6062 (unlink_stmt_vdef): Declare.
6063 (add_to_addressable_set): Remove.
6064 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
6065 (vrp_visit_stmt): Likewise.
6066 * doc/tree-ssa.texi (Alias analysis): Update.
6067 * doc/invoke.texi (max-aliased-vops): Remove docs.
6068 (avg-aliased-vops): Likewise.
6069 * tree-into-ssa.c (syms_to_rename): Remove.
6070 (need_to_update_vops_p): Likewise.
6071 (need_to_initialize_update_ssa_p): Rename to ...
6072 (update_ssa_initialized_fn): ... this. Track function we are
6073 initialized for.
6074 (symbol_marked_for_renaming): Simplify.
6075 (add_new_name_mapping): Do not set need_to_update_vops_p.
6076 (dump_currdefs): Use SYMS_TO_RENAME.
6077 (rewrite_update_stmt): Always walk all uses/defs.
6078 (dump_update_ssa): Adjust.
6079 (init_update_ssa): Take function argument. Track what we are
6080 initialized for.
6081 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
6082 (create_new_def_for): Initialize for cfun, assert we are initialized
6083 for cfun.
6084 (mark_sym_for_renaming): Simplify.
6085 (mark_set_for_renaming): Do not initialize update-ssa.
6086 (need_ssa_update_p): Simplify. Take function argument.
6087 (name_mappings_registered_p): Assert we ask for the correct function.
6088 (name_registered_for_update_p): Likewise.
6089 (ssa_names_to_replace): Likewise.
6090 (release_ssa_name_after_update_ssa): Likewise.
6091 (update_ssa): Likewise. Use SYMS_TO_RENAME.
6092 (dump_decl_set): Do not print a newline.
6093 (debug_decl_set): Do it here.
6094 (dump_update_ssa): And here.
6095 * tree-ssa-loop-im.c (move_computations): Adjust.
6096 (movement_possibility): Likewise.
6097 (determine_max_movement): Likewise.
6098 (gather_mem_refs_stmt): Likewise.
6099 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6100 or NAME_MEMORY_TAG.
6101 * tree-complex.c (update_all_vops): Remove.
6102 (expand_complex_move): Adjust.
6103 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6104 Simplify test for memory referencing statement. Exclude
6105 non-invariant ADDR_EXPRs.
6106 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6107 * tree-loop-distribution.c (generate_memset_zero): Adjust.
6108 (rdg_flag_uses): Likewise.
6109 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6110 related code.
6111 (tree_optimize_tail_calls_1): Also split the
6112 edge from the entry block if we have degenerate PHI nodes in
6113 the first basic block.
6114 * tree.c (init_ttree): Remove memory-tag related code.
6115 (tree_code_size): Likewise.
6116 (tree_node_structure): Likewise.
6117 (build7_stat): Re-write to be build6_stat.
6118 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6119 (SSA_VAR_P): Adjust.
6120 (struct tree_memory_tag): Remove.
6121 (struct tree_memory_partition_tag): Likewise.
6122 (union tree_node): Adjust.
6123 (build7): Re-write to be build6.
6124 * tree-pass.h (pass_reset_cc_flags): Remove.
6125 (TODO_update_address_taken): New flag.
6126 (pass_simple_dse): Remove.
6127 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6128 * params.h (MAX_ALIASED_VOPS): Remove.
6129 (AVG_ALIASED_VOPS): Likewise.
6130 * omp-low.c (expand_omp_taskreg): Update SSA form.
6131 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6132 aliases the lhs in a copy stmt.
6133 * tree-ssa-dse.c (struct address_walk_data): Remove.
6134 (memory_ssa_name_same): Likewise.
6135 (memory_address_same): Likewise.
6136 (get_kill_of_stmt_lhs): Likewise.
6137 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
6138 unused stores. Look through PHI nodes into post-dominated regions.
6139 (dse_optimize_stmt): Simplify. Properly remove stores.
6140 (tree_ssa_dse): Compute dominators.
6141 (execute_simple_dse): Remove.
6142 (pass_simple_dse): Likewise.
6143 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6144 gimple_loaded_syms and gimple_stored_syms computation.
6145 * toplev.c (dump_memory_report): Dump alias and pta stats.
6146 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6147 (vn_reference_eq): Likewise.
6148 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6149 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6150 valueize_vuses): Remove.
6151 (get_def_ref_stmt_vuses): Simplify. Rename to ...
6152 (get_def_ref_stmt_vuse): ... this.
6153 (vn_reference_lookup_2): New function.
6154 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6155 walking equivalent vuses. Simplify.
6156 (vn_reference_lookup): Likewise.
6157 (vn_reference_insert): Likewise.
6158 (vn_reference_insert_pieces): Likewise.
6159 (visit_reference_op_call): Simplify.
6160 (visit_reference_op_load): Likewise.
6161 (visit_reference_op_store): Likewise.
6162 (init_scc_vn): Remove shared_lookup_vuses initialization.
6163 (free_scc_vn): Remove shared_lookup_vuses freeing.
6164 (sort_vuses, sort_vuses_heap): Remove.
6165 (get_ref_from_reference_ops): Export.
6166 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6167 vector with single vuse pointer.
6168 (vn_reference_lookup_pieces, vn_reference_lookup,
6169 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6170 (shared_vuses_from_stmt): Remove.
6171 (get_ref_from_reference_ops): Declare.
6172 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6173 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6174 memory-tag related code.
6175 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6176 (likely_value): Add comment, skip static-chain of call statements.
6177 (surely_varying_stmt_p): Adjust.
6178 (gimplify_and_update_call_from_tree): Likewise.
6179 (execute_fold_all_builtins): Do not rebuild alias info.
6180 (gimplify_and_update_call_from_tree): Properly update VOPs.
6181 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6182 (copy_ref_info): Remove memory-tag related code.
6183 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6184 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6185 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6186 computation.
6187 * tree-ssa-dom.c (gimple_p): Remove typedef.
6188 (eliminate_redundant_computations): Adjust.
6189 (record_equivalences_from_stmt): Likewise.
6190 (avail_expr_hash): Likewise.
6191 (avail_expr_eq): Likewise.
7a715bba 6192 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
6193 (stmt_makes_single_load): Likewise.
6194 (stmt_makes_single_store): Likewise.
6195 * tree-ssa-alias.c: Rewrite completely.
6196 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6197 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6198 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6199 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6200 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6201 Remove public functions.
6202 (pass_reset_cc_flags): Remove.
6203 (pass_build_alias): Move ...
6204 * tree-ssa-structalias.c (pass_build_alias): ... here.
6205 * tree-ssa-alias.c (may_be_aliased): Move ...
6206 * tree-flow-inline.h (may_be_aliased): ... here.
6207 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6208 count_uses_and_derefs): Move ...
6209 * gimple.c: ... here.
6210 * gimple.h (count_uses_and_derefs): Declare.
6211 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6212 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6213 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6214 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6215 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6216 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6217 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6218 New functions.
6219 * tree-dfa.c (refs_may_alias_p): Move ...
6220 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
6221 * tree-ssa-alias.h: New file.
6222 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6223 (statement_sink_location): Likewise.
6224 * opts.c (decode_options): Do not adjust max-aliased-vops or
6225 avg-aliased-vops values.
6226 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6227 (TV_CALL_CLOBBER): Likewise.
6228 (TV_FLOW_SENSITIVE): Likewise.
6229 (TV_FLOW_INSENSITIVE): Likewise.
6230 (TV_MEMORY_PARTITIONING): Likewise.
6231 (TV_ALIAS_STMT_WALK): New timevar.
6232 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6233 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6234 (get_address_description): Remove memory-tag related code.
6235 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6236 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6237 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6238 and immediate uses in statements. Document.
6239 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6240 (dump_symbols): Remove.
6241 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6242 * alias.c (get_deref_alias_set): New function split out from ...
6243 (get_alias_set): ... here.
6244 * alias.h (get_deref_alias_set): Declare.
6245 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6246 type parameter. Remove restrict pointer handling. Create a
6247 ref-all pointer in case type-based alias sets do not conflict.
6248 (vect_analyze_data_refs): Remove SMT related code.
6249 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6250 (vectorizable_load): Likewise.
6251 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6252 (DR_SYMBOL_TAG, DR_VOPS): Remove.
6253 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6254 Ignore vops and SMTs.
6255 (dr_analyze_alias): Likewise..
6256 (free_data_ref): Likewise.
6257 (create_data_ref): Likewise.
6258 (analyze_all_data_dependences): Likewise.
6259 (get_references_in_stmt): Adjust.
6260 * tree-flow-inline.h (gimple_aliases_computed_p,
6261 gimple_addressable_vars, gimple_call_clobbered_vars,
6262 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6263 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6264 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6265 gimple_mem_ref_stats): Remove.
6266 (gimple_vop): New function.
6267 (op_iter_next_use): Remove vuses and mayuses cases.
6268 (op_iter_next_def): Remove vdefs case.
6269 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6270 (clear_and_done_ssa_iter): Do not set removed fields.
6271 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
6272 Assert we are not iterating over vuses or vdefs if not also
6273 iterating over uses or defs.
6274 (op_iter_init_use): Likewise.
6275 (op_iter_init_def): Likewise.
6276 (op_iter_next_vdef): Remove.
6277 (op_iter_next_mustdef): Likewise.
6278 (op_iter_init_vdef): Likewise.
6279 (compare_ssa_operands_equal): Likewise.
6280 (link_use_stmts_after): Handle vuse operand.
6281 (is_call_used): Use is_call_clobbered.
6282 (is_call_clobbered): Global variables are always call clobbered,
6283 query the call-clobbers bitmap.
6284 (mark_call_clobbered): Ignore global variables.
6285 (clear_call_clobbered): Likewise.
6286 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6287 virtual operands sanity check.
6288 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6289 Remove.
6290 (TARGET_MEM_REF): Remove TMR_TAG operand.
6291 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6292 Remove call-clobber related code.
6293 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
6294 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6295 partitions or escape reason.
6296 (get_single_def_stmt, get_single_def_stmt_from_phi,
6297 get_single_def_stmt_with_phi): Remove.
6298 (dump_referenced_vars): Tidy.
6299 (get_ref_base_and_extent): Allow bare decls.
6300 (collect_dfa_stats): Adjust.
6301 * graphite.c (rename_variables_in_stmt): Adjust.
6302 (graphite_copy_stmts_from_block): Likewise.
6303 (translate_clast): Likewise.
6304 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6305 (EXPR_DIES): New.
6306 (translate_vuse_through_block): Use the oracle.
6307 (phi_translate_1): Adjust.
6308 (value_dies_in_block_x): Use the oracle. Cache the outcome
6309 in EXPR_DIES.
6310 (valid_in_sets): Check if the VUSE for
6311 a REFERENCE is available.
6312 (eliminate): Do not remove stmts during elimination,
6313 instead queue and remove them afterwards.
6314 (do_pre): Do not rebuild alias info.
6315 (pass_pre): Run TODO_rebuild_alias before PRE.
6316 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6317 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6318 (mark_all_v_defs_stmt): Remove.
6319 (mark_all_v_defs_seq): Adjust.
6320 (sra_replace): Likewise.
6321 (scalarize_use): Likewise.
6322 (scalarize_copy): Likewise.
6323 (scalarize_init): Likewise.
6324 (scalarize_ldst): Likewise.
6325 (todoflags): Remove.
6326 (tree_sra): Do not rebuild alias info.
6327 (tree_sra_early): Adjust.
6328 (pass_sra): Run TODO_update_address_taken before SRA.
6329 * tree-predcom.c (set_alias_info): Remove.
6330 (prepare_initializers_chain): Do not call it.
6331 (mark_virtual_ops_for_renaming): Adjust.
6332 (mark_virtual_ops_for_renaming_list): Remove.
6333 (initialize_root_vars): Adjust.
6334 (initialize_root_vars_lm): Likewise.
6335 (prepare_initializers_chain): Likewise.
6336 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6337 (may_propagate_copy_into_stmt): Likewise.
6338 (merge_alias_info): Do nothing for now.
6339 (propagate_tree_value_into_stmt): Adjust.
6340 (stmt_may_generate_copy): Likewise.
6341 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6342 not mark symbols for renaming.
6343 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6344 with the same statement, make sure to update the new pointed-to one.
6345 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6346 call statements, do not mark symbols for renaming.
6347 (mark_operand_necessary): Dump something.
6348 (ref_may_be_aliased): New function.
6349 (mark_aliased_reaching_defs_necessary_1): New helper function.
6350 (mark_aliased_reaching_defs_necessary): Likewise.
6351 (mark_all_reaching_defs_necessary_1): Likewise.
6352 (mark_all_reaching_defs_necessary): Likewise.
6353 (propagate_necessity): Do not process virtual PHIs. For
6354 non-aliased loads mark all reaching definitions as necessary.
6355 For aliased loads and stores mark the immediate dominating
6356 aliased clobbers as necessary.
6357 (visited): New global static.
6358 (perform_tree_ssa_dce): Free visited bitmap after propagating
6359 necessity.
6360 (remove_dead_phis): Perform simple dead virtual PHI removal.
6361 (remove_dead_stmt): Properly unlink virtual operands when
6362 removing stores.
6363 (eliminate_unnecessary_stmts): Schedule PHI removal after
6364 stmt removal.
6365 * tree-ssa-ter.c (is_replaceable_p): Adjust.
6366 (process_replaceable): Likewise.
6367 (find_replaceable_in_bb): Likewise.
6368 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6369 based on the single gimple vop.
6370 (verify_flow_insensitive_alias_info): Remove.
6371 (verify_flow_sensitive_alias_info): Likewise.
6372 (verify_call_clobbering): Likewise.
6373 (verify_memory_partitions): Likewise.
6374 (verify_alias_info): Likewise.
6375 (verify_ssa): Adjust..
6376 (execute_update_addresses_taken): Export. Update SSA
6377 manually. Optimize only when optimizing. Use a local bitmap.
6378 (pass_update_address_taken): Remove TODO_update_ssa, add
6379 TODO_dump_func.
6380 (pass_update_address_taken): Just use TODO_update_address_taken.
6381 (init_tree_ssa): Do not initialize addressable_vars.
6382 (verify_ssa): Verify new VUSE / VDEF properties.
6383 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6384 Do not call verify_alias_info.
6385 (delete_tree_ssa): Clear the VUSE, VDEF operands.
6386 Do not free the loaded and stored syms bitmaps. Reset the escaped
6387 and callused solutions. Do not free addressable_vars.
6388 Remove memory-tag related code.
6389 (warn_uninitialized_var): Aliases are always available.
6390 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6391 * lambda-code.c (can_put_in_inner_loop): Adjust.
6392 (can_put_after_inner_loop): Likewise.
6393 (perfect_nestify): Likewise.
6394 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6395 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6396 (vectorizable_conversion): Do not mark symbols for renaming.
6397 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6398 (expand_call_inline): Unlink the calls virtual operands before
6399 replacing it.
6400 (tree_function_versioning): Do not call update_ssa if we are not
6401 updating clones. Simplify.
6402 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6403 (propagate_with_phi): Likewise..
6404 * tree-outof-ssa.c (create_temp): Remove memory tag and call
6405 clobber code. Assert we are not aliased or global.
6406 * tree-flow.h: Include tree-ssa-alias.h
6407 (enum escape_type): Remove.
6408 (struct mem_sym_stats_d): Likewise.
6409 (struct mem_ref_stats_d): Likewise.
6410 (struct gimple_df): Add vop member. Remove global_var,
6411 call_clobbered_vars, call_used_vars, addressable_vars,
6412 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
6413 escaped and callused members.
6414 (struct ptr_info_def): Remove all members, add points-to solution
6415 member pt.
6416 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6417 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6418 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6419 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6420 (tree-ssa-alias.o): Likewise.
6421 (toplev.o): Add tree-ssa-alias.h
6422 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6423 * gimple.c (gimple_set_bb): Fix off-by-one error.
6424 (is_gimple_reg): Do not handle memory tags.
6425 (gimple_copy): Also copy virtual operands.
6426 Delay updating the statement. Do not reset loaded and stored syms.
6427 (gimple_set_stored_syms): Remove.
6428 (gimple_set_loaded_syms): Likewise.
6429 (gimple_call_copy_skip_args): Copy the virtual operands
6430 and mark the new statement modified.
6431 * tree-ssa-structalias.c (may_alias_p): Remove.
6432 (set_uids_in_ptset): Take the alias set to prune with as
6433 parameter. Fold in the alias test of may_alias_p.
6434 (compute_points_to_sets): Compute whether a ptr is dereferenced
6435 in a local sbitmap.
6436 (process_constraint): Deal with &ANYTHING on the lhs, reject all
6437 other ADDRESSOF constraints on the lhs.
6438 (get_constraint_for_component_ref): Assert that we don't get
6439 ADDRESSOF constraints from the base of the reference.
6440 Properly generate UNKNOWN_OFFSET for DEREF if needed.
6441 (struct variable_info): Remove collapsed_to member.
6442 (get_varinfo_fc): Remove.
6443 (new_var_info): Do not set collapsed_to.
6444 (dump_constraint): Do not follow cycles.
6445 (dump_constraint_graph): Likewise.
6446 (build_pred_graph): Likewise.
6447 (build_succ_graph): Likewise.
6448 (rewrite_constraints): Likewise.
6449 (do_simple_structure_copy): Remove.
6450 (do_rhs_deref_structure_copy): Remove.
6451 (do_lhs_deref_structure_copy): Remove.
6452 (collapse_rest_of_var): Remove.
6453 (do_structure_copy): Re-implement.
6454 (pta_stats): New global variable.
6455 (dump_pta_stats): New function.
6456 (struct constraint_expr): Make offset signed.
6457 (UNKNOWN_OFFSET): Define special value.
6458 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
6459 (solution_set_expand): New helper function split out from ...
6460 (do_sd_constraint): ... here.
6461 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
6462 (do_ds_constraint): Likewise.
6463 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
6464 and CALLUSED = *CALLUSED.
6465 (set_union_with_increment): Make inc argument signed.
6466 (type_safe): Remove.
6467 (get_constraint_for_ptr_offset): Handle unknown and negative
6468 constant offsets.
6469 (first_vi_for_offset): Handle offsets before start. Bail
6470 out early for offsets beyond the variable extent.
6471 (first_or_preceding_vi_for_offset): New function.
6472 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
6473 Together with ESCAPED = *ESCAPED this properly computes reachability.
6474 (find_what_var_points_to): New function.
6475 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
6476 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
6477 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
6478 pt_solutions_intersect): New functions.
6479 (compute_call_used_vars): Remove.
6480 (compute_may_aliases): New main entry into PTA computation.
6481 * gimple.h (gimple_p): New typedef.
6482 (struct gimple_statement_base): Remove references_memory_p.
6483 (struct gimple_statement_with_memory_ops_base): Remove
6484 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
6485 members.
6486 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
6487 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
6488 gimple_set_references_memory): Remove.
6489 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
6490 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
6491 New functions.
6492 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
6493 (verify_expr): Allow RESULT_DECL.
6494 (gimple_duplicate_bb): Do not copy virtual operands.
6495 (gimple_duplicate_sese_region): Adjust.
6496 (gimple_duplicate_sese_tail): Likewise.
6497 (mark_virtual_ops_in_region): Remove.
6498 (move_sese_region_to_fn): Do not call it.
6499 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
6500 and pass_simple_dse.
6501 (execute_function_todo): Handle TODO_update_address_taken,
6502 call execute_update_addresses_taken for TODO_rebuild_alias.
6503 (execute_todo): Adjust.
6504 (execute_one_pass): Init dump files early.
6505 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
6506 call-clobbered.
6507 (create_general_new_stmt): Clear vops.
6508 * tree-ssa-reassoc.c (get_rank): Adjust.
6509 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
6510 symbols for renaming.
6511 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
6512 (PARAM_AVG_ALIASED_VOPS): Likewise.
6513 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
6514 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 6515 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
6516 (operand_build_cmp, copy_virtual_operands,
6517 create_ssa_artificial_load_stmt, add_to_addressable_set,
6518 gimple_add_to_addresses_taken): Remove public functions.
6519 (unlink_stmt_vdef): New function.
6520
457d1d00
AM
65212009-04-03 Alan Modra <amodra@bigpond.net.au>
6522
6523 * config.gcc (powerpc-*-linux*): Merge variants.
6524
e19da24c 65252009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 6526 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
6527
6528 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
6529 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
6530 cop0_sp_offset.
6531 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
6532 keep_interrupts_masked_p, use_debug_exception_return_p.
6533 (mips_attribute_table): Add interrupt, use_shadow_register_set,
6534 keep_interrupts_masked, use_debug_exception_return.
6535 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
6536 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
6537 New functions.
6538 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
6539 (mips_print_operand): Process COP0 registers to print $0 .. $31
6540 correctly for GAS to process.
6541 (mips_interrupt_extra_call_saved_reg_p): New function.
6542 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
6543 extra registers.
6544 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
6545 (mips_compute_frame_info): Add supports for interrupt context that
6546 includes doubleword accumulators and COP0 registers.
6547 (mips_for_each_saved_acc): New function.
6548 (mips_for_each_saved_gpr_and_fpr): Change the function name from
6549 mips_for_each_saved_reg.
6550 (mips_save_reg): Save accumulators.
6551 (mips_kernel_reg_p): A new for_each_rtx callback.
6552 (mips_expand_prologue): Support interrupt handlers.
6553 (mips_restore_reg): Restore accumulators.
6554 (mips_expand_epilogue): Support interrupt handlers.
6555 (mips_can_use_return_insn): Return false for interrupt handlers.
6556 (mips_epilogue_uses): New function.
6557 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
6558 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
6559 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
6560 cop0_move): New instructions.
6561 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
6562 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
6563 defines.
6564 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
6565 New defines.
6566 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
6567 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
6568 interrupt handlers, we use K0 as the temporary register.
6569 (EPILOGUE_USES): Change to a function call.
6570 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
6571 handlers, we use K0 as the temporary register.
2ba9daa7 6572
e19da24c
CF
6573 * doc/extend.texi (Function Attributes): Document interrupt,
6574 use_shadow_register_set, keep_interrupts_masked,
6575 use_debug_exception_return for MIPS attributes.
6576
aa1ca044
AM
65772009-04-03 Alan Modra <amodra@bigpond.net.au>
6578
6579 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
6580 Remove a number of t-files from tmake_file.
6581 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
6582 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
6583 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6584 target_prototype, not TARGET_PROTOTYPE.
6585 (LINK_OS_GNU_SPEC): Define.
6586 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
6587 and darwin-ldoubdle.c.
6588
14fdc613
MM
65892009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
6590
6591 PR driver/39293
6592 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
6593 (cpp_options): Ditto.
6594 (default_compilers): Ditto.
6595 (display_help): Ditto.
6596 (process_command): Ditto.
6597 (do_spec_1): Ditto.
6598 (set_input): Use lbasename instead of duplicate code.
6599 (save_temps_prefix): New static for -save-temps=obj.
6600 (save_temps_length): Ditto.
2ba9daa7 6601
14fdc613
MM
6602 * doc/invoke.texi (-save-temps=obj): Document new variant to
6603 -save-temps switch.
6604
d3aa398e
JL
66052009-04-02 Jeff Law <law@redhat.com>
6606
6607 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
6608 variable.
6609
83f0ccb8
L
66102009-04-02 H.J. Lu <hongjiu.lu@intel.com>
6611
6612 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
6613 * configure: Regenerated.
6614
dcb6e951
RAE
66152009-04-02 Rafael Avila de Espindola <espindola@google.com>
6616
6617 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
6618 share the argument list.
6619
d85478c2
RAE
66202009-04-02 Rafael Avila de Espindola <espindola@google.com>
6621
6622 Merge
6623
6624 2009-02-12 Diego Novillo <dnovillo@google.com>
6625
83f0ccb8
L
6626 * varpool.c (debug_varpool): New.
6627 * cgraph.h (debug_varpool): Declare.
d85478c2 6628
34f42a49
JH
66292009-04-02 Jan Hubicka <jh@suse.cz>
6630
6631 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
6632 pass.
6633
a4747b4a
L
66342009-04-02 H.J. Lu <hongjiu.lu@intel.com>
6635
6636 * config/i386/i386.c (ix86_abi): Move initialization to ...
6637 (override_options): Here.
6638
63a9de54
CB
66392009-04-02 Christian Bruel <christian.bruel@st.com>
6640
6641 * config/sh/sh.c (sh_dwarf_register_span): New function.
6642 (TARGET_DWARF_REGISTER_SPAN): Define.
6643 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 6644
2f0fa28e
IR
66452009-04-02 Ira Rosen <irar@il.ibm.com>
6646
6647 PR tree-optimization/39595
2ba9daa7 6648 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
6649 interleaved loads group is not greater than the SLP group size.
6650
bbf7ce11
RAE
66512009-04-02 Rafael Avila de Espindola <espindola@google.com>
6652
6653 * builtins.c (is_builtin_name): New.
6654 (called_as_built_in): Use is_builtin_name.
6655 * tree.h (is_builtin_name): New.
6656 * varasm.c (incorporeal_function_p): Use is_builtin_name
6657
47e4dfcf
AS
66582009-04-02 Andrew Stubbs <ams@codesourcery.com>
6659
6660 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
6661
d0940d56
DS
66622009-04-02 Dodji Seketeli <dodji@redhat.com>
6663
6664 PR c++/26693
532bfb0a 6665 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
6666 * c-common.c (set_underlying_type): ... here.
6667 Also, make sure the function properly sets TYPE_STUB_DECL() on
6668 the newly created typedef variant type.
6669 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
6670 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
6671 points.
d0940d56 6672
bf1cbdc6
RG
66732009-04-02 Richard Guenther <rguenther@suse.de>
6674
6675 PR tree-optimization/37221
6676 * tree-flow.h (degenerate_phi_result): Declare.
6677 * tree-ssa-dom.c (degenerate_phi_result): Export.
6678 * tree-scalar-evolution.c (analyze_initial_condition): If
6679 the initial condition is defined by a degenerate PHI node
6680 use the degenerate value.
6681
87cfb32c
EB
66822009-04-01 Eric Botcazou <ebotcazou@adacore.com>
6683
6684 PR rtl-optimization/39588
6685 * combine.c (merge_outer_ops): Do not set the constant when this
6686 is not necessary.
6687 (simplify_shift_const_1): Do not modify it either in this case.
6688
bbb6eae8
SB
66892009-04-01 Steven Bosscher <steven@gcc.gnu.org>
6690
6691 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
6692 tuning is deprecated if -mtune value is set to an Itanium1 variant.
6693
839a3b8a
JJ
66942009-04-01 Janis Johnson <janis187@us.ibm.com>
6695
6696 PR c/29027
6697 * c-lex.c (interpret_float): Default (no suffix) is double.
6698
667e8acb
XDL
66992009-04-1 Xinliang David Li <davidxl@google.com>
6700
6701 * config/i386/i386.c (legitimate_constant_p): Recognize
6702 all one vector constant.
6703
60839f5d 67042009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6705
60839f5d 6706 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
6707 Change #include order to silence two warnings.
6708
60839f5d 67092009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6710
60839f5d 6711 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
6712 (ASM_SPEC): Pass -k to the assembler for PIC code.
6713
60839f5d 67142009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6715
60839f5d
EB
6716 * config.gcc: Add vax-*-linux* to the switch.
6717 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
6718 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
6719
60839f5d 67202009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6721
60839f5d 6722 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 6723 Use predicate macros instead of GET_CODE() == foo.
60839f5d 6724 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
6725 ashlsi3, rotrsi3, <unnamed>): Likewise.
6726
60839f5d 67272009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6728
60839f5d 6729 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 6730 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
6731 * config/vax/constraints.md: Likewise.
6732 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6733 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
6734 * config/vax/predicates.md: Likewise.
6735 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 6736 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
6737 * config/vax/vax.h: Likewise.
6738 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 6739
60839f5d 67402009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6741
60839f5d 6742 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
6743 (indirectable_address_p, adjacent_operands_p): Add spaces around
6744 braces.
60839f5d 6745 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 6746
60839f5d 67472009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6748
60839f5d 6749 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
6750 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
6751 index_term_p, reg_plus_index_p, legitimate_address_p,
6752 vax_mode_dependent_address_p): Update comments to match functions
6753 modified by the recent int->bool conversion.
6754
60839f5d 67552009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6756
60839f5d
EB
6757 * config/vax/builtins.md: Update copyright message.
6758 * config/vax/constraints.md: Likewise.
6759 * config/vax/netbsd-elf.h: Likewise.
6760 * config/vax/predicates.md: Likewise.
6761 * config/vax/vax-protos.h: Likewise.
6762 * config/vax/vax.c: Likewise.
6763 * config/vax/vax.h: Likewise.
6764 * config/vax/vax.md: Likewise.
6765 * config/vax/vax.opt: Likewise.
c4e75102 6766
60839f5d 67672009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 6768
60839f5d 6769 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 6770 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
6771 * config/vax/constraints.md (B, R): Likewise.
6772 * config/vax/predicates.md (external_memory_operand,
c4e75102 6773 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
6774 * config/vax/vax.c (vax_output_int_add): Likewise.
6775 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
6776 untyped_call): Likewise.
6777
60839f5d 67782009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 6779
7a715bba
UB
6780 * config/vax/predicates.md: New file.
6781 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
6782 external_const_operand, nonsymbolic_operand, external_memory_operand,
6783 indirect_memory_operand, indexed_memory_operand,
6784 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
6785 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
6786 predicate.
7a715bba
UB
6787 * config/vax/constraints.md: New file.
6788 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
6789 New constraint.
6790 * config/vax/builtins.md: New file.
6791 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
6792 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
6793 jbbccisi): Define.
c4e75102
MT
6794 * config/vax/vax.opt (mqmath): Add option.
6795 * config/vax/vax.md (isfx): Extend with DI.
6796 (VAXintQH, VAXintQHSD): Define.
6797 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
6798 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
6799 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
6800 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
6801 (movdi): Update constraints and use vax_output_int_move().
6802 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
6803 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
6804 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
6805 nonlocal_goto): New.
6806 (mov<mode>): Extend accepted operand types.
6807 (subdi3_old): Rename from subdi3, change update constraints and use
6808 a new implementation.
60839f5d 6809 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
6810 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
6811 MOVE_RATIO, CLEAR_RATIO): Define.
6812 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
6813 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
6814 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 6815 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
6816 (split_quadword_operands): Make static and really allow variable
6817 splitting.
6818 (print_operand_address): Update for PIC generation.
6819 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
6820 indexable_address_p, fixup_mathdi_operand,
6821 vax_expand_addsub_di_operands, adjacent_operands_p): New.
6822 (vax_float_literal, legitimate_constant_p,
6823 indirectable_constant_address_p, index_term_p,
6824 reg_plus_index_p): Return bool instead of int.
6825 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
6826 where needed.
6827 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
6828 generation.
6829 (vax_output_conditional_branch): Indent.
6830 (legitimate_constant_address_p, indirectable_constant_address_p,
6831 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
6832 vax_mode_dependent_address_p): Return bool instead of int, update for
6833 PIC generation.
6834 * config/vax/vax-protos.h (legitimate_constant_address_p,
6835 legitimate_constant_p, legitimate_address_p,
6836 vax_mode_dependent_address_p): Change declaration to bool.
6837 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
6838 vax_expand_addsub_di_operands, vax_output_int_subtract,
6839 vax_output_movmemsi): Declare.
6840 (split_quadword_operands, vax_float_literal): Delete declaration.
6841 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
6842 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
6843 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
6844 ASM_OUTPUT_DWARF_PCREL): Define.
6845 (ASM_SPEC): Change definition to allow PIC generation.
6846
9332c6eb
L
68472009-04-01 Steve Ellcey <sje@cup.hp.com>
6848
6849 * doc/sourcebuild.texi: Update front-end requirements.
6850
d93e052c
JJ
68512009-04-01 Jakub Jelinek <jakub@redhat.com>
6852
6853 PR target/39226
6854 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
6855 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
6856 (booldi3_internal3): Use boolean_or_operator instead of
6857 boolean_operator.
6858
6ccb2a4a
JM
68592009-04-01 Joseph Myers <joseph@codesourcery.com>
6860
6861 PR c/39605
6862 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
6863 declarator whose size is not an integer constant expression but
6864 folds to an integer constant, then treat it as a constant
6865 subsequently.
6866
299b87f8
RG
68672009-04-01 Richard Guenther <rguenther@suse.de>
6868
6869 * fold-const.c (fold_plusminus_mult_expr): Do not fold
6870 i * 4 + 2 to (i * 2 + 1) * 2.
6871
b85eb797
JJ
68722009-04-01 Jakub Jelinek <jakub@redhat.com>
6873
6874 PR c/37772
6875 * c-parser.c (c_parser_asm_statement): Skip until close paren and
6876 return if c_parser_asm_string_literal returned NULL.
6877
235e1fe8
NC
68782009-04-01 Nick Clifton <nickc@redhat.com>
6879
6880 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
6881 already defined.
6882 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
6883 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
6884 other typedefs to avoid conflicts with libgcc2.c. Define labels
6885 to gain 16-bit bit-manipulation functions from libgcc2.c and then
6886 include it.
6887 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
6888 to gain 16-bit trapping arithmetic functions from libgcc2.c and
6889 then include it.
6890
d6868399
RAE
68912009-04-01 Rafael Avila de Espindola <espindola@google.com>
6892
7a715bba
UB
6893 * varasm.c (default_function_rodata_section): Declare DOT as
6894 const char*.
d6868399 6895
73d21f56 68962009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 6897 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
6898
6899 PR/39492
6900 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
6901 Make object_name unique for each process.
6902
03742a9b
JJ
69032009-04-01 Jakub Jelinek <jakub@redhat.com>
6904
6905 PR other/39591
6906 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
6907 addressable variables in the parallel that could go out of scope while
6908 running queued tasks.
6909
4223ff5f
AS
69102009-04-01 Anatoly Sokolov <aesok@post.ru>
6911
6912 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
6913 (CASE_VALUES_THRESHOLD): Redefine.
6914 * config/avr/avr.c (avr_override_options): Remove initialization of
6915 avr_case_values_threshold variable.
6916 (avr_case_values_threshold): Remove variable. Add new function.
6917 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
6918 * config/avr/avr.opt (mno-tablejump): Remove option.
6919 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
6920
e893f6f3
DD
69212009-04-01 DJ Delorie <dj@redhat.com>
6922
6923 * varasm.c (default_function_rodata_section): Don't assume
6924 anything about where the first '.' in the section name is.
6925
b246d100
AM
69262009-04-01 Alan Modra <amodra@bigpond.net.au>
6927
6928 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
6929 rs6000_emit_stack_tie.
6930
d3e37a9e
ILT
69312009-03-31 Ian Lance Taylor <iant@google.com>
6932
6933 * tree-eh.c (tree_remove_unreachable_handlers): Compare
6934 gimple_code with GIMPLE_RESX, not RESX.
6935
c1b61fca
JM
69362009-03-31 Joseph Myers <joseph@codesourcery.com>
6937
6938 * c-common.c (c_get_ident): New.
7a715bba 6939 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 6940
c2d2ad48
BE
69412009-04-01 Ben Elliston <bje@au.ibm.com>
6942
6943 * config/rs6000/sysv4.opt (msdata): Improve option description.
6944
13d1a6e7
SE
69452009-03-31 Steve Ellcey <sje@cup.hp.com>
6946
6947 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
6948 (divdf3_internal_lat): Remove.
6949 (divxf3_internal_lat): Remove.
6950 (divxf3_internal_thr): Remove.
6951 (divxf): Use divxf3_internal.
6952 * config/ia64/div.md (divsf3_internal_lat): New.
6953 (divdf3_internal_lat): New.
6954 (divxf3_internal): New.
6955
207bf79d
JM
69562009-03-31 Joseph Myers <joseph@codesourcery.com>
6957
6958 PR c/448
6959 * Makefile.in (USE_GCC_STDINT): Define.
6960 (stmp-int-hdrs): Install stdint.h if applicable.
6961 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
6962 if known.
6963 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
6964 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
6965 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
6966 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6967 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
6968 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
6969 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
6970 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6971 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
6972 (c_common_nodes_and_builtins): Initialize
6973 underlying_wchar_type_node. Do not initialize
6974 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
6975 nodes for new types.
6976 (c_stddef_cpp_builtins): Define macros for new types.
6977 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
6978 Remove.
6979 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
6980 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
6981 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
6982 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
6983 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
6984 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
6985 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
6986 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
6987 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
6988 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
6989 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
6990 int16_type_node, int32_type_node, int64_type_node,
6991 uint8_type_node, uint16_type_node, c_uint32_type_node,
6992 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
6993 int_least32_type_node, int_least64_type_node,
6994 uint_least8_type_node, uint_least16_type_node,
6995 uint_least32_type_node, uint_least64_type_node,
6996 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
6997 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
6998 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
6999 uintptr_type_node): Define.
7000 * c-cppbuiltin.c (builtin_define_constants,
7001 builtin_define_type_minmax): New.
7002 (builtin_define_stdint_macros): Define more macros.
7003 (c_cpp_builtins): Define more limit macros.
7004 (type_suffix): New.
7005 (builtin_define_type_max): Define in terms of
7006 builtin_define_type_minmax. Remove is_long parameter. All
7007 callers changed.
7008 * config.gcc (use_gcc_stdint): Define.
7009 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
7010 Add newlib-stdint.h for generic targets.
7011 * config/glibc-stdint.h, config/newlib-stdint.h,
7012 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
7013 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
7014 * config/score/score.h (UINTPTR_TYPE): Define.
7015 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7016 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7017 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7018 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7019 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7020 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7021 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7022 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7023 * config/spu/spu.h (STDINT_LONG32): Define.
7024 * configure.ac (use_gcc_stdint): Substitute.
7025 * configure: Regenerate.
7026 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
7027 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
7028 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
7029 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
7030 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
7031 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
7032 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
7033 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
7034 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
7035 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
7036 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
7037 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
7038 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
7039 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
7040 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
7041 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
7042 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
7043 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
7044 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
7045 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
7046 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
7047 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
7048 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7049 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7050 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7051 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7052 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7053 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7054 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
7055
ed853664
BS
70562009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
7057
7058 * loop-iv.c (suitable_set_for_replacement): Renamed from
7059 simplify_using_assignment; changed to return bool and to accept new
7060 args DEST and SRC. Return true iff we find a source/destination pair
7061 that can be used to make a replacement, and fill SRC and DEST if so.
7062 Remove arg ALTERED. Don't deal with altered regs here. All callers
7063 changed.
7064 (simplify_using_initial_values): Deal with altered regs here and track
7065 more precisely the effect they have on the validity of our expression.
7066
1569e190
BS
7067 * loop-iv.c (simplify_using_condition): A condition of the form
7068 (EQ REG CONST) can be used to simply make a substitution.
7069 (simplify_using_initial_values): Keep track of conditions we have seen
7070 and keep using them to simplify new expressions, while applying the
7071 same substitutions to them as to the expression.
7072
1d1eb80c
BS
7073 * simplify-rtx.c (simplify_relational_operation_1): Simplify
7074 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
7075 GEU/LTU reversed.
7076
28af33b0
BS
7077 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
7078 changed. Use this when trying to improve the upper bound.
7079 Generate the comparison by using simplify_gen_relational.
7080
b30321cd
BS
7081 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
7082
60081874
BS
7083 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
7084 functions.
2ba9daa7 7085 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
7086 replace_in_expr to make replacements. Call replace_single_def_regs
7087 once on the initial version of the expression.
7088
bebc6e07
RR
70892009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7090
fcb82ab0 7091 PR target/27237
bebc6e07 7092 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 7093
6b12efe9
RG
70942009-03-31 Richard Guenther <rguenther@suse.de>
7095
7096 PR middle-end/31029
7097 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7098 equality comparisons. Fold C - X CMP X if C % 2 == 1.
7099
108f6c2f
RG
71002009-03-31 Richard Guenther <rguenther@suse.de>
7101
7102 * tree.h (div_if_zero_remainder): Declare.
7103 * fold-const.c (div_if_zero_remainder): Export.
7104 * tree-ssa-forwprop.c
7105 (forward_propagate_addr_into_variable_array_index): Handle
7106 constant array index addition outside of the variable index.
7107
8f612190
JM
71082009-03-31 Joseph Myers <joseph@codesourcery.com>
7109
7110 PR target/39592
7111 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7112 define_splits, floatunssi<mode>2): Require x87 conversions from
7113 DImode to be permitted.
7114
47580d22
JM
71152009-03-31 Joseph Myers <joseph@codesourcery.com>
7116
7117 PR preprocessor/15638
7118 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7119
ba4d8f9d
RG
71202009-03-31 Richard Guenther <rguenther@suse.de>
7121
7122 PR middle-end/23401
7123 PR middle-end/27810
7124 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7125 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7126 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7127 a separate statement.
7128 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7129 (lookup_tmp_var): Likewise.
7130 (is_gimple_formal_tmp_or_call_rhs): Remove.
7131 (is_gimple_reg_or_call_rhs): Rename to ...
7132 (is_gimple_reg_rhs_or_call): ... this.
7133 (is_gimple_mem_or_call_rhs): Rename to ...
7134 (is_gimple_mem_rhs_or_call): ... this.
7135 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
7136 DECL_GIMPLE_REG_P only if is_formal is true.
7137 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
7138 for non-proper post-modify expression gimplification.
7139 (gimplify_self_mod_expr): For post-modify expressions gimplify
7140 the lvalue to a minimal lvalue.
7141 (rhs_predicate_for): Remove formal temp case.
7142 (gimplify_modify_expr_rhs): Likewise.
7143 (gimplify_addr_expr): Use is_gimple_reg.
7144 (gimplify_expr): Remove formal temp cases.
7145 (gimple_regimplify_operands): Likewise.
7146 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7147 and FILTER_EXPR like constants.
7148 * gimple.c (walk_gimple_op): Fix val_only initialization, use
7149 is_gimple_reg.
7150 (is_gimple_formal_tmp_rhs): Remove.
7151 (is_gimple_reg_rhs): Remove special casing.
7152 (is_gimple_mem_rhs): Fix.
7153 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7154 (is_gimple_formal_tmp_var): Remove.
7155 (is_gimple_formal_tmp_reg): Likewise.
7156 (is_gimple_min_lval): Allow invariant component ref parts.
7157 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7158 is_gimple_formal_tmp_reg): Remove declarations.
7159 * tree-cfg.c (verify_expr): Verify that variables with address
7160 taken do not have DECL_GIMPLE_REG_P set.
7161 * tree-mudflap.c (mf_build_check_statement_for): Use
7162 force_gimple_operand instead of gimplify_expr.
7163
8de9b877
AZ
71642009-03-31 Ayal Zaks <zaks@il.ibm.com>
7165
7166 * modulo-sched.c (sms_schedule_by_order): Pass the actual
7167 schedulable rows to compute_split_row.
7168
b5e3caf2
BE
71692009-03-31 Ben Elliston <bje@au.ibm.com>
7170
7171 PR target/31635
7172 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7173 OPT_mvrsave.
7174
9752c4ad
AM
71752009-03-31 Alan Modra <amodra@bigpond.net.au>
7176
7177 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7178 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7179 * configure: Regenerate.
7180 * config.in: Regenerate.
7181 * config/rs6000/rs6000.opt (mtls-markers): Add.
7182 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7183 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7184 (tls_ld_aix, tls_ld_sysv): Likewise.
7185 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7186 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7187
b597d1b6
AM
71882009-03-31 Alan Modra <amodra@bigpond.net.au>
7189
7190 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7191
a203a221
JH
71922009-03-30 Jan Hubicka <jh@suse.cz>
7193
b597d1b6
AM
7194 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7195 out of RESX.
7196 (tree_remove_unreachable_handlers): Cleanup EH predecestor
7197 detection and label handling.
a203a221 7198
5b0c0b2c
VM
71992009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7200
7201 * ira-int.h (ira_allocno): Rename left_conflicts_num to
7202 left_conflicts_size.
7203 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7204 ALLOCNO_LEFT_CONFLICTS_SIZE.
7205
7206 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7207 remove_allocno_from_bucket_and_push,
7208 allocno_spill_priority_compare, push_allocnos_to_stack,
7209 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7210 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7211 (setup_allocno_left_conflicts_num): Ditto. Rename to
7212 setup_allocno_left_conflicts_size.
7213 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7214 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7215 setup_allocno_left_conflicts_size instead of
7216 setup_allocno_left_conflicts_num.
7217
7218 * ira-build.c (ira_create_allocno): Use
7219 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7220 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 7221
9a48a93f
VM
72222009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7223
7224 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7225 instead of DF_LR_OUT.
7226
7227 * ira-lives.c (process_bb_node_lives): Ditto.
7228
7229 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7230 instead of DF_LR_{OUT,IN}.
7231
7232 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7233
7234 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7235
4c936d4f
JH
72362009-03-30 Jan Hubicka <jh@suse.cz>
7237
7238 * except.c (label_to_region_map): Fix thinko.
7239
f4d9f129
SE
72402009-03-30 Steve Ellcey <sje@cup.hp.com>
7241
7242 PR middle-end/38237
7243 * tree.h (tree_find_value): New declaration.
7244 * tree.c (tree_find_value): New function.
7245 * varasm.c (assemble_external): Avoid duplicate entries on lists.
7246
b3f27c15
JJ
72472009-03-30 Jakub Jelinek <jakub@redhat.com>
7248
7249 PR debug/39563
7250 * c-decl.c (struct c_binding): Add locus field.
7251 (bind): Add locus argument, set locus field from it.
7252 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7253 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7254 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7255 implicitly_declare, undeclared_variable, lookup_label,
7256 declare_label, c_make_fname_decl, c_builtin_function,
7257 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7258 bind callers.
7259
ad41bd84 72602009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
7261
7262 PR target/38781
7263 * config/i386/i386.c (classify_argument): Check total size of
7264 structure.
7265
133f9369
MJ
72662009-03-30 Martin Jambor <mjambor@suse.cz>
7267
7268 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7269 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7270 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7271 respectively.
7272
7273 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7274 seen_variable_array_ref while also traversing a union.
7275
7276 * tree-inline.c (optimize_inline_calls): Do not call
7277 cgraph_node_remove_callees.
7278 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7279 (pass_remove_cgraph_callee_edges): New variable.
7280 * passes.c (init_optimization_passes): Add
7281 pass_remove_cgraph_callee_edges after early inlining and before all
7282 late intraprocedural passes.
7283
7284 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7285
1190f2eb
PB
72862009-03-30 Paolo Bonzini <bonzini@gnu.org>
7287
7288 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7289 Fix typos in names.
7290
fedc1775
PB
72912009-03-30 Paolo Bonzini <bonzini@gnu.org>
7292
fcb82ab0
UB
7293 * combine.c (simplify_comparison): Use have_insn_for.
7294 * dojump.c (do_jump): Likewise.
fedc1775 7295
65c5ae8b
PB
72962009-03-30 Paolo Bonzini <bonzini@gnu.org>
7297
7298 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7299 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7300 sparc_compare_op0 like sparc_compare_emitted used to be handled.
7301 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7302 instead of sparc_compare_emitted.
7303 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7304 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7305 instead of sparc_compare_emitted.
7306
d25aa7ab
PB
73072009-03-30 Paolo Bonzini <bonzini@gnu.org>
7308
7309 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7310 enter/exit cfglayout mode.
7311 (pass_partition_block): Require it.
7312 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7313 (combine_instructions): Track basic blocks instead of labels.
7314 (update_cfg_for_uncondjump): New.
7315 (try_combine): Use it. Update jumps after rescanning.
7316 (pass_combine): Require PROP_cfglayout.
7317 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7318
9c9e26f5
PB
73192009-03-30 Paolo Bonzini <bonzini@gnu.org>
7320
fcb82ab0
UB
7321 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7322 Provide/destroy PROP_cfglayout respectively.
7323 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7324 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 7325
28ddeea1
PB
73262009-03-30 Paolo Bonzini <bonzini@gnu.org>
7327
7328 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7329 fold_convert_const_fixed_from_fixed,
7330 fold_convert_const_fixed_from_int,
7331 fold_convert_const_fixed_from_real, fold_negate_const): Do not
7332 set TREE_CONSTANT_OVERFLOW.
7333 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7334 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7335
ebfd146a
IR
73362009-03-30 Ira Rosen <irar@il.ibm.com>
7337
7338 * tree-vect-loop-manip.c: New file.
7339 * tree-vectorizer.c: Update documentation and included files.
7340 (vect_loop_location): Make extern.
7341 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
7342 (rename_variables_in_bb, rename_variables_in_loop,
7343 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
7344 slpeel_update_phi_nodes_for_guard1,
7345 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7346 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7347 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 7348 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
7349 find_loop_location): Likewise.
7350 (new_stmt_vec_info): Move to tree-vect-stmts.c.
7351 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7352 get_vectype_for_scalar_type, vect_is_simple_use,
7353 supportable_widening_operation, supportable_narrowing_operation):
7354 Likewise.
7355 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
7356 (new_loop_vec_info, destroy_loop_vec_info,
7357 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
7358 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7359 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7360 (vect_supportable_dr_alignment): Likewise.
7361 * tree-vectorizer.h (tree-data-ref.h): Include.
7362 (vect_loop_location): Declare.
7363 Reorganize function declarations according to the new file structure.
7364 * tree-vect-loop.c: New file.
2ba9daa7 7365 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
7366 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7367 * tree-vect-data-refs.c: New file.
7368 * tree-vect-patterns.c (timevar.h): Don't include.
7369 * tree-vect-stmts.c: New file.
2ba9daa7 7370 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 7371 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
7372 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7373 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
7374 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7375 (tree-vect-analyze.o): Remove.
7376 (tree-vect-transform.o): Likewise.
7377 (tree-vect-data-refs.o): Add rule.
2ba9daa7 7378 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
7379 tree-vect-slp.o): Likewise.
7380 (tree-vect-patterns.o): Remove redundant dependencies.
7381 (tree-vectorizer.o): Likewise.
7382 * tree-vect-slp.c: New file.
7383
40a1cfba
RW
73842009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7385
7386 * optc-gen.awk: Warn if an option flag has multiple different
7387 help strings.
7388
a9a7a9a2
SP
73892009-03-30 Sebastian Pop <sebastian.pop@amd.com>
7390
7391 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7392 -floop-block): Document dependences on PPL, CLooG and Graphite.
7393
8ce94e44
JM
73942009-03-30 Joseph Myers <joseph@codesourcery.com>
7395
7396 PR rtl-optimization/323
7397 * c-common.c (c_fully_fold, convert_and_check,
7398 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7399 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7400 * c-common.def (EXCESS_PRECISION_EXPR): New.
7401 * c-cppbuiltin.c (builtin_define_float_constants): Define
7402 constants with enough digits for long double.
7403 * c-lex.c (interpret_float): Interpret constant with excess
7404 precision where appropriate.
7405 * c-opts.c (c_common_post_options): Set
7406 flag_excess_precision_cmdline. Give an error for
7407 -fexcess-precision=standard for C++ for processors where the
7408 option is significant.
7409 * c-parser.c (c_parser_conditional_expression): Handle excess
7410 precision in condition.
7411 * c-typeck.c (convert_arguments): Handle arguments with excess
7412 precision.
7413 (build_unary_op): Move excess precision outside operation.
7414 (build_conditional_expr): Likewise.
7415 (build_compound_expr): Likewise.
7416 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7417 (build_modify_expr): Handle excess precision in RHS.
7418 (convert_for_assignment): Handle excess precision in converted
7419 value.
7420 (digest_init, output_init_element, process_init_element): Handle
7421 excess precision in initializer.
7422 (c_finish_return): Handle excess precision in return value.
7423 (build_binary_op): Handle excess precision in operands and add
7424 excess precision as needed for operation.
7425 * common.opt (-fexcess-precision=): New option.
7426 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7427 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7428 For standard excess precision, output explicit conversion to and
7429 truncation from XFmode.
7430 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7431 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7432 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7433 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
7434 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
7435 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
7436 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
7437 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
7438 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
7439 define_splits, sqrt<mode>2): Disable where appropriate for
7440 standard excess precision.
7441 * convert.c (convert_to_real): Do not shorten arithmetic to type
7442 for which excess precision would be used.
7443 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
7444 * doc/invoke.texi (-fexcess-precision=): Document option.
7445 (-mfpmath=): Correct index entry.
7446 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
7447 flag_excess_precision): New.
7448 * langhooks.c (lhd_post_options): Set
7449 flag_excess_precision_cmdline.
7450 * opts.c (common_handle_option): Handle -fexcess-precision=.
7451 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
7452 init_excess_precision): New.
7453 (lang_dependent_init_target): Call init_excess_precision.
7454 * tree.c (excess_precision_type): New.
7455 * tree.h (excess_precision_type): Declare.
7456
1e57bf47
JM
74572009-03-30 Joseph Myers <joseph@codesourcery.com>
7458
7459 PR c/35235
7460 * c-typeck.c (build_component_ref): Do not copy qualifiers from
7461 non-lvalue to component.
7462
148e4216
JM
74632009-03-29 Joseph Myers <joseph@codesourcery.com>
7464
7465 PR preprocessor/34695
7466 * Makefile.in (c-opts.o): Depend on c-tree.h.
7467 * c-common.c: Move down include of diagnostic.h.
7468 (done_lexing, c_cpp_error): New.
7469 * c-common.h (done_lexing): Declare.
7470 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
7471 (parse_in).
7472 * c-opts.c: Include c-tree.h.
7473 (c_common_init_options): Set preprocessor error callback.
7474 (c_common_handle_option): Do not set preprocessor
7475 inhibit_warnings, warnings_are_errors, warn_system_headers,
7476 pedantic_errors or inhibit_warnings flags.
7477 (c_common_post_options): Do not check cpp_errors (parse_in).
7478 (c_common_finish): Do not output dependencies if there were
7479 errors. Do not check return value of cpp_finish.
7480 * c-ppoutput.c (pp_file_change): Set input_location.
7481 * c-tree.h (c_cpp_error): Declare.
7482 * diagnostic.c (diagnostic_set_info_translated): Also initialize
7483 override_column.
7484 (diagnostic_build_prefix): Check override_column.
7485 * diagnostic.h (diagnostic_info): Add override_column field.
7486 (diagnostic_override_column): Define.
7487
2ec5deb5
PB
74882009-03-28 Paolo Bonzini <bonzini@gnu.org>
7489
ba20e309
UB
7490 * c-common.c (c_expand_expr, c_staticp): Remove.
7491 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
7492 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
7493 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
7494 * c-gimplify.c (gimplify_compound_literal_expr,
7495 optimize_compound_literals_in_ctor): Remove.
7496 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
7497 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
7498 * c-semantics.c (emit_local_var): Remove.
7499
7500 * langhooks-def.h (lhd_expand_expr): Remove.
7501 * langhooks.c (lhd_expand_expr): Remove.
7502 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
7503
7504 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
7505 handling from c-semantics.c; don't call into langhook.
7506 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
7507 * gimplify.c (gimplify_compound_literal_expr,
7508 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
7509 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
7510 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
7511 as was done in c-gimplify.c.
7512 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
7513 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
7514 Move from c-common.h.
7515 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
7516
7517 * tree.c (staticp): Do not call langhook.
7518 * langhooks.c (lhd_staticp): Delete.
7519 * langhooks-def.h (lhd_staticp): Delete prototype.
7520 (LANG_HOOKS_STATICP): Delete.
7521 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
7522
ba20e309
UB
7523 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
7524 instead of DECL_STMTs.
2ec5deb5 7525
928c19bb
JM
75262009-03-29 Joseph Myers <joseph@codesourcery.com>
7527
7528 PR c/456
7529 PR c/5675
7530 PR c/19976
7531 PR c/29116
7532 PR c/31871
7533 PR c/35198
7534 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
7535 void_type_node.
7536 (fold_call_expr): Return a NOP_EXPR from folding rather than the
7537 contained expression.
ba20e309 7538 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
7539 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
7540 conditional expressions for C.
7541 (decl_constant_value_for_optimization): Move from
ba20e309 7542 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
7543 whether optimizing and that the expression is a VAR_DECL not of
7544 array type instead of doing such checks in the caller. Do not
7545 check pedantic. Call gcc_unreachable for C++.
7546 * c-common.def (C_MAYBE_CONST_EXPR): New.
7547 * c-common.h (c_fully_fold, c_save_expr,
7548 decl_constant_value_for_optimization): New prototypes.
7549 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7550 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7551 EXPR_INT_CONST_OPERANDS): Define.
7552 * c-convert.c (convert): Strip nops from expression.
7553 * c-decl.c (groktypename): Take extra parameters expr and
7554 expr_const_operands. Update call to grokdeclarator.
7555 (start_decl): Update call to grokdeclarator. Add statement for
7556 expressions used in type of decl.
7557 (grokparm): Update call to grokdeclarator.
7558 (push_parm_decl): Update call to grokdeclarator.
7559 (build_compound_literal): Add parameter non_const and build a
7560 C_MAYBE_COSNT_EXPR if applicable.
7561 (grokdeclarator): Take extra parameters expr and
7562 expr_const_operands. Track expressions used in declaration
7563 specifiers and declarators. Fold array sizes and track whether
7564 they are constant expressions and whether they are integer
7565 constant expressions.
7566 (parser_xref_tag): Set expr and expr_const_operands fields in
7567 return value.
7568 (grokfield): Update call to grokdeclarator.
7569 (start_function): Update call to grokdeclarator.
7570 (build_null_declspecs): Set expr and expr_const_operands fields in
7571 return value.
7572 (declspecs_add_type): Handle expressions in typeof specifiers.
7573 * c-parser.c (c_parser_declspecs): Set expr and
7574 expr_const_operands fields for declaration specifiers.
7575 (c_parser_enum_specifier): Likewise.
7576 (c_parser_struct_or_union_specifier): Likewise.
7577 (c_parser_typeof_specifier): Likewise. Update call to
7578 groktypename. Fold expression as needed. Return expressions with
7579 type instead of adding statements.
7580 (c_parser_attributes): Update calls to c_parser_expr_list.
7581 (c_parser_statement_after_labels): Fold expression before passing
7582 to objc_build_throw_stmt.
7583 (c_parser_condition): Fold expression.
7584 (c_parser_asm_operands): Fold expression.
7585 (c_parser_conditional_expression): Use c_save_expr. Update call
7586 to build_conditional_expr.
7587 (c_parser_alignof_expression): Update call to groktypename.
7588 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
7589 original_code. Fold expression argument of va_arg. Create
7590 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
7591 argument to va_arg. Update calls to groktypename. Fold array
7592 index for offsetof. Verify that first argument to
7593 __builtin_choose_expr has integer type.
7594 (c_parser_postfix_expression_after_paren_type): Update calls to
7595 groktypename and build_compound_literal. Handle expressions with
7596 side effects in type name.
7597 (c_parser_postfix_expression_after_primary): Update call to
7598 c_parser_expr_list. Set original_code for calls to
7599 __builtin_constant_p.
7600 (c_parser_expr_list): Take extra parameter fold_p. Fold
7601 expressions if requested.
7602 (c_parser_objc_type_name): Update call to groktypename.
7603 (c_parser_objc_synchronized_statement): Fold expression.
7604 (c_parser_objc_receiver): Fold expression.
7605 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
7606 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
7607 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
7608 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
7609 (struct c_typespec): Add elements expr and expr_const_operands.
7610 (struct c_declspecs): Add elements expr and expr_const_operands.
7611 (groktypename, build_conditional_expr, build_compound_literal):
7612 Update prototypes.
7613 (in_late_binary_op): Declare.
7614 * c-typeck.c (note_integer_operands): New function.
7615 (in_late_binary_op): New variable.
7616 (decl_constant_value_for_broken_optimization): Move to c-common.c
7617 and rename to decl_constant_value_for_optimization.
7618 (default_function_array_conversion): Do not strip nops.
7619 (default_conversion): Do not call
7620 decl_constant_value_for_broken_optimization.
7621 (build_array_ref): Do not fold result.
7622 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
7623 result when operand is a VLA.
7624 (c_expr_sizeof_type): Update call to groktypename. Handle
7625 expressions included in type name. Use C_MAYBE_CONST_EXPR for
7626 result when operand names a VLA type.
7627 (build_function_call): Update call to build_compound_literal.
7628 Only fold result for calls to __builtin_* functions. Strip
7629 NOP_EXPR from INTEGER_CST returned from such functions. Fold
7630 the function designator.
7631 (convert_arguments): Fold arguments. Update call to
7632 convert_for_assignment.
7633 (build_unary_op): Handle increment and decrement of
7634 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
7635 decrement earlier. Fold operand of increment and decrement.
7636 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
7637 built for integer operand. Wrap returns that are INTEGER_CSTs
7638 without being integer constant expressions or that have integer
7639 constant operands without being INTEGER_CSTs.
7640 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
7641 (build_conditional_expr): Add operand ifexp_bcp. Track whether
7642 result is an integer constant expression or can be used in
7643 unevaluated parts of one and avoid folding and wrap as
7644 appropriate. Fold operands before possibly doing -Wsign-compare
7645 warnings.
7646 (build_compound_expr): Wrap result for C99 if operands can be used
7647 in integer constant expressions.
7648 (build_c_cast): Update call to digest_init. Do not ignore
7649 overflow from casting floating-point constants to integers. Wrap
7650 results that could be confused with integer constant expressions,
7651 null pointer constants or floating-point constants.
7652 (c_cast_expr): Update call to groktypename. Handle expressions
7653 included in type name.
7654 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
7655 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
7656 Update calls to convert_for_assignment.
7657 (convert_for_assignment): Take new parameter
7658 null_pointer_constant. Do not strip nops or call
7659 decl_constant_value_for_broken_optimization. Set
7660 in_late_binary_op for conversions to boolean.
7661 (store_init_value): Update call to digest_init.
7662 (digest_init): Take new parameter null_pointer_constant. Do not
7663 call decl_constant_value_for_broken_optimization. pedwarn for
7664 initializers not constant expressions. Update calls to
7665 convert_for_assignment.
7666 (constructor_nonconst): New.
7667 (struct constructor_stack): Add nonconst element.
7668 (really_start_incremental_init, push_init_level, pop_init_level):
7669 Handle constructor_nonconst and nonconst element.
7670 (set_init_index): Call constant_expression_warning for array
7671 designators.
7672 (output_init_element): Fold value. Set constructor_nonconst as
7673 applicable. pedwarn for initializers not constant expressions.
7674 Update call to digest_init. Call constant_expression_warning
7675 where constant initializers are required.
7676 (process_init_element): Use c_save_expr.
7677 (c_finish_goto_ptr): Fold expression.
7678 (c_finish_return): Fold return value. Update call to
7679 convert_for_assignment.
7680 (c_start_case): Fold switch expression.
7681 (c_process_expr_stmt): Fold expression.
7682 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 7683 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
7684 (build_binary_op): Track whether results are integer constant
7685 expressions or may occur in such, disable folding and wrap results
7686 as applicable. Fold operands for -Wsign-compare warnings unless
7687 in_late_binary_op.
7688 (c_objc_common_truthvalue_conversion): Handle results folded to
7689 integer constants that are not integer constant expressions.
7690 * doc/extend.texi: Document when typeof operands are evaluated,
7691 that condition of __builtin_choose_expr is an integer constant
7692 expression, and more about use of __builtin_constant_p in
7693 initializers.
7694
5babbcc0
RG
76952009-03-29 Richard Guenther <rguenther@suse.de>
7696
7697 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
7698 propagate addresses of array references.
7699
0340f2ba
SB
77002009-03-29 Steven Bosscher <steven@gcc.gnu.org>
7701
7702 * regmove.c (perhaps_ends_bb_p): Remove.
7703 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
7704 from INSN and check that the main loop stays within that basic block.
7705 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
7706 (regmove_forward_pass): Split out from regmove_optimize. Use
7707 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
7708 (regmove_backward_pass): Split out from regmove_optimize. Use
7709 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
7710 (regmove_optimize): Simplify.
7711
eeae74a1
L
77122009-03-29 H.J. Lu <hongjiu.lu@intel.com>
7713
7714 PR target/39545
7715 * config/i386/i386.c (classify_argument): Ignore flexible array
7716 member in struct and warn ABI change.
7717
a24078b2
L
77182009-03-29 H.J. Lu <hongjiu.lu@intel.com>
7719
7720 * config/i386/i386-protos.h (ix86_agi_dependent): New.
7721
7722 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
7723 (ix86_adjust_cost): Updated.
7724
a8da523f
JH
77252009-03-29 Jan Hubicka <jh@suse.cz>
7726
7727 PR middle-end/28850
7728 * tree-pass.h (pass_cleanup_eh): New function.
7729 (remove_unreachable_regions): Break code handling RTL
7730 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
7731 that can not be reached by runtime.
7732 (can_be_reached_by_runtime): New function.
7733 (label_to_region_map): New function.
7734 (num_eh_regions): New function.
7735 (rtl_remove_unreachable_regions): New function.
7736 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
7737 (remove_eh_region): New function.
7738 * except.h: Include sbitmap and vecprim.
7739 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
7740 num_eh_regions): Declare.
7741 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 7742 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
7743 * tree-eh.c (tree_remove_unreachable_handlers): New function.
7744 (tree_empty_eh_handler_p): New function.
7745 (cleanup_empty_eh): New function.
7746 (cleanup_eh): New function.
7747 (pass_cleanup_eh): New function.
7748
98f358e5
JH
77492009-03-29 Jan Hubicka <jh@suse.cz>
7750
7751 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
7752 for removed regions.
7753
13a9fa44
JH
77542009-03-29 Jan Hubicka <jh@suse.cz>
7755
7756 * except.c (dump_eh_tree): Dump all datastructures.
7757
e38cf733
JH
77582009-03-29 Jan Hubicka <jh@suse.cz>
7759
7760 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
7761 (duplicate_eh_regions_1): Likewise.
7762 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
7763 vector; call EH verification.
7764 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7765 Be ready for region being removed.
7766
12802c2b
JH
77672009-03-29 Jan Hubicka <jh@suse.cz>
7768
7769 * bitmap.c (bitmap_last_set_bit): New function.
7770 * bitmap.h (bitmap_last_set_bit): Declare.
7771
4ea80a41
DA
77722009-03-29 David Ayers <ayers@fsfe.org>
7773
7774 PR objc/27377
7775 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
7776 by calling objc_compare_types and surpress warnings about
7777 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 7778
4ea80a41 77792009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
7780
7781 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
7782 call initialize_inline_failed.
7783 (initialize_inline_failed): Move it from here ...
7784 * cgraph.c (initialize_inline_failed): ... to here.
7785 (cgraph_create_edge): Call initialize_inline_failed rather than
7786 setting inline_failed directly.
7787
7fb0ee07
BE
77882009-03-29 Ben Elliston <bje@au.ibm.com>
7789
7790 PR target/32542
7791 * sysv4.opt (msdata): Improve comment.
7792 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
7793 * sysv4.h (SVR4_ASM_SPEC): Likewise.
7794
0be77bf2
BE
77952009-03-29 Ben Elliston <bje@au.ibm.com>
7796
7797 PR target/30451
7798 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
7799 load and store attributes.
7800
593812b6
BE
78012009-03-29 Ben Elliston <bje@au.ibm.com>
7802
7803 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
7804 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
7805 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
7806 * doc/extend.texi (X86 Built-in Functions): Add index entries for
7807 __builtin_infq and __builtin_huge_valq.
7808
8272d11d
AS
78092009-03-28 Anatoly Sokolov <aesok@post.ru>
7810
7811 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
7812 atmega8m1 devices.
7813 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7814 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
7815
74fe548b
XDL
78162009-03-28 Xinliang David Li <davidxl@google.com>
7817
2ba9daa7 7818 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
7819 (do_dbg_cnt): New function.
7820
33977f81
JH
78212009-03-28 Jan Hubicka <jh@suse.cz>
7822
7823 Merge from pretty-ipa:
7824
7825 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 7826
33977f81
JH
7827 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
7828 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
7829 * passes.c (function_called_by_processed_nodes_p): New.
7830 * ipa-pure-const.c (check_call): Fix handling of operands.
7831 (analyze_function): Dump debug output for skipped bodies.
7832 (local_pure_const): Use function_called_by_processed_nodes_p.
7833 * dwarf2out.c (reference_to_unused): Use output.
7834 * passes.c (do_per_function_toporder): Likewise.
7835
7836 2008-11-12 Jan Hubicka <jh@suse.cz>
7837
7838 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
7839 * ipa-pure-const.c (funct_state_d): Add can throw field; make
7840 state_set_in_source enum
7841 (check_decl): Ignore memory tags; do not set fake looping flags;
7842 dump diagnostics.
7843 (check_operand, check_tree, check_rhs_var, check_lhs_var,
7844 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
7845 (check_call, analyze_function): Rewrite.
7846 (check_stmt): New.
7847 (add_new_function): Update call of analyze_function.
7848 (generate_summary): Add call of analyze_function.
7849 (propagate): Propagate can_throw; handle state_set_in_source correctly.
7850 (local_pure_const): New function.
7851 (pass_local_pure_const): New pass.
7852 * ipa-inline.c (inline_transform): Set after_inlining.
7853 * tree-eh.c (stmt_can_throw_external): New.
7854 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
7855 work with aliasing built.
7856 * tree-flow.h (stmt_can_throw_external): New.
7857 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
7858 and local pure/const pass in early and late optimization queue.
ba20e309 7859
617f3897
MJ
78602009-03-28 Martin Jambor <mjambor@suse.cz>
7861
7862 * fold-const.c (get_pointer_modulus_and_residue): New parameter
7863 allow_func_align.
7864 (fold_binary): Allow function decl aligment consideration is the
7865 second argument is integer constant one.
7866 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
7867 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
7868 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
7869
fe89fbc5
JH
78702009-03-28 Jan Hubicka <jh@suse.cz>
7871
7872 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
7873 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
7874 * function.h (rtl_data): Add nothrow flag.
7875 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
7876 set DECL_NOTHROW for AVAILABLE functions.
7877
574872ff
JJ
78782009-03-28 Jakub Jelinek <jakub@redhat.com>
7879
b3bf8855
JJ
7880 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
7881 following vector keyword has expansion starting with pixel or bool
7882 keyword, expand vector to __vector and pixel or bool to __pixel or
7883 __bool.
7884
574872ff
JJ
7885 PR c++/39554
7886 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
7887 warn_if_disallowed_function_p): Removed.
7888 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
7889 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
7890 warning_if_disallowed_function_p.
7891 * flags.h (warn_if_disallowed_function_p,
7892 warn_disallowed_functions): Removed.
7893 * common.opt (Wdisallowed-function-list=): Removed.
7894 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
7895
b005da11
RG
78962009-03-28 Richard Guenther <rguenther@suse.de>
7897
7898 PR tree-optimization/38723
7899 * tree-ssa-pre.c (compute_avail): Add all default definitions to
7900 the entry block.
7901
1de812a6
JH
79022009-03-28 Jan Hubicka <jh@suse.cz>
7903
7904 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
7905 test introduced by my previous patch.
7906
fbb789d4
RG
79072009-03-28 Richard Guenther <rguenther@suse.de>
7908
7909 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
7910 the PHIs value undefined.
7911
6f1873a1
JH
79122009-03-28 Jan Hubicka <jh@suse.cz>
7913
7914 * tree-pass.h (pass_fixup_cfg): New pass.
7915 * ipa-inline.c (inline_transform): Set
7916 always_inline_functions_inlined/after_inlining.
7917 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
7918 (pass_fixup_cfg): New pass.
7919 * passes.c (init_optimization_passes): Add fixup_cfg.
7920
17021bc8
RG
79212009-03-28 Richard Guenther <rguenther@suse.de>
7922
7923 PR tree-optimization/38458
7924 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
7925 argument use the arguments copy-of value.
7926
e8114fba
RG
79272009-03-28 Richard Guenther <rguenther@suse.de>
7928
7929 PR tree-optimization/38180
7930 * tree-ssa-ccp.c (get_default_value): Simplify.
7931 (likely_value): Likewise.
7932 (surely_varying_stmt_p): Properly handle VOP case.
7933 (ccp_initialize): Likewise.
7934 (ccp_fold): Handle propagating through *&.
7935 (fold_const_aggregate_ref): Also handle decls.
7936
257eb6e3
JH
79372009-03-28 Jan Hubicka <jh@suse.cz>
7938
7939 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
7940 * cgraph.h (cgraph_node): Likewise.
7941 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
7942 (cgraph_reset_node): Use process flag.
7943 (cgraph_mark_functions_to_output): Likewise.
7944 (cgraph_expand_function): Likewise.
7945 (cgraph_expand_all_functions): Likewise.
7946 (cgraph_output_in_order): Likewise.
7947 * dwarf2out.c (reference_to_unused): Likewise.
7948 * passes.c do_per_function_toporder): Likewise.
7949
61a05df1
JH
79502009-03-28 Jan Hubicka <jh@suse.cz>
7951
7952 Bring from lto-branch:
ba20e309 7953
61a05df1
JH
7954 2008-09-03 Doug Kwan <dougkwan@google.com>
7955
7956 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
7957 enums instead of reason strings.
7958 * cgraph.c (cgraph_create_edge): Same.
7959 (cgraph_inline_failed_string): New function.
7960 * cgraph.h (cgraph_inline_failed_t): New enum type.
7961 (cgraph_inline_failed_string): New prototype.
7962 (struct cgraph_edge): Change type of INLINED_FAILED from constant
7963 char pointer to cgraph_inline_failed_t.
7964 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
7965 (cgraph_default_inline_p): Ditto.
60839f5d 7966 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
7967 to cgraph_inline_failed_t pointer.
7968 * cif-code.def: New file.
7969 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
7970 reason string.
7971 (cgraph_check_inline_limits): Change type of REASON to pointer to
7972 cgraph_inline_failed_t. Replace reason strings with enums.
7973 (cgraph_default_inline_p): Ditto.
7974 (cgraph_recursive_inlining_p): Ditto.
7975 (update_caller_keys): Change type of FAILED_REASON to
7976 cgraph_inline_failed_t.
7977 (cgraph_set_inline_failed): Change type of REASON to pointer to
7978 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
7979 convert enums to strings for text output.
7980 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
7981 to be of type cgraph_inline_failed_t. Replace reason strings with
7982 enums. Call cgraph_inline_failed_string to covert enums
7983 to strings for text output.
7984 (cgraph_decide_inlining): Replace reason strings with enums.
7985 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
7986 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
7987 for text output.
7988 * tree-inline.c (expand_call_inline): Change type of REASON
7989 to cgraph_inline_failed_t. Replace reason strings with enums.
7990 Call cgraph_inline_failed_string for text output.
7991 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
7992 (cgraph.o): Ditto.
7993
144e8aac
JH
79942009-03-28 Jan Hubicka <jh@suse.cz>
7995
7996 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
7997 cgraph_clone_node): Remove master clone handling.
7998 (cgraph_is_master_clone, cgraph_master_clone): Remove.
7999 * cgraph.h (master_clone): Remove.
8000 (cgraph_is_master_clone, cgraph_master_clone): Remove.
8001 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
8002 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
8003
4a371c8d
JH
80042009-03-28 Jan Hubicka <jh@suse.cz>
8005
8006 * cgraph.c (cgraph_function_body_availability): Functions declared
8007 inline are always safe to assume that it is not going to be replaced.
8008
6cdb0ee3
RG
80092009-03-28 Richard Guenther <rguenther@suse.de>
8010
8011 PR tree-optimization/38513
8012 * tree-ssa-pre.c (eliminate): Remove redundant stores.
8013 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8014 EXC_PTR_EXPR and FILTER_EXPR.
8015 (get_ref_from_reference_ops): Likewise.
8016
8ca1fd76
RG
80172009-03-28 Richard Guenther <rguenther@suse.de>
8018
8019 PR tree-optimization/38968
8020 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
8021 Use FLOOR_MOD_EXPR to compute misalignment.
8022
a254e44d
RG
80232009-03-28 Richard Guenther <rguenther@suse.de>
8024
8025 PR tree-optimization/37795
8026 * tree.h (combine_comparisons): Declare.
8027 * fold-const.c (combine_comparisons): Export.
8028 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
8029 comparisons.
8030 (ifcombine_iforif): Use combine_comparisons.
8031
a8ee227c
JH
80322009-03-28 Jan Hubicka <jh@suse.cz>
8033
8034 * tree-eh.c (inlinable_call_p): New function.
8035 (make_eh_edges): Use it.
8036 (verify_eh_edges): Use it.
8037 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
8038 * except.c (reachable_next_level): Add inlinable_function argument
8039 (sjlj_find_directly_reachable_regions): Update.
8040 (add_reachable_handler): Do not set saw_any_handlers.
8041 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
8042 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8043 Add new inlinable call parameter.
8044 (can_throw_internal, can_throw_external): Update.
8045 * except.h (can_throw_internal_1, can_throw_external_1,
8046 foreach_reachable_handler): Update declaration.
8047
52c0e446
JM
80482009-03-28 Joseph Myers <joseph@codesourcery.com>
8049
8050 * config/arm/t-arm-coff, config/h8300/coff.h,
8051 config/i386/i386-aout.h, config/i386/i386-coff.h,
8052 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8053 config/pdp11/2bsd.h, config/rs6000/aix41.h,
8054 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
8055 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
8056 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
8057 sys-types.h: Remove.
8058 * Makefile.in: Remove protoize and fixproto support and references
8059 in comments.
8060 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
8061 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
8062 Remove.
8063 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
8064 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
8065 unprotoize$(exeext).
8066 (rest.encap): Don't depend on $(STMP_FIXPROTO)
8067 (.PHONY): Don't depend on proto.
8068 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
8069 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
8070 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
8071 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
8072 build/gen-protos.o, build/scan.o, xsys-protos.h,
8073 build/fix-header$(build_exeext), build/fix-header.o,
8074 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
8075 stmp-install-fixproto): Remove.
8076 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
8077 SYSCALLS.c or fixproto files.
8078 (install-common): Don't install protoize.
8079 (install-headers-tar, install-headers-cpio, install-headers-cp):
8080 Don't depend on $(STMP_FIXPROTO).
8081 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
8082 install fixproto files or write out fixproto settings.
8083 (uninstall): Don't uninstall protoize.
8084 * config.gcc (use_fixproto): Remove.
8085 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
8086 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
8087 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
8088 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
8089 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
8090 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8091 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8092 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8093 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8094 * config/t-vxworks (STMP_FIXPROTO): Remove.
8095 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8096 STMP_FIXPROTO): Remove.
8097 * config.in, configure: Regenerate.
8098 * crtstuff.c (gid_t, uid_t): Don't undefine.
8099 * doc/install.texi: Change m68k-coff to m68k-elf in example.
8100 (arm-*-coff, arm-*-aout: Remove target entries.
8101 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8102 Remove mention of AIX 4.1.
8103 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8104 * doc/invoke.texi (Running Protoize): Remove.
8105 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8106 (Protoize Caveats): Remove.
8107 * tsystem.h: Update comments on headers assumed to exist.
8108
20a07f44
VM
81092009-03-27 Vladimir Makarov <vmakarov@redhat.com>
8110
8111 * genautomata.c: Add a new year to the copyright. Add a new
8112 reference.
8113 (struct insn_reserv_decl): Add comments for member bypass_list.
8114 (find_bypass): Remove.
8115 (insert_bypass): New.
8116 (process_decls): Use insert_bypass.
8117 (output_internal_insn_latency_func): Output all bypasses with the
8118 same input insn in one switch case.
8119
8120 * rtl.def (define_bypass): Describe bypass choice.
8121 * doc/md.texi (define_bypass): Ditto.
8122
3a0d06c1
RB
81232009-03-27 Richard Guenther <rguenther@suse.de>
8124
8125 * gimplify.c (mark_addressable): Export.
8126 * tree-flow.h (mark_addressable): Declare.
8127 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8128 * tree-ssa.c (verify_phi_args): Verify that address taken
8129 variables have TREE_ADDRESSABLE set.
8130
81312009-03-27 Richard Guenther <rguenther@suse.de>
8132
8133 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8134 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
8135 Do not mark decls TREE_ADDRESSABLE.
8136 (build_fold_addr_expr): Adjust.
8137 (fold_addr_expr): Remove.
8138 (fold_unary): Use build_fold_addr_expr.
8139 (fold_comparison): Likewise.
8140 (split_address_to_core_and_offset): Likewise.
8141 * coverage.c (tree_coverage_counter_addr): Mark the array decl
8142 TREE_ADDRESSABLE.
8143 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8144 (gimplify_modify_expr_to_memcpy): Mark source and destination
8145 addressable.
8146 * omp-low.c (create_omp_child_function): Mark the object decl
8147 TREE_ADDRESSABLE.
8148 (lower_rec_input_clauses): Mark the var we take the address of
8149 TREE_ADDRESSABLE.
8150 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8151
2ac26e15
L
81522009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8153
8154 PR middle-end/39315
8155 * cfgexpand.c (expand_one_stack_var_at): Change alignment
8156 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8157
472c7fbd
RG
81582009-03-27 Richard Guenther <rguenther@suse.de>
8159
8160 PR tree-optimization/39120
8161 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8162 constraints.
8163 (handle_lhs_call): Process return constraints. Add escape
8164 constraints if necessary.
8165 (handle_const_call): Fill out return constraints. Make nested
8166 case more precise. Avoid consttmp if possible.
8167 (handle_pure_call): Fill out return constraints. Avoid
8168 callused if possible.
8169 (find_func_aliases): Simplify call handling.
8170
81712009-03-27 Richard Guenther <rguenther@suse.de>
8172
8173 PR tree-optimization/39120
8174 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8175 as a representative.
8176 (solve_graph): Do propagate CALLUSED.
8177 (handle_pure_call): Use a scalar constraint from CALLUSED for
8178 the return value.
8179 (find_what_p_points_to): CALLUSED shall not appear in poins-to
8180 solutions.
8181
d9223014
L
81822009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8183
8184 PR c/39323
8185 * c-common.c (handle_aligned_attribute): Properly check alignment
8186 overflow. Use (1U << i) instead of (1 << i).
8187
ba20e309 8188 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
8189
8190 * expr.h (get_mem_align_offset): Updated.
8191
8192 * tree.h (tree_decl_common): Change align to "unsigned int" and
8193 move it before pointer_alias_set.
8194
689b689c
L
81952009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8196 Jakub Jelinek <jakub@redhat.com>
8197
8198 PR target/38034
8199 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8200 gr_register_operand with gr_reg_or_0_operand.
8201 (cmpxchg_rel_di): Likewise.
8202 (sync_lock_test_and_set<mode>): Likewise.
8203
c619e982
L
82042009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8205
8206 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8207 (true_regnum): Likewise.
8208
8209 * rtlanal.c (subreg_info): Moved to ...
8210 * rtl.h (subreg_info): Here. New.
8211 (subreg_get_info): New.
8212
8213 * rtlanal.c (subreg_get_info): Make it extern.
8214
51212b32
L
82152009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8216
8217 PR target/39472
8218 * config/i386/i386.c (ix86_abi): New.
8219 (override_options): Handle -mabi=.
ba20e309 8220 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
8221 (ix86_call_abi_override): Likewise.
8222 (init_cumulative_args): Likewise.
8223 (function_arg_advance): Likewise.
8224 (function_arg_64): Likewise.
8225 (function_arg): Likewise.
8226 (ix86_pass_by_reference): Likewise.
8227 (ix86_function_value_regno_p): Likewise.
8228 (ix86_build_builtin_va_list_abi): Likewise.
8229 (setup_incoming_varargs_64): Likewise.
8230 (is_va_list_char_pointer): Likewise.
8231 (ix86_init_machine_status): Likewise.
ba20e309 8232 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
8233 (ix86_function_type_abi): Return enum calling_abi. Rewrite
8234 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 8235 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
8236 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
8237 with ix86_abi.
8238 (ix86_fn_abi_va_list): Updated.
8239
8240 * config/i386/i386.h (ix86_abi): New.
8241 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8242 (CONDITIONAL_REGISTER_USAGE): Likewise.
8243 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8244 (machine_function): Likewise.
8245
8246 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8247 with ix86_abi.
8248 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8249 (STACK_BOUNDARY): Likewise.
8250 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8251
8252 * config/i386/i386.opt (mabi=): New.
8253
8254 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8255 return enum calling_abi.
8256 (ix86_function_type_abi): Likewise.
8257 (ix86_function_abi): Removed.
8258
8259 * doc/invoke.texi: Document -mabi= option for x86.
8260
7338ea63
KG
82612009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8262
8263 * builtins.c (real_dconstp): Delete.
8264 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8265
68599f33
DS
82662009-03-27 Dodji Seketeli <dodji@redhat.com>
8267 Jakub Jelinek <jakub@redhat.com>
8268
8269 PR debug/37959
8270 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8271 (gen_subprogram_die): When a function is explicit, generate the
8272 DW_AT_explicit attribute.
8273 * langhooks.h (struct lang_hooks_for_decls): Add
8274 function_decl_explicit_p langhook.
8275 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8276 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8277
9f5e9983
JJ
82782009-03-27 Jakub Jelinek <jakub@redhat.com>
8279
64d7685c
JJ
8280 * builtins.c (fold_builtin_memory_op): Optimize memmove
8281 into memcpy if we can prove source and destination don't overlap.
8282
9f5e9983
JJ
8283 * tree-inline.c: Include gt-tree-inline.h.
8284 (clone_fn_id_num): New variable.
8285 (clone_function_name): New function.
8286 (tree_function_versioning): Use it.
8287 * Makefile.in (GTFILES): Add tree-inline.c.
8288
e54d52a8
MM
82892009-03-27 Mark Mitchell <mark@codesourcery.com>
8290
8291 * BASE-VER: Change to 4.5.0.
8292
e9d51dc6
XDL
82932009-03-27 Xinliang David Li <davidxl@google.com>
8294
8295 PR tree-optimization/39557
8296 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8297
4577cea1
XDL
82982009-03-27 Xinliang David Li <davidxl@google.com>
8299
8300 PR tree-optimization/39548
2ba9daa7 8301 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
8302 candidate check.
8303
0f7464f4
L
83042009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8305
8306 * c-common.c (pointer_int_sum): Use %wd on return from
8307 tree_low_cst.
8308
a8847a7f
L
83092009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8310
8311 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8312 on return from tree_low_cst.
8313
b0957daf
AP
83142009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
8315
8316 PR c++/36799
ba20e309
UB
8317 * ginclude/stdarg.h (va_copy): Define also for
8318 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 8319
a5f805df
MLI
83202009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8321
8322 PR c++/35652
8323 * builtins.h (c_strlen): Do not warn here.
8324 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8325 * c-common.c (pointer_int_sum): Take an explicit location.
8326 Warn about offsets out of bounds.
8327 * c-common.h (pointer_int_sum): Adjust declaration.
8328
6f401211
RW
83292009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8330
a5f805df
MLI
8331 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8332 markup glitch.
6f401211 8333
5a59b39e
JJ
83342009-03-26 Jakub Jelinek <jakub@redhat.com>
8335
8336 PR c++/39554
8337 * opts.c (warn_if_disallowed_function_p): Don't assume
8338 get_callee_fndecl must return non-NULL.
8339
d5f89b53
VM
83402009-03-26 Vladimir Makarov <vmakarov@redhat.com>
8341
8342 PR rtl-optimization/39522
8343 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8344 when reg_reloaded_valid is set.
8345
61238a79
UW
83462009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8347
8348 * config/spu/divv2df3.c: New file.
8349 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8350 (DPBIT_FUNCS): Filter out _div_df.
8351
03f8829b
BS
83522009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
8353
8354 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8355 a jump insn, count that jump in the distance to the loop start.
8356
9fdcdc74
KK
83572009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
8358
8359 PR target/39523
8360 * config/sh/sh.c (calc_live_regs): Fix condition for global
8361 registers except PIC_OFFSET_TABLE_REGNUM.
8362
46994828
KT
83632009-03-25 Kai Tietz <kai.tietz@onevision.com>
8364
8365 PR/39518
8366 * doc/invoke.texi (-mconsole): New.
8367 (-mcygwin): New.
8368 (-mno-cygwin): New.
8369 (-mdll): New.
8370 (-mnop-fun-dllimport): New.
8371 (-mthread): New.
8372 (-mwin32): New.
8373 (-mwindows): New.
8374 (sub section "i386 and x86-64 Windows Options"): New.
8375
60839f5d 83762009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
8377
8378 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8379 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8380
ae560440
RG
83812009-03-25 Richard Guenther <rguenther@suse.de>
8382
8383 PR middle-end/39497
8384 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8385 of -Wno-error.
8386
cd510f15
AM
83872009-03-25 Andrey Belevantsev <abel@ispras.ru>
8388
8389 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8390 neither of haifa/selective schedulers are working.
8391
44ab0f0e
RW
83922009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8393
8394 * doc/invoke.texi (Debugging Options): Fix description of
8395 -fno-merge-debug-strings.
8396
ad9646c7
HPN
83972009-03-24 Hans-Peter Nilsson <hp@axis.com>
8398
e6142656
HPN
8399 * config/cris/libgcc.ver: New version-script.
8400 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8401
ad9646c7
HPN
8402 * configure.ac <GAS features, nop mnemonic>: Add pattern
8403 crisv32-*-* for "nop".
ba20e309 8404 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
8405 * configure: Regenerate.
8406
09ac4473
IR
84072009-03-24 Ira Rosen <irar@il.ibm.com>
8408
8409 PR tree-optimization/39529
8410 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8411 mark_sym_for_renaming for the tag copied to the new vector
8412 pointer.
8413
d94a427e
AL
84142009-03-24 Arthur Loiret <aloiret@debian.org>
8415
ba20e309 8416 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
8417 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8418 EXTRA_SPEC_FUNCTIONS.
8419 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8420 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8421 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8422 -march and -mtune options.
8423
60839f5d 84242009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
8425
8426 * config/m68k/t-rtems: Add m5329 multilib.
8427
603f5959
DS
84282009-03-24 Dodji Seketeli <dodji@redhat.com>
8429 Jakub Jelinek <jakub@redhat.com>
8430
8431 PR debug/39524
8432 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8433 nodes.
8434
c5cdb03f
JJ
84352009-03-23 Jakub Jelinek <jakub@redhat.com>
8436
8437 PR c/39495
8438 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
8439 instead of c_parser_expression_conv, if original_code isn't one of the
8440 4 allowed comparison codes, fail.
8441
3691626c
RG
84422009-03-23 Richard Guenther <rguenther@suse.de>
8443
8444 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
8445 * tree.h (struct tree_type): Likewise.
8446 * reload.h (struct insn_chain): Likewise.
8447 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
8448 * function.h (struct function): Likewise.
8449 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
8450
88ccb72a
JJ
84512009-03-23 Jakub Jelinek <jakub@redhat.com>
8452
8453 PR tree-optimization/39516
8454 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
8455
60839f5d 84562009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 8457
2ba9daa7 8458 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
8459 should be set true if BITS_PER_WORD of target is bigger than 32
8460
f82162f8
HPN
84612009-03-22 Hans-Peter Nilsson <hp@axis.com>
8462
8463 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
8464 Translate -B-options to -rpath-link. Correct existing
8465 rpath-link and conditionalize on !nostdlib.
8466
048fd785
RW
84672009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8468
8469 * doc/extend.texi (Function Attributes, Variable Attributes):
8470 Fix typos.
8471 * doc/invoke.texi (Debugging Options, Optimize Options)
8472 (i386 and x86-64 Options, MCore Options): Likewise.
8473
6e75c1a9
JJ
84742009-03-20 Jakub Jelinek <jakub@redhat.com>
8475
8476 PR debug/37890
8477 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
8478 it for block local namespace aliases.
8479 (gen_decl_die): Pass context_die to gen_namespace_die.
8480
ea1199ee
JJ
84812009-03-19 Jakub Jelinek <jakub@redhat.com>
8482
8483 PR c/39495
8484 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
8485 minimum or maximum value.
8486
58929c10
AO
84872009-03-19 Alexandre Oliva <aoliva@redhat.com>
8488
8489 * reginfo.c (globalize_reg): Recompute derived reg sets.
8490
60839f5d 84912009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
8492
8493 PR target/39063
8494 * libgcc2.c (mprotect): Do not use signed arguments for
8495 VirtualProtect, use DWORD arguments. Also fix the 'may
8496 be used uninitialized' warning for the np variable.
8497
f57c2f04
JJ
84982009-03-19 Jakub Jelinek <jakub@redhat.com>
8499
8500 PR target/39496
8501 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
8502 functions using regparm calling conventions when not optimizing.
8503 (ix86_function_sseregparm): Similarly for sseregparm calling
8504 conventions.
8505
9e517d61
LF
85062009-03-19 Li Feng <nemokingdom@gmail.com>
8507
8508 PR middle-end/39500
8509 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
8510 dependence if the first conflict is after niter iterations.
8511
8ef20026
HPN
85122009-03-19 Hans-Peter Nilsson <hp@axis.com>
8513
8514 PR middle-end/38609
8515 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
8516 functions with dynamic stack-pointer adjustments.
8517
64e4a1a6
BE
85182009-03-19 Ben Elliston <bje@au.ibm.com>
8519
8520 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
8521 option; change to -msdata=data.
8522
9a0f3e86
RW
85232009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8524
8525 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
8526 and -fopenmp.
8527
09bc5979
EB
85282009-03-18 Eric Botcazou <ebotcazou@adacore.com>
8529
8530 PR target/35180
8531 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
8532
332459cd
SL
85332009-03-18 Sandra Loosemore <sandra@codesourcery.com>
8534
8535 * doc/invoke.texi (Code Gen Options): Expand discussion of
8536 -fno-common.
8537
8f5929e1
JJ
85382009-03-18 Jakub Jelinek <jakub@redhat.com>
8539
8540 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
8541 * matrix-reorg.c (struct matrix_info): Likewise.
8542 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
8543 * rtl.h (struct mem_attrs): Likewise.
8544 * df.h (struct df): Likewise.
8545 * tree-data-ref.h (struct data_dependence_relation): Likewise.
8546 * ira-int.h (struct ira_allocno): Likewise.
8547 * df-scan.c (struct df_collection_rec): Likewise.
8548 * ira.c (struct equivalence): Likewise.
8549 * function.c (struct temp_slot): Likewise.
8550 * cfgloop.h (struct loop): Likewise.
8551
d130d647
JJ
8552 PR debug/39485
8553 * function.c (use_register_for_decl): When not optimizing, disregard
8554 register keyword for variables with types containing methods.
8555
9968d233
SP
85562009-03-18 Sebastian Pop <sebastian.pop@amd.com>
8557
8558 PR middle-end/39447
8559 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
8560 (is_simple_operand): Call contains_component_ref_p before calling data
8561 reference analysis that would fail on COMPONENT_REFs.
8562
8563 * tree-vrp.c (search_for_addr_array): Fix formatting.
8564
69484bfd
RG
85652009-03-18 Richard Guenther <rguenther@suse.de>
8566
8567 * tree-vect-transform.c (vect_loop_versioning): Fold the
8568 generated comparisons.
8569 * tree-vectorizer.c (set_prologue_iterations): Likewise.
8570 (slpeel_tree_peel_loop_to_edge): Likewise.
8571
66811228
RW
85722009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8573
0631b69f
RW
8574 PR middle-end/37805
8575 * opts.c (print_specific_help): In addition to `undocumented',
8576 accept `separate' and `joined' flags if passed alone. Describe
8577 output by the first matched one of those.
8578 (common_handle_option): Skip over empty strings.
8579 * gcc.c (display_help): Fix help string for `--help='.
8580 * doc/invoke.texi (Option Summary, Overall Options): With
8581 `--help=', classes and qualifiers can both be repeated, but
8582 only the latter can be negated. One should not pass only
8583 negated qualifiers. Fix markup and examples.
8584
66811228
RW
8585 Revert
8586 2008-10-14 Jakub Jelinek <jakub@redhat.com>
8587 PR middle-end/37805
8588 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
8589 and -fhelp=separate.
8590
3c072c6b
JY
85912009-03-17 Jing Yu <jingyu@google.com>
8592
8593 PR middle-end/39378
80c65208
JY
8594 * function.h (struct rtl_data): Move is_thunk from here...
8595 (struct function): ...to here.
8596 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
8597 * varasm.c (assemble_start_function): Change is_thunk from crtl to
8598 cfun.
80c65208
JY
8599 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
8600 cfun.
8601 (alpha_does_function_need_gp, alpha_start_function): Likewise.
8602 (alpha_output_function_end_prologue): Likewise.
8603 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
8604 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
8605 (rs6000_output_function_epilogue): Likewise.
8606 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 8607
9ade279b
UB
86082009-03-17 Uros Bizjak <ubizjak@gmail.com>
8609
8610 PR target/39482
8611 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
8612 from different units in a single alternative.
8613 (*truncdfsf_i387): Ditto.
8614 (*truncxfsf2_mixed): Ditto.
8615 (*truncxfdf2_mixed): Ditto.
8616
16e60c17
JJ
86172009-03-17 Jakub Jelinek <jakub@redhat.com>
8618
98381eb4
JJ
8619 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
8620 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
8621
df5deb18
JJ
8622 PR debug/39474
8623 * tree-ssa-live.c (remove_unused_locals): Don't remove local
8624 unused non-artificial variables when not optimizing.
8625
a3f596ba
JJ
8626 PR debug/39471
8627 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
8628 DW_TAG_imported_module even if decl is IMPORTED_DECL with
8629 NAMESPACE_DECL in its DECL_INITIAL.
8630
6b2b8871
JJ
8631 PR middle-end/39443
8632 * optabs.c (set_user_assembler_libfunc): New function.
8633 * expr.h (set_user_assembler_libfunc): New prototype.
8634 * c-common.c: Include libfuncs.h.
8635 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
8636 for memcmp, memset, memcpy, memmove and abort.
8637 * Makefile.in (c-common.o): Depend on libfuncs.h.
8638
16e60c17
JJ
8639 PR debug/39412
8640 * dwarf2out.c (gen_inlined_enumeration_type_die,
8641 gen_inlined_structure_type_die, gen_inlined_union_type_die,
8642 gen_tagged_type_instantiation_die): Removed.
8643 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
8644 do nothing.
8645
4d936aca
JJ
86462009-03-17 Janis Johnson <janis187@us.ibm.com>
8647
8648 PR testsuite/38526
8649 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
8650 its use.
8651 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
8652 (check-parallel-%): Ditto.
8653 (check-consistency): Ditto.
8654
4e9b2e50
KT
86552009-03-17 Kai Tietz <kai.tietz@onevision.com>
8656
8657 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
8658 local variable rhs by NULL_TREE.
8659
21440b2d
L
86602009-03-17 H.J. Lu <hongjiu.lu@intel.com>
8661
8662 PR target/39477
9ade279b 8663 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 8664
d8905c6a
L
86652009-03-17 H.J. Lu <hongjiu.lu@intel.com>
8666
8667 PR target/39476
9ade279b 8668 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
8669
86702009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
8671
8672 PR target/39473
8673 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
8674 for ms->sysv ABI calls only in 64bit mode.
8675
8676 * config/i386/i386.md (untyped_call): Support 32bit.
8677
cdcabece
L
86782009-03-16 H.J. Lu <hongjiu.lu@intel.com>
8679
8680 * doc/extend.texi: Replace x86_65 with x86_64.
8681
97b4ba9f
JJ
86822009-03-16 Jakub Jelinek <jakub@redhat.com>
8683
8684 PR tree-optimization/39455
8685 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
8686 mismatches for POINTER_TYPE_P (type).
8687 (number_of_iterations_le): Likewise.
8688
60839f5d 86892009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
8690
8691 * config/picochip/picochip.c: Removed profiling support.
8692 * config/picochip/picochip.md: Removed profiling instruction.
8693 * config/picochip/picochip.h: Removed profiling builtin.
8694
f38095f3
JM
86952009-03-16 Joseph Myers <joseph@codesourcery.com>
8696
8697 * doc/install.texi (--with-host-libstdcxx): Document.
8698
2cb4817b
AS
86992009-03-14 Anatoly Sokolov <aesok@post.ru>
8700
8701 PR target/34299
8702 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
8703 generate a warning if the function name does not begin with
8704 "__vector" and the function has either the 'signal' or 'interrupt'
8705 attribute, from here to ...
8706 (avr_declare_function_name): ...here. New function.
8707 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
8708 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
8709
39b2ac74
JJ
87102009-03-14 Jakub Jelinek <jakub@redhat.com>
8711
8712 PR bootstrap/39454
8713 * cse.c (fold_rtx): Don't modify original const_arg1 when
8714 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
8715 separate variable instead.
8716 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
8717 from out of range shift counts.
8718 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
8719
ad41bd84 87202009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 8721
60839f5d 8722 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
8723 diagnostic.h with $(DIAGNOSTIC_H).
8724
ad41bd84 87252009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
8726
8727 PR target/39431
8728 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
8729 predicate.
8730 * config/i386/sync.md (sync_compare_and_swap<mode>,
8731 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
8732 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
8733 into a register.
8734 (sync_double_compare_and_swapdi_pic,
8735 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
8736 cmpxchg8b_pic_memory_operand instead of just memory_operand.
8737
122c59c7
L
87382009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8739
8740 PR target/39445
9ade279b 8741 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 8742
cec8874f
L
87432009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8744
8745 PR target/39327
8746 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8747 (avx_addsubv4df3): Likewise.
8748 (*avx_addsubv4sf3): Likewise.
8749 (sse3_addsubv4sf3): Likewise.
8750
bbb52802
L
87512009-03-12 H.J. Lu <hongjiu.lu@intel.com>
8752
8753 PR target/38824
9ade279b 8754 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 8755
a812fb07
VM
87562009-03-12 Vladimir Makarov <vmakarov@redhat.com>
8757
8758 PR debug/39432
8759 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
8760 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
8761 registers for allocnos created from user-defined variables.
8762
4caab5ba
UW
87632009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8764
8765 PR target/39181
8766 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
8767 of non-integer mode as well.
8768
498e51ca
AN
87692009-03-11 Adam Nemet <anemet@caviumnetworks.com>
8770
8771 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
8772 for functions for which the parameter types are unknown.
8773
9bfaf89d
JJ
87742009-03-11 Jakub Jelinek <jakub@redhat.com>
8775
8776 PR target/39137
9ade279b 8777 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
8778 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
8779 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
8780 * config/i386/i386.c (ix86_local_alignment): For
8781 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
8782 long long variables on the stack to avoid dynamic realignment.
8783 Allow the first argument to be a decl rather than type.
8784 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
8785
18a3bdcb
NC
87862009-03-11 Nick Clifton <nickc@redhat.com>
8787
8788 PR target/5362
40190a76
NC
8789 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
8790 options.
8791 Add description to mno-lsim option.
8792 * config/mcore/mcore.h: Remove comment about deprecated m4align
8793 option.
8794 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
8795 * doc/invoke.texi: Add description of mno-lsim and
8796 mstack-increment options.
8797
18a3bdcb
NC
8798 * config/fr30/fr30.opt: Document the -mno-lsim option.
8799 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
8800 and -mno-lsim options.
8801
dc215785
UW
88022009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8803
8804 * fold-const.c (fold_comparison): Only call fold_inf_compare
8805 if the mode supports infinities.
8806
7716876b
JM
88072009-03-11 Jason Merrill <jason@redhat.com>
8808
8809 PR debug/39086
8810 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
8811 end already did. Notice GIMPLE_CALL modifications of the result.
8812 Don't copy debug information from an ignored decl or a decl from
8813 another function.
8814
ddef83d2
RG
88152009-03-10 Richard Guenther <rguenther@suse.de>
8816 Nathan Froyd <froydnj@codesourcery.com>
8817
8818 PR middle-end/37850
9ade279b 8819 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
8820 (__divMODE3): Likewise.
8821
9a9ba8d9
JJ
88222009-03-09 Jakub Jelinek <jakub@redhat.com>
8823
8824 PR tree-optimization/39394
8825 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
8826 DECL_SIZE_UNIT of variable length FIELD_DECLs.
8827
929b7fc3
AK
88282009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8829
8830 * recog.c (verfiy_changes): Disallow renaming of hard regs in
8831 inline asms for register asm ("") declarations.
8832
1803581d
EB
88332009-03-09 Eric Botcazou <ebotcazou@adacore.com>
8834
8835 * fold-const.c (fold_unary): Fix comment.
8836
8454d27e
JH
88372009-03-07 Jan Hubicka <jh@suse.cz>
8838
8839 PR target/39361
969a5433
JJ
8840 * tree-inline.c (setup_one_parameter): Do replacement of const
8841 argument by constant in SSA form.
8454d27e 8842
3a695389
UW
88432009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8844
8845 PR middle-end/38028
8846 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
8847 determine alignment passed to assign_stack_local.
8848 (assign_parms_unsplit_complex): Likewise.
8849 * except.c (sjlj_build_landing_pads): Likewise.
8850
9f0e7885
JJ
88512009-03-06 Jakub Jelinek <jakub@redhat.com>
8852
65401a0b
JJ
8853 PR middle-end/39360
8854 * tree-flow.h (add_referenced_var): Return bool instead of void.
8855 * tree-dfa.c (add_referenced_var): Return result of
8856 referenced_var_check_and_insert call.
8857 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
8858 of referenced_var_check_and_insert.
8859
9f0e7885 8860 PR debug/39372
9ade279b 8861 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
8862 (gen_variable_die): Emit DW_AT_location on abstract static variable's
8863 DIE, don't emit it if abstract origin already has it.
8864 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
8865 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
8866
3b664bd1
JBG
88672009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8868
ba20e309 8869 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
8870 detection.
8871 (write_tm_constrs_h): Indent generated code.
8872
d8f8ca80
RR
88732009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8874
8875 * doc/extend.texi (Function Attributes): Add documentation
8876 for isr attributes.
8877
6c3d550c
JJ
88782009-03-06 Jakub Jelinek <jakub@redhat.com>
8879
8880 PR debug/39387
8881 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
8882 take locus from its DECL_SOURCE_LOCATION instead of input_location.
8883
f9e96751
BS
88842009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
8885
8886 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
8887 the loop as bad.
8888
ee0ee7e2
JJ
88892009-03-05 Jakub Jelinek <jakub@redhat.com>
8890
8891 PR debug/39379
8892 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
8893 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
8894
6c6094f1
UB
88952009-03-05 Uros Bizjak <ubizjak@gmail.com>
8896
8897 * config/i386/i386.md (R8_REG, R9_REG): New constants.
8898 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
8899 constants instead of magic numbers.
8900 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
8901 (QI_REG_P): Ditto.
8902 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
8903 (x86_64_ms_abi_int_parameter_registers): Ditto.
8904 (x86_64_int_return_registers): Ditto.
09f8a8d3 8905 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
8906 (ix86_expand_call): Ditto for clobbered_registers array.
8907 (ix86_hard_regno_mode_ok): Ditto.
8908 (x86_extended_QIreg_mentioned_p): Ditto.
8909
b267bd41
R
89102009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
8911
6c6094f1 8912 PR tree-optimization/39349
1f3ad3f0
R
8913 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
8914
b267bd41
R
8915 * combine.c (gen_lowpart_for_combine): Use omode when generating
8916 clobber.
8917
1242bc9d
R
89182009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
8919
6c6094f1 8920 PR rtl-optimization/39235
1242bc9d
R
8921 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
8922
48f03606
ZD
89232009-03-04 Zdenek Dvorak <ook@ucw.cz>
8924
8925 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
8926
b505e785
RG
89272009-03-04 Richard Guenther <rguenther@suse.de>
8928
8929 PR tree-optimization/39362
8930 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
8931 that occur in abnormal PHIs should be varying.
8932
f017bf5e
ZD
89332009-03-04 Zdenek Dvorak <ook@ucw.cz>
8934
8935 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
8936 Extend comments.
8937 (simple_iv): Take loop as an argument instead of statement.
8938 * tree-scalar-evolution.h (simple_iv): Declaration changed.
8939 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
8940 to simple_iv.
8941 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
8942 Ditto.
8943 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
8944 * matrix-reorg.c (analyze_transpose): Ditto.
8945 * tree-data-ref.c (dr_analyze_innermost): Ditto.
8946 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
8947 * tree-predcom.c (ref_at_iteration): Ditto.
8948 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
8949
6a66f28e
RG
89502009-03-04 Richard Guenther <rguenther@suse.de>
8951
8952 PR tree-optimization/39358
8953 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
8954 escaped_id and callused_id.
8955 (solve_graph): Likewise.
8956
57e454ee
RG
89572009-03-04 Richard Guenther <rguenther@suse.de>
8958
8959 PR tree-optimization/39339
8960 * tree-sra.c (try_instantiate_multiple_fields): Make it
8961 no longer ICE on the above.
8962
a6fe9ed4
JM
89632009-03-03 Joseph Myers <joseph@codesourcery.com>
8964
8965 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
8966 that fits within Pmode.
8967
dc672951
SE
89682009-03-03 Steve Ellcey <sje@cup.hp.com>
8969
8970 PR middle-end/10109
8971 * tm.texi (LIBCALL_VALUE): Update description.
8972
8b9d598f
SE
89732009-03-03 Steve Ellcey <sje@cup.hp.com>
8974
8975 PR middle-end/34443
8976 * doc/extend.texi (section): Update description.
8977
13e4e36e
L
89782009-03-03 H.J. Lu <hongjiu.lu@intel.com>
8979
8980 PR middle-end/39345
8981 * tree-inline.c (remapped_type): New.
8982 (can_be_nonlocal): Call remapped_type instead of remap_type.
8983
067dd3c9
JJ
89842009-03-03 Jakub Jelinek <jakub@redhat.com>
8985
8986 PR fortran/39354
8987 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
8988 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
8989
9bd9f738
RG
89902009-03-03 Richard Guenther <rguenther@suse.de>
8991
8992 PR middle-end/39272
8993 * tree.c (tree_nonartificial_location): New function.
8994 * tree.h (tree_nonartificial_location): Declare.
8995 * builtins.c (expand_builtin_memory_chk): Provide location
8996 of the call location for artificial function pieces.
8997 (maybe_emit_chk_warning): Likewise.
8998 (maybe_emit_sprintf_chk_warning): Likewise.
8999 (maybe_emit_free_warning): Likewise.
9000 * expr.c (expand_expr_real_1): Likewise.
9001
f07049c8
JJ
90022009-03-03 Jakub Jelinek <jakub@redhat.com>
9003
9004 PR tree-optimization/39343
9005 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
9006 COMPONENT_REF t has ARRAY_TYPE.
9007
7d4fba4a
SP
90082009-03-02 Sebastian Pop <sebastian.pop@amd.com>
9009
9010 PR middle-end/39335
9011 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
9012 when the type precision of the induction variable should be
9013 larger than the type precision of nit.
9014 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
9015 * graphite.c (graphite_loop_normal_form): Same.
9016 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
9017
78168632
UB
90182009-03-02 Uros Bizjak <ubizjak@gmail.com>
9019
9020 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
9021 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 9022 numbers to describe clobbered registers.
78168632 9023 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
9024 * config/i386/mmx.md (mmx_emms): Ditto.
9025 (mmx_femms): Ditto.
78168632 9026
63553059
RS
90272009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
9028
9029 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
9030 of ABI_64.
9031
500a1f85
UW
90322009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9033
9034 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
9035 (spu_section_type_flags): New function.
9036
962aae34
UB
90372009-03-02 Uros Bizjak <ubizjak@gmail.com>
9038
9039 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
9040 reg_class_contents of FLOAT_REGS into a temporary.
9041
6dfb529c 90422009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 9043 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
9044
9045 PR tree-optimization/39318
9046 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
9047 information to the vectorized statement.
9048
6b5629db
UB
90492009-03-01 Uros Bizjak <ubizjak@gmail.com>
9050
434426d2
UB
9051 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9052 variable. Use defined names instead of magic constants for REX SSE
9053 registers.
6b5629db 9054
14e5b285
RG
90552009-03-01 Richard Guenther <rguenther@suse.de>
9056
9057 PR tree-optimization/39331
9058 * omp-low.c (lower_send_shared_vars): Do not receive new
9059 values for the reference of DECL_BY_REFERENCE parms or results.
9060
526d73ab
JH
90612009-03-01 Jan Hubicka <jh@suse.cz>
9062
9063 PR debug/39267
9064 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
9065 BLOCK_NONLOCALIZED_VAR): New macros.
9066 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
9067 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
9068 gen_decl_die): Add origin argument. Allow generation of die with
9069 origin at hand only.
526d73ab 9070 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
9071 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
9072 of gen_*.
526d73ab
JH
9073 (gen_block_die): Fix checking for unused blocks.
9074 (process_scope_var): Break out from .... ; work with origins only.
9075 (decls_for_scope) ... here; process nonlocalized list.
9076 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
9077 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
9078 vars.
526d73ab
JH
9079 (dump_scope_block): Dump them.
9080 * tree-inline.c (remap_decls): Handle nonlocalized vars.
9081 (remap_block): Likewise.
9082 (can_be_nonlocal): New predicate.
9083 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
9084
7a9d3fe8
RW
90852009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9086
9087 * configure: Regenerate.
9088
b3cdf3cb
RW
90892009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9090
a16d1645 9091 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 9092 Reuse help texts for duplicate options which do not have any.
a16d1645 9093
1156c176
RW
9094 * gcc.c (display_help): Document --version.
9095
033505fc
RW
9096 * gcc.c (main): If print_help_list and verbose_flag, ensure
9097 driver output comes before subprocess output.
9098
4d077054
RW
9099 * optc-gen.awk: Assign all remaining fields to help string,
9100 space-separated, for multi-line help in *.opt.
9101
a072f1cf
RW
9102 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9103 -Wno-pedantic-ms-format is for MinGW targets only.
9104
b3cdf3cb
RW
9105 * doc/options.texi (Option file format): Fix bad indentation,
9106 restoring dropped sentence.
9107
a3aadcc5
JH
91082009-02-28 Jan Hubicka <jh@suse.cz>
9109
9110 * tree-inline.c (tree_function_versioning): Output debug info.
9111
1cf5abb3
JH
91122009-02-28 Jan Hubicka <jh@suse.cz>
9113
9114 PR debug/39267
9115 * tree-inline.c (setup_one_parameter): Do not copy propagate
9116 arguments when not optimizing.
9117
c4d3f42f
L
91182009-02-28 H.J. Lu <hongjiu.lu@intel.com>
9119
9120 PR target/39327
9121 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9122 (avx_addsubv4df3): Likewise.
9123 (*avx_addsubv4sf3): Likewise.
9124 (sse3_addsubv4sf3): Likewise.
9125 (*avx_addsubv2df3): Likewise.
9126 (sse3_addsubv2df3): Likewise.
9127 (avx_unpckhps256): Correct item selectors.
9128 (avx_unpcklps256): Likewise.
9129 (avx_unpckhpd256): Likewise.
9130 (avx_unpcklpd256): Likewise.
9131
eb50f5f4
JH
91322009-02-28 Jan Hubicka <jh@suse.cz>
9133
9134 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9135 static vars.
9136 (copy_arguments_for_versioning): If var is declared don't declare it.
9137 (tree_function_versioning): First setup substitutions and then copy
9138 args.
9139
26140130
JH
91402009-02-27 Jan Hubicka <jh@suse.cz>
9141
9142 PR debug/39267
9143 * cgraph.h (varpool_output_debug_info): Remove.
9144 * cgraphunit.c (varpool_output_debug_info): Remove.
9145 * dwarf2out.c (deferred_locations_struct): New struct
9146 (deferred_locations): New type.
9147 (deferred_locations_list): New static var.
9148 (deffer_location): New function.
9149 (gen_variable_die): Use it.
9150 (decls_for_scope): Output info on local static vars.
9151 (dwarf2out_finish): Process deferred locations.
9152 * varpool.c (varpool_output_debug_info): Remove.
9153
cff7525f
JH
91542009-02-27 Jan Hubicka <jh@suse.cz>
9155
9156 PR debug/39267
9157 * tree.h (TREE_PROTECTED): Fix comment.
9158 (BLOCK_HANDLER_BLOCK): Remove.
9159 (struct tree_block): Remove handler_block add body_block.
9160 (inlined_function_outer_scope_p): New.
9161 (is_body_block): Remove.
9162 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9163 * dwarf2out.c (is_inlined_entry_point): Remove.
9164 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
9165 (gen_block_die): Use is_inlined_entry_point check. Remove body block
9166 code.
cff7525f
JH
9167 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9168 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
9169 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9170 block with multiple subblocks.
cff7525f
JH
9171 (dump_scope_block): Prettier output; dump more flags and info.
9172 (dump_scope_blocks): New.
9173 (remove_unused_locals): Use dump_scope_blocks.
9174 * tree-flow.h (dump_scope_blocks): Declare.
9175 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9176 * stmt.c (is_body_block): Remove.
9177 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9178 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9179
c20993b9
SP
91802009-02-27 Sebastian Pop <sebastian.pop@amd.com>
9181
9182 PR middle-end/39308
2ba9daa7 9183 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
9184 number_of_iterations_exit from a gcc_assert.
9185
e3cba5e5
AK
91862009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9187
60839f5d 9188 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
9189 jumps if COND is NULL.
9190 (find_cond_jump): New function.
9191 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 9192 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 9193
9dadeeb8
UB
91942009-02-26 Uros Bizjak <ubizjak@gmail.com>
9195
9196 * config/alpha/alpha.h (alpha_expand_mov): Return false if
9197 force_const_mem returns NULL_RTX.
9198
625d3251
EB
91992009-02-26 Jan Hubicka <jh@suse.cz>
9200
9201 PR debug/39267
9202 * cgraph.h (varpool_output_debug_info): Remove.
9203 * cgraphunit.c (varpool_output_debug_info): Remove.
9204 * dwarf2out.c (deferred_locations_struct): New struct
9205 (deferred_locations): New type.
9206 (deferred_locations_list): New static var.
9207 (deffer_location): New function.
9208 (gen_variable_die): Use it.
9209 (decls_for_scope): Output info on local static vars.
9210 (dwarf2out_finish): Process deferred locations.
9211 * varpool.c (varpool_output_debug_info): Remove.
9212
38432148 92132009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
9214
9215 PR rtl-optimization/39241
9216 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9217 to subreg_offset_representable_p.
9218
62d049cf
PB
92192009-02-25 Paolo Bonzini <bonzini@gnu.org>
9220
9221 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9222 execute function prototype. Get f and nregs from max_reg_num
9223 and get_insns. Remove the first backward pass as it's dead,
9224 guard the forward pass by flag_expensive_optimizations.
9225 (rest_of_handle_regmove): Delete.
9226 (pass_regmove): Replace it with regmove_optimize.
9227
f618d33e
MJ
92282009-02-25 Martin Jambor <mjambor@suse.cz>
9229
9230 PR tree-optimization/39259
9231 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 9232 calls_alloca function flags.
f618d33e
MJ
9233 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9234 calls are detected.
9235
c8a05f7c
PB
92362009-02-25 Paolo Bonzini <bonzini@gnu.org>
9237
9238 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9239 flags_set_1_rtx, flags_set_1_set): Delete.
9240 (regmove_optimize): Do not call mark_flags_life_zones.
9241
6d2538f5
JB
92422009-02-24 Julian Brown <julian@codesourcery.com>
9243
9244 PR target/35965
9245 * config/arm/arm.c (require_pic_register): Only set
9246 cfun->machine->pic_reg once per function.
9247
a2fa6772
SL
92482009-02-24 Sandra Loosemore <sandra@codesourcery.com>
9249
9250 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 9251 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 9252
5472de36
SE
92532009-02-24 Steve Ellcey <sje@cup.hp.com>
9254
9255 PR target/33785
9256 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9257
844216f3
RG
92582009-02-24 Richard Guenther <rguenther@suse.de>
9259
9260 PR debug/39285
9261 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9262
71adbef3 92632009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 9264 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
9265
9266 PR tree-optimization/39233
9267 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9268 from converting them to a generic type.
9269
f1a558e0
SP
92702009-02-23 Sebastian Pop <sebastian.pop@amd.com>
9271
9272 PR tree-optimization/39260
9273 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9274 contains a condition with a real type.
9275 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9276
d8028f2c
JM
92772009-02-23 Jason Merrill <jason@redhat.com>
9278
9279 PR c++/38880
9280 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9281 narrowing_initializer_constant_valid_p.
2ba9daa7 9282 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
9283 null_pointer_node for adding a pointer to itself.
9284
9283b513
JH
92852009-02-23 Jan Hubicka <jh@suse.cz>
9286
9287 PR c/12245
9dadeeb8
UB
9288 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9289 resizing.
9283b513 9290
61e04322
JH
92912009-02-23 Jan Hubicka <jh@suse.cz>
9292
9dadeeb8
UB
9293 PR tree-optimization/37709
9294 * tree.c (block_ultimate_origin): Move here from dwarf2out.
9295 * tree.h (block_ultimate_origin): Declare.
9296 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
9297 * tree-ssa-live.c (remove_unused_scope_block_p):
9298 Eliminate blocks containig no instructions nor live variables nor
9299 nested blocks.
9300 (dump_scope_block): New function.
9301 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 9302 enable dumping at TDF_DETAILS.
61e04322 9303
38432148 93042009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
9305
9306 * config/i386/i386.c (classify_argument): Don't allow COImode
9307 and OImode.
9308 (function_arg_advance_32): Don't allow OImode.
9309 (function_arg_32): Likewise.
9310 (function_value_32): Likewise.
9311 (return_in_memory_32): Likewise.
9312 (function_arg_64): Remove OImode comment.
9313
38432148 93142009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
9315
9316 PR target/39261
9317 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9318 ix86_expand_vector_set for V4DImode in 64bit mode only.
9319 (ix86_expand_vector_init_one_var): Likewise.
9320
dcd739a6
SP
93212009-02-21 Sebastian Pop <sebastian.pop@amd.com>
9322
9323 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9324
6c3b938d
RS
93252009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9326
8e361f23 9327 PR bootstrap/39257
6c3b938d
RS
9328 * loop-iv.c: Revert last change.
9329 * emit-rtl.c: Likewise.
9330
38432148 93312009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
9332
9333 PR target/39256
9334 * config/i386/i386.c (type_natural_mode): Remove an extra
9335 space in the warning message.
9336 (function_value_32): Handle 32-byte vector modes.
9337 (return_in_memory_32): Likewise.
9338
2ec62529
RS
93392009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9340
9341 * loop-iv.c (truncate_value): New function.
9342 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9343 of lowpart_subreg.
9344 (lowpart_subreg): Move to...
9345 * emit-rtl.c: ...here.
9346
ecb8c3cc 93472009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 9348
ecb8c3cc
DS
9349 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9350 accidental and undocumented change at revision 140860.
9351
ae46a823
JM
93522009-02-21 Joseph Myers <joseph@codesourcery.com>
9353
9354 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9355 take gimple_seq * arguments.
9356 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9357 types_compatible_p langhook.
9358
07d8efe3 93592009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 9360 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
9361
9362 * config/arm/arm.c (arm_builtin_va_list): New function.
9363 (arm_expand_builtin_va_start): Likewise.
9364 (arm_gimplify_va_arg_expr): Likewise.
9365 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9366 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9367 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9368 (va_list_type): New variable.
9369 (arm_mangle_type): Mangle va_list_type appropriately.
9370
b1fb9f56
JJ
93712009-02-20 Jakub Jelinek <jakub@redhat.com>
9372
9373 PR middle-end/39157
9374 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9375 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9376 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9377 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9378 parameter to 1000 for -O1 by default.
9379 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9380 parameter.
9381 * loop-invariant.c: Include params.h.
9382 (move_loop_invariants): Don't call move_single_loop_invariants on
9383 very large loops.
9384
5bc0807c
JM
93852009-02-20 Jaka Mocnik <jaka@xlab.si>
9386
9387 * calls.c (emit_library_call_value_1): Use slot_offset instead of
9388 offset when calculating bounds for indexing stack_usage_map. Fixes
9389 a buffer overflow with certain target setups.
9390
c69cd1f5
JJ
93912009-02-20 Jakub Jelinek <jakub@redhat.com>
9392
9393 PR target/39240
9394 * calls.c (expand_call): Clear try_tail_call if caller and callee
9395 disagree in promotion of function return value.
9396
09812622
JJ
93972009-02-19 Jakub Jelinek <jakub@redhat.com>
9398
9399 PR target/39175
9400 * c-common.c (c_determine_visibility): If visibility changed and
9401 DECL_RTL has been already set, call make_decl_rtl to update symbol
9402 flags.
9403
68017cb4
L
94042009-02-19 H.J. Lu <hongjiu.lu@intel.com>
9405
9406 PR c++/39188
9407 * varasm.c (assemble_variable): Don't check DECL_NAME when
9408 globalizing a variable.
9409
ab4194da
JM
94102009-02-19 Joseph Myers <joseph@codesourcery.com>
9411
9412 PR c/38483
9413 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9414 expression before any __builtin_trap call.
9415 * c-typeck.c (build_function_call): Convert and check function
9416 arguments before generating a call to a trap. Evaluate the
9417 function arguments before the trap.
9418
6b67572e
UB
94192009-02-19 Uros Bizjak <ubizjak@gmail.com>
9420
9421 PR target/39228
9422 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9423 (UNSPEC_FXAM_MEM): New unspec.
9424 (fxam<mode>2_i387_with_temp): New insn and split pattern.
9425 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
9426 memory using fxam<mode>2_i387_with_temp to remove excess precision.
9427
9e39dba6
RG
94282009-02-19 Richard Guenther <rguenther@suse.de>
9429
9430 PR tree-optimization/39207
9431 PR tree-optimization/39074
9432 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9433 storedanything_tree): New.
9434 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 9435 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
9436 (build_succ_graph): Add edges from STOREDANYTHING to all
9437 non-direct nodes.
9438 (init_base_vars): Initialize STOREDANYTHING.
9439 (compute_points_to_sets): Free substitution info after
9440 building the succ graph.
9441 (ipa_pta_execute): Likewise.
9442
9443 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
9444 field.
9445 (do_ds_constraint): Do not add to special var or non-pointer
9446 field solutions.
9447 (type_could_have_pointers): Split out from ...
9448 (could_have_pointers): ... here. For arrays use the element type.
9449 (create_variable_info_for): Initialize may_have_pointers.
9450 (new_var_info): Likewise.
9451 (handle_lhs_call): Make the HEAP variable unknown-sized.
9452 (intra_create_variable_infos): Use a type with pointers for
9453 PARM_NOALIAS, make it unknown-sized.
9454
fd7b2603
L
94552009-02-18 H.J. Lu <hongjiu.lu@intel.com>
9456
9457 PR target/39224
6b67572e 9458 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 9459
98b80692
JM
94602009-02-18 Jason Merrill <jason@redhat.com>
9461
9462 PR target/39179
9463 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
9464 value if DECL_EXTERNAL.
9465 * tree-sra.c (sra_walk_gimple_assign): Likewise.
9466 * target.h (gcc_target::binds_local_p): Clarify "module".
9467 * tree.h (TREE_PUBLIC): Clarify "module".
9468
0705d3f4
L
94692009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
9470
9471 PR target/38891
9472 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
9473 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
9474
bce08d50
L
94752009-02-17 H.J. Lu <hongjiu.lu@intel.com>
9476
9477 PR target/39082
9478 * c.opt (Wabi): Support C and ObjC.
9479 (Wpsabi): New.
9480
9481 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
9482
9483 * config/i386/i386.c (classify_argument): Warn once about the ABI
9484 change when passing union with long double.
9485
9486 * doc/invoke.texi: Update -Wabi for warning psABI changes.
9487
5600f233
JM
94882009-02-18 Joseph Myers <joseph@codesourcery.com>
9489
9490 PR c/35447
9491 * c-parser.c (c_parser_compound_statement): Always enter and leave
9492 a scope.
9493
8cd01fe6
JDA
94942009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9495
9496 PR target/34587
9497 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
9498
418df9d7
JJ
94992009-02-18 Jakub Jelinek <jakub@redhat.com>
9500
9501 PR tree-optimization/36922
9502 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
9503 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
9504 Likewise.
9505
082d2ebb
RS
95062009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9507
9508 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
9509 to 0 for EABI64.
9510
17de576c
RS
95112009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9512
9513 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
9514
6d8d5435
RS
95152009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9516
9517 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
9518 tree sharing.
9519
e69ff910
RB
95202009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
9521 Richard Sandiford <rdsandiford@googlemail.com>
9522
9523 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
9524 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
9525 (loongson_biadd): ...this.
9526
6b24ee26
RG
95272009-02-17 Richard Guenther <rguenther@suse.de>
9528
9529 PR tree-optimization/39202
9530 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
9531 a var make sure to follow existing collapses.
9532
91ab2c86
RG
95332009-02-17 Richard Guenther <rguenther@suse.de>
9534
9535 PR middle-end/39214
9536 * langhooks.c (lhd_print_error_function): Check for NULL block.
9537
73a63870
RG
95382009-02-17 Richard Guenther <rguenther@suse.de>
9539
9540 PR tree-optimization/39204
9541 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
9542 of the PHI arg.
9543
0e08f686
UB
95442009-02-17 Uros Bizjak <ubizjak@gmail.com>
9545
9546 * config/soft-fp/double.h: Update from glibc CVS.
9547
a60b7ddb
RG
95482009-02-17 Richard Guenther <rguenther@suse.de>
9549
9550 PR tree-optimization/39207
9551 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
9552 strict-aliasing warnings for pointers pointing to NULL.
9553
a47e20fd
JM
95542009-02-16 Joseph Myers <joseph@codesourcery.com>
9555
9556 PR c/35446
9557 * c-parser.c (c_parser_braced_init): Call pop_init_level when
9558 skipping until next close brace.
9559
50aab7dc
L
95602009-02-16 H.J. Lu <hongjiu.lu@intel.com>
9561
9562 PR target/37049
9563 * config/i386/i386.c (ix86_expand_push): Set memory alignment
9564 to function argument boundary.
9565
68e53db0
HS
95662009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
9567
9568 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
9569 in the lea_add. Reload eventually constraints it properly.
0d50d55a 9570 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
9571 "b", since it is not needed anymore.
9572
09e361bb
JJ
95732009-02-16 Jakub Jelinek <jakub@redhat.com>
9574
9575 * gthr-dce.h: Uglify function parameter and local variable names.
9576 * gthr-gnat.h: Likewise.
9577 * gthr-mipssde.h: Likewise.
9578 * gthr-nks.h: Likewise.
9579 * gthr-posix95.h: Likewise.
9580 * gthr-posix.h: Likewise.
9581 * gthr-rtems.h: Likewise.
9582 * gthr-single.h: Likewise.
9583 * gthr-solaris.h: Likewise.
9584 * gthr-tpf.h: Likewise.
9585 * gthr-vxworks.h: Likewise.
9586 * gthr-win32.h: Likewise.
9587
47f5a48f
L
95882009-02-15 H.J. Lu <hongjiu.lu@intel.com>
9589
9590 PR target/39196
9591 * config/i386/i386.md: Restrict the new peephole2 to move
9592 between MMX/SSE registers.
9593
68c9ab45
RG
95942009-02-15 Richard Guenther <rguenther@suse.de>
9595
9596 Revert
9597 2009-02-13 Richard Guenther <rguenther@suse.de>
9598
9599 * configure.ac: Enable LFS.
9600 * configure: Re-generate.
9601 * config.in: Likewise.
9602
d7815554
UW
96032009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9604
9605 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
9606 spu_srqwbyte, spu_srqwbytebc): Define.
9607 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
9608 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
9609 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
9610 "shrqby_<mode>"): New insn-and-split patterns.
9611 * config/spu/spu.c (expand_builtin_args): Determine and return
9612 number of operands using spu_builtin_description data.
9613 (spu_expand_builtin_1): Use it.
9614
c208436c
SE
96152009-02-13 Steve Ellcey <sje@cup.hp.com>
9616
9617 PR target/38056
9618 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
9619 TARGET_CONST_GP.
9620
c2e7ba7e
L
96212009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9622
9623 PR target/39149
9624 * config/i386/i386.c (override_options): Correct warning
6c6094f1 9625 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 9626
72f4e3a7
L
96272009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9628
9629 PR target/39152
9630 * config/i386/i386.md: Restrict the new peephole2 to move
9631 between the general purpose registers.
9632
53f648e2
L
96332009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9634
9635 PR target/39162
9636 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 9637 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
9638 (function_arg_advance): Updated.
9639 (function_arg): Likewise.
9640 (ix86_function_value): Likewise.
9641 (ix86_return_in_memory): Likewise.
9642 (ix86_sol10_return_in_memory): Likewise.
9643 (ix86_gimplify_va_arg): Likewise.
9644 (function_arg_32): Don't warn ABX ABI change here.
9645 (function_arg_64): Likewise.
9646
38432148 96472009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
9648
9649 * loop-iv.c (implies_p): In the final case, test that operands 0
9650 of the two comparisons match.
9651
dd2139e7
BS
9652 * config/bfin/bfin.c (find_prev_insn_start): New function.
9653 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
9654 (find_next_insn_start): Move.
9655
601b3e1a
RG
96562009-02-13 Richard Guenther <rguenther@suse.de>
9657
9658 * configure.ac: Enable LFS.
9659 * configure: Re-generate.
9660 * config.in: Likewise.
9661
f007042e
JM
96622009-02-13 Joseph Myers <joseph@codesourcery.com>
9663
9664 PR c/35444
9665 * c-parser.c (c_parser_parms_list_declarator): Discard pending
9666 sizes on syntax error after some arguments have been parsed.
9667
3f238e8b
JJ
96682009-02-12 Jakub Jelinek <jakub@redhat.com>
9669
9670 * doc/invoke.texi (-fira): Remove.
9671
328e13b7
L
96722009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9673
9674 * caller-save.c: Replace regclass.c with reginfo.c in comments.
9675 * recog.c: Likewise.
9676 * rtl.h: Likewise.
9677
c252db20
L
96782009-02-12 Uros Bizjak <ubizjak@gmail.com>
9679
9680 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
9681 (umul_ppmm): Likewise.
9682 (count_leading_zeros): Likewise.
9683 (count_trailing_zeros): Likewise.
9684 (UMUL_TIME): Likewise.
9685
96862009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9687
ba181049
UB
9688 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
9689 soft-fp/t-softfp to tmake_file.
c252db20
L
9690
9691 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
9692 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
9693 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
9694 IA64_BUILTIN_INFQ]: New.
c252db20
L
9695 (ia64_init_builtins): Initialize __builtin_infq,
9696 __builtin_fabsq and __builtin_copysignq if not HPUX.
9697 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
9698 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
9699
9700 * config/ia64/lib1funcs.asm (__divtf3): Define only if
9701 SHARED is defined.
9702 (__fixtfti): Likewise.
9703 (__fixunstfti): Likewise.
9704 (__floattitf): Likewise.
9705
9706 * config/ia64/libgcc-glibc.ver: New.
9707 * config/ia64/t-fprules-softfp: Likewise.
9708 * config/ia64/sfp-machine.h: Likewise.
9709
9710 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
9711 (LIBGCC2_TF_CEXT): Likewise.
9712 (TF_SIZE): Likewise.
9713 (TARGET_INIT_LIBFUNCS): Likewise.
9714
ba181049 9715 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 9716 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 9717
f13eae6a
L
97182009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9719
9720 * config/i386/i386.c (construct_container): Rewrite processing
9721 BLKmode with X86_64_SSE_CLASS.
9722
12019aec
L
97232009-02-12 Paolo Bonzini <bonzini@gnu.org>
9724
9725 PR target/39152
9726 * config/i386/i386.md: Replace simplify_replace_rtx with
9727 replace_rtx in the new peephole2.
9728
28c11eb3
NS
97292009-02-12 Nathan Sidwell <nathan@codesourcery.com>
9730
9731 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
9732 loop unrolling do not happen at -O2.
9733
c7b94907
MM
97342009-02-12 Michael Matz <matz@suse.de>
9735
9736 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
9737
61e98967
JJ
97382009-02-12 Jakub Jelinek <jakub@redhat.com>
9739
9740 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
9741 for -g3.
9742
a2a237b5
BE
97432009-02-12 Ben Elliston <bje@au.ibm.com>
9744
9745 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
9746 patterns when updating the back chain. Missed in the 2009-02-10
9747 change.
9748
853eda8d
JJ
97492009-02-11 Janis Johnson <janis187@us.ibm.com>
9750
9751 * doc/extend.texi (Decimal Floating Types): Update identifier of
9752 draft TR and list of missing support.
9753
3ad6b266
JJ
97542009-02-11 Jakub Jelinek <jakub@redhat.com>
9755
9756 PR middle-end/39154
9757 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
9758 bit to variable length decl's flags, add it also to its
9759 pointer replacement variable.
9760
b058b753
UB
97612009-02-11 Uros Bizjak <ubizjak@gmail.com>
9762 Jakub Jelinek <jakub@redhat.com>
9763
9764 PR target/39118
9765 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
9766 (memory_blockage): New expander.
9767 (*memory_blockage): New insn pattern.
9768 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
9769 instead of general blockage at the end of function prologue when
9770 frame pointer is used to access red zone area. Do not emit blockage
9771 when profiling, it is emitted in generic code.
9772 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
9773 function epilogue when frame pointer is used to access red zone area.
9774
bab64f23
PB
97752009-02-11 Paolo Bonzini <bonzini@gnu.org>
9776
0ce6dcfa 9777 PR target/38824
bab64f23
PB
9778 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
9779 by arithmetic with memory operands.
9780 * config/i386/predicates.md (commutative_operator): New.
9781
8fd94bda
JJ
97822009-02-10 Janis Johnson <janis187@us.ibm.com>
9783
9784 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
9785 bulleted lists.
9786
794511d2
EB
97872009-02-10 Eric Botcazou <ebotcazou@adacore.com>
9788
9789 * alias.h (record_alias_subset): Declare.
9790 * alias.c (record_alias_subset): Make global.
9791
6da7fc87
NC
97922009-02-10 Nick Clifton <nickc@redhat.com>
9793
9794 * tree-parloops.c: Change license to GPLv3.
9795 * ipa-struct-reorg.c: Change license to GPLv3.
9796 * ipa-struct-reorg.h: Change license to GPLv3.
9797
a03813c8
SE
97982009-02-10 Steve Ellcey <sje@cup.hp.com>
9799
9800 PR c/39084
9801 * c-decl.c (start_struct): Return NULL on error.
9802
fc3103e7
JJ
98032009-02-10 Jakub Jelinek <jakub@redhat.com>
9804
9b43d37b
JJ
9805 PR middle-end/39124
9806 * cfgloopmanip.c (remove_path): Call remove_bbs after
9807 cancel_loop_tree, not before it.
9808
fc3103e7 9809 PR target/39139
b058b753 9810 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
9811 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
9812 VAR_DECLs were seen.
9813 * tree-ssa-live.c (remove_unused_locals): Recompute
9814 cfun->has_local_explicit_reg_vars.
9815 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
9816 copies or clearings if cfun->has_local_explicit_reg_vars.
9817
dbf9ee15
UB
98182009-02-10 Uros Bizjak <ubizjak@gmail.com>
9819
9820 PR target/39118
9821 * config/i386/i386.c (expand_prologue): Emit blockage at the end
9822 of function prologue when frame pointer is used to access
9823 red zone area.
9824
bdec4dc7
RG
98252009-02-10 Richard Guenther <rguenther@suse.de>
9826
9827 PR middle-end/39127
9828 * gimplify.c (gimple_regimplify_operands): Always look if
9829 we need to create a temporary.
9830
7cae94fc
RG
98312009-02-10 Richard Guenther <rguenther@suse.de>
9832
9833 PR tree-optimization/39132
9834 * tree-loop-distribution.c (todo): New global var.
9835 (generate_memset_zero): Trigger TODO_rebuild_alias.
9836 (tree_loop_distribution): Return todo.
9837
a8800687
L
98382009-02-10 H.J. Lu <hongjiu.lu@intel.com>
9839
9840 PR target/39119
9841 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
9842 (x86_64_reg_class_name): Removed.
9843 (classify_argument): Return 0 if bytes > 32. Return 0 if the
9844 first one isn't X86_64_SSE_CLASS or any other ones aren't
9845 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
9846 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
9847 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
9848 and 3 X86_64_SSEUP_CLASS.
9849 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
9850 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
9851
d4bacef0
BE
98522009-02-10 Ben Elliston <bje@au.ibm.com>
9853
9854 * config/rs6000/rs6000.md (allocate_stack): Always use an update
9855 form instruction to update the stack back chain word, even if the
9856 user has disabled the generation of update instructions.
9857 (movdi_<mode>_update_stack): New.
9858 (movsi_update_stack): Likewise.
9859 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
9860 always use an update form instruction to update the stack back
9861 chain word.
9862
01d7d2f3
SP
98632009-02-09 Sebastian Pop <sebastian.pop@amd.com>
9864
9865 PR middle-end/38953
b058b753
UB
9866 * graphite.c (if_region_set_false_region): After moving a region in
9867 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
9868 (gloog): Remove wrong fix for PR38953.
9869
e41e2ab4
UW
98702009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9871
9872 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
9873 generation due to implicit sign extension.
9874
4bb07c5d
EB
98752009-02-09 Eric Botcazou <ebotcazou@adacore.com>
9876
9877 PR middle-end/38981
9878 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
9879 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
9880
f060a261
RG
98812009-02-09 Richard Guenther <rguenther@suse.de>
9882
9883 PR middle-end/35202
9884 * convert.c (convert_to_real): Disable (float)fn((double)x)
9885 to fnf(x) conversion if errno differences may occur and
9886 -fmath-errno is set.
9887
5a7e237c
AS
98882009-02-07 Anatoly Sokolov <aesok@post.ru>
9889
9890 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
9891 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9892 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9893
feab5a67
JM
98942009-02-06 Joseph Myers <joseph@codesourcery.com>
9895
9896 PR c/35434
9897 * c-common.c (handle_alias_attribute): Disallow attribute for
9898 anything not a FUNCTION_DECL or VAR_DECL.
9899
90ef2296
JJ
99002009-02-06 Janis Johnson <janis187@us.ibm.com>
9901
9902 PR c/39035
9903 * real.c (do_compare): Special-case compare of zero against
9904 decimal float value.
9905
1de2c900
JM
99062009-02-06 Joseph Myers <joseph@codesourcery.com>
9907
9908 PR c/36432
9909 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
9910 as indicating flexible array members unless the field itself is
9911 being declarared as the incomplete array.
9912
e901811a
JH
99132009-02-06 Jan Hubicka <jh@suse.cz>
9914
9915 PR tree-optimization/38844
9916 * ipa-inline.c (try_inline): Stop inlining recursion when edge
9917 is already inlined.
9918
3cfa762b
RG
99192009-02-06 Richard Guenther <rguenther@suse.de>
9920
9921 PR middle-end/38977
9922 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
9923 fork because we may expand it as __gcov_fork.
9924
8506528c
NC
99252009-02-06 Nick Clifton <nickc@redhat.com>
9926
dbf9ee15 9927 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 9928
85169114
PB
99292009-02-06 Paolo Bonzini <bonzini@gnu.org>
9930
9931 PR tree-optimization/35659
9932 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
9933 vn_phi_eq): Shortcut if hashcode does not match.
9934 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
9935 NULL operands.
9936 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
9937 and avoid iterative_hash_expr.
9938 (FOR_EACH_VALUE_ID_IN_SET): New.
9939 (value_id_compare): Remove.
9940 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
9941 sort expressions by value id.
9942
6d39673d
KK
99432009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
9944
9945 PR target/38991
9946 * config/sh/predicates.md (general_movsrc_operand): Don't check
9947 the subreg of system registers here.
9948
e6e1c050
JJ
99492009-02-05 Jakub Jelinek <jakub@redhat.com>
9950
9951 PR c++/39106
9952 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
9953 on the copied decl.
9954
65a74b5d
PB
99552009-02-05 Paolo Bonzini <bonzini@gnu.org>
9956
9957 PR rtl-optimization/39110
9958 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
9959 addresses, not aligned ones.
9960
08e14b2a
DB
99612009-02-05 Daniel Berlin <dberlin@dberlin.org>
9962 Richard Guenther <rguenther@suse.de>
9963
9964 PR tree-optimization/39100
9965 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
9966 comment says and add edges.
9967
5006381c
JM
99682009-02-05 Joseph Myers <joseph@codesourcery.com>
9969
9970 PR c/35435
9971 * c-common.c (handle_tls_model_attribute): Ignore attribute for
9972 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
9973
2ba9daa7 99742009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
9975
9976 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
9977 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
9978 register_bb_in_sese, new_sese, free_sese): Moved.
9979 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
9980 outermost_loop_in_scop, build_scop_iteration_domain,
9981 expand_scalar_variables_ssa_name, get_vdef_before_scop,
9982 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
9983 Use loop_in_sese_p instead of loop_in_scop_p.
9984 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
9985 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
9986 (scopdet_basic_block_info): Fix bug in scop detection.
9987 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
9988 eq_loop_to_cloog_loop): Remove.
9989 (nb_loops_around_loop_in_scop, nb_loop
9990 ref_nb_loops): Moved here...
9991 * graphite.h (ref_nb_loops): ... from here.
9992 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
9993 (loop_domain_dim, loop_iteration_vector_dim): Remove.
9994 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
9995 * testsuite/gcc.dg/graphite/scop-19.c: New
9996
48e8382e
PB
99972009-02-04 Paolo Bonzini <bonzini@gnu.org>
9998 Hans-Peter Nilsson <hp@axis.com>
9999
10000 PR rtl-optimization/37889
10001 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
10002 Move offset handling from PLUS to before the switch. Use new
10003 arguments when considering SYMBOL_REFs too.
10004 (rtx_addr_can_trap_p): Pass dummy offset and size.
10005 (enum may_trap_p_flags): Remove.
10006 (may_trap_p_1): Pass size from MEM_SIZE.
10007
10008 PR rtl-optimization/38921
10009 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
10010 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
10011 * rtlanal.c (may_trap_after_code_motion_p): Delete.
10012 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
10013
69349ea5
L
100142009-02-04 H.J. Lu <hongjiu.lu@intel.com>
10015
10016 AVX Programming Reference (January, 2009)
10017 * config/i386/sse.md (*vpclmulqdq): New.
10018
b545e411
JJ
100192009-02-04 Jakub Jelinek <jakub@redhat.com>
10020
10021 PR tree-optimization/38977
10022 PR gcov-profile/38292
bf9b2cc9 10023 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 10024
5b43bf05
HS
100252009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
10026
10027 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
10028 non-indexable addresses even before reload.
10029
062c4bb3
JM
100302009-02-03 Joseph Myers <joseph@codesourcery.com>
10031
10032 PR c/29129
10033 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
10034 as having variable size. Do not give an error for unnamed
10035 parameters with [*] declarators. Give a warning for type names
10036 with [*] declarators and mark them as variable size.
10037 * c-parser.c (c_parser_sizeof_expression): Do not give an error
10038 for sizeof applied to [*] type names.
10039
6175f578
AP
100402009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
10041
10042 PR C++/36607
10043 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
10044
d4f4bc84
JJ
100452009-02-03 Jakub Jelinek <jakub@redhat.com>
10046
10047 * gcc.c (process_command): Update copyright notice dates.
10048 * gcov.c (print_version): Likewise.
10049 * gcov-dump.c (print_version): Likewise.
10050 * mips-tfile.c (main): Likewise.
10051 * mips-tdump.c (main): Likewise.
10052
f6294de7
JM
100532009-02-03 Joseph Myers <joseph@codesourcery.com>
10054
10055 PR c/35433
10056 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
10057 for composite type involving a zero-length array type.
10058
754ccf7c
JJ
100592009-02-03 Jakub Jelinek <jakub@redhat.com>
10060
70f16287
JJ
10061 PR target/35318
10062 * function.c (match_asm_constraints_1): Skip over
10063 initial optional % in the constraint.
10064
754ccf7c
JJ
10065 PR inline-asm/39059
10066 * c-parser.c (c_parser_postfix_expression): If fixed point is not
10067 supported, don't accept FIXED_CSTs.
10068 * c-decl.c (finish_declspecs): Error if fixed point is not supported
10069 and _Sat is used without _Fract/_Accum. Set specs->type to
10070 integer_type_node for cts_fract/cts_accum if fixed point is not
10071 supported.
10072
965fdadf
CM
100732009-02-02 Catherine Moore <clm@codesourcery.com>
10074
dbf9ee15 10075 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 10076
2e8a796f
RS
100772009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
10078
10079 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
10080 (ABI_HAS_64BIT_SYMBOLS): Use it.
10081 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
10082
e0079468
PB
100832009-02-02 Paul Brook <paul@codesourcery.com>
10084
10085 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
10086
eca72963
JJ
100872009-02-02 Jakub Jelinek <jakub@redhat.com>
10088
10089 PR inline-asm/39058
10090 * recog.h (asm_operand_ok): Add constraints argument.
10091 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
10092 recurse on matching constraint.
10093 (check_asm_operands): Pass constraints as 3rd argument to
10094 asm_operand_ok. Don't look up matching constraint here.
10095 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10096 to asm_operand_ok.
10097
b5bde9ff
BE
100982009-02-02 Ben Elliston <bje@au.ibm.com>
10099
10100 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10101 TARGET_NARROW_VOLATILE_BITFIELD macro names.
10102
30f3e427
JDA
101032009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10104
be7659ba
JDA
10105 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10106 information. Remove some obsolete information. Reorganize.
10107
30f3e427
JDA
10108 * config/pa/fptr.c: Revert license to GPL 2.
10109 * config/pa/milli64.S: Likewise.
10110
3cbfaf98
DK
101112009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10112
10113 PR target/38904
10114 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
10115 LIBRARY name in, instead of hard-coding it.
10116 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
10117 extra target make frag to tmake_files according to EH model.
10118 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
10119 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
10120 frags that define makefile variable EH_MODEL appropriately.
10121 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
10122 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
10123 to "-sjlj" according to type of EH configured.
10124 (LIBGCC_SONAME): Concatenate it to shared library base name.
10125 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
10126 to "_sjlj" according to type of EH configured.
10127 (LIBGCC_SONAME): Concatenate it to shared library base name.
10128 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
10129 (SHLIB_LINK): Add missing semicolon to if-else construct.
10130 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10131 string value of "pe_dll" command-line option.
10132 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
10133 (SHLIB_SONAME): Use it when overriding t-cygming default.
10134 (SHLIB_IMPLIB): Override t-cygming default.
10135 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10136 string value of "pe_dll" command-line option.
10137
8d0b6068
DK
101382009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10139
10140 PR target/38952
10141 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 10142 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 10143
14c28276
RG
101442009-01-31 Richard Guenther <rguenther@suse.de>
10145
10146 PR tree-optimization/38937
10147 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10148 computing the transitive closure.
10149
5f4d82c2
RG
101502009-01-30 Richard Guenther <rguenther@suse.de>
10151
10152 PR tree-optimization/39041
10153 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10154 Propagate variable indices only if the types match for this stmt.
10155
d0728ae0
JJ
101562009-01-30 Jakub Jelinek <jakub@redhat.com>
10157
10158 PR target/39013
10159 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10160 inline but never defined.
10161
6b67572e 101622009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
10163
10164 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10165 (*insv_h_di_reg_extimm): New insn.
10166 (*insv_l<mode>_reg_extimm): New insn.
10167
101682009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
10169
10170 * config/picochip/picochip.c (flag_conserve_stack): set
10171 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10172 fconserve-stack. Reduce call-overhead used by inliner.
10173
9fec758d 101742009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
10175
10176 PR/38157
10177 * common.opt (flag_conserve_stack): Initialised to zero.
10178
7f1c539c
KT
101792009-01-30 Kai Tietz <kai.tietz@onevision.com>
10180
10181 PR/39002
10182 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10183 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10184 method.
10185
3631be48
L
101862009-01-29 H.J. Lu <hongjiu.lu@intel.com>
10187
10188 * ira-color.c (allocno_reload_assign): Update comments.
10189 * regmove.c (regmove_optimize): Likewise.
10190
10191 * ra.h: Removed.
10192
416ac4d4
RM
101932009-01-29 Robert Millan <rmh@aybabtu.com>
10194
60839f5d
EB
10195 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10196 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 10197 `MD_UNWIND_SUPPORT'.
60839f5d 10198 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 10199
d5e54bc1
KH
102002009-01-29 Kazu Hirata <kazu@codesourcery.com>
10201
10202 PR tree-optimization/39007
10203 * tree-loop-distribution.c (generate_builtin): Use
10204 recompute_dominator to compute the immediate dominator of the
10205 basic block just after the loop.
10206
38432148 102072009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
10208
10209 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10210 (ASM_OUTPUT_DWARF_PCREL): Define.
10211
38432148 102122009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
10213
10214 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10215 * doc/passes.texi: Remove entries about regclass, local-alloc, and
10216 global. Modify entries about regmove and IRA.
10217
10218 * ra-conflict.c: Remove the file.
10219
10220 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10221
10222 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10223 (pass_regclass_init): Rename to pass_reginfo_init.
10224
10225 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10226
10227 * toplev.h (flag_ira): Remove.
10228
10229 * caller-save.c (setup_save_areas): Remove flag_ira.
10230
bf9b2cc9 10231 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
10232
10233 * global.c: Remove the file.
10234
ba20e309 10235 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
10236
10237 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10238
10239 * regmove.c: Modify file description.
10240 (find_use_as_address, try_auto_increment): Define them only if
10241 AUTO_INC_DEC is defined.
10242 (replacement_quality, replace_in_call_usage, fixup_match_1,
10243 stable_and_no_regs_but_for_p): Remove.
10244 (reg_set_in_bb): Make it static.
10245 (regmove_optimize): Remove flag_ira and code which worked for
10246 !flag_ira.
10247
10248 * local-alloc.c: Remove the file.
10249
10250 * common.opt (fira): Remove.
10251
10252 * ira.c: Include except.h.
10253 (eliminable_regset): Move from global.c.
10254 (mark_elimination): Ditto. Remove flag_ira.
10255 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10256 equiv_mem_modified, validate_equiv_mem_from_store,
10257 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10258 contains_replace_regs, memref_referenced_p, memref_used_between_p,
10259 no_equiv, recorded_label_ref): Move from local-alloc.c.
10260 (update_equiv_regs): Ditto. Make it static.
10261 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 10262 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
10263 (build_insn_chain): Ditto. Make it static.
10264 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
10265 Rename to init_live_subregs.
10266 (gate_ira): Remove flag_ira.
10267
10268 * regclass.c: Rename reginfo.c. Change file description.
10269 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 10270 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
10271 (init_reg_sets_1): Remove code for evaluation of
10272 reg_class_superclasses and losing_caller_save_reg_set.
10273 (init_regs): Remove init_reg_autoinc.
10274 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10275 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 10276 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
10277 (pass_regclass_init): Rename to pass_reginfo_init. Modify
10278 corresponding entries.
10279 (dump_regclass, record_operand_costs, scan_one_insn,
10280 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10281 record_address_regs, auto_inc_dec_reg_p): Remove.
10282 (gt-regclass.h): Rename to gt-reginfo.h.
10283
10284 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 10285 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
10286
10287 * Makefile.in (RA_H): Remove.
10288 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10289 Rename regclass.o to reginfo.o.
10290 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
10291 gt-reginfo.h.
10292 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10293 (GTFILES): Rename regclass.c to reginfo.c.
10294
10295 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 10296 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
10297
10298 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10299 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10300 Remove flag_ira.
6b67572e 10301 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 10302
c95b2534 103032009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
10304
10305 PR middle-end/35854
10306 * doc/invoke.texi (rtl debug options): Complete rewrite.
10307 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10308 to auto_inc_dec".
10309 * mode-switching.c (pass_mode_switching): Rename pass from
10310 "mode-sw" to "mode_sw".
10311 * except.c (pass_convert_to_eh_ranges): Rename pass from
10312 "eh-ranges" to "eh_ranges".
10313 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10314 to "subreg1".
2ba9daa7
AS
10315
10316
72a54528
AM
103172009-01-29 Andrey Belevantsev <abel@ispras.ru>
10318 Alexander Monakov <amonakov@ispras.ru>
10319
10320 PR middle-end/38857
10321 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10322 register.
10323 (move_exprs_to_boundary): Change return type and pass through
10324 should_move from move_op. Relax assert. Update usage ...
10325 (schedule_expr_on_boundary): ... here. Use should_move instead of
10326 cant_move.
10327 (move_op_orig_expr_found): Indicate that insn was disconnected from
10328 stream.
10329 (code_motion_process_successors): Do not call after_merge_succs
10330 callback if original expression was not found when traversing any of
10331 the branches.
10332 (code_motion_path_driver): Change return type. Update prototype.
10333 (move_op): Update comment. Add a new parameter (should_move). Update
10334 prototype. Set *should_move based on indication provided by
10335 move_op_orig_expr_found.
10336
001b9eb6
PH
103372009-01-28 Pat Haugen <pthaugen@us.ibm.com>
10338
10339 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10340 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10341 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10342 * config/rs6000/rs6000.c (rs6000_override_options): Default
10343 avoid-indexed-addresses on for Power6, off for everything else.
10344 (avoiding_indexed_address_p): New function.
10345 (rs6000_legitimize_address): Use it.
10346 (rs6000_legitimate_address): Likewise.
10347 * config/rs6000/rs6000.md (movXX_updateX): Likewise
10348
59dc4898
KH
103492009-01-28 Kazu Hirata <kazu@codesourcery.com>
10350
10351 PR tree-optimization/38997
10352 * tree-loop-distribution.c (generate_memset_zero): Use
10353 POINTER_PLUS_EXPR for a pointer addition.
10354
07da44ab
AK
103552009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
10356
10357 * config/s390/s390.md (bswap<mode>2): New pattern added.
10358
cdc15d23
WG
103592009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10360
10361 * config/s390/s390.md (*tls_load_31): Added type attribute.
10362
d46f24b6
WG
103632009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10364
10365 * config/s390/s390.md: Fix a few comments.
10366
729e750f
WG
103672009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10368
10369 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10370 (*tm<mode>_full): Fixed z10prop attribute.
10371 (*tst<mode>_extimm): Fixed z10prop attribute.
10372 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10373 (*tstqiCCT_cconly): Fixed z10prop attribute.
10374 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10375 (*movsi_larl): Fixed z10prop attribute.
10376 (*movsi_zarch): Fixed z10prop attribute.
10377 (*movsi_eas): Fixed z10prop attribute.
10378 (*movhi): Fixed z10prop attribute.
10379 (*movqi): Fixed z10prop attribute.
10380 (*movstrictqi): Fixed z10prop attribute.
10381 (*mov<mode>): Fixed z10prop attribute.
10382 (*movcc): Fixed z10prop attribute.
10383 (*sethighpartdi_64): Fixed z10prop attribute.
10384 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10385 (*negdi2_sign_cc): Fixed z10prop attribute.
10386 (*negdi2_sign): Fixed z10prop attribute.
10387 (*absdi2_sign_cc): Fixed z10prop attribute.
10388 (*absdi2_sign): Fixed z10prop attribute.
10389 (*negabsdi2_sign_cc): Fixed z10prop attribute.
10390 (*negabsdi2_sign): Fixed z10prop attribute.
10391 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10392 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10393 (doloop_si64): Fixed z10prop attribute.
10394 (doloop_si31): Fixed z10prop attribute.
10395 (doloop_long): Fixed z10prop attribute.
10396 (indirect_jump): Fixed z10prop attribute.
10397 (nop): Fixed z10prop attribute.
10398 (main_base_64): Fixed z10prop attribute.
10399 (reload_base_64): Fixed z10prop attribute.
10400
c7789bfb
JJ
104012009-01-28 Jakub Jelinek <jakub@redhat.com>
10402
10403 PR rtl-optimization/38740
6b67572e
UB
10404 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10405 if !optimize.
c7789bfb
JJ
10406 * config/mips/mips.c (mips_reorg): Likewise.
10407
de081cfd
RG
104082009-01-28 Richard Guenther <rguenther@suse.de>
10409
10410 PR tree-optimization/38926
10411 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10412 with the correct value id to a value.
10413 (do_regular_insertion): Use the value number of edoubleprime
10414 for the value number of the expr.
10415
10416 Revert
10417 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 10418
d748c406
UB
10419 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10420 a PHI ask VN if it is already available.
10421 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10422 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 10423
a9d386a1
JJ
104242009-01-28 Jakub Jelinek <jakub@redhat.com>
10425
10426 PR middle-end/38934
10427 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10428 set to varying whenever max has TREE_OVERFLOW set, similarly
10429 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10430
97a170cd
RG
104312009-01-28 Richard Guenther <rguenther@suse.de>
10432
10433 PR middle-end/38908
10434 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
10435 uninitialized aggregate uses in call arguments.
10436
89ebafc6
PB
104372009-01-28 Paolo Bonzini <bonzini@gnu.org>
10438
10439 PR tree-optimization/38984
10440 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
10441 the nothing_id variable if -fno-delete-null-pointer-checks.
10442
bef3c57b
UB
104432009-01-28 Uros Bizjak <ubizjak@gmail.com>
10444
10445 PR target/38988
10446 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
10447 (set_got_offset_rex64): Ditto.
10448
0c6390fa
L
104492009-01-27 H.J. Lu <hongjiu.lu@intel.com>
10450
10451 PR target/38941
10452 * doc/extend.texi: Improve local variable with asm reg.
10453
bee6fa6d
AN
104542009-01-27 Adam Nemet <anemet@caviumnetworks.com>
10455
10456 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
10457 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
10458 was not supplied then set warn_packed_bitfield_compat to the
10459 default value of 1.
10460 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
10461 against 1.
10462
b5c3dfbb
RG
104632009-01-27 Richard Guenther <rguenther@suse.de>
10464
10465 PR tree-optimization/38503
10466 * cfgexpand.c (expand_gimple_basic_block): Ignore
10467 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
10468 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
10469 variables that cannot have TBAA applied.
10470 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
10471 statements.
10472
d748c406 104732009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
10474
10475 PR middle-end/38969
10476 * calls.c (initialize_argument_information): Do not wrap complex
10477 arguments in SAVE_EXPR.
10478
9112bb38
AT
104792009-01-26 Andreas Tobler <a.tobler@schweiz.org>
10480
10481 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 10482 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 10483
4757704f
RG
104842009-01-26 Richard Guenther <rguenther@suse.de>
10485
10486 PR tree-optimization/38745
10487 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
10488 from special handling.
10489
e3e6cff4
RG
104902009-01-26 Richard Guenther <rguenther@suse.de>
10491
10492 PR tree-optimization/38745
10493 * tree-ssa.c (execute_update_addresses_taken): Do not include
10494 variables that cannot possibly be a register in not_reg_needs.
10495 Do not clear TREE_ADDRESSABLE on vars that may not become
10496 registers.
10497 * tree-ssa.c (update_alias_info_1): Include those in the set
10498 of addressable vars.
10499
dc874b53
RG
105002009-01-26 Richard Guenther <rguenther@suse.de>
10501
10502 PR middle-end/38851
10503 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
10504 * tree-ssa-dse.c: Include langhooks.h
10505 (execute_simple_dse): Remove stores with zero size.
10506
849421a3
JJ
105072009-01-24 Jakub Jelinek <jakub@redhat.com>
10508
10509 PR c/38957
10510 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
10511 as PLUS_EXPR.
10512
82f70421
JB
105132009-01-24 Julian Brown <julian@codesourcery.com>
10514
10515 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
10516 config/arm/linux-atomic.c.
10517 * config/arm/linux-atomic.c: New.
10518
863412d6
EB
105192009-01-24 Eric Botcazou <ebotcazou@adacore.com>
10520
10521 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
10522 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
10523 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
10524
8c684300
L
105252009-01-24 H.J. Lu <hongjiu.lu@intel.com>
10526
10527 PR c/38938
93f1527a 10528 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
10529 properly.
10530
b840fb02
SP
105312009-01-24 Sebastian Pop <sebastian.pop@amd.com>
10532
10533 PR tree-optimization/38953
10534 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
10535 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
10536 (gloog): Split the exit of the scop when the scop exit is a loop exit.
10537 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
10538 changed the CFG.
10539
ecee559f
PB
105402009-01-24 Paul Brook <paul@codesourcery.com>
10541
10542 * config/arm/neon.md (neon_type): Move to arm.md.
10543 (neon_mov<VSTRUCT>): Add neon_type attribute.
10544 * config/arm/arm.md (neon_type): Move to here.
10545 (conds): Add "unconditioal" and use as default for NEON insns.
10546
61ad0914
BE
105472009-01-24 Ben Elliston <bje@au.ibm.com>
10548
10549 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
10550 void *' warning from -Wc++-compat.
10551 * Makefile.in (dominance.o-warn): Remove.
10552
38432148 105532009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
10554
10555 PR tree-optimization/38932
10556 * fold-const.c (fold_unary_ignore_overflow): New.
10557 * tree.h (fold_unary_ignore_overflow): Declare.
10558 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
10559 * tree-ssa-sccvn.c (visit_reference_op_load,
10560 simplify_unary_expression): Likewise.
10561
2cd36c22
AN
105622009-01-22 Adam Nemet <anemet@caviumnetworks.com>
10563
10564 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
10565 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
10566 regardless of their type.
10567 * c-common.c (handle_packed_attribute): Don't ignore packed on
10568 bitfields.
10569 * c.opt (Wpacked-bitfield-compat): New warning option.
10570 * stor-layout.c (place_field): Warn if offset of a field changed.
10571 * doc/extend.texi (packed): Mention the ABI change.
10572 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
10573 (Warning Options): Add it to the list.
10574
e4e624ab
L
105752009-01-22 H.J. Lu <hongjiu.lu@intel.com>
10576
10577 * c-opts.c (c_common_post_options): Fix a typo in comments.
10578
d0ea0759
SE
105792009-01-22 Steve Ellcey <sje@cup.hp.com>
10580
10581 PR middle-end/38615
10582 * gimplify.c (gimplify_init_constructor): Fix promotion of const
10583 variables to static.
10584 * doc/invoke.texi (-fmerge-all-constants): Update description.
10585
87673f84
UB
105862009-01-22 Uros Bizjak <ubizjak@gmail.com>
10587
10588 PR target/38931
10589 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
10590 (*movdi_1_rex64): Use type "mmx" for alternative 5.
10591
96339268
RE
105922009-01-22 Richard Earnshaw <rearnsha@arm.com>
10593
10594 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
10595 a word boundary.
10596 (LOCAL_ALIGNMENT): Similarly.
10597
442dc742 105982009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 10599 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
10600
10601 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
10602 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
10603 * config/arm/arm-tune.md: Regenerate.
10604 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
10605 -march=iwmmxt2.
10606
9b34732e
MS
106072009-01-22 Mark Shinwell <shinwell@codesourcery.com>
10608
10609 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
10610 version number to five.
10611
03c2a308
DS
106122009-01-22 Dodji Seketeli <dodji@redhat.com>
10613
10614 PR c++/38930
ba20e309 10615 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
10616 * c-common.c (set_underlying_type): Likewise.
10617 (is_typedef_decl ): Likewise
10618 * tree.h: Likewise
10619 (set_underlying_type): Likewise.
10620 (is_typedef_type): Likewise.
10621
1240d76e
VM
106222009-01-21 Vladimir Makarov <vmakarov@redhat.com>
10623
10624 PR middle-end/38587
10625 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
10626 crossing setjmps.
10627
b8a1087d
DK
106282009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
10629
10630 PR bootstrap/37660
10631 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
10632 (LIBGCC_SPEC): Don't define.
10633 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
10634
435da628
UB
106352009-01-21 Uros Bizjak <ubizjak@gmail.com>
10636
10637 PR rtl-optimization/38879
10638 * alias.c (base_alias_check): Unaligned access via AND address can
10639 alias all surrounding object types except those with sizes equal
10640 or wider than the size of unaligned access.
10641
d597b3ce
DS
106422009-01-21 Dodji Seketeli <dodji@redhat.com>
10643
10644 PR c++/26693
ba20e309 10645 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 10646 * c-common.c (set_underlying_type): ... here.
435da628 10647 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
10648 the newly created typedef variant type.
10649 (is_typedef_decl ): New entry point.
10650 * tree.h: Added a new member member_types_needing_access_check to
10651 struct tree_decl_non_common.
10652 (set_underlying_type): New entry point.
10653 (is_typedef_type): Likewise.
10654
71a6fe66
BM
106552009-01-21 Bingfeng Mei <bmei@broadcom.com>
10656
10657 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
10658 Check whether two instructions have memory references that
10659 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
10660 are helper functions for traversing.
10661 * alias.h (insn_alias_sets_confilict_p): New prototypes.
10662 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
10663 not to draw dependency edge for instructions with non-conflicting
10664 alias sets.
10665
5a248274
JM
106662009-01-20 Joseph Myers <joseph@codesourcery.com>
10667
10668 PR other/38758
6b67572e
UB
10669 * longlong.h: Update copyright years. Use soft-fp license notice.
10670 Sync __clz_tab declaration with glibc.
5a248274 10671
4b84f3de
SE
106722009-01-20 Steve Ellcey <sje@cup.hp.com>
10673
10674 PR target/30687
10675 * doc/extend.texi (syscall_linkage): New.
10676 (version_id): Modify.
10677
37348bf1 106782009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 10679 Richard Guenther <rguenther@suse.de>
37348bf1
AP
10680
10681 PR tree-optimization/38747
10682 PR tree-optimization/38748
10683 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
10684 conversion if the base address is an indirect reference and the
10685 aliasing sets could cause issues.
10686
d0a58904
SP
106872009-01-20 Sebastian Pop <sebastian.pop@amd.com>
10688
2ba9daa7 10689 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
10690 explaining why these options are not documented.
10691
71e7afb2
SP
106922009-01-20 Sebastian Pop <sebastian.pop@amd.com>
10693
10694 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
10695 gimple_call_lhs is NULL.
10696
38432148 106972009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
10698
10699 PR target/38868
10700 * emit-rtl.c (adjust_address_1): Make sure memref is never
10701 overwritten.
10702
cbb8dee3
BE
107032009-01-20 Ben Elliston <bje@au.ibm.com>
10704
10705 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 10706 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
10707 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10708 const qualifier from arg 2.
10709
72c66596
IS
107102009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
10711
435da628 10712 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 10713
f68211cd
VM
107142009-01-19 Vladimir Makarov <vmakarov@redhat.com>
10715
10716 PR c/38869
10717 * rtl.h (reinit_regs): New prototype.
10718 * regclass.c: Include ira.h.
10719 (reinit_regs): New.
10720 * Makefile.in (regclass.o): Add ira.h.
10721 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
10722
6e4f1168
L
107232009-01-18 H.J. Lu <hongjiu.lu@intel.com>
10724
10725 PR target/38736
10726 * c-common.c (handle_aligned_attribute): Use
10727 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
10728 default alignment value.
10729
10730 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
10731
10732 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
10733 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
10734
10735 * doc/extend.texi: Update __attribute__ ((aligned)). Document
10736 __BIGGEST_ALIGNMENT__.
10737
10738 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
10739
890065bf
RG
107402009-01-18 Richard Guenther <rguenther@suse.de>
10741
10742 PR tree-optimization/38819
10743 * tree-flow.h (operation_could_trap_helper_p): Declare.
10744 * tree-eh.c (operation_could_trap_helper_p): Export.
10745 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
10746 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
10747 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
10748 are about to insert a possibly trapping instruction and fail
10749 in this case.
10750
a729d731
AS
107512009-01-18 Andreas Schwab <schwab@suse.de>
10752
10753 * doc/install.texi (Configuration): Remove obsolete paragraph
10754 about use of --with-gnu-ld with --with-gnu-as.
10755
a640c13b
KH
107562009-01-18 Kazu Hirata <kazu@codesourcery.com>
10757
10758 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
10759 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
10760 Follow spelling conventions.
10761
dba2cc0c
BE
107622009-01-18 Ben Elliston <bje@au.ibm.com>
10763
10764 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
10765 C++ warning about implicit conversion from void * to struct
10766 bitmap_head_def *.
10767 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 10768 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 10769
2207a498
DK
107702009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
10771
10772 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
10773
8137e465
SP
107742009-01-17 Sebastian Pop <sebastian.pop@amd.com>
10775 Tobias Grosser <tobi.grosser@amd.com>
10776
10777 * graphite.c (graphite_trans_scop_block): Do not block single
10778 nested loops.
10779
5be1c58c
AO
107802009-01-16 Alexandre Oliva <aoliva@redhat.com>
10781
10782 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
10783 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
10784 test with assertion.
10785
786ce82d
RG
107862009-01-16 Richard Guenther <rguenther@suse.de>
10787
10788 PR tree-optimization/38835
10789 PR middle-end/36227
10790 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
10791 and INT + PTR -> (INT)(PTR p+ INT) folding.
10792 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
10793
c1cb09ad
AN
107942009-01-16 Adam Nemet <anemet@caviumnetworks.com>
10795
10796 PR target/38554
10797 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
10798 the subreg from a lowpart subreg if it is also casting the value.
10799
bcab4e19
SP
108002009-01-16 Sebastian Pop <sebastian.pop@amd.com>
10801 Tobias Grosser <tobi.grosser@amd.com>
10802
10803 * graphite.c (compare_prefix_loops): New.
10804 (build_scop_canonical_schedules): Rewritten.
10805 (graphite_transform_loops): Move build_scop_canonical_schedules
10806 after build_scop_iteration_domain.
10807
0b040072
SP
108082009-01-16 Sebastian Pop <sebastian.pop@amd.com>
10809 Tobias Grosser <tobi.grosser@amd.com>
10810
2ba9daa7 10811 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
10812 the dimension of the iteration domain. Do copy the domain
10813 only when it exists.
10814 (build_scop_conditions_1): Do not call add_conditions_to_domain.
10815 (add_conditions_to_constraints): New.
10816 (can_generate_code_stmt, can_generate_code): Removed.
10817 (gloog): Do not call can_generate_code.
10818 (graphite_transform_loops): Call add_conditions_to_constraints
10819 after building the iteration domain.
10820
56c6a499
JJ
108212009-01-16 Jakub Jelinek <jakub@redhat.com>
10822
10823 PR tree-optimization/38789
10824 * tree-ssa-threadedge.c
10825 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
10826 __builtin_constant_p.
10827
c95b2534 108282009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
10829
10830 * dce.c (delete_unmarked_insns): Reversed the order that insns are
10831 examined before deleting them.
2ba9daa7 10832
c433cb14
RE
108332009-01-16 Richard Earnshaw <rearnsha@arm.com>
10834
10835 * function.c (aggregate_value_p): Correctly extract the function
10836 type from CALL_EXPR_FN lookup.
10837
c95b2534 108382009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
10839
10840 * config/picochip/picochip.c (picochip_override_options): Revert
10841 CFI asm flag disable commited previously.
10842
c77bb78f
SP
108432009-01-15 Sebastian Pop <sebastian.pop@amd.com>
10844 Tobias Grosser <tobi.grosser@amd.com>
10845 Jan Sjodin <jan.sjodin@amd.com>
10846
10847 * graphite.c (scan_tree_for_params): On substractions negate
10848 all the coefficients of the term.
10849 (clast_to_gcc_expression_red): New. Handle reduction expressions
10850 of more than two operands.
10851 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
10852 (get_vdef_before_scop): Handle also the case of default definitions.
10853
574af2d6
RS
108542009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
10855
10856 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
10857 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
10858 Also use them when walking CALL_INSN_FUNCTION_USAGE.
10859
e939805b
L
108602009-01-15 H.J. Lu <hongjiu.lu@intel.com>
10861 Joey Ye <joey.ye@intel.com>
10862
10863 PR middle-end/37843
10864 * cfgexpand.c (expand_stack_alignment): Don't update stack
10865 boundary nor check incoming stack boundary here.
10866 (gimple_expand_cfg): Update stack boundary and check incoming
10867 stack boundary here.
10868
c95b2534 108692009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 10870
435da628 10871 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 10872
0196c95e
JJ
108732009-01-14 Jakub Jelinek <jakub@redhat.com>
10874
10875 PR rtl-optimization/38245
10876 * calls.c (expand_call): Add stack arguments to
10877 CALL_INSN_FUNCTION_USAGE even for pure calls (when
10878 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
10879 in regs and partially in memory or BLKmode arguments.
10880 (emit_library_call_value_1): Add stack arguments to
10881 CALL_INSN_FUNCTION_USAGE even for pure calls (when
10882 ACCUMULATE_OUTGOING_ARGS).
10883 * dce.c: Include tm_p.h.
10884 (find_call_stack_args): New function.
10885 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
10886 argument.
10887 (mark_insn): Call find_call_stack_args for CALL_Ps.
10888 (prescan_insns_for_dce): Walk insns backwards in bb rather than
10889 forwards. Allocate and free arg_stores bitmap if needed, pass it
10890 down to deletable_insn_p, don't mark stores set in arg_stores
10891 bitmap, clear the bitmap at the beginning of each bb.
10892 * Makefile.in (dce.o): Depend on $(TM_P_H).
10893
6df6bcfa
MM
108942009-01-14 Michael Meissner <gnu@the-meissners.org>
10895
10896 PR target/22599
435da628
UB
10897 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
10898 to make sure the insn is a conditional test (bug 22599). Reformat a
10899 few long lines.
6df6bcfa 10900
765ec70c
SP
109012009-01-14 Sebastian Pop <sebastian.pop@amd.com>
10902
10903 PR middle-end/38431
10904 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
10905 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
10906 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 10907 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
10908 scops have been code generated.
10909
7de2b688
BS
109102009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
10911 * doc/gty.texi (Invoking the garbage collector): Added new node
10912 and section documenting ggc_collect.
10913
10bd6c5c
RG
109142009-01-14 Richard Guenther <rguenther@suse.de>
10915
10916 PR tree-optimization/38826
10917 PR middle-end/38477
10918 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
10919 initialization notes only if we actually emitted a warning.
10920 (intra_create_variable_infos): Add constraints for a result decl
10921 that is passed by hidden reference.
10922 (build_pred_graph): Mark all related variables non-direct on
10923 address-taking.
10924
9c7c70ee
NC
109252009-01-14 Nick Clifton <nickc@redhat.com>
10926
10927 * ira-conflicts.c: Include addresses.h for the definition of
10928 base_reg_class.
435da628
UB
10929 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
10930 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 10931
cf0c2a60
VM
109322009-01-13 Vladimir Makarov <vmakarov@redhat.com>
10933
10934 PR target/38811
10935 * Makefile.in (ira-lives.o): Add except.h.
10936
10937 * ira-lives.c: Include except.h.
10938 (process_bb_node_lives): Process can_throw_internal.
10939
d3302fd3
JJ
109402009-01-13 Jakub Jelinek <jakub@redhat.com>
10941
10942 PR rtl-optimization/38774
10943 * combine.c (simplify_set): When undoing cc_use change, don't do
10944 PUT_CODE on the newly created comparison, but instead put back the
10945 old comparison.
10946
7ab23fd0
JM
109472009-01-13 Joseph Myers <joseph@codesourcery.com>
10948
10949 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
10950 values. Remove duplicate arm8 entry.
10951
f9344488
SP
109522009-01-13 Sebastian Pop <sebastian.pop@amd.com>
10953
10954 PR tree-optimization/38786
10955 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
10956 the SSA_NAME case of expand_scalar_variables_expr.
10957 Set the type of an expression to the type of its assign statement.
10958 (expand_scalar_variables_expr): Also gather the scalar computation
10959 used to index the memory access. Do not pass loop_p.
10960 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
10961 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
10962 the gimple_stmt_iterator where it inserts new code.
10963 Do not pass loop_p.
f9344488
SP
10964 (copy_bb_and_scalar_dependences): Do not pass loop_p.
10965 (translate_clast): Update call to copy_bb_and_scalar_dependences.
10966
2d8bb84d
SP
109672009-01-13 Sebastian Pop <sebastian.pop@amd.com>
10968
10969 * graphite.h (debug_value): Removed.
10970 * graphite.c (debug_value): Removed.
10971
ff128632
RE
109722009-01-13 Richard Earnshaw <rearnsha@arm.com>
10973
435da628
UB
10974 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
10975 ldrd/strd with two 32-bit instructions.
ff128632 10976
d5a0a47b
RE
109772009-01-13 Richard Earnshaw <rearnsha@arm.com>
10978
435da628
UB
10979 * config/arm/arm.c (struct processors): Pass for speed down into
10980 cost helper functions.
d5a0a47b
RE
10981 (const_ok_for_op): Handle COMPARE and inequality nodes.
10982 (arm_rtx_costs_1): Rewrite.
10983 (arm_size_rtx_costs): Update prototype.
10984 (arm_rtx_costs): Pass speed down to helper functions.
10985 (arm_slowmul_rtx_costs): Rework cost calculations.
10986 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
10987 (arm_9e_rtx_costs): Likewise.
10988
26d5bf5b
UB
109892009-01-13 Uros Bizjak <ubizjak@gmail.com>
10990
10991 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 10992 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
10993 (alpha_legitimize_address): Do not split local symbols wider than
10994 UNITS_PER_WORD into HIGH/LO_SUM parts.
10995
5d14e3d5
DS
109962009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
10997
10998 PR bootstrap/38580
10999 * gcc.c (process_command): Replace call to execvp with calls
11000 to pex_one and exit.
11001
33faafca
AS
110022009-01-03 Anatoly Sokolov <aesok@post.ru>
11003
11004 PR target/29141
11005 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
11006 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
11007 variant for devices with 3-byte PC.
ba20e309 11008 (__tablejump_elpm__): New.
33faafca 11009
634b5df5
JJ
110102009-01-12 Jakub Jelinek <jakub@redhat.com>
11011
11012 PR c/32041
11013 * c-parser.c (c_parser_postfix_expression): Allow `->' in
11014 offsetof member-designator, handle it as `[0].'.
11015
2842bb86
JDA
110162009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11017
11018 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
11019 function when not using named sections on targets with named sections
11020 if branch distance is less than 262132.
11021
76ee70f6
RE
110222009-01-12 Richard Earnshaw <rearnsha@arm.com>
11023
11024 * combine.c (combine_instructions): Recompute
11025 optimize_this_for_speed_p for each BB in the main combine loop.
11026
f56e675d
TB
110272009-01-12 Tomas Bily <tbily@suse.cz>
11028
11029 PR middlend/38385
26d5bf5b
UB
11030 * tree-loop-distribution.c (prop_phis): New function.
11031 (generate_builtin): Call prop_phis.
11032 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 11033
c2152239
JJ
110342009-01-12 Jakub Jelinek <jakub@redhat.com>
11035
11036 PR tree-optimization/38807
11037 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
11038 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
11039
0e510b3e
AN
110402009-01-11 Adam Nemet <anemet@caviumnetworks.com>
11041
11042 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
11043 subreg of op0 to the original op0.
11044
c95b2534 110452009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
11046
11047 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 11048
53a7ff9a
MS
110492009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
11050
11051 PR debug/7055
60839f5d 11052 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
11053 starting with digits.
11054
b3a796bc
JJ
110552009-01-10 Jakub Jelinek <jakub@redhat.com>
11056
11057 PR target/38695
11058 * config/arm/arm.c (arm_is_long_call_p): Don't call
11059 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
11060
b21b850e
SB
110612009-01-09 Steven Bosscher <steven@gcc.gnu.org>
11062
11063 * regrename.c (regrename_optimize): Fix dumping.
11064 (find_oldest_value_reg): Preserve REG_POINTER.
11065 (copy_hardreg_forward_1): Likewise.
11066
e0e10d3a
DN
110672009-01-09 Diego Novillo <dnovillo@google.com>
11068
bf9b2cc9 11069 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
11070 the restrictions on its use.
11071 (gimple_uid): Tidy.
11072 (gimple_set_uid): Tidy.
11073
c9da2ae8
JJ
110742009-01-09 Jakub Jelinek <jakub@redhat.com>
11075
11076 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
11077 zero guard even if align_bytes != 0 and count is smaller than
11078 size_needed.
11079
38432148 110802009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
11081
11082 PR rtl-optimization/38495
26d5bf5b 11083 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
11084 (add_range_and_copies_from_move_list): Print all added ranges.
11085 Add ranges to memory optimized destination.
11086
260fda3d
JJ
110872009-01-09 Jakub Jelinek <jakub@redhat.com>
11088
6f6278ad
JJ
11089 PR target/38686
11090 PR target/38708
11091 * config/i386/i386.c (override_options): Reject
11092 -mstringop-strategy=rep_8byte with -m32.
11093 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11094 to 1. Do count comparison against epilogue_size_needed at compile
11095 time even when count_exp was constant forced into register. For
11096 size_needed don't jump to epilogue, instead just avoid aligning
11097 and invoke the body algorithm. If need_zero_guard, add zero guard
11098 even if count is non-zero, but smaller than size_needed + number of
11099 bytes that could be stored for alignment.
11100 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11101 to 1. If need_zero_guard, add zero guard even if count is non-zero,
11102 but smaller than size_needed + number of bytes that could be stored
11103 for alignment. Compare size_needed with epilogue_size_needed instead
11104 of desired_align - align, don't adjust size_needed, pass
11105 epilogue_size_needed to the epilogue expanders.
11106
260fda3d 11107 PR c/35742
26d5bf5b 11108 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 11109
67b846fa
JDA
111102009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11111
11112 * pa.c (last_address): Change to unsigned.
11113 (update_total_code_bytes): Change argument to unsigned. Don't
11114 check if insn addresses are set.
11115 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11116 addresses are not set.
11117 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11118
91c82473
NC
111192009-01-09 Nick Clifton <nickc@redhat.com>
11120
11121 * config/sh/symbian.c: Replace uses of DECL_INLINE with
11122 DECL_DECLARED_INLINE_P.
11123
4017e262
JJ
111242009-01-09 Jakub Jelinek <jakub@redhat.com>
11125
0a49e5c2
JJ
11126 PR middle-end/38347
11127 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11128 GET_MODE (op0) in operand_subword_force calls.
11129
4017e262
JJ
11130 PR middle-end/38771
11131 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11132 fold_convert arg0 operands to TREE_TYPE (op0) first.
11133
7cd06356
VM
111342009-01-08 Vladimir Makarov <vmakarov@redhat.com>
11135
11136 * params.def (ira-max-conflict-table-size): Decrease default value
11137 to 1000.
11138
96867bbd
JJ
111392009-01-08 Jakub Jelinek <jakub@redhat.com>
11140
11141 PR tree-optimization/37031
11142 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11143 on parameter_set.
11144 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11145 allocate it using gc instead of heap, use VEC_quick_push instead of
11146 VEC_safe_push.
11147 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11148 instead of heap, use VEC_quick_push instead of VEC_safe_push.
11149 * tree-data-ref.h (struct access_matrix): Change matrix to gc
11150 allocated vector from heap allocated.
11151 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11152 * tree-loop-linear.c (linear_transform_loops): Allocate nest
11153 vector only after perfect_loop_nest_depth call.
11154
68f61c3d
SP
111552009-01-08 Sebastian Pop <sebastian.pop@amd.com>
11156 Jan Sjodin <jan.sjodin@amd.com>
11157
11158 PR tree-optimization/38559
11159 * graphite.c (debug_value, copy_constraint,
11160 swap_constraint_variables, scale_constraint_variable, ): New.
11161 (get_lower_bound, get_upper_bound): Removed.
11162 (graphite_trans_bb_strip_mine): Clean up this code that works
11163 only for constant number of iterations. Fully copy upper and
11164 lower bound constraints, not only the constant part of them.
11165 * graphite.h (debug_value): Declared.
11166
82567e33
IR
111672009-01-08 Ira Rosen <irar@il.ibm.com>
11168
11169 PR tree-optimization/37194
11170 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 11171 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
11172 outside cost in case of known number of iterations.
11173
7da13f1d
NF
111742009-01-07 Nathan Froyd <froydnj@codesourcery.com>
11175 Alan Modra <amodra@bigpond.net.au>
11176
11177 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11178 non-word-aligned REG+CONST addressing.
11179
c0f64575
UB
111802009-01-07 Uros Bizjak <ubizjak@gmail.com>
11181
11182 PR target/38706
11183 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11184 free_after_compilation when outputting a thunk.
11185 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11186 Do not call free_after_compilation here.
11187
301b6a4e
UB
111882009-01-07 Uros Bizjak <ubizjak@gmail.com>
11189
11190 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
11191 (ix86_valid_target_attribute_inner_p): Ditto.
11192
6a114766
JS
111932009-01-07 Jan Sjodin <jan.sjodin@amd.com>
11194
11195 PR tree-optimization/38492
11196 PR tree-optimization/38498
11197 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11198 * tree-chrec.h (scev_is_linear_expression): Declared.
11199 * graphite.c (graphite_cannot_represent_loop_niter): New.
11200 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11201 (graphite_loop_normal_form): Use gcc_assert.
11202 (scan_tree_for_params): Use CASE_CONVERT.
11203 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11204 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11205 Use gcc_assert. Discard scops that contain unhandled cases.
11206 (build_scop_conditions): Return a boolean status for unhandled cases.
11207 (strip_mine_profitable_p): Print the loop number, not its depth.
11208 (is_interchange_valid): Pass the depth of the loop nest, don't
11209 recompute it wrongly.
11210 (graphite_trans_bb_block): Same.
11211 (graphite_trans_bb_block): Print tentative of loop blocking.
11212 (graphite_trans_scop_block): Do not print that the loop has been
11213 blocked.
11214 (graphite_transform_loops): Do not handle scops that contain condition
11215 scalar phi nodes.
11216
65b82caa
L
112172009-01-07 H.J. Lu <hongjiu.lu@intel.com>
11218
11219 AVX Programming Reference (December, 2008)
11220 * config/i386/avxintrin.h (_mm256_stream_si256): New.
11221 (_mm256_stream_pd): Likewise.
11222 (_mm256_stream_ps): Likewise.
11223
11224 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11225 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11226 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11227 (bdesc_special_args): Add __builtin_ia32_movntdq256,
11228 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11229 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11230 (ix86_expand_special_args_builtin): Likewise.
11231
11232 * config/i386/sse.md (AVXMODEDI): New.
11233 (avx_movnt<mode>): Likewise.
11234 (avx_movnt<mode>): Likewise.
11235 (<sse>_movnt<mode>): Remove AVX support.
11236 (sse2_movntv2di): Likewise.
11237
cef158f9
RG
112382009-01-07 Richard Guenther <rguenther@suse.de>
11239
11240 PR middle-end/38751
11241 * fold-const.c (extract_muldiv): Remove obsolete comment.
11242 (fold_plusminus_mult_expr): Undo MINUS_EXPR
11243 to PLUS_EXPR canonicalization for the canonicalization.
11244
246cb5be
GP
112452009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
11246
11247 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11248 hosted cross-compilers generating less efficient code.
11249
84b9b872
RS
112502009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11251
11252 * function.h (rtl_data): Add a dbr_scheduled_p field.
11253 * reorg.c (dbr_schedule): Set it.
11254 (gate_handle_delay_slots): Check it.
11255 * config/mips/mips.c (mips_base_delayed_branch): Delete.
11256 (mips_reorg): Check flag_delayed_branch instead of
11257 mips_base_delayed_branch.
11258 (mips_override_options): Don't set mips_base_delayed_branch
11259 or flag_delayed_branch.
11260
ace984c8
RS
112612009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11262
11263 PR rtl-optimization/38426.
11264 * ira.c (ira): Set current_function_is_leaf earlier.
11265
7ad7809b
JJ
112662009-01-06 Jakub Jelinek <jakub@redhat.com>
11267
11268 PR rtl-optimization/38722
11269 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11270 too early, only set a flag and modify after last possible
11271 undo_all point.
11272
c52ec948
JJ
112732009-01-06 Janis Johnson <janis187@us.ibm.com>
11274
11275 PR c/34252
11276 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11277 * real.c (decimal_single_format): Correct values of emin and emax.
11278 (decimal_double_format): Ditto.
11279 (decimal_quad_format): Ditto.
11280 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11281 computation of DECnn_MIN and DECnn_MAX for corrected values of
11282 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
11283 __DECnn_MIN__, and adjust its computation for the corrected value
11284 of emin.
11285
300240e1
JH
112862009-01-06 Jan Hubicka <jh@suse.cz>
11287
11288 PR target/38744
435da628 11289 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 11290
271c069e
GP
112912009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
11292
11293 * doc/contrib.texi (Contributors): Slightly adjust the end note.
11294 Add Robert Clark to the list of testers.
11295
64e4c301 112962009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11297 Kai Tietz <kai.tietz@onevision.com>
64e4c301 11298
435da628
UB
11299 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11300 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 11301
7650b83e 113022009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11303 Kai Tietz <kai.tietz@onevision.com>
7650b83e 11304
435da628
UB
11305 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11306 for w64 ABI.
11307 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
11308 (ix86_nsaved_regs): Count only general purpose regs.
11309 (ix86_nsaved_sseregs): New.
11310 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11311 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
11312 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11313 general purpose regs.
7650b83e
JH
11314 (ix86_emit_save_sse_regs_using_mov): New.
11315 (ix86_expand_prologue): Save SSE regs if needed.
11316 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11317 (ix86_emit_restore_sse_regs_using_mov): New.
11318 (ix86_expand_epilogue): Save SSE regs if needed.
11319
9aa5c1b2 113202009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11321 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 11322
435da628
UB
11323 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11324 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11325 functions when accumulate outgoing args is off.
9aa5c1b2 11326
f7556aae
L
113272009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11328
11329 PR bootstrap/38742
11330 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11331 before using pseudos_have_intersected_live_ranges_p.
11332
11333 * ira-int.h (ira_assert): Always define.
11334
e47b7d04
L
113352009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11336
11337 AVX Programming Reference (December, 2008)
11338 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11339 (_mm256_permute2_pd): Likewise.
11340 (_mm_permute2_ps): Likewise.
11341 (_mm256_permute2_ps): Likewise.
11342 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11343 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11344
11345 * config/i386/i386.c (ix86_builtins): Remove
11346 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11347 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11348 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11349 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11350 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11351 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11352 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11353 __builtin_ia32_vpermil2ps256.
11354 (ix86_init_mmx_sse_builtins): Updated.
11355 (ix86_expand_args_builtin): Likewise.
11356
44b86471
JDA
113572009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11358
e47b7d04
L
11359 * pa.c (output_call): Relocate non-jump insns in the delay slot of
11360 long absolute calls when generating PA 2.0 code.
44b86471 11361
311aab06
VM
113622009-01-05 Vladimir Makarov <vmakarov@redhat.com>
11363
11364 PR rtl-optimization/38583
11365 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11366
11367 * params.def (ira-max-conflict-table-size): New.
11368
11369 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 11370
311aab06 11371 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 11372
311aab06
VM
11373 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11374 table. Report this. Return result of building.
11375 (ira_build_conflicts): Use ira_conflicts_p. Check result of
11376 building conflict table.
11377
301b6a4e 11378 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 11379 (ira_color): Use ira_conflicts_p.
2ba9daa7 11380
311aab06
VM
11381 * global.c: Include ira.h.
11382 (pseudo_for_reload_consideration_p, build_insn_chain): Use
11383 ira_conflicts_p.
11384
11385 * Makefile.in (global.o): Add ira.h.
2ba9daa7 11386
311aab06
VM
11387 * ira-build.c (mark_all_loops_for_removal,
11388 propagate_some_info_from_allocno): New.
11389 (remove_unnecessary_allocnos): Call
11390 propagate_some_info_from_allocno.
11391 (remove_low_level_allocnos): New.
11392 (remove_unnecessary_regions): Add parameter. Call
11393 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
11394 parameter to remove_unnecessary_regions.
11395 (ira_build): Remove all regions but root if the conflict table was
11396 not built. Update conflict hard regs for allocnos crossing calls.
11397
11398 * ira.c (ira_conflicts_p): New global.
11399 (ira): Define and use ira_conflicts_p.
11400
11401 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11402 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 11403 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 11404
5641785f
BE
114052009-01-06 Ben Elliston <bje@au.ibm.com>
11406
11407 * gengtype-lex.l (YY_NO_INPUT): Define.
11408
e4e5261f
AP
114092009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
11410
11411 PR c/34911
5641785f
BE
11412 * c-common.c (handle_vector_size_attribute): Also reject
11413 BOOLEAN_TYPE types.
e4e5261f 11414
7b10257f
SP
114152009-01-05 Sebastian Pop <sebastian.pop@amd.com>
11416
11417 PR tree-optimization/38492
11418 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
11419 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11420 rename_map_elt_info, eq_rename_map_elts,
11421 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
11422 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11423 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11424 (sese_build_livein_liveouts): New.
11425 (new_sese, free_sese): New.
11426 (new_scop): Call new_sese.
11427 (free_scop): Call free_sese.
11428 (rename_variables_from_edge, rename_phis_end_scop): Removed.
11429 (register_old_new_names): Renamed register_old_and_new_names.
11430 (register_scop_liveout_renames, add_loop_exit_phis,
11431 insert_loop_close_phis, struct igp,
11432 default_liveout_before_guard, add_guard_exit_phis,
11433 insert_guard_phis, copy_renames): New.
11434 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
11435 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
11436 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
11437 (scop_adjust_phis_for_liveouts): New.
11438 (gloog): Call scop_adjust_phis_for_liveouts.
11439
11440 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 11441 num_ver and livein.
7b10257f
SP
11442 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
11443 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
11444 (struct scop): Added field liveout_renames.
11445 (SCOP_LIVEOUT_RENAMES): New.
11446
9761fcc7
HJ
114472009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
11448
11449 PR tree-optimization/38510
11450 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
11451 (translate_clast): Call recompute_all_dominators before
11452 graphite_verify.
11453 (gloog): Call recompute_all_dominators before graphite_verify.
11454
114552009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 11456 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
11457
11458 PR tree-optimization/38500
11459 * graphite.c (create_sese_edges): Call fix_loop_structure after
11460 splitting blocks.
11461
c95b2534 114622009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
11463
11464 * config.gcc: Add m32r*-*-rtems*.
11465 * config/m32r/rtems.h: New file.
11466
fc0cd180
BE
114672009-01-05 Ben Elliston <bje@au.ibm.com>
11468
11469 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
11470 (.po.pox): Likewise.
11471 (po/gcc.pot): Likewise.
11472
3106d8e5
DM
114732009-01-04 David S. Miller <davem@davemloft.net>
11474
11475 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11476 (STARTING_FRAME_OFFSET): Always set to zero.
11477
0009b473
RS
114782009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11479
11480 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
11481 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
11482 fixed-point types, and vectors of the same.
11483
4f24c6d6
RS
114842009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11485
11486 * config/mips/sync.md (*mb_barrier): Rename to...
11487 (*memory_barrier): ...this.
11488
1df48f5c
JW
114892009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
11490
11491 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 11492 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
11493 and put in alphabetical order. Fix 'target' name and put in order.
11494 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
11495 typos.
11496
1a8c13b3
UB
114972009-01-04 Uros Bizjak <ubizjak@gmail.com>
11498
11499 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
11500 (memory_barrier): Expand as unspec instead of unspec_volatile.
11501 Remove mem:BLK from insn operands. Use Pmode scratch register.
11502 (*memory_barrier): Define as unspec instead of unspec_volatile.
11503 Use (match_dup 0) as input operand.
11504
11505 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
11506 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
11507 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
11508 scratch register. Remove operand 1.
11509 (*stbar): Define as unspec instead of unspec_volatile.
11510 Use (match_dup 0) as input operand, remove (const_int 8).
11511 (*membar): Define as unspec instead of unspec_volatile.
11512 Use (match_dup 0) as input operand, remove input operand 2.
11513
11514 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
11515 (memory_barrier): Expand as unspec instead of unspec_volatile.
11516 Remove mem:BLK from insn operands. Use Pmode scratch register.
11517 (*memory_barrier): Define as unspec instead of unspec_volatile.
11518 Use (match_dup 0) as input operand.
11519
11520 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
11521 Remove mem:BLK from insn operands. Use Pmode scratch register.
11522 Set volatile flag on operand 0.
11523 (*memory_barrier): New insn pattern.
11524
11525 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
11526 insn operands.
11527 (*memory_barrier): Use (match_dup 0) as input operand.
11528
11529 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
11530 Remove mem:BLK from insn operands. Use Pmode scratch register.
11531 Set volatile flag on operand 0.
301b6a4e 11532 (*mb_internal): New insn pattern.
1a8c13b3
UB
11533
11534 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
11535
fb0703f7
SB
115362009-01-04 Steven Bosscher <steven@gcc.gnu.org>
11537
11538 PR middle-end/38586
11539 * function.c (struct temp_slot): Move to the section of the file
11540 that deals with temp slots. Remove field 'address'.
11541 (temp_slot_address_table): New hash table of address -> temp slot.
11542 (struct temp_slot_address_entry): New struct, items for the table.
11543 (temp_slot_address_compute_hash, temp_slot_address_hash,
11544 temp_slot_address_eq, insert_temp_slot_address): Support functions
11545 for the new table.
11546 (find_temp_slot_from_address): Rewrite to use the new hash table.
11547 (remove_unused_temp_slot_addresses): Remove addresses of temp
11548 slots that have been made available.
11549 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
11550 worker function for remove_unused_temp_slot_addresses.
11551 (assign_stack_temp_for_type): Don't clear the temp slot address list.
11552 Add the temp slot address to the address -> temp slot map.
11553 (update_temp_slot_address): Update via insert_temp_slot_address.
11554 (free_temp_slots): Call remove_unused_temp_slot_addresses.
11555 (pop_temp_slots): Likewise.
11556 (init_temp_slots): Allocate the address -> temp slot map, or empty
11557 the map if it is already allocated.
11558 (prepare_function_start): Initialize temp slot processing.
11559
b5a430f3
SB
115602009-01-04 Steven Bosscher <steven@gcc.gnu.org>
11561
11562 PR middle-end/38584
11563 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
11564 Calculate the size of all stack vars assuming no packing of stack
11565 vars will happen, replacing a quadratic algorithm with a linear one.
11566
5d560619
JJ
115672009-01-03 Jakub Jelinek <jakub@redhat.com>
11568
11569 PR target/38707
11570 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
11571 can't be used.
11572
953a7caa
DN
115732009-01-03 Diego Novillo <dnovillo@google.com>
11574
11575 * doc/contrib.texi: Update contributions.
11576
5f26a230
JJ
115772009-01-03 Jakub Jelinek <jakub@redhat.com>
11578
493aa551
JJ
11579 PR c++/38705
11580 * builtins.c (fold_builtin_memory_op): Give up if either operand
11581 is volatile. Set srctype or desttype to non-qualified version
11582 of the other type.
11583
5f26a230
JJ
11584 PR c/38700
11585 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
11586 and FUNCTION_DECLs.
11587
c95b2534 115882009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
11589
11590 PR rtl-optimization/35805
11591 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
11592 problem if fast dce is able to remove any instructions.
11593 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 11594
0b355794
MM
115952009-01-02 Mark Mitchell <mark@codesourcery.com>
11596
11597 PR 33649
11598 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
11599
0cf0d02b
JJ
116002009-01-02 Jakub Jelinek <jakub@redhat.com>
11601
11602 PR middle-end/38690
11603 * tree-flow.h (op_code_prio, op_prio): New prototypes.
11604 * tree-pretty-print.c (op_code_prio): New function.
11605 (op_prio): No longer static. Use op_code_prio.
11606 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
11607 Use op_prio and op_code_prio to determine if () should be
11608 printed around operand(s) or not.
11609
11610 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
11611 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
11612 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
11613 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
11614 pp_character instead of pp_string for single letter printing.
11615
e3606f3b
RS
116162009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
11617
11618 * doc/extend.texi: Fix '#pragma GCC option' typo.
11619
c95b2534 116202009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 11621
a5f061dc
RG
11622 * doc/install.texi (--enable-checking): Mention different
11623 default for stage1.
11624 (--enable-stage1-checking): Document.
00f39bd5 11625
26de0bcb
AP
116262009-01-01 Andrew Pinski <pinskia@gmail.com>
11627
11628 PR middle-end/30142
11629 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
11630 case to be an error.
11631
7a7d8fab
BE
116322009-01-02 Ben Elliston <bje@au.ibm.com>
11633
11634 * config/fp-bit.h (pack_d): Constify argument.
11635 * config/fp-bit.c (makenan): Constify return type. Remove casts.
11636 (isnan): Constify argument.
11637 (isinf): Likewise.
11638 (iszero): Likewise.
11639 (pack_d): Likewise.
11640 (_fpadd_parts): Constify return type.
11641 (_fpmul_parts): Likewise.
11642 (_fpdiv_parts): Likewise.
11643
b295aee2
JJ
116442009-01-01 Jakub Jelinek <jakub@redhat.com>
11645
11646 PR c/36489
11647 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
11648 warn about overwriting initializer with side-effects or
11649 -Woverride-init if !IMPLICIT.
11650 (output_init_element): Likewise. Pass IMPLICIT down to
11651 add_pending_init.
11652 (process_init_element): Add IMPLICIT argument. Pass it down
11653 to output_init_element.
11654 (push_init_element, pop_init_level, set_designator): Adjust
11655 process_init_element callers.
11656 (set_nonincremental_init, set_nonincremental_init_from_string):
11657 Adjust add_pending_init callers.
11658 (output_pending_init_elements): Adjust output_init_element callers.
11659 * c-tree.h (process_init_element): Adjust prototype.
11660 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
11661 process_init_element callers.
ad41bd84
JM
11662
11663\f
11664Copyright (C) 2009 Free Software Foundation, Inc.
11665
11666Copying and distribution of this file, with or without modification,
11667are permitted in any medium without royalty provided the copyright
11668notice and this notice are preserved.