]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
plugin-support.exp: New file containing support procs for plugin testcases.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
9419a9fd
RAE
12009-05-06 Rafael Avila de Espindola <espindola@google.com>
2
3 * Makefile.in (install-plugin): Fix srcdir handling.
4
fff1894c
AB
52009-05-06 Andrey Belevantsev <abel@ispras.ru>
6
7 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
8 when processing for not_regs_needed bitmap.
9 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
10 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
11 handling it for rhs.
12
700ae70c
L
132009-05-06 H.J. Lu <hongjiu.lu@intel.com>
14
15 * config/i386/i386.md ((unnamed inc/dec peephole): Use
16 optimize_insn_for_size_p instead
17 of optimize_size.
18 * config/i386/predicates.md (incdec_operand): Likewise.
19 (aligned_operand): Likewise.
20 * config/i386/sse.md (divv8sf3): Likewise.
21 (sqrtv8sf2): Likewise.
22
67341fb5
L
232009-05-06 H.J. Lu <hongjiu.lu@intel.com>
24
25 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
26
27 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
28
87946f42
L
292009-05-06 H.J. Lu <hongjiu.lu@intel.com>
30
31 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
32 ssemodesuffixf2c with avxmodesuffixf2c.
33
1202aec1
JM
342009-05-06 Joseph Myers <joseph@codesourcery.com>
35
36 PR c/40032
37 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed
38 field.
39
6e57a01d
JJ
402009-05-05 Jakub Jelinek <jakub@redhat.com>
41
42 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
43 (struct tree_base): Adjust spacing for 8 bit boundaries.
44 (struct tree_decl_common): Add decl_by_reference_flag bit.
45 (DECL_BY_REFERENCE): Adjust.
46 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
47 print DECL_BY_REFERENCE bit.
48 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
49 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
50 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
51 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
52 unconditionally.
53
32f579f6
JJ
54 PR middle-end/39666
55 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
56 range of the type, but default label is missing, add it with one
57 of the existing labels instead of adding a new label for it.
58
617ab743
JM
592009-05-05 Joseph Myers <joseph@codesourcery.com>
60
61 * dwarf.h: Remove.
62
bf016de8
RAE
632009-05-05 Rafael Avila de Espindola <espindola@google.com>
64
65 * Makefile.in (enable_plugin, plugin_includedir): New.
66 (install): Depend on install-plugin.
67 (PLUGIN_HEADERS): New.
68 (install-plugin): New.
69 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
70
7f8fdb9f
RG
712009-05-05 Richard Guenther <rguenther@suse.de>
72
73 PR tree-optimization/40022
74 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
75 the only vuse.
76 (phivn_valid_p): Fix tuplification error, simplify.
77 (phiprop_insert_phi): Add dumps.
78 (propagate_with_phi): Simplify.
79
8d972839
RG
802009-05-05 Richard Guenther <rguenther@suse.de>
81
82 PR middle-end/40023
83 * builtins.c (gimplify_va_arg_expr): Properly build the
84 address.
85
66ba9b0b
SZ
862009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
87
88 * tree.h (strip_float_extensions): Remove duplicate declaration.
89 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
90 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
91 block_ultimate_origin): Rearrange the declarations line to match the
92 comment that indicates the .c file which the functions are defined.
93 (dwarf2out_*, set_decl_rtl): Add comment.
94 (get_base_address): Adjust comment.
95 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
96 declarations line and add comment.
97 (is_builtin_name): Add blank after function name, for clarity.
98
4f1e4960
JM
992009-05-04 Joseph Myers <joseph@codesourcery.com>
100
101 * attribs.c (decl_attributes): Use %qE for identifiers in
102 diagnostics.
103 * cgraphunit.c (verify_cgraph_node): Translate function names to
104 locale character set in diagnostics.
105 * coverage.c (get_coverage_counts): Use %qE for identifiers in
106 diagnostics.
107 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
108 Document that functions are named in UTF-8.
109 * expr.c (expand_expr_real_1): Translate function names to locale
110 character set in diagnostics.
111 * gimplify.c (omp_notice_variable, omp_is_private,
112 gimplify_scan_omp_clauses): Use %qE for identifiers in
113 diagnostics.
114 * langhooks.c (lhd_print_error_function): Translate function names
115 to locale character set.
116 * langhooks.h (decl_printable_name): Document that return value is
117 in internal character set.
118 * stmt.c: Include pretty-print.h
119 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
120 diagnostics.
121 (resolve_operand_name_1): Translate named operand name to locale
122 character set.
123 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
124 diagnostics.
125 * toplev.c (announce_function): Translate function names to locale
126 character set.
127 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
128 (default_tree_printer): Use pp_identifier or translate identifiers
129 to locale character set. Mark "<anonymous>" for translation.
130 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
131 for identifiers in diagnostics.
132 * tree.c (handle_dll_attribute): Use %qE for identifiers in
133 diagnostics.
134 * varasm.c (output_constructor): Use %qE for identifiers in
135 diagnostics.
136
40540e68
RAE
1372009-05-04 Rafael Avila de Espindola <espindola@google.com>
138
139 * configure.ac: use ` ` instead of $()
140 * configure: Regenerate.
141
33fc884c
BE
1422009-05-05 Ben Elliston <bje@au.ibm.com>
143
144 * config/pa/linux-atomic.c: Eliminate conditional include of
145 errno.h on non-LP64 systems to simplify build requirements.
146
88388a52
JM
1472009-05-04 Joseph Myers <joseph@codesourcery.com>
148
149 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
150 diagnostics.
151 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
152 and pass value to identifier_to_locale.
153 (warn_variable_length_array): Make name a tree.
154 (grokdeclarator): Separate diagnostic texts for named and unnamed
155 declarators. Use %qE for named declarators.
156 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
157 diagnostics.
158 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
159 identifiers in diagnostics.
160 * c-typeck.c (push_member_name, start_init): Pass identifiers to
161 identifier_to_locale. Mark "anonymous" strings for translation.
162
960c5c79
ME
1632009-05-04 Michael Eager <eager@eagercon.com>
164
165 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
166 address for DImode/DFmode only if double-precision FP regs.
167
d083fbba
ME
1682009-05-04 Michael Eager <eager@eagercon.com>
169
170 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
171 TARGET_SINGLE_FLOAT check.
172
c3ba8d32
ME
1732009-05-04 Michael Eager <eager@eagercon.com>
174
175 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
176
edce9f18
ME
1772009-05-04 Michael Eager <eager@eagercon.com>
178
179 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
180 * config/rs6000/t-xilinx: New
181
506d7b68
PB
1822009-05-04 Paolo Bonzini <bonzini@gnu.org>
183
184 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
185 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
186 * gcc/explow.c (memory_address): Use target hook.
187 * gcc/targhooks.c (default_legitimize_address): New.
188 * gcc/targhooks.h (default_legitimize_address): New.
189 * gcc/target.h (legitimize_address): New.
190 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
191 (TARGET_INITIALIZER): Include it.
192 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
193
194 * config/bfin/bfin-protos.h (legitimize_address): Remove.
195 * config/bfin/bfin.c (legitimize_address): Remove.
196 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
197 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address): Remove.
198 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
199 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
200
201 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
202 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
203 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
204 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
205 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
206 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
207 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
208 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
209 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
210 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
211 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
212 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
213 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
214 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
215 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
216 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
217 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
218 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
219 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
220 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
221 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
222 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
223 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
224
225 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
226 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
227 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
228 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
229 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
230 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
231 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
232 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
233 (thumb_legitimize_address): Delete.
234 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
235 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
236 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
237 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
238 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
239 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address): Delete.
240 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address): Delete.
241
242 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
243 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
244 * config/m32r/m32r.c (m32r_legitimize_address): New.
245 * config/m68k/m68k.c (m68k_legitimize_address): New.
246 * config/score/score.c (score_legitimize_address): Standardize.
247 * config/score/score3.c (score3_legitimize_address): Standardize.
248 * config/score/score3.h (score3_legitimize_address): Adjust.
249 * config/score/score7.c (score7_legitimize_address): Standardize.
250 * config/score/score7.h (score7_legitimize_address): Adjust.
251 * config/sh/sh.c (sh_legitimize_address): New.
252 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
253
254 * gcc/config/s390/s390.c (legitimize_address): Rename to...
255 (s390_legitimize_address): ... this.
256 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
257 (sparc_legitimize_address): ... this.
258 * gcc/config/i386/i386.c (legitimize_address): Rename to...
259 (ix86_legitimize_address): ... this.
260 * gcc/config/avr/avr.c (legitimize_address): Rename to...
261 (avr_legitimize_address): ... this.
262 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
263 (mn10300_legitimize_address): ... this.
264 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
265 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
266 (alpha_expand_mov): Adjust call.
267
268 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
269 * config/spu/spu.c (spu_legitimize_address): Likewise.
270 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
271 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
272
a3af5087
JM
2732009-05-04 Joseph Myers <joseph@codesourcery.com>
274
275 * intl.c (locale_encoding, locale_utf8): New.
276 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
277 * intl.h (locale_encoding, locale_utf8): Declare.
278 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
279 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
280 New.
281 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
282 argument.
283 (pp_tree_identifier): Define to call pp_base_tree_identifier.
284 (pp_base_tree_identifier): Declare as function.
285 (identifier_to_locale): Declare.
286 * Makefile.in (pretty-print.o): Update dependencies.
287 * varasm.c (finish_aliases_1): Use %qE for identifiers in
288 diagnostics.
289
ea5cd5f1
RG
2902009-05-04 Richard Guenther <rguenther@suse.de>
291
292 PR middle-end/40015
293 * builtins.c (fold_builtin_memory_op): Do not decay to element
294 type if the size matches the whole array.
295
ddc2690a
KH
2962009-05-04 Kazu Hirata <kazu@codesourcery.com>
297
298 * expmed.c (synth_mult): When trying out a shift, pass the result
299 of a signed shift.
300
ef268d34
KH
3012009-05-04 Kazu Hirata <kazu@codesourcery.com>
302
303 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
304 (shiftsub1_cost): New.
305 (init_expmed): Compute shiftsub1_cost.
306 (synth_mult): Optimize multiplications by constants of the form
307 -(2^^m-1) for some constant positive integer m.
308
255d3827
RG
3092009-05-03 Richard Guenther <rguenther@suse.de>
310
311 PR c/39983
312 * c-typeck.c (array_to_pointer_conversion): Do not built
313 ADDR_EXPRs of arrays of pointer-to-element type.
314 * c-gimplify.c (c_gimplify_expr): Revert change fixing
315 up wrong ADDR_EXPRs after-the-fact.
316 * c-common.c (strict_aliasing_warning): Strip pointer
317 conversions for obtaining the original type.
318 * builtins.c (fold_builtin_memset): Handle array types.
319 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
320 and array types
321
16c33770
RG
3222009-05-03 Richard Guenther <rguenther@suse.de>
323
324 PR middle-end/23329
325 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
326 Do not lose casts from array types with unknown extent to array
327 types with known extent.
328 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
329 alias set compatibility.
330
62a67c94
MLI
3312009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
332
333 * flags.h (extra_warnings): Delete.
334 * toplev.c (process_options): Handle Wuninitialized here.
335 * opts.c (extra_warnings): Delete.
336 (set_Wextra): Delete.
337 (common_handle_option): -Wextra can be handled automatically.
338 * c-opts.c (c_common_handle_option): Delete obsolete code.
339 (c_common_post_options): Simplify comment.
340 * common.opt (W): Add Var.
341 (Wextra): Add Var.
342 (Wuninitialized): Initialize to -1.
343
8c7926c4
AN
3442009-05-03 Adam Nemet <anemet@caviumnetworks.com>
345 Richard Guenther <rguenther@suse.de>
346
347 * expr.c (get_def_for_expr): New function.
348 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
349 SSA rather than trees.
350 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
351 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
352
fa5da7de
JM
3532009-05-03 Joseph Myers <joseph@codesourcery.com>
354
355 * c-common.c (reswords): Add _Imaginary.
356 * c-common.c (enum rid): Add RID_IMAGINARY.
357
2ddd5020
PB
3582009-05-03 Paolo Bonzini <bonzini@gnu.org>
359
360 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
361 Patch by Richard Guenther.
362
aea88c05
AS
3632009-05-03 Anatoly Sokolov <aesok@post.ru>
364
365 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
366 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
367 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
368 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
369 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
370 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
371 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
372 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
373 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
374 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
375 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
376 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
377 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
378 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
379 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
380 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
381 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
382 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
383
85e59f3a
RG
3842009-05-02 Richard Guenther <rguenther@suse.de>
385
386 PR tree-optimization/39940
387 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
388 doing so.
389
4636b850
RG
3902009-05-02 Richard Guenther <rguenther@suse.de>
391
392 PR middle-end/40001
393 * tree-ssa.c (execute_update_addresses_taken): Properly check
394 if we can mark a variable DECL_GIMPLE_REG_P.
395 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
396 back to the end of the function.
397 (is_gimple_reg_type): Remove complex type special casing.
398 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
399 if not optimizing.
400
5e10cb5a
BE
4012009-05-02 Ben Elliston <bje@au.ibm.com>
402
403 * doc/collect2.texi (Collect2): Document search path behaviour
404 when configured with --with-ld.
405
048bf48b
JH
4062009-05-02 Jan Hubicka <jh@suse.cz>
407
408 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
409 parameter; update callers.
410 (coalesce_cost_edge): EH edges are costier because they needs splitting
411 even if not critical and even more costier when there are multiple
412 EH predecestors.
413
d5c5f9ab
JH
4142009-05-02 Jan Hubicka <jh@suse.cz>
415
416 * except.c (remove_eh_handler_and_replace): Handle updating after
417 removing TRY blocks.
418
2ed1959a
EB
4192009-05-02 Eric Botcazou <ebotcazou@adacore.com>
420
421 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
422
d363a7e7
SB
4232009-05-02 Steven Bosscher <steven@gcc.gnu.org>
424
425 * varasm.c: Do not include c-pragma.h.
426 * attribs.c: Do not incude c-common.h.
427
9c3d55b4
MM
4282009-05-01 Michael Matz <matz@suse.de>
429
430 * calls.c (initialize_argument_information): Handle SSA names like
431 decls with a non MEM_P DECL_RTL.
432
ea264ca5
SB
4332009-05-01 Steven Bosscher <steven@gcc.gnu.org>
434
435 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
436 * ipa-utils.c: Likewise.
437 * ipa-type-escape.c: Likewise.
438 * cgraphunit.c Do not include c-common.h.
439 * ipa-pure-const.c: Likewise.
440 * tree-if-conv.c: Likewise.
441 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
442 * ipa-struct-reorg.c: Likewise.
443 * tree-nomudflap.c: Likewise.
444 * tree-ssa-structalias.c: Likewise.
445
6c5d4d1a
SB
4462009-05-01 Steven Bosscher <steven@gcc.gnu.org>
447
448 * store-motion.c: Many cleanups to make this pass a first-class
449 citizen instead of an appendix to gcse load motion. Add TODO list
450 to make this pass faster/cleaner/better.
451
452 (struct ls_expr): Post gcse.c-split cleanups.
453 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
454 "stores" field to "avail_stores".
455 (pre_ldst_mems): Rename to store_motion_mems.
456 (pre_ldst_table): Rename to store_motion_mems_table.
457 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
458 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
459 (ldst_entry): Rename to st_expr_entry, update users.
460 (free_ldst_entry): Rename to free_st_expr_entry, update users.
461 (free_ldst_mems): Rename to free_store_motion_mems, update users.
462 (enumerate_ldsts): Rename to enumerate_store_motion_mems, update caller.
463 (first_ls_expr): Rename to first_st_expr, update users.
464 (next_ls_expr): Rename to next_st_expr, update users.
465 (print_ldst_list): Rename to print_store_motion_mems. Print names of
466 fields properly for store motion instead of names inherited from load
467 motion in gcse.c.
468 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
469 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
470 are done with it.
471
472 (ae_kill): Rename to st_kill, update users.
473 (ae_gen): Rename to st_avloc, update users.
474 (transp): Rename to st_transp, update users.
475 (pre_insert_map): Rename to st_insert_map, update users.
476 (pre_delete_map): Rename to st_delete_map, update users.
477 (insert_store, build_store_vectors, free_store_memory,
478 one_store_motion_pass): Update for abovementioned changes.
479
480 (gcse_subst_count, gcse_create_count): Remove.
481 (one_store_motion_pass): New statistics counters "n_stores_deleted"
482 and "n_stores_created", local variables.
483
484 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
485 use for_each_rtx.
486
487 (regvec, compute_store_table_current_insn): Remove.
488 (reg_set_info, reg_clear_last_set): Remove.
489 (compute_store_table): Use DF caches instead of local dataflow
490 solvers.
491
b02cec6e
JM
4922009-05-01 Joseph Myers <joseph@codesourcery.com>
493
494 * c-objc-common.c (c_tree_printer): Print identifiers with
495 pp_identifier, not pp_string. Mark "({anonymous})" for
496 translation.
497 * c-pretty-print.c (pp_c_ws_string): New.
498 (pp_c_cv_qualifier, pp_c_type_specifier,
499 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
500 pp_c_storage_class_specifier, pp_c_function_specifier,
501 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
502 pp_c_primary_expression, pp_c_postfix_expression,
503 pp_c_unary_expression, pp_c_shift_expression,
504 pp_c_relational_expression, pp_c_equality_expression,
505 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
506 use pp_string and pp_c_ws_string in place of pp_identifier and
507 pp_c_identifier for non-identifiers. Mark English strings for
508 translation.
509 * c-pretty-print.h (pp_c_ws_string): Declare.
510
cd533689
PP
5112009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
512 Roland McGrath <roland@redhat.com>
513
514 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id
515 support.
516 (ENABLE_LD_BUILDID): New configuration option.
517 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
518 (LINK_BUILDID_SPEC): New macro.
519 (init_spec): If defined, prepend it between LINK_EH_SPEC and
520 link_spec.
521 * doc/install.texi: Document --enable-linker-build-id option.
522 * configure: Rebuild.
523 * config.in: Rebuild.
524
ba6adec4
AN
5252009-04-30 Adam Nemet <anemet@caviumnetworks.com>
526
527 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
528 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
529 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
530 MIPS_GP_SAVE_AREA_SIZE.
531 * config/mips/mips.c (struct mips_frame_info): Update comment
532 before arg_pointer_offset and hard_frame_pointer_offset.
533 (mips_compute_frame_info): Update diagram before function: to
534 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
535 indicate the position of frame_pointer_rtx with -fstack-protector and
536 to show args_size. Don't allocate cprestore area for leaf functions
537 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
538 cprestore_size.
539 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
540
48f5b722
MM
5412009-04-30 Michael Matz <matz@suse.de>
542
ba6adec4
AN
543 PR tree-optimization/39955
544 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 545
b65d6744
DK
5462009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
547
548 * ira.c (setup_cover_and_important_classes): Use safe macro
549 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
550 directly.
551 * genpreds.c (write_tm_preds_h): Output suitable definition of
552 REG_CLASS_FOR_CONSTRAINT.
553
f136c8ae
RAE
5542009-04-30 Rafael Avila de Espindola <espindola@google.com>
555
556 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
557 instead of an int.
558 * bitmap.c (bitmap_descriptor): Likewise.
559 * ggc-common.c (loc_descriptor): Likewise.
560 * varray.c (varray_descriptor): Likewise.
561 * vec.c (vec_descriptor): Likewise.
562
43fcece8 5632009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
564
565 * Makefile.in (dce.o): Add $(EXCEPT_H).
566 * dce.c: Include except.h and delete redundant vector definitions.
567 (deletable_insn_p): Return false for non-call insns that can throw
568 if DF is running.
569
df35c271
SB
5702009-04-30 Steven Bosscher <steven@gcc.gnu.org>
571
572 * gcse.c (ae_gen): Remove.
573 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
574 and make non-static function to make it available in store-motion.c.
575 Update call sites with search-and-replace.
576 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
577 extract_mentioned_regs, extract_mentioned_regs_helper,
578 find_moveable_store, compute_store_table, load_kills_store, find_loads,
579 store_killed_in_insn, store_killed_after, store_killed_before,
580 build_store_vectors, insert_insn_start_basic_block, insert-store,
581 remove_reachable_equiv_notes, replace_store_insn, delete_store,
582 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
583 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
584 * store-motion.c: ...new file. Also copy data structures from gcse.c
585 and clean up to remove parts not used by store motion.
586 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
587 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
588
f711a87a
RR
5892009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
590
591 PR target/38571
592 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
593 when optimizing for size.
594
fa5ed76e
HPN
5952009-04-30 Hans-Peter Nilsson <hp@axis.com>
596
597 * gcse.c (gcse_constant_p): Fix typo in last change.
598
0acbbdb0
RAE
5992009-04-30 Rafael Avila de Espindola <espindola@google.com>
600
601 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
602
82f5c05d
AK
6032009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
604
605 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
606
6d8f135b
JW
6072009-04-29 James E. Wilson <wilson@codesourcery.com>
608
609 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
610 CONST_HIGH_PART result.
611
c21ca196
AS
6122009-04-29 Anatoly Sokolov <aesok@post.ru>
613
614 * config/avr/avr.c (initial_elimination_offset): Rename to
615 avr_initial_elimination_offset.
616 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
617 change return type to bool.
618 (avr_can_eliminate): New function.
619 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
620 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
621 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
622 * config/avr/avr-protos.h (initial_elimination_offset) : Rename to
623 avr_initial_elimination_offset.
624 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
625 (avr_initial_elimination_offset): Define.
626
2a34bece
EB
6272009-04-29 Eric Botcazou <ebotcazou@adacore.com>
628 Steven Bosscher <steven@gcc.gnu.org>
629
630 PR rtl-optimization/39938
631 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
632 * cfgrtl.c: Include insn-attr.h.
633 (rest_of_pass_free_cfg): New function.
634 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
635 * resource.c (init_resource_info): Remove call to df_analyze.
636
5dc7911e
RG
6372009-04-29 Richard Guenther <rguenther@suse.de>
638
639 PR target/39943
640 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
641 allow conversion to signed integers.
642
1fe479fd
RG
6432009-04-29 Richard Guenther <rguenther@suse.de>
644
645 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
646 shifts of floating point vectors if the shift amount is
647 a constant multiple of the element size.
648
8e001680
AK
6492009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
650 Michael Matz <matz@suse.de>
651
652 PR middle-end/39927
653 PR bootstrap/39929
654 * tree-outof-ssa.c (emit_partition_copy): New function.
655 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
656 insert_part_to_rtx_on_edge): Perform the partition base var
657 copy using emit_partition_copy.
658 (insert_value_copy_on_edge): Convert constants to the right mode.
659 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
660 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
661
e50e3081
BS
6622009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
663
664 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
665 scan backwards to try to find a constant to initialize it.
666
4e5d521b
BS
667 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
668 insn before the loop_end instruction, don't look past labels.
669
7c90021d
RG
6702009-04-29 Richard Guenther <rguenther@suse.de>
671
672 PR middle-end/39937
673 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
674 loose type conversions.
675 (forward_propagate_addr_expr): Fix tuplification bug. Remove
676 stmts only if there are no uses of its definition.
677
97a988bc
BS
6782009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
679
680 * config/bfin/bfin.h (splitting_loops): Declare.
681 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
682 Reorder bit definitions to be ascending.
683 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
684 * config/bfin/bfin.c (splitting_loops): New variable.
685 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
686 (struct loop_info): Remove members INIT and LOOP_INIT.
687 (bfin_optimize_loop): Don't set them. Reorder the code that generates
688 the LSETUP sequence. Allow LC to be loaded from any register, but also
689 add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
690 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
691 set to 1.
692 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
693 of reload_completed.
694 From Jie Zhang:
695 * config/bfin/bfin.md (movsi_insn): Refine constraints.
696
0c463e16
RAE
6972009-04-29 Rafael Avila de Espindola <espindola@google.com>
698
699 * Makefile.in (PLUGIN_VERSION_H): New.
700 (OBJS-common): Remove plugin-version.o.
701 (plugin.o): Depend on (PLUGIN_VERSION_H).
702 (plugin-version.o): Remove.
703 * configure: Regenerate
704 * configure.ac: Create plugin-version.h.
705 * gcc-plugin.h (plugin_gcc_version): Remove.
706 (plugin_default_version_check): Change signature.
707 * plugin-version.c: Remove.
708 * plugin.c: Include plugin-version.h.
709 (str_plugin_gcc_version_name): Remove.
710 (try_init_one_plugin): Pass gcc version to plugin_init.
711 (plugin_default_version_check): Both gcc and plugin versions are now
712 arguments.
713
307e7eab
BS
7142009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
715
716 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
717 problematic last insns. Test for TYPE_CALL rather than CALL_P.
718 Remove special case testing for last insn of inner loops. Don't fail if
719 the loop ends with a jump, emit an extra nop instead.
720
c5d96723
BS
721 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
722 DREGS rather than comparing directly. Remove code that tries to
723 account for latencies.
724
de0b4ad5
RG
7252009-04-29 Richard Guenther <rguenther@suse.de>
726
727 PR tree-optimization/39941
728 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
729 eliminating an indirect call.
730
3a19701a
RG
7312009-04-29 Richard Guenther <rguenther@suse.de>
732
733 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
734 parameter. Allow invariants as base if !require_lvalue.
735 (verify_gimple_assign_single): Adjust.
736
a0a31d1e
BS
7372009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
738
739 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
740 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
741 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3, ssubhi3,
742 ssaddhi3_parts and sssubhi3_parts.
743 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
744 a VEC_SELECT.
745 * config/bfin/bfin.c (bfin_expand_builtin, case BFIN_BUILTIN_CPLX_SQU):
746 Adjust accordingly.
747
795bd26a
RG
7482009-04-28 Richard Guenther <rguenther@suse.de>
749
750 * tree-vect-loop.c (get_initial_def_for_induction): Use
751 correct types for pointer increment.
752
04be270f
KG
7532009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
754
755 * toplev.c (print_version): Update GMP version string calculation.
756
e1a3b85c
EB
7572009-04-28 Eric Botcazou <ebotcazou@adacore.com>
758
759 PR rtl-optimization/39938
760 * resource.c (init_resource_info): Add call to df_analyze.
761
8224166e
UB
7622009-04-28 Uros Bizjak <ubizjak@gmail.com>
763
764 * config/alpha/alpha.md (usegp): Cast the result of
765 alpha_find_lo_sum_using_gp to enum attr_usegp.
766 * config/alpha/alpha.c (override_options): Remove end-of-structure
767 marker element from cpu_table. Use array size of cpu_table to handle
768 -mcpu and -mtune options.
769 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
770
c5f0fe67
JM
7712009-04-28 Joseph Myers <joseph@codesourcery.com>
772
773 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
774 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
775 tune_32 and tune_64.
776 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
777 support on PowerPC.
778 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
779 * config/rs6000/option-defaults.h: ... here. New file.
780 (OPT_64, OPT_32): Define.
781 (MASK_64BIT): Define to 0 if not already defined.
782 (OPT_ARCH64, OPT_ARCH32): Define.
783 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
784 and tune_64.
785
0c48a567
RR
7862009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
787
788 * config/arm/arm.c (arm_override_options): Emit error on using
789 fpa with AAPCS.
790
f1028b9d
UB
7912009-04-28 Uros Bizjak <ubizjak@gmail.com>
792
793 PR rtl-optimization/39914
794 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
795 registers for allocnos created from user-defined variables only
796 when not optimizing.
797
e0dd989a
RG
7982009-04-28 Richard Guenther <rguenther@suse.de>
799
800 PR middle-end/39937
801 * fold-const.c (fold_binary): Use distribute_real_division only
802 on float types.
803
9a17c91d
SE
8042009-04-28 Steve Ellcey <sje@cup.hp.com>
805
806 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
807 add hpux-stdint.h to tm_file.
808 (hppa[12]*-*-hpux11*): Ditto.
809 (ia64*-*-hpux*): Ditto.
810 * config/hpux-stdint.h: New.
60839f5d 811 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 812 __STDC_EXT__ for all compiles.
60839f5d
EB
813 * config/pa/pa-hpux.h: Ditto.
814 * config/pa/pa-hpux10.h: Ditto.
815 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 816
af04e659
CM
8172009-04-28 Catherine Moore <clm@codesourcery.com>
818
819 * debug.h (set_name): Add comment.
820
04ef80ce
AP
8212009-04-28 Andrew Pinski <pinskia@gmail.com>
822
823 PR target/39929
824 * config/darwin.c (machopic_gen_offset): Check
825 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
826 * config/arm/arm.c (require_pic_register): Likewise.
827
65ad77af
PB
8282009-04-28 Paolo Bonzini <bonzini@gnu.org>
829
8224166e
UB
830 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
831 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
832 m32c_promote_prototypes): Delete.
65ad77af 833
1b15a008
MM
8342009-04-28 Michael Matz <matz@suse.de>
835
836 PR middle-end/39922
837 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
838 constants.
839
7569a6cc
RG
8402009-04-28 Richard Guenther <rguenther@suse.de>
841
f1028b9d 842 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 843
ead204d9
RR
8442009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
845
846 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
847 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
848 * config/arm/arm-tune.md: Regenerate.
849
f2c45f08 8502009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 851
f2c45f08
AM
852 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
853 block if there are complex incoming edges.
854 (sel_merge_blocks): Remove useless assert.
855 (sel_redirect_edge_and_branch): Check that edge was redirected.
856 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
857 (sel_find_rgns): Delete declaration.
858 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
859 the region when it is not a preheader.
860
7a00d767
UB
8612009-04-28 Uros Bizjak <ubizjak@gmail.com>
862
863 PR c/39323
864 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
865
448ee662
RG
8662009-04-28 Richard Guenther <rguenther@suse.de>
867
868 * tree.h (SSA_NAME_VALUE): Remove.
869 (struct tree_ssa_name): Remove value_handle member.
870 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
871 array for jump threading.
872 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
873 SSA_NAME_VALUEs.
874 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
875 * tree-flow.h (threadedge_initialize_values): Declare.
876 (threadedge_finalize_values): Likewise.
877 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
878 (SSA_NAME_VALUE): Define.
879 (threadedge_initialize_values): New function.
880 (threadedge_finalize_values): Likewise.
881 * tree-ssa-dom.c (ssa_name_values): New global variable.
882 (SSA_NAME_VALUE): Define.
f1028b9d 883 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 884
8644a673
IR
8852009-04-28 Ira Rosen <irar@il.ibm.com>
886
887 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
888 Use REPORT_VECTORIZED_LOCATIONS instead
889 REPORT_VECTORIZED_LOOPS.
890 * tree-vectorizer.c (vect_verbosity_level): Make static.
891 (vect_loop_location): Rename to vect_location.
892 (vect_set_verbosity_level): Update comment.
893 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
894 and vect_location.
895 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
896 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
897 instead REPORT_UNVECTORIZED_LOOPS.
898 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
899 vect_loop_def to vect_external_def and vect_internal_def.
900 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 901 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
902 REPORT_UNVECTORIZED_LOCATIONS.
903 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
904 and vect_used_in_loop and to vect_unused_in_scope and
905 vect_used_in_scope.
906 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
907 (vect_verbosity_level): Remove declaration.
908 (vect_analyze_operations): Likewise.
909 (vect_analyze_stmt): Declare.
910 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
911 REPORT_UNVECTORIZED_LOCATIONS.
912 (vect_get_loop_niters): Fix indentation.
913 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
914 (vect_analyze_loop_operations): New function.
915 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
916 vect_analyze_operations.
917 (vect_is_simple_reduction): Use new names.
918 (vectorizable_live_operation, vect_transform_loop): Likewise.
919 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
920 specify whether the data references can be a part of interleaving chain.
921 (vect_analyze_data_ref_dependence): Use new names.
922 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
923 (vect_create_addr_base_for_vector_ref): Remove redundant code.
924 * tree-vect-patterns.c (widened_name_p): Use new names.
925 (vect_recog_dot_prod_pattern): Likewise.
926 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
927 (process_use, vect_mark_stmts_to_be_vectorized,
928 vect_model_simple_cost, vect_model_store_cost,
929 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
930 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
931 vectorizable_operation, vectorizable_type_demotion,
932 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
933 vectorizable_condition): Likewise.
934 (vect_analyze_operations): Split into vect_analyze_loop_operations
935 and ...
936 (vect_analyze_stmt): ... new function.
937 (new_stmt_vec_info): Use new names.
938 (vect_is_simple_use): Use new names and fix comment.
939 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
940 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
941
b91322f2
UB
9422009-04-28 Uros Bizjak <ubizjak@gmail.com>
943
944 PR target/39911
945 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
946 and integer modes for x87 operands. Do not ICE for unsupported size,
947 generate error instead. Generate error for unsupported operand types.
948 ['z']: Do not handle HImode memory operands specially. Warning
949 for floating-point operands. Fallthru to 'Z' for unsupported operand
950 types. Do not ICE for unsupported size, generate error instead.
951 (output_387_binary_op): Use %Z to output operands.
952 (output_fp_compare): Ditto.
953 (output_387_reg_move): Ditto.
954
b2ed71b6
BE
9552009-04-28 Ben Elliston <bje@au.ibm.com>
956
957 PR c++/35652
958 Revert:
959
960 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
961
962 * builtins.c (c_strlen): Do not warn here.
963 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
964 * c-common.c (pointer_int_sum): Take an explicit location.
965 Warn about offsets out of bounds.
966 * c-common.h (pointer_int_sum): Adjust declaration.
967
81f40b79
ILT
9682009-04-27 Ian Lance Taylor <iant@google.com>
969
970 * collect2.c (is_ctor_dtor): Change type of ret field in struct
971 names to symkind.
972 * dce.c (run_fast_df_dce): Change type of old_flags to int.
973 * df-core.c (df_set_flags): Change return type to int. Change
974 type of old_flags to int.
975 (df_clear_flags): Likewise.
976 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
977 (df_get_conditional_uses): Likewise.
978 * df.h (df_set_flags, df_clear_flags): Update declarations.
979 * dwarf2out.c (struct indirect_string_node): Change type of form
980 field to enum dwarf_form.
981 (AT_string_form): Change return type to enum dwarf_form.
982 * fixed-value.c (fixed_compare): Add cast to enum type.
983 * fwprop.c (update_df): Change 0 to VOIDmode.
984 * gensupport.c: Change 0 to UNKNOWN.
985 * gimple.h (gimple_cond_code): Add cast to enum type.
986 * haifa-sched.c (reemit_notes): Add cast to enum type.
987 * hooks.c (hook_int_void_no_regs): Remove function.
988 * hooks.h (hook_int_void_no_regs): Remove declaration.
989 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 990 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
991 * real.c (real_arithmetic): Add cast to enum type.
992 (real_compare): Likewise.
993 * target.h (struct gcc_target): Change return type of
994 branch_target_register_class to enum reg_class.
995 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
996 default_branch_target_register_class.
7a00d767 997 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 998 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 999 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
1000 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
1001 cast to int.
1002 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
1003 ERROR_MARK.
1004 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
1005 vect_uninitialized_def. Change 0 to ERROR_MARK.
1006 * tree-vect-stmts.c (supportable_widening_operation): Don't
1007 initialize icode1 and icode2.
7a00d767 1008 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
1009 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
1010 and to STD_C89.
1011 (cmn_err_flag_specs): Change 0 to STD_C89.
1012 (cmn_err_char_table): Likewise.
1013 * config/arm/arm.c (get_arm_condition_code): Change type of code
1014 to enum arm_cond_code.
1015 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
1016 (IWMMXT_BUILTIN2): Likewise.
1017 (neon_builtin_type_bits): Don't define typedef.
1018 (neon_builtin_datum): Change type of bits field to int.
1019 (arm_expand_neon_args): Add cast to enum type.
1020 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
1021 TLS_MODEL_NONE.
1022 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
1023 casts to enum type.
1024 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
1025 MIPS_FP_COND_f.
1026 * config/mips/mips.md (jal_macro): Return enum constant.
1027 (single_insn): Likewise.
1028 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
1029 CODE_FOR_nothing.
1030 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1031 casts to enum type.
1032 * config/s390/s390.c (s390_tune_flags): Change type to int.
1033 (s390_arch_flags): Likewise.
7a00d767 1034 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
1035 * config/s390/s390.h (s390_tune_flags): Update declaration.
1036 (s390_arch_flags): Likewise.
1037 * config/sh/sh.c (prepare_move_operands): Compare
1038 tls_symbolic_operand result with enum constant.
1039 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
1040 (sh_expand_prologue): Add cast to enum type.
1041 (sh_expand_epilogue): Likewise.
1042 (tls_symbolic_operand): Change return type to enum tls_model.
1043 (fpscr_set_from_mem): Add cast to enum type.
1044 (legitimize_pic_address): Compare tls_symbolic_operand result with
1045 enum constant.
1046 (sh_target_reg_class): Change return type to enum reg_class.
1047 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
1048 PROCESSOR_xxx.
7a00d767
UB
1049 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
1050 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
1051 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
1052 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
1053 (delayed_branch, tls_call_delay): Likewise.
1054 (eligible_for_sibcall_delay): Likewise.
1055 (eligible_for_return_delay): Likewise.
1056 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
1057 (spu_expand_builtin_1): Likewise.
1058
1059 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
1060 for all types of conversions.
1061 (output_init_element): Issue -Wc++-compat warning if needed when
1062 initializing a bitfield with enum type.
1063 * c-parser.c (c_parser_expression): Set original_type to
1064 original_type of right hand operand of comman operator.
1065
e4ae5e77
RW
10662009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1067
1068 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
1069 grammar nits.
7a00d767 1070 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
1071 * doc/cpp.texi (Standard Predefined Macros)
1072 (Implementation-defined behavior): Likewise.
7a00d767 1073 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
1074 * doc/gimple.texi (GIMPLE Exception Handling)
1075 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 1076 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
1077 * doc/invoke.texi (Warning Options, Optimize Options)
1078 (AVR Options, Darwin Options): Likewise.
1079 (Optimize Options): Reformulate -fwhole-program description.
1080 * doc/loop.texi (Lambda): Likewise.
1081 * doc/md.texi (Output Template, Define Constraints)
1082 (Standard Names, Insn Splitting): Likewise.
1083 * doc/options.texi (Option properties): Likewise.
1084 * doc/passes.texi (Tree-SSA passes): Likewise.
1085 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
1086 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
1087 (File Names and DBX): Likewise.
1088 * doc/trouble.texi (Incompatibilities): Likewise.
1089
1883802f 10902009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
1091
1092 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
1093 instruction is correct.
1094
1883802f 10952009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
1096
1097 Allow non-constant arguments to conversion intrinsics.
1098 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
1099 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
1100 * spu.c (print_operand): Handle 'v' and 'w'.
1101 (exp2_immediate_p, spu_gen_exp2): Define.
1102 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
1103 spu_convtf_1): Update parameter descriptions.
7a00d767 1104 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
1105 * constraints.md ('v', 'w'): New.
1106 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
1107 Remove.
1108 (i2f, I2F): New define_mode_attr.
1109 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
1110 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
1111 fixuns_truncv4sfv4si2): Update to use mode attribute.
1112 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
1113 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
1114 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
1115 patterns for combine.
1116
5f39ad47
SB
11172009-04-27 Steven Bosscher <steven@gcc.gnu.org>
1118
1119 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
1120 (cprop, hoist, pre, store_motion): New debug counters.
1121 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
1122 is not an RTL pass anymore.
1123 (pass_profiling): Remove extern decl for pass removed in 2005.
1124 (pass_gcse, pass_jump_bypass): Remove.
1125 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
1126 to 0 for clean state.
1127 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
1128 * cse.c (gate_handle_cse_after_global_opts,
1129 rest_of_handle_cse_after_global_opts): New functions.
1130 (pass_cse_after_global_opts): New pass, does local CSE.
1131 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
1132 (TV_CPROP): New timevar.
1133 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
1134 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
1135 (gcse_main, recompute_all_luids): Remove.
1136 (compute_hash_table_work): Call max_reg_num instead of reading
1137 max_gcse_regno.
1138 (cprop_jump): Don't set run_jump_opt_after_gcse.
1139 (constprop_register): Always allow to alter jumps.
1140 (cprop_insn): Likewise.
1141 (do_local_cprop): Likewise.
1142 (local_cprop_pass): Likewise. Return non-zero if something changed.
1143 (cprop): Remove function, fold interesting bits into one_cprop_pass.
1144 (find_implicit_sets): Add note about missed optimization opportunity.
1145 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
1146 pass_rtl_cprop execute function.
1147 Don't bother tracking the pass number, each pass gets its own dumpfile
1148 now anyway.
1149 Always allow to alter jumpsand bypass jumps.
1150 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
1151 will just find no suitable set.
1152 (pre_edge_insert): Fix dumping, this function is for PRE only.
1153 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
1154 pass_rtl_pre execute function.
1155 (hoist_code): Return non-zero if something changed. Keep track of
1156 substitutions and insertions for statistics gathering similar to PRE.
1157 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
1158 called from the pass_rtl_hoist execute function. Show pass statistics.
1159 (compute_store_table): Use max_reg_num directly instead of using the
1160 formerly global max_gcse_regno.
1161 (build_store_vectors): Likewise.
1162 (replace_store_insn): Fix dumping.
1163 (store_motion): Rename to ...
1164 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
1165 pass, called from the pass_rtl_store_motion execute function. Keep
1166 track of substitutions and insertions for statistics gathering similar
1167 to PRE.
1168 (bypass_jumps): Remove, fold interesting bits into ...
1169 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
1170 from the pass_rtl_cprop execute function.
1171 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
1172 pass_jump_bypass): Remove.
1173 (gate_handle_gcse, rest_of_handle_gcse): Remove.
1174 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
1175 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
1176 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
1177 (gate_rtl_store_motion, execute_rtl_store_motion,
1178 pass_rtl_store_motion): New.
1179 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
1180 make it clear that -fcse-skip-blocks is a no-op for backward compat.
1181 * passes.c (init_optimization_passes): Remove pass_gcse and
1182 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
1183 and cse_after_global_opts in place of pass_gcse. Schedule cprop
1184 instead of pass_jump_bypass.
1185
c685de4a
RG
11862009-04-27 Richard Guenther <rguenther@suse.de>
1187
1188 PR middle-end/39928
1189 * gimplify.c (gimplify_expr): If we are required to create
1190 a temporary make sure it ends up as register.
1191
72d41f29
L
11922009-04-27 H.J. Lu <hongjiu.lu@intel.com>
1193
1194 PR target/39903
1195 * config/i386/i386.c (construct_container): Don't call
1196 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
1197 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
1198
e97809c6
MM
11992009-04-27 Michael Matz <matz@suse.de>
1200
1201 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
1202 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
1203 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
1204 (dump_replaceable_exprs): Take a bitmap.
1205 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
1206 array.
1207 (expand_gimple_basic_block): Likewise.
1208 * tree-ssa-ter.c (struct temp_expr_table_d): Make
1209 replaceable_expressions member a bitmap.
1210 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
1211 (mark_replaceable): Likewise.
1212 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
1213 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
1214
211ca15c
RG
12152009-04-27 Richard Guenther <rguenther@suse.de>
1216
1217 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
1218 (verify_stmts): Dispatch to gimple/type verification code.
1219 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
1220 issue with call argument types.
1221
fca5f3d1
MM
12222009-04-27 Michael Matz <matz@suse.de>
1223
1224 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
1225 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
1226 to above.
1227
a1fa3e79 12282009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 1229 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
1230
1231 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
1232 a label's basic block.
1233 (mark_target_live_regs): Tidy and rework obsolete comments.
1234 Change back DF problem to LIVE. If a label starts a basic block,
1235 assume that all registers that used to be live then still are.
1236 (init_resource_info): If a label starts a basic block, set its
1237 BLOCK_FOR_INSN accordingly.
1238 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
1239
33b223c0
RG
12402009-04-27 Richard Guenther <rguenther@suse.de>
1241
1242 * tree-flow-inline.h (function_ann): Remove.
1243 (get_function_ann): Likewise.
1244 * tree-dfa.c (create_function_ann): Remove.
1245 * tree-flow.h (struct static_var_ann_d): Remove.
1246 (struct function_ann_d): Likewise.
1247 (union tree_ann_d): Remove fdecl member.
1248 (function_ann_t): Remove.
1249 (function_ann, get_function_ann, create_function_ann): Remove
1250 declarations.
1251
e3136fa2
UB
12522009-04-27 Uros Bizjak <ubizjak@gmail.com>
1253
1254 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
1255
f87c9042
JH
12562009-04-27 Jan Hubicka <jh@suse.cz>
1257
1258 * ipa-pure-const.c (struct funct_state_d): New fields
1259 state_previously_known, looping_previously_known; remove
1260 state_set_in_source.
1261 (analyze_function): Use new fields.
1262 (propagate): Avoid assumption that state_set_in_source imply
1263 nonlooping.
1264
1265 * tree-ssa-loop-niter.c (finite_loop_p): New function.
1266 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
1267 * cfgloop.h (finite_loop_p): Declare.
1268
33abd718
MM
12692009-04-26 Michael Matz <matz@suse.de>
1270
e3136fa2 1271 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 1272
ddc34084
MM
12732009-04-26 Michael Matz <matz@suse.de>
1274
1275 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
1276 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
1277 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
1278 pass_mark_used_blocks): Remove.
1279 * tree-optimize.c (pass_free_datastructures,
1280 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
1281 * passes.c (init_optimization_passes): Don't call
1282 pass_mark_used_blocks, remove dead code.
1283
1fec7ed4
L
12842009-04-26 H.J. Lu <hongjiu.lu@intel.com>
1285
1286 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
1287 * tree-ssa-live.h (register_ssa_partition): Likewise.
1288
4e3825db
MM
12892009-04-26 Michael Matz <matz@suse.de>
1290
1291 Expand from SSA.
1292 * builtins.c (fold_builtin_next_arg): Handle SSA names.
1293 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
1294 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
1295 SSA names.
1296 (compare_pairs): Swap cost comparison.
1297 (coalesce_ssa_name): Don't use change_partition_var.
1298 * tree-nrv.c (struct nrv_data): Add modified member.
1299 (finalize_nrv_r): Set it.
1300 (tree_nrv): Use it to update statements.
1301 (pass_nrv): Require PROP_ssa.
1302 * tree-mudflap.c (mf_decl_cache_locals,
1303 mf_build_check_statement_for): Use make_rename_temp.
1304 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
1305 * alias.c (find_base_decl): Handle SSA names.
1306 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
1307 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
1308 * rtl.h (set_reg_attrs_for_parm): Declare.
1309 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
1310 to "optimized", remove unused locals at finish.
1311 (execute_free_datastructures): Make global, call
1312 delete_tree_cfg_annotations.
1313 (execute_free_cfg_annotations): Don't call
1314 delete_tree_cfg_annotations.
1315
1316 * ssaexpand.h: New file.
1317 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 1318 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
1319 (expand_expr_real_1): Expand SSA names.
1320 * cfgexpand.c (toplevel): Include ssaexpand.h.
1321 (SA): New global variable.
1322 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
1323 (SSAVAR): New macro.
1324 (set_rtl): New helper function.
1325 (add_stack_var): Deal with SSA names, use set_rtl.
1326 (expand_one_stack_var_at): Likewise.
1327 (expand_one_stack_var): Deal with SSA names.
1328 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
1329 before unique numbers.
1330 (expand_stack_vars): Use set_rtl.
1331 (expand_one_var): Accept SSA names, add asserts for them, feed them
1332 to above subroutines.
1333 (expand_used_vars): Expand all partitions (without default defs),
1334 then only the local decls (ignoring those expanded already).
1335 (expand_gimple_cond): Remove edges when jumpif() expands an
1336 unconditional jump.
1337 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
1338 or remove abnormal edges. Ignore insns setting the LHS of a TERed
1339 SSA name.
1340 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
1341 members of SA; deal with PARM_DECL partitions here; expand
1342 all PHI nodes, free tree datastructures and SA. Commit instructions
1343 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
1344 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
1345 info and statements at start, collect garbage at finish.
1346 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
1347 (VAR_ANN_PARTITION) Remove.
1348 (change_partition_var): Don't declare.
1349 (partition_to_var): Always return SSA names.
1350 (var_to_partition): Only accept SSA names.
1351 (register_ssa_partition): Only check argument.
1352 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
1353 member.
1354 (delete_var_map): Don't free it.
1355 (var_union): Only accept SSA names, simplify.
1356 (partition_view_init): Mark only useful SSA names as used.
1357 (partition_view_fini): Only deal with SSA names.
1358 (change_partition_var): Remove.
1359 (dump_var_map): Use ssa_name instead of partition_to_var member.
1360 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
1361 basic blocks.
1362 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
1363 (struct _elim_graph): New member const_dests; nodes member vector of
1364 ints.
1365 (set_location_for_edge): New static helper.
1366 (create_temp): Remove.
1367 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 1368 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
1369 (new_elim_graph): Allocate const_dests member.
1370 (clean_elim_graph): Truncate const_dests member.
1371 (delete_elim_graph): Free const_dests member.
1372 (elim_graph_size): Adapt to new type of nodes member.
1373 (elim_graph_add_node): Likewise.
1374 (eliminate_name): Likewise.
1375 (eliminate_build): Don't take basic block argument, deal only with
1376 partition numbers, not variables.
1377 (get_temp_reg): New static helper.
1378 (elim_create): Use it, deal with RTL temporaries instead of trees.
1379 (eliminate_phi): Adjust all calls to new signature.
1380 (assign_vars, replace_use_variable, replace_def_variable): Remove.
1381 (rewrite_trees): Only do checking.
1382 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
1383 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
1384 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
1385 contains_tree_r, MAX_STMTS_IN_LATCH,
1386 process_single_block_loop_latch, analyze_edges_for_bb,
1387 perform_edge_inserts): Remove.
1388 (expand_phi_nodes): New global function.
1389 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
1390 functions, initialize new parameter, remember partitions having a
1391 default def.
1392 (finish_out_of_ssa): New global function.
1393 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
1394 don't reset in_ssa_p here, don't disable TER when mudflap.
1395 (pass_del_ssa): Remove.
1396 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
1397 partition members.
1398 (execute_free_datastructures): Declare.
1399 * Makefile.in (SSAEXPAND_H): New variable.
1400 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
1401 * basic-block.h (commit_one_edge_insertion): Declare.
1402 * passes.c (init_optimization_passes): Move pass_nrv and
1403 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
1404 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
1405 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
1406 (redirect_branch_edge): Deal with super block when expanding, split
1407 out jump patching itself into ...
1408 (patch_jump_insn): ... here, new static helper.
1409
17c665a9
MM
14102009-04-26 Michael Matz <matz@suse.de>
1411
1412 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
1413 beyond num_ssa_names.
1414 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
1415 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
1416
92061771
JJ
14172009-04-26 Jakub Jelinek <jakub@redhat.com>
1418
ce372372
JJ
1419 PR inline-asm/39543
1420 * fwprop.c (forward_propagate_asm): New function.
1421 (forward_propagate_and_simplify): Propagate also into __asm, if it
1422 doesn't increase the number of referenced registers.
1423
92061771
JJ
1424 PR c/39889
1425 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
1426
14272009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
1428
1429 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
1430 note_nonlocal_vla_type for nonlocal VLAs.
1431 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
1432 contains_remapped_vars, remap_vla_decls): New functions.
1433 (convert_nonlocal_reference_stmt): If not optimizing, call
1434 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
1435 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
1436 if it wasn't found in var_map.
1437 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
1438 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
1439 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
1440 declare_vars.
1441 * gimplify.c (nonlocal_vlas): New variable.
1442 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
1443 referenced VLAs.
1444 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 1445
4561e242
JJ
1446 * dwarf2out.c (loc_descr_plus_const): New function.
1447 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
1448 mem_loc_descriptor, loc_descriptor_from_tree_1,
1449 descr_info_loc, gen_variable_die): Use it.
1450
a9548ddf
JJ
1451 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
1452 !TREE_STATIC VAR_DECLs.
1453 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
1454 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
1455 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
1456 DECL_BY_REFERENCE is valid.
1457 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
1458 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
1459 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
1460 Copy DECL_BY_REFERENCE.
1461 (struct nesting_copy_body_data): New type.
1462 (nesting_copy_decl): New function.
1463 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
1464 if they have variable length.
1465
10555d08
MM
14662009-04-26 Michael Matz <matz@suse.de>
1467
1468 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
1469 mark new temporaries for renaming.
1470
e11187cc
JM
14712009-04-26 Joseph Myers <joseph@codesourcery.com>
1472
1473 PR c/39581
1474 * c-decl.c (global_bindings_p): Return negative value.
1475 (c_variable_size): New. Based on variable_size from
1476 stor-layout.c.
1477 (grokdeclarator): Call c_variable_size not variable_size.
1478
f6a51d31
UB
14792009-04-26 Uros Bizjak <ubizjak@gmail.com>
1480
1481 * config/i386/i386.c (print_operand) ['z']: Fix typo.
1482
4b97723d
KT
14832009-04-26 Kai Tietz <kai.tietz@onevision.com>
1484
1485 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
1486 Redefine it to just use mingw/include.
1487 (ASM_SPEC): Rules for -m32 and -m64.
1488 (LINK_SPEC): Use Likewise.
1489 (SPEC_32): New define.
1490 (SPEC_64): Likewise.
1491 (SUB_LINK_SPEC): Likewise.
1492 (MULTILIB_DEFAULTS): New define.
1493 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
1494 Add multilib options.
1495 (MULTILIB_DIRNAMES): Likewise.
1496 (MULTILIB_OSDIRNAMES): Likewise.
1497 (LIBGCC): Likewise.
1498 (INSTALL_LIBGCC): Likewise.
1499
991d6621
JM
15002009-04-26 Joseph Myers <joseph@codesourcery.com>
1501
1502 PR c/39556
1503 * c-tree.h (enum c_inline_static_type): New.
1504 (record_inline_static): Declare.
1505 * c-decl.c (struct c_inline_static, c_inline_statics,
1506 record_inline_static, check_inline_statics): New.
1507 (pop_file_scope): Call check_inline_statics.
1508 (start_decl): Call record_inline_static instead of pedwarning
1509 directly for static in inline function.
1510 * c-typeck.c (build_external_ref): Call record_inline_static
1511 instead of pedwarning directly for static referenced in inline
1512 function.
1513
4a81774c
SB
15142009-04-26 Steven Bosscher <steven@gcc.gnu.org>
1515
1516 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
1517 not new but only being rescanned.
1518 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
1519 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
1520 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
1521 record_set_info, compute_set, grealloc): Remove.
1522 (recompute_all_luids): New function.
1523 (gcse_main): Don't compute sets, and don't do related memory
1524 allocations/free-ing. If something changed before the end of the
1525 pass, update LUIDs using recompute_all_luids.
1526 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
1527 (free_gcse_mem): Don't free it either.
1528 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
1529 Use the df insn LUIDs.
1530 (load_killed_in_block): Likewise.
1531 (compute_hash_table_work): Don't compute reg_set_in_block.
1532 (compute_transp): Use DF_REG_DEF_CHAINs.
1533 (local_cprop_pass): Don't use compute_sets and related functions.
1534 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
1535 Use get_max_uid() instead of max_cuid.
1536 (insert_insn_end_basic_block, pre_insert_copy_insn,
1537 update_ld_motion_stores): Don't try to
1538 keep reg_set tables up to date.
1539 (pre_insert_copies): Use df insn LUIDs.
1540 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
1541 (reg_set_info): Don't use extra bitmap argument.
1542 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
1543 information to compute regs_set_in_block.
1544 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
1545 (bypass_jumps): Don't use compute_sets and friends.
1546
e8f99a9d
RW
15472009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1548
1549 PR testsuite/39710
1550 * opts.c (undocumented_msg): Do not leave blank even with
1551 ENABLE_CHECKING.
1552
6895bac8
JM
15532009-04-25 Joseph Myers <joseph@codesourcery.com>
1554
1555 * c-decl.c (build_enumerator): Allow values folding to integer
1556 constants but not integer constant expressions with a pedwarn if
1557 pedantic.
1558
24070fcb
JM
15592009-04-25 Joseph Myers <joseph@codesourcery.com>
1560
1561 PR c/39582
1562 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
1563 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
1564 type is an integer constant.
1565
d6d89aa1
UB
15662009-04-25 Uros Bizjak <ubizjak@gmail.com>
1567
1568 PR target/39897
1569 * config/i386/i386.c (print_operand) ['z']: Revert handling of
1570 HImode operands.
1571
92f6fd0b
JM
15722009-04-25 Joseph Myers <joseph@codesourcery.com>
1573
1574 PR c/39564
1575 * c-decl.c (grokdeclarator): Diagnose declarations of functions
1576 with variably modified return type and no storage class
1577 specifiers, except for the case of nested functions. Distinguish
1578 extern declarations of functions with variably modified return
1579 types from those of objects with variably modified types.
1580
a3710436
JH
15812009-04-25 Jan Hubicka <jh@suse.cz>
1582
1583 * tree.c (list_equal_p): New function.
1584 * tree.h (list_equal_p): Declare.
1585 * coretypes.h (edge_def, edge, const_edge, basic_block_def
1586 basic_block_def, basic_block, const_basic_block): New.
1587 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
1588 (redirect_eh_edge): New function.
1589 (make_eh_edge_update_phi): EH edges are not abnormal.
1590 * except.c: Include tree-flow.h.
1591 (list_match): New function.
1592 (eh_region_replaceable_by_p): New function.
1593 (replace_region): New function.
1594 (hash_type_list): New function.
1595 (hash_eh_region): New function.
1596 (eh_regions_equal_p): New function.
1597 (merge_peers): New function.
1598 (remove_unreachable_regions): Verify EH tree when checking;
1599 merge peers.
1600 (copy_eh_region_1): New function.
1601 (copy_eh_region): New function.
1602 (push_reachable_handler): New function.
1603 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
1604 regions without label but with live RESX.
1605 * except.h (redirect_eh_edge_to_label): New.
1606 * tree-flow.h (redirect_eh_edge): New.
1607 * coretypes.h (edge_def, edge, const_edge, basic_block_def
1608 basic_block_def, basic_block, const_basic_block): Remove.
1609 * Makefile.in (except.o): Add dependency on tree-flow.h
1610 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
1611 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
1612 Remove.
1613
3764d512
EB
16142009-04-25 Eric Botcazou <ebotcazou@adacore.com>
1615
1616 PR bootstrap/39645
1617 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
1618 on the destination of memcpy.
1619
1c62e8f2
PB
16202009-04-25 Paolo Bonzini <bonzini@gnu.org>
1621
1622 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
1623 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
1624 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
1625
496a4ef5
JH
16262009-04-25 Jan Hubicka <jh@suse.cz>
1627
1628 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
1629 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
1630 to be reached by different label than left.
1631 (update_eh_edges): Update comment; remove edge_to_remove if possible
1632 and return true if suceeded.
1633 (cleanup_empty_eh): Accept sharing map; handle shared regions.
1634 (cleanup_eh): Compute sharing map.
1635 * except.c (remove_eh_handler_and_replace): Add argument if we should
1636 update regions.
1637 (remove_unreachable_regions): Update for label sharing.
1638 (label_to_region_map): Likewise.
1639 (get_next_region_sharing_label): New function.
1640 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
1641 prev_try pointers.
1642 (remove_eh_handler): Update.
1643 (remove_eh_region_and_replace_by_outer_of): New function.
1644 * except.h (struct eh_region): Add next_region_sharing_label.
1645 (remove_eh_region_and_replace_by_outer_of,
1646 get_next_region_sharing_label): Declare.
1647 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
1648
16492009-04-25 Jan Hubicka <jh@suse.cz>
1650
1651 * tree-cfg.c (split_critical_edges): Split also edges where we can't
1652 insert code even if they are not critical.
1653
16542009-04-25 Jan Hubicka <jh@suse.cz>
1655
1656 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1657 (gimple_can_remove_branch_p): EH edges won't remove branch by
1658 redirection.
1659 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
1660 updating of non-abnormal EH edges.
1661 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1662 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
1663 (split_critical_edges): Split also edges where emitting code on them
1664 will lead to splitting later.
1665
a3a5e3d1
UB
16662009-04-25 Uros Bizjak <ubizjak@gmail.com>
1667 H.J. Lu <hongjiu.lu@intel.com>
1668
1669 PR target/39590
1670 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
1671 the configured assembler supports fildq and fistpq mnemonics.
1672 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
1673 * configure: Regenerated.
1674 * config.in: Ditto.
1675
1676 * config/i386/i386.c (print_operand): Handle 'Z'.
1677 ['z']: Remove handling of special fild/fist suffixes.
1678 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
1679 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
1680 suffix of fild insn.
1681 (*floatsi<mode>2_vector_mixed): Ditto.
1682 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
1683 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
1684 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1685 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
1686 * config/i386/gas.h (GAS_MNEMONICS): Remove.
1687
23750d7f
BE
16882009-04-25 Ben Elliston <bje@au.ibm.com>
1689
1690 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
1691 the source of a set operation.
1692
e6ff3083
AS
16932009-04-25 Anatoly Sokolov <aesok@post.ru>
1694
1695 * target.h (struct gcc_target): Add case_values_threshold field.
1696 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
1697 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
1698 * targhooks.c (default_case_values_threshold): New function.
1699 * targhooks.h (default_case_values_threshold): Declare function.
1700 * stmt.c (expand_case): Use case_values_threshold target hook.
1701 * expr.h (case_values_threshold): Remove declartation.
1702 * expr.c (case_values_threshold): Remove function.
1703 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
1704
1705 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
1706 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1707 (avr_case_values_threshold): Declare as static.
1708 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
1709
1710 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
1711 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1712 (mn10300_case_values_threshold): New function.
1713
569c72fc
L
17142009-04-24 H.J. Lu <hongjiu.lu@intel.com>
1715
1716 * ira.c (setup_cover_and_important_classes): Add enum cast.
1717
ff3cb468
VM
17182009-04-24 Vladimir Makarov <vmakarov@redhat.com>
1719
1720 * genpreds.c (write_enum_constraint_num): Output definition of
1721 CONSTRAINT_NUM_DEFINED_P macro.
1722 * ira.c (setup_cover_and_important_classes): Use
1723 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
1724
4f7be849
DD
17252009-04-24 DJ Delorie <dj@redhat.com>
1726
1727 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
1728 __SH2A_SINGLE_ONLY__ also.
1729
735b94a7
SE
17302009-04-24 Steve Ellcey <sje@cup.hp.com>
1731
1732 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
1733 (movdf_internal): Ditto.
1734 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
1735 SFmode and DFmode constants.
1736 (ia64_print_operand): Add 'G' format for printing
1737 floating point constants.
1738
77a30264
RG
17392009-04-24 Richard Guenther <rguenther@suse.de>
1740
1741 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
1742 from unsigned additions.
1743
2b6da65c
JM
17442009-04-24 Joseph Myers <joseph@codesourcery.com>
1745
1746 * c-typeck.c (set_init_index): Allow array designators that are
1747 not integer constant expressions with a pedwarn if pedantic.
1748
f5a17c43
BS
17492009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
1750
1751 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
1752 zero if no overlap in nonzero bits between the operands.
1753
32e8bb8e
ILT
17542009-04-24 Ian Lance Taylor <iant@google.com>
1755
1756 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
1757 (record_dead_and_set_regs): Likewise.
1758 * df.h (struct df_mw_hardreg): Change flags field to int.
1759 (struct df_base_ref): Likewise.
1760 (struct df): Change changeable_flags field to int.
1761 * df-scan.c (df_defs_record): Change clobber_flags to int.
1762 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
1763 constants rather than #define macros.
1764 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
1765 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
1766 (enum dwarf_calling_convention): Likewise.
1767 (enum dwarf_line_number_x_ops): Likewise.
1768 (enum dwarf_call_frame_info): Likewise.
1769 (enum dwarf_source_language): Likewise.
1770 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
1771 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
1772 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
1773 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
1774 * genrecog.c (maybe_both_true_2): Change c to int.
1775 (write_switch): Likewise. Add cast to enum type.
1776 * gimplify.c (gimplify_omp_for): Handle return values from
1777 gimplify_expr using MIN rather than bitwise or.
1778 (gimplify_expr): Add cast to enum type.
1779 * ipa-prop.c (update_jump_functions_after_inlining): Change
1780 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
1781 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
1782 Add casts to enum type.
32e8bb8e
ILT
1783 (setup_cover_and_important_classes): Change cl to int. Add casts
1784 to enum type.
1785 (setup_class_translate): Change cl and mode to int.
1786 (ira_init_once): Change mode to int.
1787 (free_register_move_costs): Likewise.
1788 (setup_prohibited_mode_move_regs): Add casts to enum type.
1789 * langhooks.c (add_builtin_function_common): Rework assertion that
1790 value fits bitfield.
1791 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
1792 * omega.c (omega_do_elimination): Avoid math on enum types.
1793 * optabs.c (expand_vec_shift_expr): Remove casts to int.
1794 * opts.c (set_debug_level): Change 2 to enum constant. Use new
1795 int local to handle integral_argment value.
1796 * regmove.c (try_auto_increment): Change PUT_MODE to
1797 PUT_REG_NOTE_KIND.
1798 * reload.c (push_secondary_reload): Add casts to enum type.
1799 (secondary_reload_class, find_valid_class): Likewise.
1800 * reload1.c (emit_input_reload_insns): Likewise.
1801 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
1802 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
1803 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
1804 constant.
1805 * tree.c (build_common_builtin_nodes): Add casts to enum type.
1806 * tree-complex.c (complex_lattice_t): Typedef to int rather than
1807 enum type.
1808 (expand_complex_libcall): Add casts to enum type.
1809 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
1810 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
1811 with ERROR_MARK, not NUM_TREE_CODES.
1812 (vect_create_epilog_for_reduction): Likewise.
1813 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 1814 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
1815 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
1816 enum machine_mode.
1817 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
1818 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 1819 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
1820 * var-tracking.c (get_init_value): Change return type to enum
1821 var_init_status.
1822 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
1823 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
1824 arm_fp_model.
1825 (arm_override_options): Add casts to enum type.
1826 (arm_emit_tls_decoration): Likewise.
1827 * config/i386/i386.c (ix86_function_specific_restore): Add casts
1828 to enum type.
1829 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
1830 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
1831 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
1832 enum type.
1833 * config/s390/s390.c (code_for_builtin_64): Change to array of
1834 enum insn_code.
1835 (code_for_builtin_31): Likewise.
1836 (s390_expand_builtin): Change code_for_builtin to enum insn_code
1837 const *.
1838 * config/sparc/sparc.c (sparc_override_options): Change value
1839 field in struct code_model to enum cmodel. In initializer change
1840 0 to NULL and add cast to enum type.
1841
1842 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
1843 Change all callers. Issue a -Wc++-compat warning using
1844 lhs_origtype if necessary.
1845 (convert_for_assignment): Issue -Wc++-compat warnings about
1846 invalid conversions to enum type on assignment.
1847 * c-common.h (build_modify_expr): Update declaration.
1848
ac4fc08a
NC
18492009-04-24 Nick Clifton <nickc@redhat.com>
1850
1851 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
1852 (function_arg_advance): Likewise.
1853 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
1854 5th alternative.
1855
f22e891a
AK
18562009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
1857
1858 * config/s390/constraints.md ('I', 'J'): Fix condition.
1859
ad58aabe
DN
18602009-04-24 Diego Novillo <dnovillo@google.com>
1861
1862 * gengtype-parse.c (parse_error): Add newline after message.
1863
879a4a01
L
18642009-04-24 H.J. Lu <hongjiu.lu@intel.com>
1865
1866 * config/i386/sse.md (avxmodesuffixs): Removed.
1867 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
1868 (*avx_pinsr<ssevecsize>): This.
1869
f63426af
BS
18702009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
1871
1872 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
1873 follow chains of regs with a single definition, and allow expressions
1874 that are function_invariant_p.
ce72fe6c 1875 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 1876
30349c74
PB
18772009-04-24 Paolo Bonzini <bonzini@gnu.org>
1878
1879 PR middle-end/39867
1880 * fold-const.c (fold_cond_expr_with_comparison): When folding
1881 > and >= to MAX, make sure the MAX uses the same type as the
1882 comparison's operands.
1883
8d8256c1
NC
18842009-04-24 Nick Clifton <nickc@redhat.com>
1885
1886 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
1887 addressing for DImode accesses.
1888 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 1889 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 1890
6216f94e
JJ
18912009-04-24 Jakub Jelinek <jakub@redhat.com>
1892
1893 PR rtl-optimization/39794
1894 * alias.c (canon_true_dependence): Add x_addr argument.
1895 * rtl.h (canon_true_dependence): Adjust prototype.
1896 * cse.c (check_dependence): Adjust canon_true_dependence callers.
1897 * cselib.c (cselib_invalidate_mem): Likewise.
1898 * gcse.c (compute_transp): Likewise.
1899 * dse.c (scan_reads_nospill): Likewise.
1900 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
1901 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
1902 canon_base_addr of the group, plus optional offset.
1903 (struct group_info): Rename canon_base_mem to
1904 canon_base_addr.
1905 (get_group_info): Set canon_base_addr to canon_rtx of base, not
1906 canon_rtx of base_mem.
1907
6de7a512
PB
19082009-04-23 Paolo Bonzini <bonzini@gnu.org>
1909
1910 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
1911 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
1912
4a3a2376
UW
19132009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1914
1915 * config/spu/spu-builtins.h: Delete file.
1916
1917 * config/spu/spu.h (enum spu_builtin_type): Move here from
1918 spu-builtins.h.
1919 (struct spu_builtin_description): Likewise. Add GTY marker.
1920 Do not use enum spu_function_code or enum insn_code.
1921 (spu_builtins): Add extern declaration.
1922
1923 * config/spu/spu.c: Do not include "spu-builtins.h".
1924 (enum spu_function_code, enum spu_builtin_type_index,
1925 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
1926 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
1927 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
1928 unsigned_V2DI_type_node): Move here from spu-builtins.h.
1929 (spu_builtin_types): Make static. Add GTY marker.
1930 (spu_builtins): Add extern declaration with GTY marker.
1931 Include "gt-spu.h".
1932
1933 * config/spu/spu-c.c: Do not include "spu-builtins.h".
1934 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
1935 Check programmatically whether all parameters are scalar.
1936
1937 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
1938
bbaba73f
EB
19392009-04-23 Eric Botcazou <ebotcazou@adacore.com>
1940
1941 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
1942 assignment from the constructor either if the target is volatile.
1943
ee93c1c6
DJ
19442009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
1945
1946 * config/arm/arm.md (insv): Do not share operands[0].
1947
b2f21330
NS
19482009-04-23 Nathan Sidwell <nathan@codesourcery.com>
1949
1950 * config/vxlib-tls.c (active_tls_threads): Delete.
1951 (delete_hook_installed): New.
1952 (tls_delete_hook): Don't delete the delete hook.
1953 (tls_destructor): Delete it here.
1954 (__gthread_set_specific): Adjust installing the delete hook.
1955 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
1956 __gthread_leave_tsd_dtor_context.
1957
4782dfa7
RAE
19582009-04-23 Rafael Avila de Espindola <espindola@google.com>
1959
1960 * c-format.c (gcc_tdiag_char_table): Add support for %E.
1961
bf758008
UB
19622009-04-23 Uros Bizjak <ubizjak@gmail.com>
1963
1964 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
1965 enum type.
1966 (alpha_rtx_costs): Ditto.
1967 (emit_unlikely_jump): Use add_reg_note.
1968 (emit_frame_store_1): Ditto.
1969 (alpha_expand_prologue): Ditto.
1970 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1971 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
1972
7323a100
NC
19732009-04-23 Nick Clifton <nickc@redhat.com>
1974
1975 * config/v850/v850.md (epilogue): Remove suppressed code.
1976 (return): Rename to return_simple and remove test of frame size.
1977 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
1978 to gen_return_simple.
1979
360032ba
JY
19802009-04-22 Jing Yu <jingyu@google.com>
1981
1982 PR testsuite/39781
1983 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
1984
53650abe
AP
19852009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
1986
1987 PR C/31499
1988 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
1989 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
1990 value is a VECTOR_CST, the element type is the element type of the
1991 vector.
1992
89043e8a
DD
19932009-04-22 DJ Delorie <dj@redhat.com>
1994
1995 * config/m32c/m32c.h: Update GTY annotations to new syntax.
1996
023f059b
JJ
19972009-04-22 Jakub Jelinek <jakub@redhat.com>
1998
1999 * alias.c (find_base_term): Move around LO_SUM case, so that
2000 CONST falls through into PLUS/MINUS handling.
2001
2c0eba5a
JJ
2002 PR c/39855
2003 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
2004 into 0, use omit_one_operand.
2005
9a461028
BE
20062009-04-23 Ben Elliston <bje@au.ibm.com>
2007
2008 * config/rs6000/linux-unwind.h (get_regs): Remove type
2009 puns. Change the type of `pc' to an array of unsigned ints and
2010 update all users. Constify frame24.
2011
653e2568
DD
20122009-04-22 DJ Delorie <dj@redhat.com>
2013
2014 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
2015 declarations before code.
2016 (current_function_special_page_vector): Likewise.
2017 (m32c_expand_insv): Silence a warning.
2018
60839f5d 20192009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
2020
2021 * alias.c: Update GTY annotations to new syntax.
2022 * basic-block.h: Likewise.
2023 * bitmap.h: Likewise.
2024 * c-common.h: Likewise.
2025 * c-decl.c: Likewise.
2026 * c-parser.c: Likewise.
2027 * c-pragma.c: Likewise.
2028 * c-tree.h: Likewise.
2029 * cfgloop.h: Likewise.
2030 * cgraph.h: Likewise.
2031 * config/alpha/alpha.c: Likewise.
2032 * config/arm/arm.h: Likewise.
2033 * config/avr/avr.h: Likewise.
2034 * config/bfin/bfin.c: Likewise.
2035 * config/cris/cris.c: Likewise.
2036 * config/darwin.c: Likewise.
2037 * config/frv/frv.c: Likewise.
2038 * config/i386/i386.c: Likewise.
2039 * config/i386/i386.h: Likewise.
2040 * config/i386/winnt.c: Likewise.
2041 * config/ia64/ia64.h: Likewise.
2042 * config/iq2000/iq2000.c: Likewise.
2043 * config/mips/mips.c: Likewise.
2044 * config/mmix/mmix.h: Likewise.
2045 * config/pa/pa.c: Likewise.
2046 * config/pa/pa.h: Likewise.
2047 * config/rs6000/rs6000.c: Likewise.
2048 * config/s390/s390.c: Likewise.
2049 * config/sparc/sparc.c: Likewise.
2050 * config/xtensa/xtensa.c: Likewise.
2051 * cselib.h: Likewise.
2052 * dbxout.c: Likewise.
2053 * dwarf2out.c: Likewise.
2054 * except.c: Likewise.
2055 * except.h: Likewise.
2056 * fixed-value.h: Likewise.
2057 * function.c: Likewise.
2058 * function.h: Likewise.
2059 * gimple.h: Likewise.
2060 * integrate.c: Likewise.
2061 * optabs.c: Likewise.
2062 * output.h: Likewise.
2063 * real.h: Likewise.
2064 * rtl.h: Likewise.
2065 * stringpool.c: Likewise.
2066 * tree-data-ref.c: Likewise.
2067 * tree-flow.h: Likewise.
2068 * tree-scalar-evolution.c: Likewise.
2069 * tree-ssa-address.c: Likewise.
2070 * tree-ssa-alias.h: Likewise.
2071 * tree-ssa-operands.h: Likewise.
2072 * tree.c: Likewise.
2073 * tree.h: Likewise.
2074 * varasm.c: Likewise.
2075 * varray.h: Likewise.
2076 * vec.h: Likewise.
bf758008 2077 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
2078 * doc/gty.texi: Update GTY documentation to new syntax.
2079 * gengtype-lex.l: Enforce attribute-like syntax for GTY
2080 annotations on structs.
2081 * gengtype-parse.c: Likewise.
2082
a123d175
MH
20832009-04-22 Mark Heffernan <meheff@google.com>
2084
bf758008 2085 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 2086
4c7c486a
KH
20872009-04-22 Kazu Hirata <kazu@codesourcery.com>
2088
2089 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
2090 where appropriate.
2091
6e782a29
KH
20922009-04-22 Kazu Hirata <kazu@codesourcery.com>
2093
2094 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
2095 the same as a PLUS without a shift. Increase the cost of a
2096 CONST_INT in MULT.
2097
38d2336a
MLI
20982009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2099
2100 * Makefile.in: Update dependencies.
bf758008 2101 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
2102 * errors.h: Remove bogus comment about compatibility.
2103 (warning): Update declaration.
2104 * genautomata.c: Update all calls to warning.
2105 * gimple.c: Do not include errors.h. Include toplev.h.
2106 * tree-ssa-structalias.c: Do not include errors.h.
2107 * omega.c: Likewise.
2108 * tree-ssa-reassoc.c: Likewise.
2109 * config/spu/spu-c.c: Likewise.
2110 * config/spu/t-spu-elf: Update dependencies.
2111
aea4deba
RG
21122009-04-22 Richard Guenther <rguenther@suse.de>
2113
2114 PR tree-optimization/39824
2115 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
2116 make sure the types are compatible.
2117
cfc93532
MLI
21182009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2119
2120 PR c++/14875
2121 * c-common.c (c_parse_error): Take a token_flags parameter.
2122 Use token_type for the token type instead.
2123 Pass token_flags to cpp_type2name.
2124 * c-common.h (c_parse_error): Update declaration.
2125 * c-parser.c (c_parser_error): Pass 0 as token flags.
2126
8632d02a
AB
21272009-04-22 Andrey Belevantsev <abel@ispras.ru>
2128
2129 PR rtl-optimization/39580
2130 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
2131
4c33221c
UW
21322009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2133
2134 * function.c (expand_function_end): Do not emit a jump to the "naked"
2135 return label for fall-through returns.
2136 * except.c (sjlj_emit_function_exit): Always place the call to the
2137 unregister function at the location installed by expand_function_end.
2138
9925bce0
RG
21392009-04-22 Richard Guenther <rguenther@suse.de>
2140
2141 PR tree-optimization/39845
2142 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
2143 (gen_inbound_check): Likewise.
2144
24a40b35
NS
21452009-04-22 Nathan Sidwell <nathan@codesourcery.com>
2146
2147 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
2148 padding for PPC.
2149 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
2150 * config/vxlib.c (__gthread_once): Add race guard for PPC.
2151
6c34a092
PB
21522009-04-22 Paolo Bonzini <bonzini@gnu.org>
2153
2154 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
2155 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
2156 shift counts to avoid out-of-bounds array accesses.
2157
baa48dfa
PB
21582009-04-22 Paolo Bonzini <bonzini@gnu.org>
2159
2160 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
2161 (Pmode): Move above.
2162
7d83f4f5
UB
21632009-04-22 Uros Bizjak <ubizjak@gmail.com>
2164
2165 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
2166 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
2167 GET_CODE macro. Use IN_RANGE macro where appropriate.
2168 * config/alpha/alpha.h: Ditto.
2169 * config/alpha/alpha.md: Ditto.
2170 * config/alpha/constraints.md: Ditto.
2171 * config/alpha/predicates.md: Ditto.
2172
3ad606bc
PB
21732009-04-22 Paolo Bonzini <bonzini@gnu.org>
2174
2175 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
2176 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2177 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2178 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2179 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2180 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2181 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2182 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2183 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2184 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2185 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2186 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2187 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2188 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2189 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2190 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2191 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2192 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2193 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2194 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2195 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2196 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2197 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2198 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2199 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2200 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2201 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2202
3cabd6d1
LB
22032009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2204
2205 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
2206 references from comments.
2207 * cfgbuild.c: (count_basic_blocks): Delete.
2208 (find_basic_blocks_1): Delete.
2209 (find_basic_blocks): Delete.
2210 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 2211 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
2212 * except.h (finish_eh_generation): Delete.
2213 * basic-block.h (find_basic_blocks): Delete.
2214 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
2215
270d1bcd
DK
22162009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
2217
2218 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
2219 (sdbout_parms): Likewise.
2220
b757d36f
KK
22212009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
2222
2223 * config/sh/sh.c (prepare_cbranch_operands): Use
2224 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
2225 (expand_cbranchdi4): Likewise.
2226 (from_compare): Add cast to enum type.
2227 (expand_cbranchsi4): Use add_reg_note.
2228 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
2229 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
2230 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
2231 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2232 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
2233 instead of CODE_FOR_nothing.
2234 (cbranchdi4): Likewise. Fix the order of arguments for
2235 gen_rtx_fmt_ee.
2236 (push_fpscr): Use add_reg_note.
2237 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
2238 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
2239
ad41bd84
JM
22402009-04-21 Joseph Myers <joseph@codesourcery.com>
2241
2242 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
2243 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2244 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2245 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
2246 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
2247 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
2248 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
2249 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
2250 config/alpha/x-vms, config/arc/t-arc,
2251 config/arm/README-interworking, config/arm/arm-c.c,
2252 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
2253 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
2254 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
2255 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
2256 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
2257 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
2258 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
2259 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
2260 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
2261 config/cris/t-elfmulti, config/crx/t-crx,
2262 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
2263 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
2264 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
2265 config/h8300/t-h8300, config/i386/athlon.md,
2266 config/i386/darwin-libgcc.10.4.ver,
2267 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
2268 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
2269 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
2270 config/i386/t-linux64, config/i386/t-nwld,
2271 config/i386/t-rtems-i386, config/i386/t-sol2-10,
2272 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
2273 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
2274 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
2275 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
2276 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
2277 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
2278 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
2279 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
2280 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
2281 config/m68k/t-uclinux, config/mcore/t-mcore,
2282 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
2283 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
2284 config/mips/crtn.asm, config/mips/irix-crti.asm,
2285 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
2286 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
2287 config/mips/mips-fixed.md, config/mips/sb1.md,
2288 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
2289 config/mips/t-iris6, config/mips/t-isa3264,
2290 config/mips/t-libgcc-mips16, config/mips/t-linux64,
2291 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
2292 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
2293 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
2294 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
2295 config/mn10300/t-linux, config/mn10300/t-mn10300,
2296 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
2297 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
2298 config/picochip/libgccExtras/clzsi2.asm,
2299 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
2300 config/rs6000/darwin-libgcc.10.4.ver,
2301 config/rs6000/darwin-libgcc.10.5.ver,
2302 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
2303 config/rs6000/t-aix43, config/rs6000/t-aix52,
2304 config/rs6000/t-darwin, config/rs6000/t-fprules,
2305 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
2306 config/rs6000/t-lynx, config/rs6000/t-netbsd,
2307 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
2308 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
2309 config/rs6000/t-rtems, config/rs6000/t-spe,
2310 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
2311 config/score/t-score-elf, config/sh/divcost-analysis,
2312 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
2313 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
2314 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
2315 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
2316 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
2317 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
2318 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
2319 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
2320 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
2321 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
2322 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
2323 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
2324 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
2325 limitx.h, version.c, xcoff.h: Add copyright and license notices.
2326 * config/h8300/genmova.sh: Include copyright and license notices
2327 in generated output.
2328 * config/h8300/mova.md: Regenerate.
2329 * doc/install.texi2html: Include word "Copyright" in copyright
2330 notice and use name "Free Software Foundation, Inc.".
2331 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2332 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2333 ChangeLog-2007, ChangeLog-2008: Correct dates.
2334
ca80e52b
EB
23352009-04-21 Eric Botcazou <ebotcazou@adacore.com>
2336
2337 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
2338 NE_EXPR operations as well.
2339 * c-parser.c (c_parser_condition): Do not set location information on
2340 the condition.
2341 (c_parser_conditional_expression): Likewise.
2342 (c_parser_binary_expression): Set location information on operators.
2343 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
2344 TRUTH_NOT_EXPR has been folded.
2345 * fold-const.c (fold_truth_not_expr): Copy location information from
2346 the incoming expression to the outgoing one.
2347 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
2348 recursive calls on the LHS of the operator but pass that of the
2349 operator to recursive calls on the RHS of the operator. Set it
2350 on the COND_EXPR.
2351 (shortcut_cond_expr): Set the locus of the operator on the second
2352 COND_EXPR and that of the expression on the first in degenerate cases.
2353 Pass the locus of the expression to calls to shortcut_cond_r.
2354 Set the locus of the 'then' block on the associated jump, if any.
2355 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
2356 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
2357 expression to call to gimplify_boolean_expr.
2358
35091630
KT
23592009-04-21 Kai Tietz <kai.tietz@onevision.com>
2360
2361 * config.gcc: Add additional configuration for
2362 i686-w64-mingw* and x86_64-w64-mingw* triplet.
2363 * config/i386/mingw-w64.h: New mingw-w64 specific header.
2364 (CPP_SPEC): Redefine for allowing -municode option.
2365 (STARTFILE_SPEC): Likewise.
2366 * config/i386/t-mingw-w64: New.
2367 * config/i386/mingw-w64.opt: New.
2368 (municode): Add new target option.
2369 * doc/invoke.texi (municode): Add documentation for new option.
2370
0267afc4
ILT
23712009-04-21 Ian Lance Taylor <iant@google.com>
2372
2373 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2374 Correct test for number of arguments.
2375 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2376
2ba9daa7
AS
23772009-04-21 Andreas Schwab <schwab@linux-m68k.org>
2378
2379 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
2380 argument of emit_library_call.
2381
ad8a1ac0
RG
23822009-04-21 Richard Guenther <rguenther@suse.de>
2383
2384 PR middle-end/39829
2385 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
2386 inside VIEW_CONVERT_EXPRs.
2387
7156c8ab
MJ
23882009-04-21 Martin Jambor <mjambor@suse.cz>
2389
2390 * tree-switch-conversion.c (build_constructors): Split a long line.
2391 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
2392 (build_one_array): Create assigns of constants if possible, do not
2393 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
2394 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
2395 make_rename_temp. Do not call mark_symbols_for_renaming, call
2396 update_stmt.
2397 (gen_def_assigns): Do not call mark_symbols_for_renaming or
2398 find_new_referenced_vars, call update_stmt.
2399 (gen_inbound_check): Use create_tmp_var and create ssa names manually
2400 instead of calling make_rename_temp. Do not call
2401 find_new_referenced_vars or mark_symbols_for_renaming, call
2402 update_stmt.
2403
2970ccb3
RG
24042009-04-21 Richard Guenther <rguenther@suse.de>
2405
2406 PR tree-optimization/39827
7d83f4f5 2407 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
2408 (tree_ssa_phiprop): Pass the correct array size.
2409
47f402d1
UB
24102009-04-21 Uros Bizjak <ubizjak@gmail.com>
2411
2412 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
2413
1e4ae551
MLI
24142009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
2415
2416 PR 16202
2417 * c-typeck.c (lvalue_p): Move declaration ...
2418 * c-common.h (lvalue_p): ... to here.
2419 * c-common.c (candidate_equal_p): New.
2420 (add_tlist): Use it.
2421 (merge_tlist): Use it.
2422 (warn_for_collisions_1): Likewise.
2423 (warning_candidate_p): Accept more candidates.
2424 (verify_tree): A warning candidate can be an expression. Use
2425 candidate_equal_p.
2426
244609a6
BE
24272009-04-21 Ben Elliston <bje@au.ibm.com>
2428
2429 PR target/5267
2430 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2431 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
2432 options. Remove -mcall-solaris documentation.
2433
9c650d90
MLI
24342009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2435
2436 PR c++/13358
2437 * doc/invoke.texi (-Wlong-long): Update description.
2438 * c-lex (interpret_integer): Only warn if there was no previous
2439 overflow and -Wlong-long is enabled.
2440 * c-decl.c (declspecs_add_type): Drop redundant flags.
2441 * c.opt (Wlong-long): Init to -1.
2442 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
2443 and front-end warn_long_long. Wlong-long only depends on other
2444 flags if it is uninitialized.
2445 * c-parser.c (disable_extension_diagnostics): warn_long_long is
2446 the same for CPP and FE.
2447 (restore_extension_diagnostics): Likewise.
2448
bbbbb16a
ILT
24492009-04-20 Ian Lance Taylor <iant@google.com>
2450
2451 Fix enum conversions which are invalid in C++:
47f402d1
UB
2452 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
2453 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
2454 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
2455 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 2456 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 2457 (dbxout_parms): Likewise.
47f402d1 2458 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
2459 (df_clear_flags): Likewise.
2460 * df-problems.c (df_rd_bb_local_compute_process_def): Change
2461 top_flag parameter to int.
2462 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
2463 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
2464 Remove cast.
bbbbb16a
ILT
2465 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
2466 (df_ref_create_structure, df_def_record_1): Likewise.
2467 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
2468 (df_notes_rescan): Change 0 to VOIDmode in function call.
2469 (df_get_call_refs, df_insn_refs_collect): Likewise.
2470 (df_bb_regs_collect): Likewise.
2471 (df_entry_block_defs_collect): Likewise.
2472 (df_exit_block_uses_collect): Likewise.
2473 * df.h: Update declarations.
2474 * double-int.c (double_int_divmod): Add cast to enum type.
2475 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
2476 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
2477 (based_loc_descr): Likewise.
2478 (loc_descriptor_from_tree_1): Change first_op and second_op to
2479 enum dwarf_location_atom. Add cast to enum type.
2480 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 2481 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
2482 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
2483 (do_store_flag): Likewise.
2484 * fixed-value.h (struct fixed_value): Change mode to enum
2485 machine_mode.
47f402d1 2486 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
2487 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
2488 function call.
2489 (insert_insn_decl, insert_decl, insert_state): Likewise.
2490 (automata_list_finish): Likewise.
2491 * genrecog.c (process_define_predicate): Add cast to enum type.
2492 * gensupport.c (init_predicate_table): Add cast to enum type.
2493 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
2494 function call.
2495 (gimple_build_call_1, gimple_build_label): Likewise.
2496 (gimple_build_goto, gimple_build_asm_1): Likewise.
2497 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 2498 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
2499 (enum fallback): Rename from enum fallback_t.
2500 (fallback_t): Typedef as int.
2501 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
2502 GSI_SAME_STMT in function call.
2503 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
2504 enum type.
2505 (setup_reg_class_relations): Likewise.
47f402d1 2506 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
2507 (setup_prohibited_class_mode_regs): Add cast to enum type.
2508 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 2509 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
2510 (record_address_regs): Change i to enum reg_class.
2511 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
2512 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
2513 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
2514 (GET_MODE_2XWIDER_MODE): Likewise.
2515 (GET_CLASS_NARROWEST_MODE): Likewise.
2516 * omp-low.c (expand_omp_for): Add cast to enum type.
2517 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
2518 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
2519 * postreload.c (reload_cse_simplify_operands): Change rclass local
2520 to enum reg_class.
2521 * predict.c (combine_predictions_for_insn): Change best_predictor
2522 and predictor to enum br_predictor.
2523 (combine_predictions_for_bb): Likewise.
2524 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
2525 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 2526 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
2527 * reginfo.c (init_move_cost): Add casts to enum type.
2528 (init_reg_sets_1, init_fake_stack_mems): Likewise.
2529 * regmove.c (regclass_compatible_p): Change class0 and class1 to
2530 enum reg_class.
2531 * reload.c (find_valid_class): Add casts to enum type.
2532 (push_reload): Change 0 to NO_REGS in function call.
2533 (find_reloads): Change this_alternative to array of enum
2534 reg_class. Remove some now-unnecessary casts.
2535 (make_memloc): Change 0 to VOIDmode in function call.
2536 * reload1.c (reload): Change 0 to VOIDmode in function call.
2537 (eliminate_regs_1, elimination_effects): Likewise.
2538 (eliminate_regs_in_insn): Likewise.
2539 (emit_input_reload_insns): Add cast to enum type.
2540 (delete_output_reload): Change 0 to VOIDmode in function call.
2541 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
2542 to enum type in function call.
2543 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
2544 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 2545 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
2546 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
2547 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
2548 (dump_function): Likewise.
2549 * tree-dump.h: Update declarations.
2550 * tree-pass.h: Update declarations.
2551 * varasm.c (assemble_integer): Change mclass to enum mode_class.
2552 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
2553 enum type.
2554 (arm_rtx_costs_1): Correct parenthesization.
2555 (arm_rtx_costs): Add casts to enum type.
2556 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
2557 (vfp_emit_fstmd): Use add_rg_note.
2558 (emit_multi_reg_push, emit_sfm): Likewise.
2559 (thumb_set_frame_pointer): Likewise.
2560 (arm_expand_prologue): Likewise.
2561 (arm_regno_class): Change return type to enum reg_class.
2562 (thumb1_expand_prologue): Use add_reg_note.
2563 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
2564 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
2565 in function call.
2566 * config/arm/gentune.sh: Add cast to enum type.
2567 * config/arm/arm-tune.md: Rebuild.
2568 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
2569 (ix86_split_fp_branch, predict_jump): Likewise.
2570 (ix86_expand_multi_arg_builtin): Change sub_code from enum
2571 insn_code to enum rtx_code.
2572 (ix86_builtin_vectorized_function): Add cast to enum type.
2573 * config/i386/i386.md (truncdfsf2): Change slot to enum
2574 ix86_stack_slot.
2575 (truncxf<mode>2, isinf<mode>2): Likewise.
2576 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
2577 enum type.
2578 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
2579 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
2580 (insert_bundle_state): Change 1 to INSERT in function call.
2581 (ia64_add_bundle_selector_before): Likewise.
2582 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
2583 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
2584 (restore_stack_nonlocal): Likewise.
2585 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
2586 function call.
2587 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
2588 function call.
2589 (mips_rtx_costs): Likewise.
2590 (mips_override_options): Add casts to enum type.
2591 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
2592 in function call.
2593 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
2594 (store_reg, set_reg_plus_d): Likewise.
2595 (hppa_expand_prologue, hppa_profile_hook): Likewise.
2596 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2597 cast to enum type.
2598 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
2599 function call.
2600 (emit_unlikely_jump): Use add_reg_note.
2601 (rs6000_emit_allocate_stack): Likewise.
2602 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
2603 (output_toc): Change 1 to INSERT in function call.
2604 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
2605 (rs6000_initialize_trampoline): Likewise.
2606 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
2607 function call.
2608 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
2609 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
2610 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
2611 (save_gprs): Use add_reg_note.
2612 (s390_emit_prologue): Likewise.
47f402d1 2613 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
2614 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
2615 (sparc_fold_builtin): Add cast to enum type.
2616 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
2617 enum insn_code.
2618 (spu_expand_prologue): Use add_reg_note.
47f402d1 2619 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
2620
26212009-04-20 Ian Lance Taylor <iant@google.com>
2622
2623 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
2624 (c_parser_postfix_expression_after_primary): Get VEC for list of
2625 arguments. Get original types of arguments. Call
2626 build_function_call_vec.
2627 (cached_expr_list_1, cached_expr_list_2): New static variables.
2628 (c_parser_expr_list): Change return type to VEC *. Add
2629 p_orig_types parameter. Change all callers.
2630 (c_parser_release_expr): New static function.
2631 (c_parser_vec_to_tree_list): New static function.
2632 * c-typeck.c (build_function_call): Rewrite to build a VEC and
2633 call build_function_call_vec.
2634 (build_function_call_vec): New function, based on old
2635 build_function_call.
2636 (convert_arguments): Remove nargs and argarray parameters. Change
2637 values to a VEC. Add origtypes parameter.
47f402d1 2638 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
2639 (convert_for_assignment): Add origtype parameter. Change all
2640 callers. If warn_cxx_compat, check for conversion to an enum
2641 type when calling a function.
2642 (store_init_value): Add origtype parameter. Change all callers.
2643 (digest_init): Likewise.
2644 (struct init_node): Add origtype field.
2645 (add_pending_init): Add origtype parameter. Change all callers.
2646 (output_init_element): Likewise.
2647 (output_pending_init_elements): Pass origtype from init_node to
2648 output_init_element.
f28a61ab 2649 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
2650 output_init_element.
2651 (c_finish_return): Add origtype parameter. Change all callers.
2652 * c-common.c (sync_resolve_size): Change params to VEC *. Change
2653 caller.
2654 (sync_resolve_params): Likewise.
47f402d1 2655 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 2656 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 2657 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
2658 * c-decl.c (finish_decl): Add origtype parameter. Change all
2659 callers. Call build_function_call_vec rather than
2660 build_function_call for cleanup.
2661 * c-tree.h: Update declarations.
2662 * c-common.h: Update declarations.
2663 * stub-objc.c (objc_rewrite_function_call): Change parameter from
2664 params to first_param.
2665 * target.h (struct gcc_target): Change resolve_overloaded_builtin
2666 params parameter from tree to void *.
2667 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2668 Change arglist parameter to have type void *, and to be a pointer
2669 to a VEC.
2670 * config/rs6000/rs6000-protos.h
2671 (altivec_resolve_overloaded_builtin): Update declaration.
2672 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
2673 fnargs parameter to have type void *, and to be a pointer to a
2674 VEC. Call build_function_call_vec instead of
2675 build_function_call.
47f402d1 2676 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 2677
6ff078d4 26782009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 2679 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
2680 H.J. Lu <hongjiu.lu@intel.com>
2681
2682 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
2683
2684 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
2685 (IX86_LEA_PRIORITY): Likewise.
2686 (distance_non_agu_define): New function.
2687 (distance_agu_use): Likewise.
2688 (ix86_lea_for_add_ok): Likewise.
2689 (ix86_dep_by_shift_count): Likewise.
2690
2691 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
2692 should split for LEA.
2693
2694 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
2695 function.
2696 (ix86_dep_by_shift_count): Likewise.
2697
87a5b4cc
RG
26982009-04-20 Richard Guenther <rguenther@suse.de>
2699
2700 * expr.c (handled_component_p): Move ...
2701 * tree.h (handled_component_p): ... here.
2702 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
2703 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
2704 and REALPART_EXPR to be in one group.
2705
438c239d
RG
27062009-04-20 Richard Guenther <rguenther@suse.de>
2707
2708 * basic-block.h (get_all_dominated_blocks): Declare.
2709 * dominance.c (get_all_dominated_blocks): New function.
2710 * tree-cfg.c (get_all_dominated_blocks): Remove.
2711 (remove_edge_and_dominated_blocks): Adjust.
2712 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
2713 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
2714 instead of recursing.
2715
fed5ae11
DK
27162009-04-20 Doug Kwan <dougkwan@google.com>
2717
2718 * cgraph.h (cgraph_node_ptr): New type for vector functions.
2719 (struct cgraph_node_set_def): New type.
2720 (cgraph_node_set) New type. Also declare vector functions.
2721 (struct cgraph_node_set_element_def): New type.
2722 (cgraph_node_set_element): Ditto.
2723 (cgraph_node_set_iterator): New iterator type.
2724 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
2725 cgraph_node_set_remove, dump_cgraph_node_set,
2726 debug_cgraph_node_set): New prototypes.
2727 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
2728 cgraph_node_set_size): New inlines.
2729 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
2730 including cgraph.h.
2731 (struct ipa_opt_pass): Add struct cgraph_node_set_def
2732 argument to function 'write_summary'.
2733 * ipa.c: Include ggc.h.
2734 (hash_cgraph_node_set_element,
2735 eq_cgraph_node_set_element, cgraph_node_set_new,
2736 cgraph_node_set_add, cgraph_node_set_remove,
2737 cgraph_node_set_find, dump_cgraph_node_set,
2738 debug_cgraph_node_set): New functions.
2739 * Makefile.in (ipa.o): Add dependency on GGC_H.
2740
c4551b28
IR
27412009-04-20 Ira Rosen <irar@il.ibm.com>
2742
2743 PR tree-optimization/39675
2ba9daa7 2744 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
2745 check of the return code of vect_schedule_slp. Check that
2746 stmt_vec_info still exists for the statement, before checking its
2747 vectorization type.
c4551b28 2748
21a495fb
MM
27492009-04-20 Michael Matz <matz@suse.de>
2750
2751 * Makefile.in (generated_files): Take out $(simple_generated_c).
2752
8e208874
DK
27532009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
2754
2755 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
2756 (UINTPTR_TYPE): Likewise.
2757
a45e580b
JM
27582009-04-19 Joseph Myers <joseph@codesourcery.com>
2759
2760 PR c/37481
2761 * c-typeck.c (digest_init): Check for initializing an array with a
2762 string literal.
2763
20845d35
JM
27642009-04-19 Joseph Myers <joseph@codesourcery.com>
2765
2766 PR c/19771
2767 * c-semantics.c (pop_stmt_list): Propagate
2768 STATEMENT_LIST_HAS_LABEL to parent statement list.
2769
28143fdd
AN
27702009-04-19 Adam Nemet <anemet@caviumnetworks.com>
2771
2772 * config/mips/mips.h (mips_tune_attr): New macro.
2773 * config/mips/mips.md (cpu): Use it.
2774
da377db9
JM
27752009-04-19 Joseph Myers <joseph@codesourcery.com>
2776
2777 PR c/38243
2778 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
2779 declaring a tag.
2780
3baf459d
DN
27812009-04-19 Diego Novillo <dnovillo@google.com>
2782
2783 * toplev.c (compile_file): Move call to coverage_finish ...
2784 * cgraphunit.c (ipa_passes): ... here.
2785 Call cgraph_process_new_functions.
2786 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
2787 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
2788
b6fa5b01
JH
27892009-04-19 Jan Hubicka <jh@suse.cz>
2790
47f402d1
UB
2791 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
2792 cfun.
b6fa5b01
JH
2793 (dump_cgraph_node): Dump can throw external flag.
2794 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
2795
ca409efd
MLI
27962009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2797
2798 PR c/32061
2799 PR c++/36954
2800 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
2801 * common.opt (Wlogical-op): Move from here...
2802 * c.opt (Wlogical-op): ... to here.
2803 * c-typeck.c (parser_build_binary_op): Update call to
2804 warn_logical_operator.
2805 * c-opts.c (c_common_post_options): Enable warn_logical_op with
2806 extra_warnings.
2807 * c-common.c (warn_logical_op): Update.
2808 * c-common.h (warn_logical_op): Update declaration.
2809
9db4cdd3
EB
28102009-04-19 Eric Botcazou <ebotcazou@adacore.com>
2811
2812 * tree.c (protected_set_expr_location): Fix formatting.
2813
f37acdf9
JM
28142009-04-18 Joseph Myers <joseph@codesourcery.com>
2815
2816 PR c/27676
2817 * c-typeck.c (readonly_warning): new.
2818 (build_unary_op, build_modify_expr): Use readonly_warning for
2819 storing into something readonly but not const-qualified.
2820
2b4b7036
JM
28212009-04-18 Joseph Myers <joseph@codesourcery.com>
2822
2823 PR c/22367
2824 * c-typeck.c (build_unary_op): Check for taking address of
2825 expression of type void.
2826
3ce62965
JM
28272009-04-18 Joseph Myers <joseph@codesourcery.com>
2828
2829 PR c/35210
2830 * c-typeck.c (build_function_call): Check for calling a function
2831 with qualified void return types. Call require_complete_type when
2832 generating a trap.
2833
2505c5ed
JH
28342009-04-18 Jan Hubicka <jh@suse.cz>
2835
2836 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
2837 Set nothrow flag.
2838 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
2839 can_throw_external flag.
2840 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
2841 * ipa-pure-const.c (ignore_edge): New function.
2842 (propagate): Compute order for NOTHROW computation; set NOTHROWs
2843 only over can_throw_external edges.
2844 (local_pure_const): Add nothrow flag.
2845 * ipa-utils.c (searchc): Add ignore_edge callback.
2846 (ipa_utils_reduced_inorder): Add ignore_edge callback.
2847 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
2848 (set_nothrow_function_flags): Update cgraph.
2849 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
2850
2586ba4b
RG
28512009-04-18 Richard Guenther <rguenther@suse.de>
2852
2853 PR middle-end/39804
2854 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
2855 (fold_stmt): ... this and ...
2856 (fold_stmt_inplace): ... this.
2857 (fold_stmt_1): Fold references in calls and asms.
2858 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
2859
1eefab17
KH
28602009-04-18 Kazu Hirata <kazu@codesourcery.com>
2861
2862 * tree-vrp.c (ssa_name_nonzero_p): Remove.
2863 * tree.h: Remove the prototype for ssa_name_nonzero_p.
2864
aa424b01
KH
28652009-04-18 Kazu Hirata <kazu@codesourcery.com>
2866
2867 * tree.c (function_args_count): Remove.
2868 * tree.h: Remove the prototype for function_args_count.
2869
613a896b
KH
28702009-04-18 Kazu Hirata <kazu@codesourcery.com>
2871
2872 * tree-iterator.c (expr_only): Remove.
2873 * tree.h: Remove the prototype for expr_only.
2874
579e694c
KH
28752009-04-18 Kazu Hirata <kazu@codesourcery.com>
2876
2877 * reginfo.c (cannot_change_mode_set_regs): Remove.
2878 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
2879
ee7e3ad3
AS
28802009-04-08 Anatoly Sokolov <aesok@post.ru>
2881
2882 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
2883 whether operands 0 and 1 overlaps.
2884
92ef7fb1
MLI
28852009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
2886
2887 PR middle-end/36902
2888 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
2889 pointer. Use warning_at instead of warning.
2890 (search_for_addr_array): Likewise.
2891 (check_array_bounds): Likewise.
2892 (check_all_array_refs): Check that the incoming edge is not in the
2893 list of edges to be removed.
2894 (check_all_array_refs): Avoid the temporal pointer.
2895 (vrp_visit_cond_stmt): Fix typo.
2896 (simplify_switch_using_ranges): Handle the case where the switch
2897 index is an integer constant.
2898
0e097268
AN
28992009-04-18 Adam Nemet <anemet@caviumnetworks.com>
2900
2901 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
2902
c782f1dd
KH
29032009-04-18 Kazu Hirata <kazu@codesourcery.com>
2904
2905 * doc/extend.texi, doc/invoke.texi: Fix typos.
2906
668fb0e8
CC
29072009-04-17 Cary Coutant <ccoutant@google.com>
2908
2909 * tree-flow-inline.h (get_lineno): Fix inverted test.
2910
4d4014c1
DN
29112009-04-17 Diego Novillo <dnovillo@google.com>
2912
2913 * tree-ssa-pre.c (create_expression_by_pieces): Remove
2914 assertion for AVAIL_OUT.
2915
2984e1b6
MF
29162009-04-17 Mike Frysinger <vapier@gentoo.org>
2917
2918 PR target/38627
2919 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
2920 * config/sh/linux-atomic.asm: Likewise.
2921
9994a182
DN
29222009-04-17 Diego Novillo <dnovillo@google.com>
2923
2924 * except.c (debug_eh_tree): New.
2925 (struct eh_region, struct eh_status): Move ...
2926 * except.h: ... here.
2927 (add_type_for_runtime): Declare extern.
2928 (lookup_type_for_runtime): Likewise.
2929 (debug_eh_tree): Declare.
2930 * Makefile.in (GTFILES): List except.h before except.c
2931
07485407
DN
29322009-04-17 Diego Novillo <dnovillo@google.com>
2933
47f402d1 2934 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
2935 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2936 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
2937 (find_vars_r): ... here.
2938 * tree-flow.h (find_referenced_vars_in): Declare.
2939 * tree-ssa-pre.c (create_expression_by_pieces): Assert
2940 that AVAIL_OUT exists for BLOCK.
2941 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
2942 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
2943 (tree-parloops.o): Likewise.
2944
4e53d196
SB
29452009-04-17 Simon Baldwin <simonb@google.com>
2946
2947 * toplev.c (default_tree_printer): Add handling for %E format.
2948
413d3aa8
DN
29492009-04-17 Diego Novillo <dnovillo@google.com>
2950
47f402d1
UB
2951 * tree-pretty-print.c (dump_generic_node): Add break after
2952 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
2953 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
2954 FUNCTION_TYPE together. Call print_struct_decl when printing
2955 structures and TDF_SLIM is not given.
413d3aa8
DN
2956 (print_struct_decl): Fix logic for detecting recursion.
2957
5a691e98
RAE
29582009-04-17 Rafael Avila de Espindola <espindola@google.com>
2959
2960 PR 31567
2961 * gcc.c (create_at_file): New.
2962 (compile_input_file_p): New.
2963 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
2964 * main.c (main): Update call to toplev_main.
2965 * toplev.c (toplev_main): Change signature. Call expandargv.
2966 * toplev.h (toplev_main): Change signature.
2967
9eacf7a6
EB
29682009-04-17 Eric Botcazou <ebotcazou@adacore.com>
2969
2970 * dwarf2out.c (field_byte_offset): Use the type size as the field size
2971 if the latter is not constant.
2972
58298177
DE
29732009-04-17 David Edelsohn <edelsohn@gnu.org>
2974
2975 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
2976
5b4c43d7
EB
29772009-04-17 Eric Botcazou <ebotcazou@adacore.com>
2978
2979 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
2980 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
2981
b51605c4
RG
29822009-04-17 Richard Guenther <rguenther@suse.de>
2983
2984 * tree-ssa-structalias.c (get_constraint_for_component_ref):
2985 Handle component references view-converting an invariant address.
2986
9e3be889
AN
29872009-04-17 Adam Nemet <anemet@caviumnetworks.com>
2988
2989 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
2990 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
2991 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
2992 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
2993 Use @deftypevr rather than @deftypevar.
2994
7c3e9dc3
RG
29952009-04-17 Richard Guenther <rguenther@suse.de>
2996
47f402d1 2997 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
2998 (get_prop_source_stmt): Likewise.
2999 (can_propagate_from): Likewise.
3000
aca600aa
AS
30012009-04-17 Andrew Stubbs <ams@codesourcery.com>
3002
3003 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
3004 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
3005 (--with-multilib-list): Add default value.
3006 * configure: Regenerate.
3007 * Makefile.in (TM_ENDIAN_CONFIG): Define.
3008 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
3009 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
3010 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
3011 Don't add default cpu to multilib list unnecessarily, but do enable
3012 the relevant compiler option..
3013 Add support for --with-multilib-list=<blank> and
3014 --with-multilib-list=!<somelib> to supress unwanted multilibs.
3015 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
3016 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
3017 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
3018 TM_MULTILIB_CONFIG.
3019 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
3020 (MULTILIB_OSDIRNAMES): New variable.
3021 * config/sh/t-1e: Delete file.
3022 * config/sh/t-mlib-sh1: Delete file.
3023 * config/sh/t-mlib-sh2: Delete file.
3024 * config/sh/t-mlib-sh2a: Delete file.
3025 * config/sh/t-mlib-sh2a-nofpu: Delete file.
3026 * config/sh/t-mlib-sh2a-single: Delete file.
3027 * config/sh/t-mlib-sh2a-single-only: Delete file.
3028 * config/sh/t-mlib-sh2e: Delete file.
3029 * config/sh/t-mlib-sh3e: Delete file.
3030 * config/sh/t-mlib-sh4: Delete file.
3031 * config/sh/t-mlib-sh4-nofpu: Delete file.
3032 * config/sh/t-mlib-sh4-single: Delete file.
3033 * config/sh/t-mlib-sh4-single-only: Delete file.
3034 * config/sh/t-mlib-sh4a: Delete file.
3035 * config/sh/t-mlib-sh4a-nofpu: Delete file.
3036 * config/sh/t-mlib-sh4a-single: Delete file.
3037 * config/sh/t-mlib-sh4a-single-only: Delete file.
3038 * config/sh/t-mlib-sh4al: Delete file.
3039 * config/sh/t-mlib-sh5-32media: Delete file.
3040 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
3041 * config/sh/t-mlib-sh5-64media: Delete file.
3042 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
3043 * config/sh/t-mlib-sh5-compact: Delete file.
3044 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
3045 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
3046 * doc/install.texi (Options specification): Add
3047 --with-multilib-list and --with-endian.
3048
cf8aba7f
RAE
30492009-04-17 Rafael Avila de Espindola <espindola@google.com>
3050
3051 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
3052 REVISION_c.
3053 (OBJS-common): Add plugin-version.o.
3054 (plugin-version.o): New.
3055 * gcc-plugin.h (plugin_gcc_version): New.
3056 (plugin_default_version_check): New.
3057 (plugin_init_func, plugin_init): Add version argument.
3058 * plugin-version.c: New.
3059 * plugin.c (str_plugin_gcc_version_name): New.
3060 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
3061 pass it to the init function.
3062 (plugin_default_version_check): New.
3063
61e20b90
RG
30642009-04-17 Richard Guenther <rguenther@suse.de>
3065
3066 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
3067 for decl-vs-decl disambiguation.
3068
90c6fd8a
AK
30692009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
3070
3071 * config/s390/s390.h (s390_tune_attr): New macro definition.
3072 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
3073
9fe9fe04
RG
30742009-04-17 Richard Guenther <rguenther@suse.de>
3075
3076 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
3077 (fold_stmt_r): Likewise.
3078 (maybe_fold_reference): New function.
3079 (fold_gimple_assign): Handle cases fold_stmt_r did.
3080 (fold_stmt): Do not use fold_stmt_r.
3081 (fold_stmt_inplace): Likewise.
3082
7e673273
RG
30832009-04-17 Richard Guenther <rguenther@suse.de>
3084
3085 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
3086 (record_equivalences_from_stmt): Remove useless checks and
3087 simplifications.
3088 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
3089 the type is already suitable.
3090
fabf2749
PB
30912009-04-17 Paolo Bonzini <bonzini@gnu.org>
3092
3093 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
3094
68f7b061
UB
30952009-04-17 Uros Bizjak <ubizjak@gmail.com>
3096
3097 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
3098 (CMPtype): Define as __gcc_CMPtype.
3099
532bfb0a
AJ
31002009-04-17 Aurelien Jarno <aurelien@aurel32.net>
3101
3102 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
3103 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
3104
e3ac77ff
RG
31052009-04-17 Richard Guenther <rguenther@suse.de>
3106
3107 PR tree-optimization/39746
3108 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
3109 special-casing for builtins and static variable use/def.
3110 (call_may_clobber_ref_p_1): Likewise.
3111
7072a650
ILT
31122009-04-16 Ian Lance Taylor <iant@google.com>
3113
3114 * df.h: Include "timevar.h".
3115 (struct df_problem): Change tv_id field to timevar_id_t.
3116 * tree-pass.h: Include "timevar.h".
3117 (struct opt_pass): Change tv_id field to timevar_id_t.
3118 * timevar.h (timevar_id_t): Define TV_NONE.
3119 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
3120 TV_NONE rather than tv_id != 0.
3121 (execute_one_pass): Likewise.
3122 * Makefile.in (DF_H): Add $(TIMEVAR_H).
3123 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
3124 dependencies to $(TREE_PASS_H).
3125 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
3126 to TV_NONE.
3127 (pass_branch_target_load_optimize2): Likewise.
3128 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
3129 (pass_outof_cfg_layout_mode): Likewise.
3130 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
3131 (pass_rebuild_cgraph_edges): Likewise.
3132 (pass_remove_cgraph_callee_edges): Likewise.
3133 * df-core.c (pass_df_initialize_opt): Likewise.
3134 (pass_df_initialize_no_opt): Likewise.
3135 (pass_df_finish): Likewise.
3136 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
3137 * except.c (pass_set_nothrow_function_flags): Likewise.
3138 (pass_convert_to_eh_region_ranges): Likewise.
3139 * final.c (pass_compute_alignments): Likewise.
3140 * function.c (pass_instantiate_virtual_regs): Likewise.
3141 (pass_init_function): Likewise.
3142 (pass_leaf_regs): Likewise.
3143 (pass_match_asm_constraints): Likewise.
3144 * gimple-low.c (pass_lower_cf): Likewise.
3145 (pass_mark_used_blocks): Likewise.
3146 * init-regs.c (pass_initialize_regs): Likewise.
3147 * integrate.c (pass_initial_value_sets): Likewise.
3148 * ira.c (pass_ira): Likewise.
3149 * jump.c (pass_cleanup_barriers): Likewise.
3150 * omp-low.c (pass_expand_omp): Likewise.
3151 (pass_lower_omp): Likewise.
3152 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
3153 * recog.c (pass_split_all_insns): Likewise.
3154 (pass_split_after_reload): Likewise.
3155 (pass_split_before_regstack): Likewise.
3156 (pass_split_before_sched2): Likewise.
3157 (pass_split_for_shorten_branches): Likewise.
3158 * reginfo.c (pass_reginfo_init): Likewise.
3159 (pass_subregs_of_mode_init): Likewise.
3160 (pass_subregs_of_mode_finish): Likewise.
3161 * passes.c (pass_postreload): Likewise.
3162 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3163 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
3164 (pass_warn_function_return): Likewise.
3165 (pass_warn_function_noreturn): Likewise.
3166 * tree-complex.c (pass_lower_complex): Likewise.
3167 (pass_lower_complex_O0): Likewise.
3168 * tree-if-conv.c (pass_if_conversion): Likewise.
3169 * tree-into-ssa.c (pass_build_ssa): Likewise.
3170 * tree-mudflap.c (pass_mudflap_1): Likewise.
3171 (pass_mudflap_2): Likewise.
3172 * tree-nomudflap.c (pass_mudflap_1): Likewise.
3173 (pass_mudflap_2): Likewise.
3174 * tree-nrv.c (pass_return_slot): Likewise.
3175 * tree-object-size.c (pass_object_sizes): Likewise.
3176 * tree-optimize.c (pass_all_optimizations): Likewise.
3177 (pass_early_local_passes): Likewise.
3178 (pass_all_early_optimizations): Likewise.
3179 (pass_cleanup_cfg): Likewise.
3180 (pass_cleanup_cfg_post_optimizing): Likewise.
3181 (pass_free_datastructures): Likewise.
3182 (pass_free_cfg_annotations): Likewise.
3183 (pass_fixup_cfg): Likewise.
3184 (pass_init_datastructures): Likewise.
3185 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
3186 (pass_late_warn_uninitialized): Likewise.
3187 (pass_update_address_taken): Likewise.
3188 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
3189 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
3190 (pass_cse_sincos): Likewise.
3191 (pass_convert_to_rsqrt): Likewise.
3192 * tree-ssa-structalias.c (pass_build_alias): Likewise.
3193 * tree-stdarg.c (pass_stdarg): Likewise.
3194 * tree-tailcall.c (pass_tail_recursion): Likewise.
3195 (pass_tail_calls): Likewise.
3196 * tree-vect-generic.c (pass_lower_vector): Likewise.
3197 (pass_lower_vector_ssa): Likewise.
3198 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
3199
0051ef59
JM
32002009-04-16 Joseph Myers <joseph@codesourcery.com>
3201
3202 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
3203 XLR entry.
3204 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
3205 Handle -march=xlr.
3206 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
3207 logical and signext.
3208
b3f8558a
KK
32092009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
3210
3211 PR target/39767
3212 * config/sh/predicates.md (arith_operand): Check if the operand
3213 of TRUNCATE is a REG.
3214
f57597d9
KH
32152009-04-16 Kazu Hirata <kazu@codesourcery.com>
3216
3217 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3218 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3219
b172d063
KH
32202009-04-16 Kazu Hirata <kazu@codesourcery.com>
3221
3222 * tree-iterator.c (tsi_split_statement_list_after,
3223 tsi_split_statement_list_before): Remove.
3224 * tree-iterator.h: Remove the prototypes for
532bfb0a 3225 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 3226
78fe4f1f
KH
32272009-04-16 Kazu Hirata <kazu@codesourcery.com>
3228
3229 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
3230 * tree-ssa-propagate.h: Remove the prototype for
3231 stmt_makes_single_load.
3232
43dd3201
KH
32332009-04-16 Kazu Hirata <kazu@codesourcery.com>
3234
3235 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
3236 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
3237
4252a4aa
KH
32382009-04-16 Kazu Hirata <kazu@codesourcery.com>
3239
3240 * tree-iterator.c (EXPR_LAST_BODY): Remove.
3241
bfb69968
KH
32422009-04-16 Kazu Hirata <kazu@codesourcery.com>
3243
3244 * except.c (eh_region_outer_p): Remove.
3245 * except.h: Remove the prototype for eh_region_outer_p.
3246
c7db7fa5
KH
32472009-04-16 Kazu Hirata <kazu@codesourcery.com>
3248
3249 * function.c (current_function_assembler_name): Remove.
3250 * function.h: Remove the prototype for
3251 current_function_assembler_name.
3252
efc0b2bd
ILT
32532009-04-16 Ian Lance Taylor <iant@google.com>
3254
532bfb0a 3255 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
3256 (add_reg_note): Call alloc_reg_note.
3257 * rtl.h (alloc_reg_note): Declare.
3258 * combine.c (try_combine): Use alloc_reg_note.
3259 (recog_for_combine, move_deaths): Likewise.
3260 (distribute_notes): Use alloc_reg_note and add_reg_note.
3261 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
3262 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
3263 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
3264
6080348f
VM
32652009-04-16 Vladimir Makarov <vmakarov@redhat.com>
3266
3267 PR rtl-optimization/39762
3268 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
3269 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 3270 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 3271
6080348f
VM
3272 * ira-conflicts.c (process_regs_for_copy): Use function
3273 ira_get_register_move_cost instead of global
3274 ira_register_move_cost.
3275
3276 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
3277 color_pass, move_spill_restore, update_curr_costs): Ditto.
3278
3279 * ira-lives.c (process_single_reg_class_operands): Ditto.
3280
3281 * ira-emit.c (emit_move_list): Ditto.
3282
3283 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
3284 (record_reg_classes): Ditto. Use functions
3285 ira_get_register_move_cost and ira_get_may_move_cost instead of
3286 global vars ira_register_move_cost, ira_may_move_out_cost and
3287 ira_may_move_in_cost.
3288 (record_address_regs): Don't call ira_init_register_move_cost.
3289 Use function ira_get_may_move_cost instead of global
3290 ira_may_move_in_cost.
3291 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 3292 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 3293 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 3294
646bea10
RG
32952009-04-16 Richard Guenther <rguenther@suse.de>
3296
3297 * tree-cfg.c (verify_gimple_assign_binary):
3298 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
3299 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
3300 (create_general_new_stmt): Note that this function is broken.
3301
02e819ff
RAE
33022009-04-16 Rafael Avila de Espindola <espindola@google.com>
3303
3304 * common.opt (fhelp): Add Var(help_flag).
3305 * gcc-plugin.h (plugin_info): Add help.
3306 * plugin.c (plugin_name_args): Add help.
3307 (register_plugin_info): Set plugin->help.
3308 (print_help_one_plugin): New.
3309 (print_plugins_help): New.
3310 * plugin.h (print_plugins_help): New.
3311 * toplev.c (toplev_main): Call print_plugins_help if needed.
3312
ccacdf06
RG
33132009-04-16 Richard Guenther <rguenther@suse.de>
3314
3315 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
3316 (gimple_ior_addresses_taken_1): New function.
3317 (gimple_ior_addresses_taken): Likewise.
3318 * gimple.h (struct gimple_statement_with_ops_base): Remove
3319 addresses_taken member.
3320 (gimple_ior_addresses_taken): Declare.
3321 (gimple_addresses_taken, gimple_addresses_taken_ptr,
3322 gimple_set_addresses_taken): Remove.
3323 * ipa-reference.c (mark_address): New function.
3324 (scan_stmt_for_static_refs): Use it for marking addresses taken.
3325 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
3326 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
3327 (gimple_add_to_addresses_taken): Remove.
3328 (get_tmr_operands): Call mark_address_taken.
3329 (get_asm_expr_operands): Likewise.
3330 (get_expr_operands): Likewise.
3331 (build_ssa_operands): Do not clear the addresses_taken bitmap.
3332 (free_stmt_operands): Do not free it.
3333 * tree-ssa.c (delete_tree_ssa): Likewise.
3334 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
3335
346ef3fa
RG
33362009-04-16 Richard Guenther <rguenther@suse.de>
3337
3338 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
3339 (walk_stmt_load_store_ops): Likewise.
3340 * gimple.c (get_base_loadstore): New function.
3341 (walk_stmt_load_store_addr_ops): Likewise.
3342 (walk_stmt_load_store_ops): Likewise.
3343 * ipa-pure-const.c (check_op): Simplify.
3344 (check_load, check_store): New functions.
3345 (check_stmt): Use walk_stmt_load_store_ops.
3346 * ipa-reference.c (mark_load): Adjust signature.
3347 (mark_store): Likewise.
3348 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
3349
44e9f006
RAE
33502009-04-16 Rafael Avila de Espindola <espindola@google.com>
3351
3352 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
3353 (plugin_info): New.
3354 * opts.c (common_handle_option): Don't call print_version.
3355 * plugin.c (plugin_name_args): Add version.
3356 (register_plugin_info): New.
3357 (register_callback): Handle PLUGIN_INFO.
3358 (try_init_one_plugin): New.
3359 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
3360 if failed to init.
3361 (finalize_one_plugin): New.
3362 (finalize_plugins): New.
3363 (print_one_plugin): New.
3364 (print_plugins_versions): New.
3365 * plugin.h (print_plugins_versions): New.
3366 (finalize_plugins): New.
3367 * toplev.c (compile_file): Don't call initialize_plugins.
3368 (print_version): Call print_plugins_versions.
3369 (toplev_main): Call initialize_plugins. Print version if needed.
3370 Call finalize_plugins.
3371
41fd0f9b
RAE
33722009-04-16 Rafael Avila de Espindola <espindola@google.com>
3373
3374 * common.opt (fversion): New.
3375 * gcc.c (print_version): New.
3376 (process_command): Don't print the version. Just set print_version.
3377 (main): Print version. Call subprocesses if print_version and
3378 verbose_flag are set.
3379 * opts.c (common_handle_option): Handle OPT_fversion.
3380
550918ca 33812009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 3382 Ira Rosen <irar@il.ibm.com>
550918ca
RG
3383
3384 PR tree-optimization/39698
3385 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
3386 type of the reduction variable. Only generate the def if
3387 it is needed.
3388
3389 * omp-low.c (expand_omp_for_generic): When converting to a pointer
3390 make sure to first convert to an integer of the same precision.
3391 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
3392 the type of the evolution correctly in computing the new
3393 induction variable base.
3394
54634841
RG
33952009-04-16 Richard Guenther <rguenther@suse.de>
3396
3397 PR middle-end/39625
3398 * tree-cfg.c (make_blocks): Split statements with to-be
3399 abnormal SSA names on the lhs.
3400
b6fc2cdb
PB
34012009-04-16 Paolo Bonzini <bonzini@gnu.org>
3402
3403 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
3404 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
3405 * c-typeck.c (really_start_incremental_init): Likewise.
3406 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
3407 (TARGET_INITIALIZER): Remove it.
3408 * target.h (struct target): Remove vector_opaque_p.
3409 * tree.c (build_opaque_vector_type): New.
3410 * tree.h (TYPE_VECTOR_OPAQUE): New.
3411 (build_opaque_vector_type): Declare.
3412 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
3413 * config/rs6000/rs6000.c (build_opaque_vector_type,
3414 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
3415 (rs6000_init_builtins): Use build_opaque_vector_type for
3416 opaque_V4SI_type_node.
3417
a417cdd9
CM
34182009-04-15 Catherine Moore <clm@codesourcery.com>
3419
532bfb0a
AJ
3420 * debug.h (set_name): Declare.
3421 * dwarf2out.c (dwarf2out_set_name): Declare.
3422 (dwarf2_debug_hooks): Add set_name.
3423 (find_AT_string): New.
3424 (add_AT_string): Call find_AT_string.
3425 (dwarf2out_set_name): New.
3426 * cp/decl.c (grokdeclarator): Call set_name.
3427 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
3428 * debug.c (do_nothing_debug_hooks): Likewise.
3429 * dbxout.c (dbx_debug_hooks): Likewise.
3430 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 3431
60839f5d 34322009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 3433
532bfb0a
AJ
3434 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
3435 reg for single-precision FPU.
3436 * config/rs6000/rs6000.md (movsi_internal1): Only for
3437 !TARGET_SINGLE_FPU.
3438 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
3439 single-precision FP regs.
3440
ada39f0b
RG
34412009-04-15 Richard Guenther <rguenther@suse.de>
3442
3443 * omp-low.c (lower_rec_input_clauses): Build correct address
3444 expressions.
3445 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 3446 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
3447 (generate_memset_zero): Fix types.
3448 * tree-profile.c (prepare_instrumented_value): Correctly
3449 widen a pointer.
3450
6866c6e8
ILT
34512009-04-15 Ian Lance Taylor <iant@google.com>
3452
3453 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
3454 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
3455 for -Wall and for -Wc++-compat.
3456 (c_common_post_options): For C++, set warn_enum_compare if not
3457 already set.
3458 * c-tree.h (struct c_expr): Add field original_type.
3459 (build_external_ref): Update declaration.
3460 * c-parser.c (c_parser_braced_init): Set original_type.
3461 (c_parser_initelt): Likewise.
3462 (c_parser_expr_no_commas): Likewise.
3463 (c_parser_conditional_expression): Likewise.
3464 (c_parser_cast_expression): Likewise.
3465 (c_parser_unary_expression): Likewise. Pull setting of
3466 original_code to top of function.
3467 (c_parser_sizeof_expression): Set original_type.
3468 (c_parser_alignof_expression): Likewise.
3469 (c_parser_postfix_expression): Likewise. Pull setting of
3470 original_code to top of function.
532bfb0a 3471 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
3472 (c_parser_postfix_expression_after_primary): Likewise.
3473 (c_parser_expression): Likewise.
3474 * c-typeck.c (build_external_ref): Add type parameter. Change all
3475 callers.
3476 (c_expr_sizeof_expr): Set original_type field.
3477 (parser_build_unary_op): Likewise.
3478 (parser_build_binary_op): Likewise. Optionally warn about
3479 comparisons of enums of different types.
3480 (digest_init): Set original_type field.
3481 (really_start_incremental_init): Likewise.
3482 (push_init_level, pop_init_level): Likewise.
3483 * doc/invoke.texi (Warning Options): -Wenum-compare now
3484 supported in C.
3485
f116fecf
RG
34862009-04-15 Richard Guenther <rguenther@suse.de>
3487
3488 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
3489 out a necessary conversion.
3490 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
3491 names we didn't value number.
3492 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
3493
25e20805
RG
34942009-04-15 Richard Guenther <rguenther@suse.de>
3495
3496 PR tree-optimization/39764
3497 * tree-ssa-ccp.c (get_value): Canonicalize value with
3498 canonicalize_float_value.
3499
90cc3676
JH
35002009-04-15 Jan Hubicka <jh@suse.cz>
3501
3502 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
3503 Wrong version of patch.
3504
6d14c006
JH
35052009-04-15 Jan Hubicka <jh@suse.cz>
3506
3507 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
3508
5afaa917
NS
35092009-04-15 Nathan Sidwell <nathan@codesourcery.com>
3510
3511 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
3512 our distinct integral and vector types.
3513
3b482fca
RAE
35142009-04-15 Rafael Avila de Espindola <espindola@google.com>
3515
3516 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
3517 * init.c (build_vtbl_address): Remove call to assemble_external.
3518
6cd1d2e2
DJ
35192009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
3520
3521 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
3522 output for other floating point modes.
3523
dab71827
DN
35242009-04-14 Diego Novillo <dnovillo@google.com>
3525
3526 * diagnostic.c (diagnostic_report_diagnostic): Do not
3527 warn about loaded plugins for DK_ERROR and DK_WARNING.
3528 * c-decl.c (declspecs_add_type): Move call to
3529 invoke_plugin_callbacks ...
3530 * c-parser.c (c_parser_declspecs): ... here.
3531 * plugin.c (dump_active_plugins): Tidy output.
3532
68a607d8
DN
35332009-04-14 Diego Novillo <dnovillo@google.com>
3534 Le-Chun Wu <lcwu@google.com>
3535
3536 * configure.ac: Add --enable-plugin support.
3537 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
3538 * Makefile.in (PLUGIN_H): Define.
3539 Export ENABLE_PLUGIN and GMPINC to site.exp.
3540 Add PLUGINLIBS to link command.
3541 Add/modify dependencies for plugin.o and files including plugin.h.
3542 (plugin.o): New.
3543 * config.in: Regenerate.
2ba9daa7 3544
68a607d8
DN
3545 * opts.c (common_handle_option): Handle OPT_fplugin_ and
3546 OPT_fplugin_arg_.
3547
35482009-04-14 Le-Chun Wu <lcwu@google.com>
3549
3550 * tree-pass.h (register_one_dump_file): Add a prototype for
3551 register_one_dump_file.
3552 * toplev.c (compile_file): Call initialize_plugins.
3553 (do_compile): Call invoke_plugin_callbacks.
3554 (toplev_main): Call invoke_plugin_callbacks.
3555 * common.opt: Add -fplugin= and -fplugin-arg-.
3556 * gcc-plugin.h: New public header file for plugins to include.
3557 * plugin.c: New source file.
3558 * plugin.h: New internal header file.
3559 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 3560
68a607d8
DN
3561 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
3562
35632009-04-14 Diego Novillo <dnovillo@google.com>
3564
3565 * doc/plugins.texi: New.
3566 * doc/gccint.texi: Add reference to Plugins chapter.
3567 * doc/invoke.texi: Document -fplugin and -fplugin-arg
3568 * diagnostic.c (diagnostic_report_diagnostic): Warn about
3569 loaded plugins, if any.
3570 * timevar.def (TV_PLUGIN_INIT): Define.
3571 (TV_PLUGIN_RUN): Define.
3572 * plugin.c: Include timevar.h
3573 (plugins_active_p): New.
3574 (dump_active_plugins): New.
3575 (debug_active_plugins): New.
3576
50617257
JM
35772009-04-14 Joseph Myers <joseph@codesourcery.com>
3578
3579 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
3580 library paths.
3581 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
3582
b32f6fff
KH
35832009-04-14 Kazu Hirata <kazu@codesourcery.com>
3584
3585 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
3586 the same as a minus without a shift.
3587
85d04fa2
NC
35882009-04-14 Nick Clifton <nickc@redhat.com>
3589
3590 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
3591 comparisons with small integers will always produce a short
3592 branch.
3593
e495a0c8
RAE
35942009-04-14 Rafael Avila de Espindola <espindola@google.com>
3595
3596 Merge:
e495a0c8
RAE
3597 2008-12-19 Diego Novillo <dnovillo@google.com>
3598
532bfb0a 3599 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 3600
ad41bd84 36012009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
3602
3603 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
3604 verification.
3605 (verify_gimple_assign_binary): Likewise. Handle shifts and
3606 rotates correctly.
3607 (verify_gimple_phi): Print the mismatched argument position.
3608 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3609 Fix types.
3610 (vect_update_init_of_dr): Likewise.
3611 * matrix-reorg.c (transform_access_sites): Do what the
3612 comment suggests.
3613 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
3614
60839f5d 36152009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
3616
3617 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
3618 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
3619 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 3620 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
3621 remove duplicate config
3622
b0e2d008
DR
36232009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3624
3625 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
3626 file_name:line_number type locator of the call site.
2ba9daa7 3627
1244a8b7
VM
36282009-04-13 Vladimir Makarov <vmakarov@redhat.com>
3629
3630 * genautomata.c: Put blank after comma.
3631 (automaton_decls): New.
3632 (struct unit_usage): Add comments to member next.
3633 (store_alt_unit_usage): Keep the list ordered.
3634 (unit_present_on_list_p, equal_alternatives_p): New.
3635 (check_regexp_units_distribution): Check units distribution
3636 correctness correctly.
3637 (main): Don't write automata if error is found. Return correct
3638 exit code.
2ba9daa7 3639
1244a8b7
VM
3640 * config/m68k/cf.md (cfv4_ds): Remove.
3641 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
3642 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
3643
3644 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
3645 power4-load-ext, power4-store, power4-store-update,
3646 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
3647 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
3648 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
3649 power4-sqrt, power4-isync): Modify reservation to make correct
3650 unit distribution to automata.
3651
3652 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
3653 power5-store-update, power5-two, power5-three, power5-lmul,
3654 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 3655
f7dd1864
AN
36562009-04-13 Adam Nemet <anemet@caviumnetworks.com>
3657
3658 * except.c (pass_set_nothrow_function_flags): Set name and add
3659 TODO_dump_func.
3660 (set_nothrow_function_flags): Mention in the dump file when
3661 changing a function to nothrow.
3662
59a1171f
OS
36632009-04-13 Ozkan Sezer <sezeroz@gmail.com>
3664
3665 PR/39066
3666 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
3667 instead of unsigned long.
3668
934c2060
RR
36692009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3670
f7dd1864
AN
3671 * config/arm/arm.c (return_used_this_function): Remove.
3672 (arm_output_function_prologue): Remove use of
934c2060 3673 return_used_this_function.
f7dd1864 3674 (output_return_instruction): Replace use of
934c2060
RR
3675 return_used_this_function
3676 by cfun->machine->return_used_this_function.
f7dd1864
AN
3677 (arm_output_epilogue): Likewise.
3678 (arm_output_function_epilogue): Likewise.
3679 (thumb_unexpanded_epilogue): Likewise.
3680 * config/arm/arm.h (struct machine_function):
934c2060 3681 New member return_used_this_function.
f7dd1864 3682
ae5cc016
MM
36832009-04-12 Mark Mitchell <mark@codesourcery.com>
3684
3685 * doc/install.texi: Correct description of default directory for
3686 --with-gxx-include-dir.
3687
a0ce68df 36882009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
3689
3690 * fold-const.c (build_range_check): Properly deal with enumeral and
3691 boolean base types.
3692
3906a4a1
SB
36932009-04-12 Steven Bosscher <steven@gcc.gnu.org>
3694
3695 * doc/invoke.texi (max_gcse_passes): Remove documentation.
3696 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
3697 * params.h (MAX_GCSE_PASSES): Remove.
3698 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
3699 in sequence. Remove ability to run multiple passes.
3700 (bypass_jumps): Report run as third CPROP pass.
3701
efaadb93
AN
37022009-04-12 Adam Nemet <anemet@caviumnetworks.com>
3703
3704 PR middle-end/39651
3705 * except.c (can_throw_external): Look at each insn in a SEQUENCE
3706 when deciding whether the whole SEQUENCE can throw.
3707
4c48007b
UB
37082009-04-12 Uros Bizjak <ubizjak@gmail.com>
3709
3710 PR target/39740
3711 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
3712 offseted label references.
3713
b4104018
JH
37142009-04-11 Jan Hubicka <jh@suse.cz>
3715
3716 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
3717
32848948
RG
37182009-04-11 Richard Guenther <rguenther@suse.de>
3719
3720 PR middle-end/39732
3721 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
3722 return variables as TREE_ADDRESSABLE.
3723
8810712e
RG
37242009-04-11 Richard Guenther <rguenther@suse.de>
3725
3726 PR tree-optimization/39713
3727 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
3728 reference trees have SSA_NAME operands.
3729
fa78c0c1
RG
37302009-04-11 Richard Guenther <rguenther@suse.de>
3731
3732 PR c/39712
3733 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
3734 address expressions.
3735
4d722130
DK
37362009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
3737
3738 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
3739 match changes in Cygwin 1.7
3740 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
3741 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
3742
567a90f5
PB
37432009-04-10 Paolo Bonzini <bonzini@gnu.org>
3744
3745 PR tree-optimization/39701
3746 * doc/invoke.texi (Optimization Options): Document change in
3747 meaning and initialization of -fdelete-null-pointer-checks.
3748
1ad2f450
L
37492009-04-10 H.J. Lu <hongjiu.lu@intel.com>
3750
3751 PR middle-end/39701
3752 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
3753
3754 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
3755 here.
3756
3757 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
3758
1afc5373
CF
37592009-04-10 Chao-ying Fu <fu@mips.com>
3760
3761 * doc/tm.texi (Instruction Output): Document
3762 TARGET_ASM_FINAL_POSTSCAN_INSN.
3763 * target.h (final_postscan_insn): New field in asm_out.
3764 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3765 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
3766 * final.c (final_scan_insn): Call
3767 targetm.asm_out.final_postscan_insn after outputting
3768 an asm macro and a normal instruction.
3769
3770 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
3771 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
3772 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
3773 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
3774 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3775
4d35e75c
PB
37762009-04-10 Paolo Bonzini <bonzini@gnu.org>
3777
3778 PR middle-end/39701
1ad2f450
L
3779 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
3780 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 3781
62c49b83
L
37822009-04-10 H.J. Lu <hongjiu.lu@intel.com>
3783
3784 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
3785
80558628
L
37862009-04-09 H.J. Lu <hongjiu.lu@intel.com>
3787
3788 PR target/39678
3789 * config/i386/i386.c (classify_argument): Handle SCmode with
3790 (bit_offset % 64) != 0.
3791
8c70d28b
SL
37922009-04-09 Sandra Loosemore <sandra@codesourcery.com>
3793
3794 * doc/invoke.texi (Optimize Options): Add cross-reference to
3795 -Q --help=optimizers examples.
3796
e1ff19bf
BE
37972009-04-10 Ben Elliston <bje@au.ibm.com>
3798
3799 PR target/36800
3800 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
3801 regalign for the reg == fpr and TDmode case.
3802
52daca75
DA
38032009-04-09 David Ayers <ayers@fsfe.org>
3804
3805 PR objc/29200
3806 * objc/objc-act.c (warn_with_method): Remove helper function.
3807 (check_duplicates): Call warning and inform directly.
3808 (really_start_method): Likewise.
3809
b45f0e58
PB
38102009-04-09 Paolo Bonzini <bonzini@gnu.org>
3811
3812 * expmed.c (expand_divmod): Always use a comparison for a division
3813 by a large unsigned integer.
3814
1ad2f450
L
3815 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
3816 for things others than variables or functions as nonzero.
b45f0e58 3817
748086b7
JJ
38182009-04-09 Nick Clifton <nickc@redhat.com>
3819
3820 * unwind-compat.c: Change copyright header to refer to version
3821 3 of the GNU General Public License with version 3.1 of the
3822 GCC Runtime Library Exception and to point readers at the
7a715bba 3823 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
3824 * config/alpha/crtfastmath.c: Likewise.
3825 * config/alpha/linux-unwind.h: Likewise.
3826 * config/alpha/qrnnd.asm: Likewise.
3827 * config/alpha/vms-crt0-64.c: Likewise.
3828 * config/alpha/vms-crt0.c: Likewise.
3829 * config/alpha/vms-dwarf2.asm: Likewise.
3830 * config/alpha/vms-dwarf2eh.asm: Likewise.
3831 * config/alpha/vms-psxcrt0-64.c: Likewise.
3832 * config/alpha/vms-psxcrt0.c: Likewise.
3833 * config/alpha/vms_tramp.asm: Likewise.
3834 * config/arc/initfini.c: Likewise.
3835 * config/arc/lib1funcs.asm: Likewise.
3836 * config/arm/bpabi-v6m.S: Likewise.
3837 * config/arm/bpabi.S: Likewise.
3838 * config/arm/bpabi.c: Likewise.
3839 * config/arm/crti.asm: Likewise.
3840 * config/arm/crtn.asm: Likewise.
3841 * config/arm/ieee754-df.S: Likewise.
3842 * config/arm/ieee754-sf.S: Likewise.
3843 * config/arm/lib1funcs.asm: Likewise.
3844 * config/arm/libunwind.S: Likewise.
3845 * config/arm/linux-atomic.c: Likewise.
3846 * config/arm/mmintrin.h: Likewise.
3847 * config/arm/pr-support.c: Likewise.
3848 * config/arm/unaligned-funcs.c: Likewise.
3849 * config/arm/unwind-arm.c: Likewise.
3850 * config/arm/unwind-arm.h: Likewise.
3851 * config/avr/libgcc.S: Likewise.
3852 * config/bfin/crti.s: Likewise.
3853 * config/bfin/crtlibid.s: Likewise.
3854 * config/bfin/crtn.s: Likewise.
3855 * config/bfin/lib1funcs.asm: Likewise.
3856 * config/bfin/linux-unwind.h: Likewise.
3857 * config/cris/arit.c: Likewise.
3858 * config/cris/cris_abi_symbol.c: Likewise.
3859 * config/darwin-64.c: Likewise.
3860 * config/darwin-crt2.c: Likewise.
3861 * config/darwin-crt3.c: Likewise.
3862 * config/darwin.h: Likewise.
3863 * config/dbxelf.h: Likewise.
3864 * config/dfp-bit.c: Likewise.
3865 * config/dfp-bit.h: Likewise.
3866 * config/elfos.h: Likewise.
3867 * config/fixed-bit.c: Likewise.
3868 * config/fixed-bit.h: Likewise.
3869 * config/fp-bit.c: Likewise.
3870 * config/fp-bit.h: Likewise.
3871 * config/fr30/crti.asm: Likewise.
3872 * config/fr30/crtn.asm: Likewise.
3873 * config/fr30/lib1funcs.asm: Likewise.
3874 * config/freebsd-spec.h: Likewise.
3875 * config/frv/cmovd.c: Likewise.
3876 * config/frv/cmovh.c: Likewise.
3877 * config/frv/cmovw.c: Likewise.
3878 * config/frv/frvbegin.c: Likewise.
3879 * config/frv/frvend.c: Likewise.
3880 * config/frv/lib1funcs.asm: Likewise.
3881 * config/glibc-stdint.h: Likewise.
3882 * config/h8300/clzhi2.c: Likewise.
3883 * config/h8300/crti.asm: Likewise.
3884 * config/h8300/crtn.asm: Likewise.
3885 * config/h8300/ctzhi2.c: Likewise.
3886 * config/h8300/fixunssfsi.c: Likewise.
3887 * config/h8300/lib1funcs.asm: Likewise.
3888 * config/h8300/parityhi2.c: Likewise.
3889 * config/h8300/popcounthi2.c: Likewise.
3890 * config/i386/ammintrin.h: Likewise.
3891 * config/i386/att.h: Likewise.
3892 * config/i386/avxintrin.h: Likewise.
3893 * config/i386/biarch64.h: Likewise.
3894 * config/i386/bmmintrin.h: Likewise.
3895 * config/i386/cpuid.h: Likewise.
3896 * config/i386/cross-stdarg.h: Likewise.
3897 * config/i386/crtfastmath.c: Likewise.
3898 * config/i386/crtprec.c: Likewise.
3899 * config/i386/cygming-crtbegin.c: Likewise.
3900 * config/i386/cygming-crtend.c: Likewise.
3901 * config/i386/cygwin.asm: Likewise.
3902 * config/i386/emmintrin.h: Likewise.
3903 * config/i386/gmm_malloc.h: Likewise.
3904 * config/i386/gthr-win32.c: Likewise.
3905 * config/i386/i386.h: Likewise.
3906 * config/i386/immintrin.h: Likewise.
3907 * config/i386/linux-unwind.h: Likewise.
3908 * config/i386/linux64.h: Likewise.
3909 * config/i386/mm3dnow.h: Likewise.
3910 * config/i386/mmintrin-common.h: Likewise.
3911 * config/i386/mmintrin.h: Likewise.
3912 * config/i386/nmmintrin.h: Likewise.
3913 * config/i386/pmm_malloc.h: Likewise.
3914 * config/i386/pmmintrin.h: Likewise.
3915 * config/i386/smmintrin.h: Likewise.
3916 * config/i386/sol2-c1.asm: Likewise.
3917 * config/i386/sol2-ci.asm: Likewise.
3918 * config/i386/sol2-cn.asm: Likewise.
3919 * config/i386/sol2-gc1.asm: Likewise.
3920 * config/i386/tmmintrin.h: Likewise.
3921 * config/i386/unix.h: Likewise.
3922 * config/i386/w32-unwind.h: Likewise.
3923 * config/i386/wmmintrin.h: Likewise.
3924 * config/i386/x86-64.h: Likewise.
3925 * config/i386/x86intrin.h: Likewise.
3926 * config/i386/xmmintrin.h: Likewise.
3927 * config/ia64/crtbegin.asm: Likewise.
3928 * config/ia64/crtend.asm: Likewise.
3929 * config/ia64/crtfastmath.c: Likewise.
3930 * config/ia64/crti.asm: Likewise.
3931 * config/ia64/crtn.asm: Likewise.
3932 * config/ia64/fde-glibc.c: Likewise.
3933 * config/ia64/lib1funcs.asm: Likewise.
3934 * config/ia64/linux-unwind.h: Likewise.
3935 * config/ia64/quadlib.c: Likewise.
3936 * config/ia64/unwind-ia64.c: Likewise.
3937 * config/linux.h: Likewise.
3938 * config/m32c/m32c-lib1.S: Likewise.
3939 * config/m32c/m32c-lib2-trapv.c: Likewise.
3940 * config/m32c/m32c-lib2.c: Likewise.
3941 * config/m32r/initfini.c: Likewise.
3942 * config/m68hc11/larith.asm: Likewise.
3943 * config/m68hc11/m68hc11-crt0.S: Likewise.
3944 * config/m68k/cf.md: Likewise.
3945 * config/m68k/crti.s: Likewise.
3946 * config/m68k/crtn.s: Likewise.
3947 * config/m68k/lb1sf68.asm: Likewise.
3948 * config/m68k/linux-unwind.h: Likewise.
3949 * config/mcore/crti.asm: Likewise.
3950 * config/mcore/crtn.asm: Likewise.
3951 * config/mcore/lib1.asm: Likewise.
3952 * config/mips/linux-unwind.h: Likewise.
3953 * config/mips/loongson.h: Likewise.
3954 * config/mips/mips16.S: Likewise.
3955 * config/mmix/crti.asm: Likewise.
3956 * config/mmix/crtn.asm: Likewise.
3957 * config/pa/fptr.c: Likewise.
3958 * config/pa/hpux-unwind.h: Likewise.
3959 * config/pa/lib2funcs.asm: Likewise.
3960 * config/pa/linux-atomic.c: Likewise.
3961 * config/pa/linux-unwind.h: Likewise.
3962 * config/pa/milli64.S: Likewise.
3963 * config/pa/quadlib.c: Likewise.
3964 * config/pa/stublib.c: Likewise.
3965 * config/picochip/libgccExtras/adddi3.asm: Likewise.
3966 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
3967 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
3968 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
3969 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
3970 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
3971 * config/picochip/libgccExtras/divmod15.asm: Likewise.
3972 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
3973 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
3974 * config/picochip/libgccExtras/longjmp.asm: Likewise.
3975 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
3976 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
3977 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
3978 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
3979 * config/picochip/libgccExtras/setjmp.asm: Likewise.
3980 * config/picochip/libgccExtras/subdi3.asm: Likewise.
3981 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
3982 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
3983 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
3984 * config/rs6000/750cl.h: Likewise.
3985 * config/rs6000/altivec.h: Likewise.
3986 * config/rs6000/biarch64.h: Likewise.
3987 * config/rs6000/crtresfpr.asm: Likewise.
3988 * config/rs6000/crtresgpr.asm: Likewise.
3989 * config/rs6000/crtresxfpr.asm: Likewise.
3990 * config/rs6000/crtresxgpr.asm: Likewise.
3991 * config/rs6000/crtsavfpr.asm: Likewise.
3992 * config/rs6000/crtsavgpr.asm: Likewise.
3993 * config/rs6000/darwin-asm.h: Likewise.
3994 * config/rs6000/darwin-fallback.c: Likewise.
3995 * config/rs6000/darwin-fpsave.asm: Likewise.
3996 * config/rs6000/darwin-ldouble.c: Likewise.
3997 * config/rs6000/darwin-tramp.asm: Likewise.
3998 * config/rs6000/darwin-unwind.h: Likewise.
3999 * config/rs6000/darwin-vecsave.asm: Likewise.
4000 * config/rs6000/darwin-world.asm: Likewise.
4001 * config/rs6000/e500crtres32gpr.asm: Likewise.
4002 * config/rs6000/e500crtres64gpr.asm: Likewise.
4003 * config/rs6000/e500crtres64gprctr.asm: Likewise.
4004 * config/rs6000/e500crtrest32gpr.asm: Likewise.
4005 * config/rs6000/e500crtrest64gpr.asm: Likewise.
4006 * config/rs6000/e500crtresx32gpr.asm: Likewise.
4007 * config/rs6000/e500crtresx64gpr.asm: Likewise.
4008 * config/rs6000/e500crtsav32gpr.asm: Likewise.
4009 * config/rs6000/e500crtsav64gpr.asm: Likewise.
4010 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
4011 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
4012 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
4013 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
4014 * config/rs6000/eabi-ci.asm: Likewise.
4015 * config/rs6000/eabi-cn.asm: Likewise.
4016 * config/rs6000/eabi.asm: Likewise.
4017 * config/rs6000/linux-unwind.h: Likewise.
4018 * config/rs6000/linux64.h: Likewise.
4019 * config/rs6000/paired.h: Likewise.
4020 * config/rs6000/paired.md: Likewise.
4021 * config/rs6000/ppc64-fp.c: Likewise.
4022 * config/rs6000/ppu_intrinsics.h: Likewise.
4023 * config/rs6000/rs6000.h: Likewise.
4024 * config/rs6000/si2vmx.h: Likewise.
4025 * config/rs6000/sol-ci.asm: Likewise.
4026 * config/rs6000/sol-cn.asm: Likewise.
4027 * config/rs6000/spe.h: Likewise.
4028 * config/rs6000/spu2vmx.h: Likewise.
4029 * config/rs6000/sysv4.h: Likewise.
4030 * config/rs6000/tramp.asm: Likewise.
4031 * config/rs6000/vec_types.h: Likewise.
4032 * config/s390/linux-unwind.h: Likewise.
4033 * config/s390/tpf-unwind.h: Likewise.
4034 * config/score/crti.asm: Likewise.
4035 * config/score/crtn.asm: Likewise.
4036 * config/sh/crt1.asm: Likewise.
4037 * config/sh/crti.asm: Likewise.
4038 * config/sh/crtn.asm: Likewise.
4039 * config/sh/divtab-sh4-300.c: Likewise.
4040 * config/sh/divtab-sh4.c: Likewise.
4041 * config/sh/divtab.c: Likewise.
4042 * config/sh/lib1funcs-4-300.asm: Likewise.
4043 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
4044 * config/sh/lib1funcs.asm: Likewise.
4045 * config/sh/lib1funcs.h: Likewise.
4046 * config/sh/linux-atomic.asm: Likewise.
4047 * config/sh/linux-unwind.h: Likewise.
4048 * config/sh/shmedia.h: Likewise.
4049 * config/sh/sshmedia.h: Likewise.
4050 * config/sh/ushmedia.h: Likewise.
4051 * config/sparc/crtfastmath.c: Likewise.
4052 * config/sparc/linux-unwind.h: Likewise.
4053 * config/sparc/sol2-c1.asm: Likewise.
4054 * config/sparc/sol2-ci.asm: Likewise.
4055 * config/sparc/sol2-cn.asm: Likewise.
4056 * config/spu/divmodti4.c: Likewise.
4057 * config/spu/divv2df3.c: Likewise.
4058 * config/spu/float_disf.c: Likewise.
4059 * config/spu/float_unsdidf.c: Likewise.
4060 * config/spu/float_unsdisf.c: Likewise.
4061 * config/spu/float_unssidf.c: Likewise.
4062 * config/spu/mfc_multi_tag_release.c: Likewise.
4063 * config/spu/mfc_multi_tag_reserve.c: Likewise.
4064 * config/spu/mfc_tag_release.c: Likewise.
4065 * config/spu/mfc_tag_reserve.c: Likewise.
4066 * config/spu/mfc_tag_table.c: Likewise.
4067 * config/spu/multi3.c: Likewise.
4068 * config/spu/spu_internals.h: Likewise.
4069 * config/spu/spu_intrinsics.h: Likewise.
4070 * config/spu/spu_mfcio.h: Likewise.
4071 * config/spu/vec_types.h: Likewise.
4072 * config/spu/vmx2spu.h: Likewise.
4073 * config/stormy16/stormy16-lib2.c: Likewise.
4074 * config/svr4.h: Likewise.
4075 * config/sync.c: Likewise.
4076 * config/v850/lib1funcs.asm: Likewise.
4077 * config/vxlib-tls.c: Likewise.
4078 * config/vxlib.c: Likewise.
4079 * config/vxworks-dummy.h: Likewise.
4080 * config/xtensa/crti.asm: Likewise.
4081 * config/xtensa/crtn.asm: Likewise.
4082 * config/xtensa/ieee754-df.S: Likewise.
4083 * config/xtensa/ieee754-sf.S: Likewise.
4084 * config/xtensa/lib1funcs.asm: Likewise.
4085 * config/xtensa/lib2funcs.S: Likewise.
4086 * config/xtensa/linux-unwind.h: Likewise.
4087 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4088 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
4089 * coretypes.h: Likewise.
4090 * crtstuff.c: Likewise.
4091 * defaults.h: Likewise.
4092 * dwarf2.h: Likewise.
4093 * emutls.c: Likewise.
4094 * gbl-ctors.h: Likewise.
4095 * gcov-io.h: Likewise.
4096 * ginclude/float.h: Likewise.
4097 * ginclude/iso646.h: Likewise.
4098 * ginclude/stdarg.h: Likewise.
4099 * ginclude/stdbool.h: Likewise.
4100 * ginclude/stddef.h: Likewise.
4101 * ginclude/stdfix.h: Likewise.
4102 * ginclude/stdint-gcc.h: Likewise.
4103 * ginclude/tgmath.h: Likewise.
4104 * gthr-aix.h: Likewise.
4105 * gthr-dce.h: Likewise.
4106 * gthr-gnat.c: Likewise.
4107 * gthr-gnat.h: Likewise.
4108 * gthr-lynx.h: Likewise.
4109 * gthr-mipssde.h: Likewise.
4110 * gthr-nks.h: Likewise.
4111 * gthr-posix.c: Likewise.
4112 * gthr-posix.h: Likewise.
4113 * gthr-posix95.h: Likewise.
4114 * gthr-rtems.h: Likewise.
4115 * gthr-single.h: Likewise.
4116 * gthr-solaris.h: Likewise.
4117 * gthr-tpf.h: Likewise.
4118 * gthr-vxworks.h: Likewise.
4119 * gthr-win32.h: Likewise.
4120 * gthr.h: Likewise.
4121 * libgcc2.c: Likewise.
4122 * libgcc2.h: Likewise.
4123 * libgcov.c: Likewise.
4124 * tsystem.h: Likewise.
4125 * typeclass.h: Likewise.
4126 * unwind-c.c: Likewise.
4127 * unwind-compat.h: Likewise.
4128 * unwind-dw2-fde-compat.c: Likewise.
4129 * unwind-dw2-fde-darwin.c: Likewise.
4130 * unwind-dw2-fde-glibc.c: Likewise.
4131 * unwind-dw2-fde.c: Likewise.
4132 * unwind-dw2-fde.h: Likewise.
4133 * unwind-dw2.c: Likewise.
4134 * unwind-dw2.h: Likewise.
4135 * unwind-generic.h: Likewise.
4136 * unwind-pe.h: Likewise.
4137 * unwind-sjlj.c: Likewise.
4138 * unwind.inc: Likewise.
4139 * config/arm/neon-gen.ml: Change generated copyright header to
4140 refer to version 3 of the GNU General Public License with
4141 version 3.1 of the GCC Runtime Library Exception and to point
4142 readers at the COPYING3 and COPYING3.RUNTIME files and the
4143 FSF's license web page.
4144 * config/arm/arm_neon.h: Regenerate.
4145
41462009-04-09 Jakub Jelinek <jakub@redhat.com>
4147
4148 * config/cris/cris.md: Change copyright header to refer to version
4149 3 of the GNU General Public License.
4150 * doc/install.texi2html: Change copyright header to refer to version
4151 3 of the GNU General Public License and to point readers at the
4152 COPYING3 file and the FSF's license web page.
4153 * config/vax/linux.h: Likewise.
4154
4a77c72b
PB
41552009-04-09 Paolo Bonzini <bonzini@gnu.org>
4156
1ad2f450
L
4157 * config/i386/i386.md (cmpcc): New.
4158 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
4159 (sync_compare_and_swap_cc*): Delete.
4160
4161 * config/s390/s390.c (s390_compare_emitted): Remove.
4162 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
4163 s390_compare_emitted used to be handled. Assert that modes match.
4164 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
4165 refer to sync_compare_and_swap_ccsi.
4166 * config/s390/s390.h (s390_compare_emitted): Remove.
4167 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
4168 instead of s390_compare_emitted.
4169 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
4170 instead of s390_compare_emitted.
4171 * config/s390/s390.md (cmpcc): New.
4172 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
4173 CC_REGNUM, do not pretend it's set.
4174 (sync_compare_and_swap_cc*): Delete.
4175 * config/s390/predicates.md (cc_reg_operand): New.
4176
4177 * expr.c (sync_compare_and_swap_cc): Delete.
4178 * optabs.h (sync_compare_and_swap_cc): Delete.
4179 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
4180 is being used with can_compare_p.
4181 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
4182 (find_cc_set): New.
4183 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
4184 look for a MODE_CC set instead. Use emit_store_flag.
4185 (expand_compare_and_swap_loop): Likewise, with some additional
4186 complication to avoid a force_reg when useless. Use
4187 emit_cmp_and_jump_insns.
4188 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
4189 * doc/md.texi (sync_compare_and_swap_cc): Merge with
4190 sync_compare_and_swap documentation.
4a77c72b 4191
0c0efb33
JH
41922009-04-09 Jan Hubicka <jh@suse.cz>
4193
4194 * except.c (find_prev_try): Break out from ....
4195 (duplicate_eh_regions): ... here; properly update prev_try pointers
4196 when duplication part of tree.
4197 (dump_eh_tree): Improve dumping.
4198 (verify_eh_region): New.
4199 (verify_eh_tree): Use it.
4200
22a65a54
RG
42012009-04-06 Richard Guenther <rguenther@suse.de>
4202
4203 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
4204 &ARRAY addresses by adjusting their types and prepending
4205 a conversion.
4206 * tree-cfg.c (verify_gimple_assign_single): Verify that
4207 addresses are correct.
4208
f76968e6
RG
42092009-04-09 Richard Guenther <rguenther@suse.de>
4210
4211 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
4212 indices into an array reference if possible.
4213 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4214 Fold POINTER_PLUS_EXPR statements with invariant address.
4215
c90c5fb5
AM
42162009-04-09 Alan Modra <amodra@bigpond.net.au>
4217
4218 PR target/39634
4219 * config.gcc (powerpc64-*-linux*): Always build biarch.
4220
17cede2e
JM
42212009-04-09 Joseph Myers <joseph@codesourcery.com>
4222
4223 PR c/39613
4224 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
4225 it and pedwarn if this results in an INTEGER_CST.
4226
a3337ea2
KG
42272009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4228
4229 * doc/install.texi: Update minimum GMP version. Remove obsolete
4230 text in MPFR section.
4231
ce9ba79b
JJ
42322009-04-08 Jakub Jelinek <jakub@redhat.com>
4233
4234 * dwarf2out.c (class_scope_p): New static inline.
4235 (class_or_namespace_scope_p): Use it.
4236 (gen_variable_die): Use DW_TAG_member tag for static data member
4237 declarations instead of DW_TAG_variable.
4238
4f0ae266
JJ
4239 PR middle-end/39573
4240 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
4241 variables.
4242
d27f0ddc
RG
42432009-04-08 Richard Guenther <rguenther@suse.de>
4244
4245 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
4246 valueize random data.
4247
557cc596
DE
42482009-04-08 David Edelsohn <edelsohn@gnu.org>
4249
4250 * config.gcc (aix tm_file): Add aix-stdint.h.
4251 (aix tm clause use_gcc_stdint): Set to wrap.
4252 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 4253
75ccc1e7
RG
42542009-04-08 Richard Guenther <rguenther@suse.de>
4255
4256 PR middle-end/36291
4257 * tree-dfa.c (add_referenced_var): Do not recurse into
4258 global initializers.
4259 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
4260 exposed variables.
4261 (fold_const_aggregate_ref): Likewise.
4262
c6963675
PB
42632009-04-08 Paolo Bonzini <bonzini@gnu.org>
4264
6c44cf79
L
4265 * recog.c (ordered_comparison_operator): New.
4266 * gensupport.c (std_preds): Add it.
c6963675
PB
4267 * doc/md.texi (Machine-Independent Predicates): Document it.
4268
6d07ad98
JH
42692009-04-08 Jan Hubicka <jh@suse.cz>
4270
4271 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
4272 * function.h (rtl_eh): Remove exception_handler_label_map.
4273 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
4274 remove_exception_handler_label, for_each_eh_label_1): Remove.
4275 (rtl_remove_unreachable_regions): Remove.
4276 (convert_from_eh_region_ranges): Do not remove unreachable regions.
4277 (find_exception_handler_labels): Don't build the hashtable.
4278 (maybe_remove_eh_handler): Remove.
4279 (for_each_eh_label): Rewrite to walk the tree.
4280 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
4281 * except.h (maybe_remove_eh_handler): Remove.
4282 * passes.c (init_optimization_passes): Schedule second EH cleanup
4283 before out-of-ssa.
4284 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
4285 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
4286
7ddf71e3
PB
42872009-04-08 Paolo Bonzini <bonzini@gnu.org>
4288
4289 * genoutput.c (validate_optab_operands): New.
4290 (gen_insn, gen_expand): Call it.
4291
4292 * genflags.c (gen_insn): Detect misused iterators.
4293 (main): Pass line_no to gen_insn, exit with status 1 on error.
4294
4295 * genextract.c (line_no): Make global.
4296 (VEC_safe_set_locstr): Change assertion to error message.
4297 (main): Exit with status 1 on error.
4298
4d84fe7c
JM
42992009-04-08 Joseph Myers <joseph@codesourcery.com>
4300
4301 PR c/39614
4302 PR c/39673
4303 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
4304 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
4305 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
4306 * c-convert.c (convert): Do not call fold on results of conversion
4307 functions when the result is a C_MAYBE_CONST_EXPR.
4308 * c-parser.c (c_parser_postfix_expression): Do not fold condition
4309 of __builtin_choose_expr.
4310 * c-typeck.c (remove_c_maybe_const_expr): New.
4311 (build_unary_op, build_conditional_expr, build_compound_expr,
4312 build_binary_op, c_objc_common_truthvalue_conversion): Call
4313 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
4314 integer operands.
4315
60839f5d 43162009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 4317
2ba9daa7 4318 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 4319 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 4320
8e481a2c
DS
43212009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
4322
4323 PR bootstrap/39660
4324 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
4325 mix declarations and code.
4326
ee618c17
BE
43272009-04-08 Ben Elliston <bje@au.ibm.com>
4328
4329 * gcc.c: Replace `CC' with `GCC' throughout.
4330
f2a758a2
L
43312009-04-07 H.J. Lu <hongjiu.lu@intel.com>
4332
4333 * doc/invoke.texi: Document Atom support.
4334
6ea2bd47
JM
43352009-04-07 Jason Merrill <jason@redhat.com>
4336
4337 PR c++/25185
4338 * c-common.h, c-common.c: Add flag_pretty_templates.
4339 * c-opts.c (c_common_handle_option): Set it.
4340 * c.opt: Add -fno-pretty-templates.
4341 * doc/invoke.texi (C++ Dialect Options): Likewise.
4342
fcb82ab0
UB
43432009-04-07 Uros Bizjak <ubizjak@gmail.com>
4344
4345 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
4346 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
4347 (ia64_expand_builtin): Likewise.
4348
dc5e7298
MJ
43492009-04-07 Martin Jambor <mjambor@suse.cz>
4350
4351 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
4352 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
4353 ADDR_EXPRS are include too.
4354
0609b355
RG
43552009-04-07 Richard Guenther <rguenther@suse.de>
4356
4357 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
4358 decls are only used if passes as parameters or if they are
4359 local statics and the call is not to a builtin.
4360 (call_may_clobber_ref_p_1): Likewise.
4361
d8e535fa
PB
43622009-04-07 Paolo Bonzini <bonzini@gnu.org>
4363
4364 * expr.c (do_store_flag): Remove last argument. Simplify code
4365 to avoid duplication of tests already done by can_compare_p.
4366 (expand_expr_real_1): Adjust caller.
4367
c3c64f50
PB
43682009-04-07 Paolo Bonzini <bonzini@gnu.org>
4369
fcb82ab0
UB
4370 * optabs.c (can_compare_p): Test the predicate of a
4371 cbranch and cstore pattern.
c3c64f50 4372
9a53bc17
PB
43732009-04-07 Paolo Bonzini <bonzini@gnu.org>
4374
fcb82ab0
UB
4375 * expr.c (convert_move): Use emit_store_flag instead of
4376 "emulating" it.
9a53bc17 4377
67b8f1c1
PB
43782009-04-07 Paolo Bonzini <bonzini@gnu.org>
4379
fcb82ab0
UB
4380 * config/i386/i386.c (ix86_compare_emitted): Remove.
4381 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
4382 ix86_compare_op0 like ix86_compare_emitted used to be handled.
4383 * config/i386/i386.h (ix86_compare_emitted): Remove.
4384 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
4385 instead of ix86_compare_emitted.
4386 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 4387
44509946
AS
43882009-04-07 Andrew Stubbs <ams@codesourcery.com>
4389
4390 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
4391 Add t-sysroot-suffix to tmake_file.
4392 * config/print-sysroot-suffix.sh: New file.
4393 * config/t-sysroot-suffix: New file.
4394
ca22d882
BE
43952009-04-07 Ben Elliston <bje@au.ibm.com>
4396
4397 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
4398 as the latter produces a warning when the target does not support
4399 infinity.
4400
95aac11b
BE
44012009-04-07 Ben Elliston <bje@au.ibm.com>
4402
4403 * dfp.c: Replace type punning assignments with memcpy throughout.
4404 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 4405
633dd061
AM
44062009-04-07 Alan Modra <amodra@bigpond.net.au>
4407
4408 PR target/39634
4409 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
4410 Include soft-fp/t-softfp after rs6000/t-linux64.
4411
fe0a25ec
EB
44122009-04-06 Eric Botcazou <ebotcazou@adacore.com>
4413
4414 * stor-layout.c (set_sizetype): Use the full precision of their
4415 machine mode for bitsize types.
4416
0c011bc3
L
44172009-04-06 H.J. Lu <hongjiu.lu@intel.com>
4418
4419 * config/i386/i386.md: Revert 2 accidental checkins.
4420
b6837b94 44212009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 4422 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
4423 H.J. Lu <hongjiu.lu@intel.com>
4424
4425 Atom pipeline model, tuning and insn selection.
4426 * config.gcc (atom): Add atom config options and target.
4427
4428 * config/i386/atom.md: New.
4429
4430 * config/i386/i386.c (atom_cost): New cost.
4431 (m_ATOM): New macro flag.
4432 (initial_ix86_tune_features): Set m_ATOM.
4433 (x86_accumulate_outgoing_args): Likewise.
4434 (x86_arch_always_fancy_math_387): Likewise.
4435 (processor_target): Add Atom cost.
4436 (cpu_names): Add Atom cpu name.
4437 (override_options): Set Atom ISA.
4438 (ix86_issue_rate): New case PROCESSOR_ATOM.
4439 (ix86_adjust_cost): Likewise.
4440
4441 * config/i386/i386.h (TARGET_ATOM): New target macro.
4442 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
4443 (TARGET_OPT_AGU): New target option.
4444 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
4445 (processor_type): Add PROCESSOR_ATOM.
4446
4447 * config/i386/i386.md (cpu): Add new value "atom".
4448 (use_carry, movu): New attr.
4449 (atom.md): Include atom.md.
4450 (adddi3_carry_rex64): Set attr "use_carry".
4451 (addqi3_carry): Likewise.
4452 (addhi3_carry): Likewise.
4453 (addsi3_carry): Likewise.
4454 (*addsi3_carry_zext): Likewise.
4455 (subdi3_carry_rex64): Likewise.
4456 (subqi3_carry): Likewise.
4457 (subhi3_carry): Likewise.
4458 (subsi3_carry): Likewise.
4459 (x86_movdicc_0_m1_rex64): Likewise.
4460 (*x86_movdicc_0_m1_se): Likewise.
4461 (x86_movsicc_0_m1): Likewise.
4462 (*x86_movsicc_0_m1_se): Likewise.
4463 (*adddi_1_rex64): Emit add insn as much as possible.
4464 (*addsi_1): Likewise.
4465 (return_internal): Set atom_unit.
4466 (return_internal_long): Likewise.
4467 (return_pop_internal): Likewise.
4468 (*rcpsf2_sse): Set atom_sse_attr attr.
4469 (*qrt<mode>2_sse): Likewise.
4470 (*prefetch_sse): Likewise.
4471
4472 * config/i386/i386-c.c (ix86_target_macros_internal): New case
4473 PROCESSOR_ATOM.
4474 (ix86_target_macros_internal): Likewise.
4475
4476 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
4477 (*prefetch_sse_rex): Likewise.
4478 (sse_rcpv4sf2): Likewise.
4479 (sse_vmrcpv4sf2): Likewise.
4480 (sse_sqrtv4sf2): Likewise.
4481 (<sse>_vmsqrt<mode>2): Likewise.
4482 (sse_ldmxcsr): Likewise.
4483 (sse_stmxcsr): Likewise.
4484 (*sse_sfence): Likewise.
4485 (sse2_clflush): Likewise.
4486 (*sse2_mfence): Likewise.
4487 (*sse2_lfence): Likewise.
4488 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
4489 (<sse>_movup<ssemodesuffixf2c>): Likewise.
4490 (avx_movdqu<avxmodesuffix>): Likewise.
4491 (avx_lddqu<avxmodesuffix>): Likewise.
4492 (sse2_movntv2di): Change attr "type" to "ssemov".
4493 (sse2_movntsi): Likewise.
4494 (rsqrtv8sf2): Change attr "type" to "sseadd".
4495 (sse3_addsubv2df3): Set attr "atom_unit".
4496 (sse3_h<plusminus_insn>v4sf3): Likewise.
4497 (*sse2_pmaddwd): Likewise.
4498 (*vec_extractv2di_1_rex64): Likewise.
4499 (*vec_extractv2di_1_avx): Likewise.
4500 (sse2_psadbw): Likewise.
4501 (ssse3_phaddwv8hi3): Likewise.
4502 (ssse3_phaddwv4hi3): Likewise.
4503 (ssse3_phadddv4si3): Likewise.
4504 (ssse3_phadddv2si3): Likewise.
4505 (ssse3_phaddswv8hi3): Likewise.
4506 (ssse3_phaddswv4hi3): Likewise.
4507 (ssse3_phsubwv8hi3): Likewise.
4508 (ssse3_phsubwv4hi3): Likewise.
4509 (ssse3_phsubdv4si3): Likewise.
4510 (ssse3_phsubdv2si3): Likewise.
4511 (ssse3_phsubswv8hi3): Likewise.
4512 (ssse3_phsubswv4hi3): Likewise.
4513 (ssse3_pmaddubsw128): Likewise.
4514 (sse3_pmaddubsw: Likewise.
4515 (ssse3_palignrti): Likewise.
4516 (ssse3_palignrdi): Likewise.
4517
53e350d3
GP
45182009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
4519
4520 * doc/install.texi (Specific): Fix two cross-references to MinGW.
4521
439ef907
RG
45222009-04-06 Richard Guenther <rguenther@suse.de>
4523
4524 PR tree-optimization/28868
4525 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
4526 of which PHI results we inserted.
4527 (insert_into_preds_of_block): Record inserted PHIs.
4528 (eliminate): Eliminate redundant PHI nodes.
4529 (init_pre): Init inserted_phi_names.
4530
4bad83f5
RG
45312009-04-06 Richard Guenther <rguenther@suse.de>
4532
4533 PR tree-optimization/39643
4534 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
4535 IMAGPART_EXPRs of complex constants.
4536 (execute_fold_all_builtins): If we folded a call queue
4537 TODO_update_address_taken.
4538
570c4247
JH
45392009-04-06 Jan Hubicka <jh@suse.cz>
4540
4541 PR middle-end/39659
4542 * except.c (remove_unreachable_regions): Propagate may_contain_throw
4543 flag.
4544
a460d7a1
AS
45452009-04-06 Andrew Stubbs <ams@codesourcery.com>
4546
4547 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
4548 delay slot.
4549 (ic_invalidate_array): Likewise.
4550
60839f5d 45512009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
4552
4553 * calls.c (emit_library_call_value_1): Fix a problem with parameter
4554 alignment for library calls.
4555
7d253f6e
DS
45562009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
4557
4558 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
4559 (mingw32 tm clause use_gcc_stdint): Set to wrap.
4560 * config/i386/mingw-stdint.h: New file.
4561
941c3614
RB
45622009-04-05 Richard Guenther <rguenther@suse.de>
4563
4564 PR tree-optimization/39648
4565 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
4566 our &A vs. &A[0] IL deficiencies.
4567
12633413
JH
45682009-04-04 Jan Hubicka <jh@suse.cz>
4569
941c3614
RB
4570 * except.c (sjlj_find_directly_reachable_regions): Be ready for
4571 removed toplevel regions.
12633413
JH
4572 (sjlj_mark_call_sites): Likewise.
4573
bb2aaded
DK
45742009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
4575
4576 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
4577 (cygwin tm clause use_gcc_stdint): Set to wrap.
4578 * config/i386/cygwin-stdint.h: New file.
4579
86290011
RG
45802009-04-04 Richard Guenther <rguenther@suse.de>
4581
4582 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
4583 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
4584 single-argument PHIs if we are in loop-closed SSA form.
4585 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
4586 for the pre-condition.
4587 (slpeel_tree_peel_loop_to_edge): Likewise.
4588 (vect_build_loop_niters): Take an optional sequence to append stmts.
4589 (vect_generate_tmps_on_preheader): Likewise.
4590 (vect_do_peeling_for_loop_bound): Take extra guards for the
4591 pre-condition.
4592 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
4593 the cost model check.
4594 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 4595 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
4596 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
4597 (vect_do_peeling_for_loop_bound): Likewise.
4598 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
4599 loop bound only record extra pre-conditions, do not apply loop
4600 versioning.
4601
5eeeac64
RG
46022009-04-04 Richard Guenther <rguenther@suse.de>
4603
4604 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
4605 renaming code.
4606
1ff7d06b
JH
46072009-04-04 Jan Hubicka <jh@suse.cz>
4608
4609 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
4610 last_basic_block for size of bb->index indexed array.
4611 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
4612 compute_out, link_btr_uses, build_btr_def_use_webs,
4613 build_btr_def_use_webs, migrate_btr_defs): Likewise.
4614
14925fcd
JH
46152009-04-04 Jan Hubicka <jh@suse.cz>
4616
4617 * except.c (remove_eh_handler_and_replace): Break out from ...
4618 (remove_eh_handler): ... here.
4619 (bring_to_root): New function.
4620 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
4621 handled ones, bring others to root of tree.
4622
4e6d1743
JH
46232009-04-04 Jan Hubicka <jh@suse.cz>
4624
4cb735f7
JH
4625 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
4626 (all_phis_safe_to_merge): New function.
4627 (update_info): New structure.
4628 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
4629 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 4630
c6803d43
RG
46312009-04-04 Richard Guenther <rguenther@suse.de>
4632
4633 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
4634 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
4635 (append_vuse): Likewise.
4636
54f5943c
JJ
46372009-04-04 Jakub Jelinek <jakub@redhat.com>
4638
4639 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
4640 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
4641 instead of REG_UNSAVED for DW_CFA_undefined.
4642 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
4643 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
4644 outermost frame.
4645
aad2bccb
RE
46462009-04-04 Richard Earnshaw <rearnsha@arm.com>
4647
4648 PR target/39501
4649 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
4650 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
4651 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
4652
aa7069aa
RG
46532009-04-04 Richard Guenther <rguenther@suse.de>
4654
4655 PR tree-optimization/8781
4656 PR tree-optimization/37892
4657 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
4658 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
4659 (valueize_refs): Call it for *& valueizations.
4660 (shared_reference_ops_from_ref): Rename to ...
4661 (valueize_shared_reference_ops_from_ref): ... this and valueize.
4662 (shared_reference_ops_from_call): Rename to ...
4663 (valueize_shared_reference_ops_from_call): ... this and valueize.
4664 (vn_reference_lookup): Update.
4665 (visit_reference_op_call): Likewise.
4666 * tree-ssa-pre.c (phi_translate_1): Fold *&.
4667 (eliminate): Value-replace the call address in call statements.
4668
cd15ad3e
RG
46692009-04-04 Richard Guenther <rguenther@suse.de>
4670
4671 PR tree-optimization/39636
4672 * tree-ssa-forwprop.c
4673 (forward_propagate_addr_into_variable_array_index): Check for
4674 GIMPLE_ASSIGN before accessing the rhs code.
4675
462f3262
JM
46762009-04-03 Jason Merrill <jason@redhat.com>
4677
4678 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
4679
6adb807e
SE
46802009-04-03 Steve Ellcey <sje@cup.hp.com>
4681
4682 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
4683 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
4684 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
4685 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
4686 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
4687 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
4688 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
4689 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
4690 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
4691 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
4692 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
4693 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
4694 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
4695 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
4696 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
4697 Use fr_reg_or_fp01_operand instead of fr_register_operand
4698
4699 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
4700 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
4701 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
4702
174b3107
VM
47032009-04-03 Vladimir Makarov <vmakarov@redhat.com>
4704
b844e5d8
L
4705 PR rtl-optimization/39607
4706 PR rtl-optimization/39631
7a715bba
UB
4707
4708 Revert:
2ba9daa7 4709
174b3107
VM
4710 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
4711 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
4712 instead of DF_LR_OUT.
4713 * ira-lives.c (process_bb_node_lives): Ditto.
4714 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
4715 instead of DF_LR_{OUT,IN}.
4716 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
4717 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
4718
535b544a
SB
47192009-04-03 Steven Bosscher <steven@gcc.gnu.org>
4720
4721 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
4722 (execute_lower_omp): Always run but take the short way out if -fopenmp
4723 is not given.
4724 (gate_lower_omp): Remove, forcing the pass manager to always run the
4725 pass and always set PROP_gimple_lomp.
4726 (pass_lower_omp): Remove gate function.
4727 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
4728 PROP_trees. Instead, require it.
4729 * ipa-cp.c (pass_ipa_cp): Likewise.
4730 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
4731 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
4732 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
4733 and PROP_gimple_leh.
4734
5006671f
RG
47352009-04-03 Richard Guenther <rguenther@suse.de>
4736
4737 PR middle-end/13146
4738 PR tree-optimization/23940
4739 PR tree-optimization/33237
4740 PR middle-end/33974
4741 PR middle-end/34093
4742 PR tree-optimization/36201
4743 PR tree-optimization/36230
4744 PR tree-optimization/38049
4745 PR tree-optimization/38207
4746 PR tree-optimization/38230
4747 PR tree-optimization/38301
4748 PR tree-optimization/38585
4749 PR middle-end/38895
4750 PR tree-optimization/38985
4751 PR tree-optimization/39299
4752 * tree-ssa-structalias.h: Remove.
4753 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
4754 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
4755 (struct vuse_element_d): Remove.
4756 (struct vuse_vec_d): Likewise.
4757 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
4758 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
4759 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
4760 VUSE_ELEMENT_VAR): Likewise.
4761 (struct voptype_d): Likewise.
4762 (NUM_VOP_FREE_BUCKETS): Likewise.
4763 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
4764 (struct stmt_operands_d): Remove.
4765 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
4766 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
4767 VDEF_NUM, VDEF_VECT): Likewise.
4768 (copy_virtual_operands): Remove.
4769 (operand_build_cmp): Likewise.
4770 (create_ssa_artificial_load_stmt): Likewise.
4771 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
4772 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
4773 vuse_index and mayuse_index members. Pack and move done and iter_type
4774 members to the front.
4775 (SSA_OP_VMAYUSE): Remove.
4776 (SSA_OP_VIRTUAL_USES): Adjust.
4777 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
4778 (unlink_stmt_vdef): Declare.
4779 (add_to_addressable_set): Remove.
4780 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
4781 (vrp_visit_stmt): Likewise.
4782 * doc/tree-ssa.texi (Alias analysis): Update.
4783 * doc/invoke.texi (max-aliased-vops): Remove docs.
4784 (avg-aliased-vops): Likewise.
4785 * tree-into-ssa.c (syms_to_rename): Remove.
4786 (need_to_update_vops_p): Likewise.
4787 (need_to_initialize_update_ssa_p): Rename to ...
4788 (update_ssa_initialized_fn): ... this. Track function we are
4789 initialized for.
4790 (symbol_marked_for_renaming): Simplify.
4791 (add_new_name_mapping): Do not set need_to_update_vops_p.
4792 (dump_currdefs): Use SYMS_TO_RENAME.
4793 (rewrite_update_stmt): Always walk all uses/defs.
4794 (dump_update_ssa): Adjust.
4795 (init_update_ssa): Take function argument. Track what we are
4796 initialized for.
4797 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
4798 (create_new_def_for): Initialize for cfun, assert we are initialized
4799 for cfun.
4800 (mark_sym_for_renaming): Simplify.
4801 (mark_set_for_renaming): Do not initialize update-ssa.
4802 (need_ssa_update_p): Simplify. Take function argument.
4803 (name_mappings_registered_p): Assert we ask for the correct function.
4804 (name_registered_for_update_p): Likewise.
4805 (ssa_names_to_replace): Likewise.
4806 (release_ssa_name_after_update_ssa): Likewise.
4807 (update_ssa): Likewise. Use SYMS_TO_RENAME.
4808 (dump_decl_set): Do not print a newline.
4809 (debug_decl_set): Do it here.
4810 (dump_update_ssa): And here.
4811 * tree-ssa-loop-im.c (move_computations): Adjust.
4812 (movement_possibility): Likewise.
4813 (determine_max_movement): Likewise.
4814 (gather_mem_refs_stmt): Likewise.
4815 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
4816 or NAME_MEMORY_TAG.
4817 * tree-complex.c (update_all_vops): Remove.
4818 (expand_complex_move): Adjust.
4819 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
4820 Simplify test for memory referencing statement. Exclude
4821 non-invariant ADDR_EXPRs.
4822 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
4823 * tree-loop-distribution.c (generate_memset_zero): Adjust.
4824 (rdg_flag_uses): Likewise.
4825 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
4826 related code.
4827 (tree_optimize_tail_calls_1): Also split the
4828 edge from the entry block if we have degenerate PHI nodes in
4829 the first basic block.
4830 * tree.c (init_ttree): Remove memory-tag related code.
4831 (tree_code_size): Likewise.
4832 (tree_node_structure): Likewise.
4833 (build7_stat): Re-write to be build6_stat.
4834 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
4835 (SSA_VAR_P): Adjust.
4836 (struct tree_memory_tag): Remove.
4837 (struct tree_memory_partition_tag): Likewise.
4838 (union tree_node): Adjust.
4839 (build7): Re-write to be build6.
4840 * tree-pass.h (pass_reset_cc_flags): Remove.
4841 (TODO_update_address_taken): New flag.
4842 (pass_simple_dse): Remove.
4843 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
4844 * params.h (MAX_ALIASED_VOPS): Remove.
4845 (AVG_ALIASED_VOPS): Likewise.
4846 * omp-low.c (expand_omp_taskreg): Update SSA form.
4847 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
4848 aliases the lhs in a copy stmt.
4849 * tree-ssa-dse.c (struct address_walk_data): Remove.
4850 (memory_ssa_name_same): Likewise.
4851 (memory_address_same): Likewise.
4852 (get_kill_of_stmt_lhs): Likewise.
4853 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
4854 unused stores. Look through PHI nodes into post-dominated regions.
4855 (dse_optimize_stmt): Simplify. Properly remove stores.
4856 (tree_ssa_dse): Compute dominators.
4857 (execute_simple_dse): Remove.
4858 (pass_simple_dse): Likewise.
4859 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
4860 gimple_loaded_syms and gimple_stored_syms computation.
4861 * toplev.c (dump_memory_report): Dump alias and pta stats.
4862 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
4863 (vn_reference_eq): Likewise.
4864 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
4865 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
4866 valueize_vuses): Remove.
4867 (get_def_ref_stmt_vuses): Simplify. Rename to ...
4868 (get_def_ref_stmt_vuse): ... this.
4869 (vn_reference_lookup_2): New function.
4870 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
4871 walking equivalent vuses. Simplify.
4872 (vn_reference_lookup): Likewise.
4873 (vn_reference_insert): Likewise.
4874 (vn_reference_insert_pieces): Likewise.
4875 (visit_reference_op_call): Simplify.
4876 (visit_reference_op_load): Likewise.
4877 (visit_reference_op_store): Likewise.
4878 (init_scc_vn): Remove shared_lookup_vuses initialization.
4879 (free_scc_vn): Remove shared_lookup_vuses freeing.
4880 (sort_vuses, sort_vuses_heap): Remove.
4881 (get_ref_from_reference_ops): Export.
4882 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
4883 vector with single vuse pointer.
4884 (vn_reference_lookup_pieces, vn_reference_lookup,
4885 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
4886 (shared_vuses_from_stmt): Remove.
4887 (get_ref_from_reference_ops): Declare.
4888 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
4889 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
4890 memory-tag related code.
4891 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
4892 (likely_value): Add comment, skip static-chain of call statements.
4893 (surely_varying_stmt_p): Adjust.
4894 (gimplify_and_update_call_from_tree): Likewise.
4895 (execute_fold_all_builtins): Do not rebuild alias info.
4896 (gimplify_and_update_call_from_tree): Properly update VOPs.
4897 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
4898 (copy_ref_info): Remove memory-tag related code.
4899 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
4900 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
4901 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
4902 computation.
4903 * tree-ssa-dom.c (gimple_p): Remove typedef.
4904 (eliminate_redundant_computations): Adjust.
4905 (record_equivalences_from_stmt): Likewise.
4906 (avail_expr_hash): Likewise.
4907 (avail_expr_eq): Likewise.
7a715bba 4908 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
4909 (stmt_makes_single_load): Likewise.
4910 (stmt_makes_single_store): Likewise.
4911 * tree-ssa-alias.c: Rewrite completely.
4912 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
4913 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
4914 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
4915 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
4916 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
4917 Remove public functions.
4918 (pass_reset_cc_flags): Remove.
4919 (pass_build_alias): Move ...
4920 * tree-ssa-structalias.c (pass_build_alias): ... here.
4921 * tree-ssa-alias.c (may_be_aliased): Move ...
4922 * tree-flow-inline.h (may_be_aliased): ... here.
4923 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
4924 count_uses_and_derefs): Move ...
4925 * gimple.c: ... here.
4926 * gimple.h (count_uses_and_derefs): Declare.
4927 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
4928 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
4929 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
4930 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
4931 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
4932 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
4933 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
4934 New functions.
4935 * tree-dfa.c (refs_may_alias_p): Move ...
4936 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
4937 * tree-ssa-alias.h: New file.
4938 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
4939 (statement_sink_location): Likewise.
4940 * opts.c (decode_options): Do not adjust max-aliased-vops or
4941 avg-aliased-vops values.
4942 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
4943 (TV_CALL_CLOBBER): Likewise.
4944 (TV_FLOW_SENSITIVE): Likewise.
4945 (TV_FLOW_INSENSITIVE): Likewise.
4946 (TV_MEMORY_PARTITIONING): Likewise.
4947 (TV_ALIAS_STMT_WALK): New timevar.
4948 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
4949 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
4950 (get_address_description): Remove memory-tag related code.
4951 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
4952 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
4953 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
4954 and immediate uses in statements. Document.
4955 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
4956 (dump_symbols): Remove.
4957 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
4958 * alias.c (get_deref_alias_set): New function split out from ...
4959 (get_alias_set): ... here.
4960 * alias.h (get_deref_alias_set): Declare.
4961 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
4962 type parameter. Remove restrict pointer handling. Create a
4963 ref-all pointer in case type-based alias sets do not conflict.
4964 (vect_analyze_data_refs): Remove SMT related code.
4965 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
4966 (vectorizable_load): Likewise.
4967 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
4968 (DR_SYMBOL_TAG, DR_VOPS): Remove.
4969 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
4970 Ignore vops and SMTs.
4971 (dr_analyze_alias): Likewise..
4972 (free_data_ref): Likewise.
4973 (create_data_ref): Likewise.
4974 (analyze_all_data_dependences): Likewise.
4975 (get_references_in_stmt): Adjust.
4976 * tree-flow-inline.h (gimple_aliases_computed_p,
4977 gimple_addressable_vars, gimple_call_clobbered_vars,
4978 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
4979 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
4980 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
4981 gimple_mem_ref_stats): Remove.
4982 (gimple_vop): New function.
4983 (op_iter_next_use): Remove vuses and mayuses cases.
4984 (op_iter_next_def): Remove vdefs case.
4985 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
4986 (clear_and_done_ssa_iter): Do not set removed fields.
4987 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
4988 Assert we are not iterating over vuses or vdefs if not also
4989 iterating over uses or defs.
4990 (op_iter_init_use): Likewise.
4991 (op_iter_init_def): Likewise.
4992 (op_iter_next_vdef): Remove.
4993 (op_iter_next_mustdef): Likewise.
4994 (op_iter_init_vdef): Likewise.
4995 (compare_ssa_operands_equal): Likewise.
4996 (link_use_stmts_after): Handle vuse operand.
4997 (is_call_used): Use is_call_clobbered.
4998 (is_call_clobbered): Global variables are always call clobbered,
4999 query the call-clobbers bitmap.
5000 (mark_call_clobbered): Ignore global variables.
5001 (clear_call_clobbered): Likewise.
5002 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
5003 virtual operands sanity check.
5004 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
5005 Remove.
5006 (TARGET_MEM_REF): Remove TMR_TAG operand.
5007 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
5008 Remove call-clobber related code.
5009 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
5010 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
5011 partitions or escape reason.
5012 (get_single_def_stmt, get_single_def_stmt_from_phi,
5013 get_single_def_stmt_with_phi): Remove.
5014 (dump_referenced_vars): Tidy.
5015 (get_ref_base_and_extent): Allow bare decls.
5016 (collect_dfa_stats): Adjust.
5017 * graphite.c (rename_variables_in_stmt): Adjust.
5018 (graphite_copy_stmts_from_block): Likewise.
5019 (translate_clast): Likewise.
5020 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
5021 (EXPR_DIES): New.
5022 (translate_vuse_through_block): Use the oracle.
5023 (phi_translate_1): Adjust.
5024 (value_dies_in_block_x): Use the oracle. Cache the outcome
5025 in EXPR_DIES.
5026 (valid_in_sets): Check if the VUSE for
5027 a REFERENCE is available.
5028 (eliminate): Do not remove stmts during elimination,
5029 instead queue and remove them afterwards.
5030 (do_pre): Do not rebuild alias info.
5031 (pass_pre): Run TODO_rebuild_alias before PRE.
5032 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
5033 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
5034 (mark_all_v_defs_stmt): Remove.
5035 (mark_all_v_defs_seq): Adjust.
5036 (sra_replace): Likewise.
5037 (scalarize_use): Likewise.
5038 (scalarize_copy): Likewise.
5039 (scalarize_init): Likewise.
5040 (scalarize_ldst): Likewise.
5041 (todoflags): Remove.
5042 (tree_sra): Do not rebuild alias info.
5043 (tree_sra_early): Adjust.
5044 (pass_sra): Run TODO_update_address_taken before SRA.
5045 * tree-predcom.c (set_alias_info): Remove.
5046 (prepare_initializers_chain): Do not call it.
5047 (mark_virtual_ops_for_renaming): Adjust.
5048 (mark_virtual_ops_for_renaming_list): Remove.
5049 (initialize_root_vars): Adjust.
5050 (initialize_root_vars_lm): Likewise.
5051 (prepare_initializers_chain): Likewise.
5052 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
5053 (may_propagate_copy_into_stmt): Likewise.
5054 (merge_alias_info): Do nothing for now.
5055 (propagate_tree_value_into_stmt): Adjust.
5056 (stmt_may_generate_copy): Likewise.
5057 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
5058 not mark symbols for renaming.
5059 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
5060 with the same statement, make sure to update the new pointed-to one.
5061 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
5062 call statements, do not mark symbols for renaming.
5063 (mark_operand_necessary): Dump something.
5064 (ref_may_be_aliased): New function.
5065 (mark_aliased_reaching_defs_necessary_1): New helper function.
5066 (mark_aliased_reaching_defs_necessary): Likewise.
5067 (mark_all_reaching_defs_necessary_1): Likewise.
5068 (mark_all_reaching_defs_necessary): Likewise.
5069 (propagate_necessity): Do not process virtual PHIs. For
5070 non-aliased loads mark all reaching definitions as necessary.
5071 For aliased loads and stores mark the immediate dominating
5072 aliased clobbers as necessary.
5073 (visited): New global static.
5074 (perform_tree_ssa_dce): Free visited bitmap after propagating
5075 necessity.
5076 (remove_dead_phis): Perform simple dead virtual PHI removal.
5077 (remove_dead_stmt): Properly unlink virtual operands when
5078 removing stores.
5079 (eliminate_unnecessary_stmts): Schedule PHI removal after
5080 stmt removal.
5081 * tree-ssa-ter.c (is_replaceable_p): Adjust.
5082 (process_replaceable): Likewise.
5083 (find_replaceable_in_bb): Likewise.
5084 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
5085 based on the single gimple vop.
5086 (verify_flow_insensitive_alias_info): Remove.
5087 (verify_flow_sensitive_alias_info): Likewise.
5088 (verify_call_clobbering): Likewise.
5089 (verify_memory_partitions): Likewise.
5090 (verify_alias_info): Likewise.
5091 (verify_ssa): Adjust..
5092 (execute_update_addresses_taken): Export. Update SSA
5093 manually. Optimize only when optimizing. Use a local bitmap.
5094 (pass_update_address_taken): Remove TODO_update_ssa, add
5095 TODO_dump_func.
5096 (pass_update_address_taken): Just use TODO_update_address_taken.
5097 (init_tree_ssa): Do not initialize addressable_vars.
5098 (verify_ssa): Verify new VUSE / VDEF properties.
5099 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
5100 Do not call verify_alias_info.
5101 (delete_tree_ssa): Clear the VUSE, VDEF operands.
5102 Do not free the loaded and stored syms bitmaps. Reset the escaped
5103 and callused solutions. Do not free addressable_vars.
5104 Remove memory-tag related code.
5105 (warn_uninitialized_var): Aliases are always available.
5106 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
5107 * lambda-code.c (can_put_in_inner_loop): Adjust.
5108 (can_put_after_inner_loop): Likewise.
5109 (perfect_nestify): Likewise.
5110 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
5111 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
5112 (vectorizable_conversion): Do not mark symbols for renaming.
5113 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
5114 (expand_call_inline): Unlink the calls virtual operands before
5115 replacing it.
5116 (tree_function_versioning): Do not call update_ssa if we are not
5117 updating clones. Simplify.
5118 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
5119 (propagate_with_phi): Likewise..
5120 * tree-outof-ssa.c (create_temp): Remove memory tag and call
5121 clobber code. Assert we are not aliased or global.
5122 * tree-flow.h: Include tree-ssa-alias.h
5123 (enum escape_type): Remove.
5124 (struct mem_sym_stats_d): Likewise.
5125 (struct mem_ref_stats_d): Likewise.
5126 (struct gimple_df): Add vop member. Remove global_var,
5127 call_clobbered_vars, call_used_vars, addressable_vars,
5128 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
5129 escaped and callused members.
5130 (struct ptr_info_def): Remove all members, add points-to solution
5131 member pt.
5132 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
5133 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
5134 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
5135 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
5136 (tree-ssa-alias.o): Likewise.
5137 (toplev.o): Add tree-ssa-alias.h
5138 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
5139 * gimple.c (gimple_set_bb): Fix off-by-one error.
5140 (is_gimple_reg): Do not handle memory tags.
5141 (gimple_copy): Also copy virtual operands.
5142 Delay updating the statement. Do not reset loaded and stored syms.
5143 (gimple_set_stored_syms): Remove.
5144 (gimple_set_loaded_syms): Likewise.
5145 (gimple_call_copy_skip_args): Copy the virtual operands
5146 and mark the new statement modified.
5147 * tree-ssa-structalias.c (may_alias_p): Remove.
5148 (set_uids_in_ptset): Take the alias set to prune with as
5149 parameter. Fold in the alias test of may_alias_p.
5150 (compute_points_to_sets): Compute whether a ptr is dereferenced
5151 in a local sbitmap.
5152 (process_constraint): Deal with &ANYTHING on the lhs, reject all
5153 other ADDRESSOF constraints on the lhs.
5154 (get_constraint_for_component_ref): Assert that we don't get
5155 ADDRESSOF constraints from the base of the reference.
5156 Properly generate UNKNOWN_OFFSET for DEREF if needed.
5157 (struct variable_info): Remove collapsed_to member.
5158 (get_varinfo_fc): Remove.
5159 (new_var_info): Do not set collapsed_to.
5160 (dump_constraint): Do not follow cycles.
5161 (dump_constraint_graph): Likewise.
5162 (build_pred_graph): Likewise.
5163 (build_succ_graph): Likewise.
5164 (rewrite_constraints): Likewise.
5165 (do_simple_structure_copy): Remove.
5166 (do_rhs_deref_structure_copy): Remove.
5167 (do_lhs_deref_structure_copy): Remove.
5168 (collapse_rest_of_var): Remove.
5169 (do_structure_copy): Re-implement.
5170 (pta_stats): New global variable.
5171 (dump_pta_stats): New function.
5172 (struct constraint_expr): Make offset signed.
5173 (UNKNOWN_OFFSET): Define special value.
5174 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
5175 (solution_set_expand): New helper function split out from ...
5176 (do_sd_constraint): ... here.
5177 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
5178 (do_ds_constraint): Likewise.
5179 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
5180 and CALLUSED = *CALLUSED.
5181 (set_union_with_increment): Make inc argument signed.
5182 (type_safe): Remove.
5183 (get_constraint_for_ptr_offset): Handle unknown and negative
5184 constant offsets.
5185 (first_vi_for_offset): Handle offsets before start. Bail
5186 out early for offsets beyond the variable extent.
5187 (first_or_preceding_vi_for_offset): New function.
5188 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
5189 Together with ESCAPED = *ESCAPED this properly computes reachability.
5190 (find_what_var_points_to): New function.
5191 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
5192 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
5193 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
5194 pt_solutions_intersect): New functions.
5195 (compute_call_used_vars): Remove.
5196 (compute_may_aliases): New main entry into PTA computation.
5197 * gimple.h (gimple_p): New typedef.
5198 (struct gimple_statement_base): Remove references_memory_p.
5199 (struct gimple_statement_with_memory_ops_base): Remove
5200 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
5201 members.
5202 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
5203 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
5204 gimple_set_references_memory): Remove.
5205 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
5206 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
5207 New functions.
5208 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
5209 (verify_expr): Allow RESULT_DECL.
5210 (gimple_duplicate_bb): Do not copy virtual operands.
5211 (gimple_duplicate_sese_region): Adjust.
5212 (gimple_duplicate_sese_tail): Likewise.
5213 (mark_virtual_ops_in_region): Remove.
5214 (move_sese_region_to_fn): Do not call it.
5215 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
5216 and pass_simple_dse.
5217 (execute_function_todo): Handle TODO_update_address_taken,
5218 call execute_update_addresses_taken for TODO_rebuild_alias.
5219 (execute_todo): Adjust.
5220 (execute_one_pass): Init dump files early.
5221 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
5222 call-clobbered.
5223 (create_general_new_stmt): Clear vops.
5224 * tree-ssa-reassoc.c (get_rank): Adjust.
5225 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
5226 symbols for renaming.
5227 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
5228 (PARAM_AVG_ALIASED_VOPS): Likewise.
5229 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
5230 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 5231 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
5232 (operand_build_cmp, copy_virtual_operands,
5233 create_ssa_artificial_load_stmt, add_to_addressable_set,
5234 gimple_add_to_addresses_taken): Remove public functions.
5235 (unlink_stmt_vdef): New function.
5236
457d1d00
AM
52372009-04-03 Alan Modra <amodra@bigpond.net.au>
5238
5239 * config.gcc (powerpc-*-linux*): Merge variants.
5240
e19da24c 52412009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 5242 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
5243
5244 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
5245 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
5246 cop0_sp_offset.
5247 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
5248 keep_interrupts_masked_p, use_debug_exception_return_p.
5249 (mips_attribute_table): Add interrupt, use_shadow_register_set,
5250 keep_interrupts_masked, use_debug_exception_return.
5251 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
5252 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
5253 New functions.
5254 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
5255 (mips_print_operand): Process COP0 registers to print $0 .. $31
5256 correctly for GAS to process.
5257 (mips_interrupt_extra_call_saved_reg_p): New function.
5258 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
5259 extra registers.
5260 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
5261 (mips_compute_frame_info): Add supports for interrupt context that
5262 includes doubleword accumulators and COP0 registers.
5263 (mips_for_each_saved_acc): New function.
5264 (mips_for_each_saved_gpr_and_fpr): Change the function name from
5265 mips_for_each_saved_reg.
5266 (mips_save_reg): Save accumulators.
5267 (mips_kernel_reg_p): A new for_each_rtx callback.
5268 (mips_expand_prologue): Support interrupt handlers.
5269 (mips_restore_reg): Restore accumulators.
5270 (mips_expand_epilogue): Support interrupt handlers.
5271 (mips_can_use_return_insn): Return false for interrupt handlers.
5272 (mips_epilogue_uses): New function.
5273 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
5274 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
5275 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
5276 cop0_move): New instructions.
5277 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
5278 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
5279 defines.
5280 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
5281 New defines.
5282 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
5283 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
5284 interrupt handlers, we use K0 as the temporary register.
5285 (EPILOGUE_USES): Change to a function call.
5286 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
5287 handlers, we use K0 as the temporary register.
2ba9daa7 5288
e19da24c
CF
5289 * doc/extend.texi (Function Attributes): Document interrupt,
5290 use_shadow_register_set, keep_interrupts_masked,
5291 use_debug_exception_return for MIPS attributes.
5292
aa1ca044
AM
52932009-04-03 Alan Modra <amodra@bigpond.net.au>
5294
5295 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
5296 Remove a number of t-files from tmake_file.
5297 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
5298 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
5299 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
5300 target_prototype, not TARGET_PROTOTYPE.
5301 (LINK_OS_GNU_SPEC): Define.
5302 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
5303 and darwin-ldoubdle.c.
5304
14fdc613
MM
53052009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
5306
5307 PR driver/39293
5308 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
5309 (cpp_options): Ditto.
5310 (default_compilers): Ditto.
5311 (display_help): Ditto.
5312 (process_command): Ditto.
5313 (do_spec_1): Ditto.
5314 (set_input): Use lbasename instead of duplicate code.
5315 (save_temps_prefix): New static for -save-temps=obj.
5316 (save_temps_length): Ditto.
2ba9daa7 5317
14fdc613
MM
5318 * doc/invoke.texi (-save-temps=obj): Document new variant to
5319 -save-temps switch.
5320
d3aa398e
JL
53212009-04-02 Jeff Law <law@redhat.com>
5322
5323 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
5324 variable.
5325
83f0ccb8
L
53262009-04-02 H.J. Lu <hongjiu.lu@intel.com>
5327
5328 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
5329 * configure: Regenerated.
5330
dcb6e951
RAE
53312009-04-02 Rafael Avila de Espindola <espindola@google.com>
5332
5333 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
5334 share the argument list.
5335
d85478c2
RAE
53362009-04-02 Rafael Avila de Espindola <espindola@google.com>
5337
5338 Merge
5339
5340 2009-02-12 Diego Novillo <dnovillo@google.com>
5341
83f0ccb8
L
5342 * varpool.c (debug_varpool): New.
5343 * cgraph.h (debug_varpool): Declare.
d85478c2 5344
34f42a49
JH
53452009-04-02 Jan Hubicka <jh@suse.cz>
5346
5347 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
5348 pass.
5349
a4747b4a
L
53502009-04-02 H.J. Lu <hongjiu.lu@intel.com>
5351
5352 * config/i386/i386.c (ix86_abi): Move initialization to ...
5353 (override_options): Here.
5354
63a9de54
CB
53552009-04-02 Christian Bruel <christian.bruel@st.com>
5356
5357 * config/sh/sh.c (sh_dwarf_register_span): New function.
5358 (TARGET_DWARF_REGISTER_SPAN): Define.
5359 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 5360
2f0fa28e
IR
53612009-04-02 Ira Rosen <irar@il.ibm.com>
5362
5363 PR tree-optimization/39595
2ba9daa7 5364 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
5365 interleaved loads group is not greater than the SLP group size.
5366
bbf7ce11
RAE
53672009-04-02 Rafael Avila de Espindola <espindola@google.com>
5368
5369 * builtins.c (is_builtin_name): New.
5370 (called_as_built_in): Use is_builtin_name.
5371 * tree.h (is_builtin_name): New.
5372 * varasm.c (incorporeal_function_p): Use is_builtin_name
5373
47e4dfcf
AS
53742009-04-02 Andrew Stubbs <ams@codesourcery.com>
5375
5376 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
5377
d0940d56
DS
53782009-04-02 Dodji Seketeli <dodji@redhat.com>
5379
5380 PR c++/26693
532bfb0a 5381 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
5382 * c-common.c (set_underlying_type): ... here.
5383 Also, make sure the function properly sets TYPE_STUB_DECL() on
5384 the newly created typedef variant type.
5385 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
5386 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
5387 points.
d0940d56 5388
bf1cbdc6
RG
53892009-04-02 Richard Guenther <rguenther@suse.de>
5390
5391 PR tree-optimization/37221
5392 * tree-flow.h (degenerate_phi_result): Declare.
5393 * tree-ssa-dom.c (degenerate_phi_result): Export.
5394 * tree-scalar-evolution.c (analyze_initial_condition): If
5395 the initial condition is defined by a degenerate PHI node
5396 use the degenerate value.
5397
87cfb32c
EB
53982009-04-01 Eric Botcazou <ebotcazou@adacore.com>
5399
5400 PR rtl-optimization/39588
5401 * combine.c (merge_outer_ops): Do not set the constant when this
5402 is not necessary.
5403 (simplify_shift_const_1): Do not modify it either in this case.
5404
bbb6eae8
SB
54052009-04-01 Steven Bosscher <steven@gcc.gnu.org>
5406
5407 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
5408 tuning is deprecated if -mtune value is set to an Itanium1 variant.
5409
839a3b8a
JJ
54102009-04-01 Janis Johnson <janis187@us.ibm.com>
5411
5412 PR c/29027
5413 * c-lex.c (interpret_float): Default (no suffix) is double.
5414
667e8acb
XDL
54152009-04-1 Xinliang David Li <davidxl@google.com>
5416
5417 * config/i386/i386.c (legitimate_constant_p): Recognize
5418 all one vector constant.
5419
60839f5d 54202009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5421
60839f5d 5422 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
5423 Change #include order to silence two warnings.
5424
60839f5d 54252009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5426
60839f5d 5427 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
5428 (ASM_SPEC): Pass -k to the assembler for PIC code.
5429
60839f5d 54302009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5431
60839f5d
EB
5432 * config.gcc: Add vax-*-linux* to the switch.
5433 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
5434 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
5435
60839f5d 54362009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5437
60839f5d 5438 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 5439 Use predicate macros instead of GET_CODE() == foo.
60839f5d 5440 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
5441 ashlsi3, rotrsi3, <unnamed>): Likewise.
5442
60839f5d 54432009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5444
60839f5d 5445 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 5446 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
5447 * config/vax/constraints.md: Likewise.
5448 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5449 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
5450 * config/vax/predicates.md: Likewise.
5451 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 5452 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
5453 * config/vax/vax.h: Likewise.
5454 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 5455
60839f5d 54562009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5457
60839f5d 5458 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
5459 (indirectable_address_p, adjacent_operands_p): Add spaces around
5460 braces.
60839f5d 5461 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 5462
60839f5d 54632009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5464
60839f5d 5465 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
5466 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
5467 index_term_p, reg_plus_index_p, legitimate_address_p,
5468 vax_mode_dependent_address_p): Update comments to match functions
5469 modified by the recent int->bool conversion.
5470
60839f5d 54712009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5472
60839f5d
EB
5473 * config/vax/builtins.md: Update copyright message.
5474 * config/vax/constraints.md: Likewise.
5475 * config/vax/netbsd-elf.h: Likewise.
5476 * config/vax/predicates.md: Likewise.
5477 * config/vax/vax-protos.h: Likewise.
5478 * config/vax/vax.c: Likewise.
5479 * config/vax/vax.h: Likewise.
5480 * config/vax/vax.md: Likewise.
5481 * config/vax/vax.opt: Likewise.
c4e75102 5482
60839f5d 54832009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5484
60839f5d 5485 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 5486 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
5487 * config/vax/constraints.md (B, R): Likewise.
5488 * config/vax/predicates.md (external_memory_operand,
c4e75102 5489 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
5490 * config/vax/vax.c (vax_output_int_add): Likewise.
5491 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
5492 untyped_call): Likewise.
5493
60839f5d 54942009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 5495
7a715bba
UB
5496 * config/vax/predicates.md: New file.
5497 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
5498 external_const_operand, nonsymbolic_operand, external_memory_operand,
5499 indirect_memory_operand, indexed_memory_operand,
5500 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
5501 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
5502 predicate.
7a715bba
UB
5503 * config/vax/constraints.md: New file.
5504 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
5505 New constraint.
5506 * config/vax/builtins.md: New file.
5507 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
5508 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
5509 jbbccisi): Define.
c4e75102
MT
5510 * config/vax/vax.opt (mqmath): Add option.
5511 * config/vax/vax.md (isfx): Extend with DI.
5512 (VAXintQH, VAXintQHSD): Define.
5513 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
5514 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
5515 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
5516 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
5517 (movdi): Update constraints and use vax_output_int_move().
5518 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
5519 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
5520 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
5521 nonlocal_goto): New.
5522 (mov<mode>): Extend accepted operand types.
5523 (subdi3_old): Rename from subdi3, change update constraints and use
5524 a new implementation.
60839f5d 5525 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
5526 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
5527 MOVE_RATIO, CLEAR_RATIO): Define.
5528 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
5529 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
5530 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 5531 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
5532 (split_quadword_operands): Make static and really allow variable
5533 splitting.
5534 (print_operand_address): Update for PIC generation.
5535 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
5536 indexable_address_p, fixup_mathdi_operand,
5537 vax_expand_addsub_di_operands, adjacent_operands_p): New.
5538 (vax_float_literal, legitimate_constant_p,
5539 indirectable_constant_address_p, index_term_p,
5540 reg_plus_index_p): Return bool instead of int.
5541 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
5542 where needed.
5543 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
5544 generation.
5545 (vax_output_conditional_branch): Indent.
5546 (legitimate_constant_address_p, indirectable_constant_address_p,
5547 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
5548 vax_mode_dependent_address_p): Return bool instead of int, update for
5549 PIC generation.
5550 * config/vax/vax-protos.h (legitimate_constant_address_p,
5551 legitimate_constant_p, legitimate_address_p,
5552 vax_mode_dependent_address_p): Change declaration to bool.
5553 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
5554 vax_expand_addsub_di_operands, vax_output_int_subtract,
5555 vax_output_movmemsi): Declare.
5556 (split_quadword_operands, vax_float_literal): Delete declaration.
5557 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
5558 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
5559 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
5560 ASM_OUTPUT_DWARF_PCREL): Define.
5561 (ASM_SPEC): Change definition to allow PIC generation.
5562
9332c6eb
L
55632009-04-01 Steve Ellcey <sje@cup.hp.com>
5564
5565 * doc/sourcebuild.texi: Update front-end requirements.
5566
d93e052c
JJ
55672009-04-01 Jakub Jelinek <jakub@redhat.com>
5568
5569 PR target/39226
5570 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
5571 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
5572 (booldi3_internal3): Use boolean_or_operator instead of
5573 boolean_operator.
5574
6ccb2a4a
JM
55752009-04-01 Joseph Myers <joseph@codesourcery.com>
5576
5577 PR c/39605
5578 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
5579 declarator whose size is not an integer constant expression but
5580 folds to an integer constant, then treat it as a constant
5581 subsequently.
5582
299b87f8
RG
55832009-04-01 Richard Guenther <rguenther@suse.de>
5584
5585 * fold-const.c (fold_plusminus_mult_expr): Do not fold
5586 i * 4 + 2 to (i * 2 + 1) * 2.
5587
b85eb797
JJ
55882009-04-01 Jakub Jelinek <jakub@redhat.com>
5589
5590 PR c/37772
5591 * c-parser.c (c_parser_asm_statement): Skip until close paren and
5592 return if c_parser_asm_string_literal returned NULL.
5593
235e1fe8
NC
55942009-04-01 Nick Clifton <nickc@redhat.com>
5595
5596 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
5597 already defined.
5598 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
5599 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
5600 other typedefs to avoid conflicts with libgcc2.c. Define labels
5601 to gain 16-bit bit-manipulation functions from libgcc2.c and then
5602 include it.
5603 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
5604 to gain 16-bit trapping arithmetic functions from libgcc2.c and
5605 then include it.
5606
d6868399
RAE
56072009-04-01 Rafael Avila de Espindola <espindola@google.com>
5608
7a715bba
UB
5609 * varasm.c (default_function_rodata_section): Declare DOT as
5610 const char*.
d6868399 5611
73d21f56 56122009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 5613 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
5614
5615 PR/39492
5616 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
5617 Make object_name unique for each process.
5618
03742a9b
JJ
56192009-04-01 Jakub Jelinek <jakub@redhat.com>
5620
5621 PR other/39591
5622 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
5623 addressable variables in the parallel that could go out of scope while
5624 running queued tasks.
5625
4223ff5f
AS
56262009-04-01 Anatoly Sokolov <aesok@post.ru>
5627
5628 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
5629 (CASE_VALUES_THRESHOLD): Redefine.
5630 * config/avr/avr.c (avr_override_options): Remove initialization of
5631 avr_case_values_threshold variable.
5632 (avr_case_values_threshold): Remove variable. Add new function.
5633 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
5634 * config/avr/avr.opt (mno-tablejump): Remove option.
5635 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
5636
e893f6f3
DD
56372009-04-01 DJ Delorie <dj@redhat.com>
5638
5639 * varasm.c (default_function_rodata_section): Don't assume
5640 anything about where the first '.' in the section name is.
5641
b246d100
AM
56422009-04-01 Alan Modra <amodra@bigpond.net.au>
5643
5644 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
5645 rs6000_emit_stack_tie.
5646
d3e37a9e
ILT
56472009-03-31 Ian Lance Taylor <iant@google.com>
5648
5649 * tree-eh.c (tree_remove_unreachable_handlers): Compare
5650 gimple_code with GIMPLE_RESX, not RESX.
5651
c1b61fca
JM
56522009-03-31 Joseph Myers <joseph@codesourcery.com>
5653
5654 * c-common.c (c_get_ident): New.
7a715bba 5655 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 5656
c2d2ad48
BE
56572009-04-01 Ben Elliston <bje@au.ibm.com>
5658
5659 * config/rs6000/sysv4.opt (msdata): Improve option description.
5660
13d1a6e7
SE
56612009-03-31 Steve Ellcey <sje@cup.hp.com>
5662
5663 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
5664 (divdf3_internal_lat): Remove.
5665 (divxf3_internal_lat): Remove.
5666 (divxf3_internal_thr): Remove.
5667 (divxf): Use divxf3_internal.
5668 * config/ia64/div.md (divsf3_internal_lat): New.
5669 (divdf3_internal_lat): New.
5670 (divxf3_internal): New.
5671
207bf79d
JM
56722009-03-31 Joseph Myers <joseph@codesourcery.com>
5673
5674 PR c/448
5675 * Makefile.in (USE_GCC_STDINT): Define.
5676 (stmp-int-hdrs): Install stdint.h if applicable.
5677 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
5678 if known.
5679 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
5680 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
5681 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5682 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5683 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5684 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5685 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5686 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5687 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5688 (c_common_nodes_and_builtins): Initialize
5689 underlying_wchar_type_node. Do not initialize
5690 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
5691 nodes for new types.
5692 (c_stddef_cpp_builtins): Define macros for new types.
5693 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
5694 Remove.
5695 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
5696 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
5697 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
5698 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
5699 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
5700 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
5701 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
5702 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
5703 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
5704 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
5705 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
5706 int16_type_node, int32_type_node, int64_type_node,
5707 uint8_type_node, uint16_type_node, c_uint32_type_node,
5708 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
5709 int_least32_type_node, int_least64_type_node,
5710 uint_least8_type_node, uint_least16_type_node,
5711 uint_least32_type_node, uint_least64_type_node,
5712 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
5713 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
5714 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
5715 uintptr_type_node): Define.
5716 * c-cppbuiltin.c (builtin_define_constants,
5717 builtin_define_type_minmax): New.
5718 (builtin_define_stdint_macros): Define more macros.
5719 (c_cpp_builtins): Define more limit macros.
5720 (type_suffix): New.
5721 (builtin_define_type_max): Define in terms of
5722 builtin_define_type_minmax. Remove is_long parameter. All
5723 callers changed.
5724 * config.gcc (use_gcc_stdint): Define.
5725 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
5726 Add newlib-stdint.h for generic targets.
5727 * config/glibc-stdint.h, config/newlib-stdint.h,
5728 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
5729 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
5730 * config/score/score.h (UINTPTR_TYPE): Define.
5731 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
5732 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
5733 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5734 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5735 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5736 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5737 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5738 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5739 * config/spu/spu.h (STDINT_LONG32): Define.
5740 * configure.ac (use_gcc_stdint): Substitute.
5741 * configure: Regenerate.
5742 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
5743 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
5744 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
5745 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
5746 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
5747 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
5748 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
5749 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
5750 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
5751 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
5752 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
5753 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
5754 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
5755 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
5756 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
5757 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
5758 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
5759 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
5760 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
5761 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
5762 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
5763 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
5764 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5765 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5766 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5767 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5768 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5769 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5770 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
5771
ed853664
BS
57722009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
5773
5774 * loop-iv.c (suitable_set_for_replacement): Renamed from
5775 simplify_using_assignment; changed to return bool and to accept new
5776 args DEST and SRC. Return true iff we find a source/destination pair
5777 that can be used to make a replacement, and fill SRC and DEST if so.
5778 Remove arg ALTERED. Don't deal with altered regs here. All callers
5779 changed.
5780 (simplify_using_initial_values): Deal with altered regs here and track
5781 more precisely the effect they have on the validity of our expression.
5782
1569e190
BS
5783 * loop-iv.c (simplify_using_condition): A condition of the form
5784 (EQ REG CONST) can be used to simply make a substitution.
5785 (simplify_using_initial_values): Keep track of conditions we have seen
5786 and keep using them to simplify new expressions, while applying the
5787 same substitutions to them as to the expression.
5788
1d1eb80c
BS
5789 * simplify-rtx.c (simplify_relational_operation_1): Simplify
5790 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
5791 GEU/LTU reversed.
5792
28af33b0
BS
5793 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
5794 changed. Use this when trying to improve the upper bound.
5795 Generate the comparison by using simplify_gen_relational.
5796
b30321cd
BS
5797 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
5798
60081874
BS
5799 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
5800 functions.
2ba9daa7 5801 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
5802 replace_in_expr to make replacements. Call replace_single_def_regs
5803 once on the initial version of the expression.
5804
bebc6e07
RR
58052009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5806
fcb82ab0 5807 PR target/27237
bebc6e07 5808 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 5809
6b12efe9
RG
58102009-03-31 Richard Guenther <rguenther@suse.de>
5811
5812 PR middle-end/31029
5813 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
5814 equality comparisons. Fold C - X CMP X if C % 2 == 1.
5815
108f6c2f
RG
58162009-03-31 Richard Guenther <rguenther@suse.de>
5817
5818 * tree.h (div_if_zero_remainder): Declare.
5819 * fold-const.c (div_if_zero_remainder): Export.
5820 * tree-ssa-forwprop.c
5821 (forward_propagate_addr_into_variable_array_index): Handle
5822 constant array index addition outside of the variable index.
5823
8f612190
JM
58242009-03-31 Joseph Myers <joseph@codesourcery.com>
5825
5826 PR target/39592
5827 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
5828 define_splits, floatunssi<mode>2): Require x87 conversions from
5829 DImode to be permitted.
5830
47580d22
JM
58312009-03-31 Joseph Myers <joseph@codesourcery.com>
5832
5833 PR preprocessor/15638
5834 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
5835
ba4d8f9d
RG
58362009-03-31 Richard Guenther <rguenther@suse.de>
5837
5838 PR middle-end/23401
5839 PR middle-end/27810
5840 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
5841 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
5842 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
5843 a separate statement.
5844 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
5845 (lookup_tmp_var): Likewise.
5846 (is_gimple_formal_tmp_or_call_rhs): Remove.
5847 (is_gimple_reg_or_call_rhs): Rename to ...
5848 (is_gimple_reg_rhs_or_call): ... this.
5849 (is_gimple_mem_or_call_rhs): Rename to ...
5850 (is_gimple_mem_rhs_or_call): ... this.
5851 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
5852 DECL_GIMPLE_REG_P only if is_formal is true.
5853 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
5854 for non-proper post-modify expression gimplification.
5855 (gimplify_self_mod_expr): For post-modify expressions gimplify
5856 the lvalue to a minimal lvalue.
5857 (rhs_predicate_for): Remove formal temp case.
5858 (gimplify_modify_expr_rhs): Likewise.
5859 (gimplify_addr_expr): Use is_gimple_reg.
5860 (gimplify_expr): Remove formal temp cases.
5861 (gimple_regimplify_operands): Likewise.
5862 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
5863 and FILTER_EXPR like constants.
5864 * gimple.c (walk_gimple_op): Fix val_only initialization, use
5865 is_gimple_reg.
5866 (is_gimple_formal_tmp_rhs): Remove.
5867 (is_gimple_reg_rhs): Remove special casing.
5868 (is_gimple_mem_rhs): Fix.
5869 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
5870 (is_gimple_formal_tmp_var): Remove.
5871 (is_gimple_formal_tmp_reg): Likewise.
5872 (is_gimple_min_lval): Allow invariant component ref parts.
5873 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
5874 is_gimple_formal_tmp_reg): Remove declarations.
5875 * tree-cfg.c (verify_expr): Verify that variables with address
5876 taken do not have DECL_GIMPLE_REG_P set.
5877 * tree-mudflap.c (mf_build_check_statement_for): Use
5878 force_gimple_operand instead of gimplify_expr.
5879
8de9b877
AZ
58802009-03-31 Ayal Zaks <zaks@il.ibm.com>
5881
5882 * modulo-sched.c (sms_schedule_by_order): Pass the actual
5883 schedulable rows to compute_split_row.
5884
b5e3caf2
BE
58852009-03-31 Ben Elliston <bje@au.ibm.com>
5886
5887 PR target/31635
5888 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
5889 OPT_mvrsave.
5890
9752c4ad
AM
58912009-03-31 Alan Modra <amodra@bigpond.net.au>
5892
5893 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
5894 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
5895 * configure: Regenerate.
5896 * config.in: Regenerate.
5897 * config/rs6000/rs6000.opt (mtls-markers): Add.
5898 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
5899 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
5900 (tls_ld_aix, tls_ld_sysv): Likewise.
5901 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
5902 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
5903
b597d1b6
AM
59042009-03-31 Alan Modra <amodra@bigpond.net.au>
5905
5906 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
5907
a203a221
JH
59082009-03-30 Jan Hubicka <jh@suse.cz>
5909
b597d1b6
AM
5910 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
5911 out of RESX.
5912 (tree_remove_unreachable_handlers): Cleanup EH predecestor
5913 detection and label handling.
a203a221 5914
5b0c0b2c
VM
59152009-03-30 Vladimir Makarov <vmakarov@redhat.com>
5916
5917 * ira-int.h (ira_allocno): Rename left_conflicts_num to
5918 left_conflicts_size.
5919 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
5920 ALLOCNO_LEFT_CONFLICTS_SIZE.
5921
5922 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
5923 remove_allocno_from_bucket_and_push,
5924 allocno_spill_priority_compare, push_allocnos_to_stack,
5925 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
5926 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
5927 (setup_allocno_left_conflicts_num): Ditto. Rename to
5928 setup_allocno_left_conflicts_size.
5929 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
5930 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
5931 setup_allocno_left_conflicts_size instead of
5932 setup_allocno_left_conflicts_num.
5933
5934 * ira-build.c (ira_create_allocno): Use
5935 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
5936 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 5937
9a48a93f
VM
59382009-03-30 Vladimir Makarov <vmakarov@redhat.com>
5939
5940 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
5941 instead of DF_LR_OUT.
5942
5943 * ira-lives.c (process_bb_node_lives): Ditto.
5944
5945 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
5946 instead of DF_LR_{OUT,IN}.
5947
5948 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
5949
5950 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
5951
4c936d4f
JH
59522009-03-30 Jan Hubicka <jh@suse.cz>
5953
5954 * except.c (label_to_region_map): Fix thinko.
5955
f4d9f129
SE
59562009-03-30 Steve Ellcey <sje@cup.hp.com>
5957
5958 PR middle-end/38237
5959 * tree.h (tree_find_value): New declaration.
5960 * tree.c (tree_find_value): New function.
5961 * varasm.c (assemble_external): Avoid duplicate entries on lists.
5962
b3f27c15
JJ
59632009-03-30 Jakub Jelinek <jakub@redhat.com>
5964
5965 PR debug/39563
5966 * c-decl.c (struct c_binding): Add locus field.
5967 (bind): Add locus argument, set locus field from it.
5968 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
5969 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
5970 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
5971 implicitly_declare, undeclared_variable, lookup_label,
5972 declare_label, c_make_fname_decl, c_builtin_function,
5973 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
5974 bind callers.
5975
ad41bd84 59762009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
5977
5978 PR target/38781
5979 * config/i386/i386.c (classify_argument): Check total size of
5980 structure.
5981
133f9369
MJ
59822009-03-30 Martin Jambor <mjambor@suse.cz>
5983
5984 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
5985 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
5986 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
5987 respectively.
5988
5989 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
5990 seen_variable_array_ref while also traversing a union.
5991
5992 * tree-inline.c (optimize_inline_calls): Do not call
5993 cgraph_node_remove_callees.
5994 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
5995 (pass_remove_cgraph_callee_edges): New variable.
5996 * passes.c (init_optimization_passes): Add
5997 pass_remove_cgraph_callee_edges after early inlining and before all
5998 late intraprocedural passes.
5999
6000 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
6001
1190f2eb
PB
60022009-03-30 Paolo Bonzini <bonzini@gnu.org>
6003
6004 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
6005 Fix typos in names.
6006
fedc1775
PB
60072009-03-30 Paolo Bonzini <bonzini@gnu.org>
6008
fcb82ab0
UB
6009 * combine.c (simplify_comparison): Use have_insn_for.
6010 * dojump.c (do_jump): Likewise.
fedc1775 6011
65c5ae8b
PB
60122009-03-30 Paolo Bonzini <bonzini@gnu.org>
6013
6014 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
6015 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
6016 sparc_compare_op0 like sparc_compare_emitted used to be handled.
6017 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
6018 instead of sparc_compare_emitted.
6019 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
6020 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
6021 instead of sparc_compare_emitted.
6022
d25aa7ab
PB
60232009-03-30 Paolo Bonzini <bonzini@gnu.org>
6024
6025 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
6026 enter/exit cfglayout mode.
6027 (pass_partition_block): Require it.
6028 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
6029 (combine_instructions): Track basic blocks instead of labels.
6030 (update_cfg_for_uncondjump): New.
6031 (try_combine): Use it. Update jumps after rescanning.
6032 (pass_combine): Require PROP_cfglayout.
6033 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
6034
9c9e26f5
PB
60352009-03-30 Paolo Bonzini <bonzini@gnu.org>
6036
fcb82ab0
UB
6037 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
6038 Provide/destroy PROP_cfglayout respectively.
6039 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
6040 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 6041
28ddeea1
PB
60422009-03-30 Paolo Bonzini <bonzini@gnu.org>
6043
6044 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
6045 fold_convert_const_fixed_from_fixed,
6046 fold_convert_const_fixed_from_int,
6047 fold_convert_const_fixed_from_real, fold_negate_const): Do not
6048 set TREE_CONSTANT_OVERFLOW.
6049 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
6050 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
6051
ebfd146a
IR
60522009-03-30 Ira Rosen <irar@il.ibm.com>
6053
6054 * tree-vect-loop-manip.c: New file.
6055 * tree-vectorizer.c: Update documentation and included files.
6056 (vect_loop_location): Make extern.
6057 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
6058 (rename_variables_in_bb, rename_variables_in_loop,
6059 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
6060 slpeel_update_phi_nodes_for_guard1,
6061 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
6062 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
6063 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 6064 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
6065 find_loop_location): Likewise.
6066 (new_stmt_vec_info): Move to tree-vect-stmts.c.
6067 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
6068 get_vectype_for_scalar_type, vect_is_simple_use,
6069 supportable_widening_operation, supportable_narrowing_operation):
6070 Likewise.
6071 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
6072 (new_loop_vec_info, destroy_loop_vec_info,
6073 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
6074 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
6075 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
6076 (vect_supportable_dr_alignment): Likewise.
6077 * tree-vectorizer.h (tree-data-ref.h): Include.
6078 (vect_loop_location): Declare.
6079 Reorganize function declarations according to the new file structure.
6080 * tree-vect-loop.c: New file.
2ba9daa7 6081 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
6082 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
6083 * tree-vect-data-refs.c: New file.
6084 * tree-vect-patterns.c (timevar.h): Don't include.
6085 * tree-vect-stmts.c: New file.
2ba9daa7 6086 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 6087 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
6088 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
6089 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
6090 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
6091 (tree-vect-analyze.o): Remove.
6092 (tree-vect-transform.o): Likewise.
6093 (tree-vect-data-refs.o): Add rule.
2ba9daa7 6094 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
6095 tree-vect-slp.o): Likewise.
6096 (tree-vect-patterns.o): Remove redundant dependencies.
6097 (tree-vectorizer.o): Likewise.
6098 * tree-vect-slp.c: New file.
6099
40a1cfba
RW
61002009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6101
6102 * optc-gen.awk: Warn if an option flag has multiple different
6103 help strings.
6104
a9a7a9a2
SP
61052009-03-30 Sebastian Pop <sebastian.pop@amd.com>
6106
6107 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
6108 -floop-block): Document dependences on PPL, CLooG and Graphite.
6109
8ce94e44
JM
61102009-03-30 Joseph Myers <joseph@codesourcery.com>
6111
6112 PR rtl-optimization/323
6113 * c-common.c (c_fully_fold, convert_and_check,
6114 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
6115 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
6116 * c-common.def (EXCESS_PRECISION_EXPR): New.
6117 * c-cppbuiltin.c (builtin_define_float_constants): Define
6118 constants with enough digits for long double.
6119 * c-lex.c (interpret_float): Interpret constant with excess
6120 precision where appropriate.
6121 * c-opts.c (c_common_post_options): Set
6122 flag_excess_precision_cmdline. Give an error for
6123 -fexcess-precision=standard for C++ for processors where the
6124 option is significant.
6125 * c-parser.c (c_parser_conditional_expression): Handle excess
6126 precision in condition.
6127 * c-typeck.c (convert_arguments): Handle arguments with excess
6128 precision.
6129 (build_unary_op): Move excess precision outside operation.
6130 (build_conditional_expr): Likewise.
6131 (build_compound_expr): Likewise.
6132 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
6133 (build_modify_expr): Handle excess precision in RHS.
6134 (convert_for_assignment): Handle excess precision in converted
6135 value.
6136 (digest_init, output_init_element, process_init_element): Handle
6137 excess precision in initializer.
6138 (c_finish_return): Handle excess precision in return value.
6139 (build_binary_op): Handle excess precision in operands and add
6140 excess precision as needed for operation.
6141 * common.opt (-fexcess-precision=): New option.
6142 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
6143 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6144 For standard excess precision, output explicit conversion to and
6145 truncation from XFmode.
6146 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
6147 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
6148 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
6149 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
6150 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
6151 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
6152 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
6153 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
6154 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
6155 define_splits, sqrt<mode>2): Disable where appropriate for
6156 standard excess precision.
6157 * convert.c (convert_to_real): Do not shorten arithmetic to type
6158 for which excess precision would be used.
6159 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
6160 * doc/invoke.texi (-fexcess-precision=): Document option.
6161 (-mfpmath=): Correct index entry.
6162 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
6163 flag_excess_precision): New.
6164 * langhooks.c (lhd_post_options): Set
6165 flag_excess_precision_cmdline.
6166 * opts.c (common_handle_option): Handle -fexcess-precision=.
6167 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
6168 init_excess_precision): New.
6169 (lang_dependent_init_target): Call init_excess_precision.
6170 * tree.c (excess_precision_type): New.
6171 * tree.h (excess_precision_type): Declare.
6172
1e57bf47
JM
61732009-03-30 Joseph Myers <joseph@codesourcery.com>
6174
6175 PR c/35235
6176 * c-typeck.c (build_component_ref): Do not copy qualifiers from
6177 non-lvalue to component.
6178
148e4216
JM
61792009-03-29 Joseph Myers <joseph@codesourcery.com>
6180
6181 PR preprocessor/34695
6182 * Makefile.in (c-opts.o): Depend on c-tree.h.
6183 * c-common.c: Move down include of diagnostic.h.
6184 (done_lexing, c_cpp_error): New.
6185 * c-common.h (done_lexing): Declare.
6186 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
6187 (parse_in).
6188 * c-opts.c: Include c-tree.h.
6189 (c_common_init_options): Set preprocessor error callback.
6190 (c_common_handle_option): Do not set preprocessor
6191 inhibit_warnings, warnings_are_errors, warn_system_headers,
6192 pedantic_errors or inhibit_warnings flags.
6193 (c_common_post_options): Do not check cpp_errors (parse_in).
6194 (c_common_finish): Do not output dependencies if there were
6195 errors. Do not check return value of cpp_finish.
6196 * c-ppoutput.c (pp_file_change): Set input_location.
6197 * c-tree.h (c_cpp_error): Declare.
6198 * diagnostic.c (diagnostic_set_info_translated): Also initialize
6199 override_column.
6200 (diagnostic_build_prefix): Check override_column.
6201 * diagnostic.h (diagnostic_info): Add override_column field.
6202 (diagnostic_override_column): Define.
6203
2ec5deb5
PB
62042009-03-28 Paolo Bonzini <bonzini@gnu.org>
6205
ba20e309
UB
6206 * c-common.c (c_expand_expr, c_staticp): Remove.
6207 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
6208 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
6209 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
6210 * c-gimplify.c (gimplify_compound_literal_expr,
6211 optimize_compound_literals_in_ctor): Remove.
6212 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
6213 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
6214 * c-semantics.c (emit_local_var): Remove.
6215
6216 * langhooks-def.h (lhd_expand_expr): Remove.
6217 * langhooks.c (lhd_expand_expr): Remove.
6218 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
6219
6220 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
6221 handling from c-semantics.c; don't call into langhook.
6222 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
6223 * gimplify.c (gimplify_compound_literal_expr,
6224 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
6225 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
6226 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
6227 as was done in c-gimplify.c.
6228 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
6229 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
6230 Move from c-common.h.
6231 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
6232
6233 * tree.c (staticp): Do not call langhook.
6234 * langhooks.c (lhd_staticp): Delete.
6235 * langhooks-def.h (lhd_staticp): Delete prototype.
6236 (LANG_HOOKS_STATICP): Delete.
6237 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
6238
ba20e309
UB
6239 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
6240 instead of DECL_STMTs.
2ec5deb5 6241
928c19bb
JM
62422009-03-29 Joseph Myers <joseph@codesourcery.com>
6243
6244 PR c/456
6245 PR c/5675
6246 PR c/19976
6247 PR c/29116
6248 PR c/31871
6249 PR c/35198
6250 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
6251 void_type_node.
6252 (fold_call_expr): Return a NOP_EXPR from folding rather than the
6253 contained expression.
ba20e309 6254 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
6255 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
6256 conditional expressions for C.
6257 (decl_constant_value_for_optimization): Move from
ba20e309 6258 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
6259 whether optimizing and that the expression is a VAR_DECL not of
6260 array type instead of doing such checks in the caller. Do not
6261 check pedantic. Call gcc_unreachable for C++.
6262 * c-common.def (C_MAYBE_CONST_EXPR): New.
6263 * c-common.h (c_fully_fold, c_save_expr,
6264 decl_constant_value_for_optimization): New prototypes.
6265 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6266 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6267 EXPR_INT_CONST_OPERANDS): Define.
6268 * c-convert.c (convert): Strip nops from expression.
6269 * c-decl.c (groktypename): Take extra parameters expr and
6270 expr_const_operands. Update call to grokdeclarator.
6271 (start_decl): Update call to grokdeclarator. Add statement for
6272 expressions used in type of decl.
6273 (grokparm): Update call to grokdeclarator.
6274 (push_parm_decl): Update call to grokdeclarator.
6275 (build_compound_literal): Add parameter non_const and build a
6276 C_MAYBE_COSNT_EXPR if applicable.
6277 (grokdeclarator): Take extra parameters expr and
6278 expr_const_operands. Track expressions used in declaration
6279 specifiers and declarators. Fold array sizes and track whether
6280 they are constant expressions and whether they are integer
6281 constant expressions.
6282 (parser_xref_tag): Set expr and expr_const_operands fields in
6283 return value.
6284 (grokfield): Update call to grokdeclarator.
6285 (start_function): Update call to grokdeclarator.
6286 (build_null_declspecs): Set expr and expr_const_operands fields in
6287 return value.
6288 (declspecs_add_type): Handle expressions in typeof specifiers.
6289 * c-parser.c (c_parser_declspecs): Set expr and
6290 expr_const_operands fields for declaration specifiers.
6291 (c_parser_enum_specifier): Likewise.
6292 (c_parser_struct_or_union_specifier): Likewise.
6293 (c_parser_typeof_specifier): Likewise. Update call to
6294 groktypename. Fold expression as needed. Return expressions with
6295 type instead of adding statements.
6296 (c_parser_attributes): Update calls to c_parser_expr_list.
6297 (c_parser_statement_after_labels): Fold expression before passing
6298 to objc_build_throw_stmt.
6299 (c_parser_condition): Fold expression.
6300 (c_parser_asm_operands): Fold expression.
6301 (c_parser_conditional_expression): Use c_save_expr. Update call
6302 to build_conditional_expr.
6303 (c_parser_alignof_expression): Update call to groktypename.
6304 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
6305 original_code. Fold expression argument of va_arg. Create
6306 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
6307 argument to va_arg. Update calls to groktypename. Fold array
6308 index for offsetof. Verify that first argument to
6309 __builtin_choose_expr has integer type.
6310 (c_parser_postfix_expression_after_paren_type): Update calls to
6311 groktypename and build_compound_literal. Handle expressions with
6312 side effects in type name.
6313 (c_parser_postfix_expression_after_primary): Update call to
6314 c_parser_expr_list. Set original_code for calls to
6315 __builtin_constant_p.
6316 (c_parser_expr_list): Take extra parameter fold_p. Fold
6317 expressions if requested.
6318 (c_parser_objc_type_name): Update call to groktypename.
6319 (c_parser_objc_synchronized_statement): Fold expression.
6320 (c_parser_objc_receiver): Fold expression.
6321 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
6322 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
6323 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
6324 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
6325 (struct c_typespec): Add elements expr and expr_const_operands.
6326 (struct c_declspecs): Add elements expr and expr_const_operands.
6327 (groktypename, build_conditional_expr, build_compound_literal):
6328 Update prototypes.
6329 (in_late_binary_op): Declare.
6330 * c-typeck.c (note_integer_operands): New function.
6331 (in_late_binary_op): New variable.
6332 (decl_constant_value_for_broken_optimization): Move to c-common.c
6333 and rename to decl_constant_value_for_optimization.
6334 (default_function_array_conversion): Do not strip nops.
6335 (default_conversion): Do not call
6336 decl_constant_value_for_broken_optimization.
6337 (build_array_ref): Do not fold result.
6338 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
6339 result when operand is a VLA.
6340 (c_expr_sizeof_type): Update call to groktypename. Handle
6341 expressions included in type name. Use C_MAYBE_CONST_EXPR for
6342 result when operand names a VLA type.
6343 (build_function_call): Update call to build_compound_literal.
6344 Only fold result for calls to __builtin_* functions. Strip
6345 NOP_EXPR from INTEGER_CST returned from such functions. Fold
6346 the function designator.
6347 (convert_arguments): Fold arguments. Update call to
6348 convert_for_assignment.
6349 (build_unary_op): Handle increment and decrement of
6350 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
6351 decrement earlier. Fold operand of increment and decrement.
6352 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
6353 built for integer operand. Wrap returns that are INTEGER_CSTs
6354 without being integer constant expressions or that have integer
6355 constant operands without being INTEGER_CSTs.
6356 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
6357 (build_conditional_expr): Add operand ifexp_bcp. Track whether
6358 result is an integer constant expression or can be used in
6359 unevaluated parts of one and avoid folding and wrap as
6360 appropriate. Fold operands before possibly doing -Wsign-compare
6361 warnings.
6362 (build_compound_expr): Wrap result for C99 if operands can be used
6363 in integer constant expressions.
6364 (build_c_cast): Update call to digest_init. Do not ignore
6365 overflow from casting floating-point constants to integers. Wrap
6366 results that could be confused with integer constant expressions,
6367 null pointer constants or floating-point constants.
6368 (c_cast_expr): Update call to groktypename. Handle expressions
6369 included in type name.
6370 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
6371 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
6372 Update calls to convert_for_assignment.
6373 (convert_for_assignment): Take new parameter
6374 null_pointer_constant. Do not strip nops or call
6375 decl_constant_value_for_broken_optimization. Set
6376 in_late_binary_op for conversions to boolean.
6377 (store_init_value): Update call to digest_init.
6378 (digest_init): Take new parameter null_pointer_constant. Do not
6379 call decl_constant_value_for_broken_optimization. pedwarn for
6380 initializers not constant expressions. Update calls to
6381 convert_for_assignment.
6382 (constructor_nonconst): New.
6383 (struct constructor_stack): Add nonconst element.
6384 (really_start_incremental_init, push_init_level, pop_init_level):
6385 Handle constructor_nonconst and nonconst element.
6386 (set_init_index): Call constant_expression_warning for array
6387 designators.
6388 (output_init_element): Fold value. Set constructor_nonconst as
6389 applicable. pedwarn for initializers not constant expressions.
6390 Update call to digest_init. Call constant_expression_warning
6391 where constant initializers are required.
6392 (process_init_element): Use c_save_expr.
6393 (c_finish_goto_ptr): Fold expression.
6394 (c_finish_return): Fold return value. Update call to
6395 convert_for_assignment.
6396 (c_start_case): Fold switch expression.
6397 (c_process_expr_stmt): Fold expression.
6398 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 6399 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
6400 (build_binary_op): Track whether results are integer constant
6401 expressions or may occur in such, disable folding and wrap results
6402 as applicable. Fold operands for -Wsign-compare warnings unless
6403 in_late_binary_op.
6404 (c_objc_common_truthvalue_conversion): Handle results folded to
6405 integer constants that are not integer constant expressions.
6406 * doc/extend.texi: Document when typeof operands are evaluated,
6407 that condition of __builtin_choose_expr is an integer constant
6408 expression, and more about use of __builtin_constant_p in
6409 initializers.
6410
5babbcc0
RG
64112009-03-29 Richard Guenther <rguenther@suse.de>
6412
6413 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
6414 propagate addresses of array references.
6415
0340f2ba
SB
64162009-03-29 Steven Bosscher <steven@gcc.gnu.org>
6417
6418 * regmove.c (perhaps_ends_bb_p): Remove.
6419 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
6420 from INSN and check that the main loop stays within that basic block.
6421 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
6422 (regmove_forward_pass): Split out from regmove_optimize. Use
6423 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
6424 (regmove_backward_pass): Split out from regmove_optimize. Use
6425 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
6426 (regmove_optimize): Simplify.
6427
eeae74a1
L
64282009-03-29 H.J. Lu <hongjiu.lu@intel.com>
6429
6430 PR target/39545
6431 * config/i386/i386.c (classify_argument): Ignore flexible array
6432 member in struct and warn ABI change.
6433
a24078b2
L
64342009-03-29 H.J. Lu <hongjiu.lu@intel.com>
6435
6436 * config/i386/i386-protos.h (ix86_agi_dependent): New.
6437
6438 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
6439 (ix86_adjust_cost): Updated.
6440
a8da523f
JH
64412009-03-29 Jan Hubicka <jh@suse.cz>
6442
6443 PR middle-end/28850
6444 * tree-pass.h (pass_cleanup_eh): New function.
6445 (remove_unreachable_regions): Break code handling RTL
6446 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
6447 that can not be reached by runtime.
6448 (can_be_reached_by_runtime): New function.
6449 (label_to_region_map): New function.
6450 (num_eh_regions): New function.
6451 (rtl_remove_unreachable_regions): New function.
6452 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
6453 (remove_eh_region): New function.
6454 * except.h: Include sbitmap and vecprim.
6455 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
6456 num_eh_regions): Declare.
6457 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 6458 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
6459 * tree-eh.c (tree_remove_unreachable_handlers): New function.
6460 (tree_empty_eh_handler_p): New function.
6461 (cleanup_empty_eh): New function.
6462 (cleanup_eh): New function.
6463 (pass_cleanup_eh): New function.
6464
98f358e5
JH
64652009-03-29 Jan Hubicka <jh@suse.cz>
6466
6467 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
6468 for removed regions.
6469
13a9fa44
JH
64702009-03-29 Jan Hubicka <jh@suse.cz>
6471
6472 * except.c (dump_eh_tree): Dump all datastructures.
6473
e38cf733
JH
64742009-03-29 Jan Hubicka <jh@suse.cz>
6475
6476 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
6477 (duplicate_eh_regions_1): Likewise.
6478 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
6479 vector; call EH verification.
6480 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6481 Be ready for region being removed.
6482
12802c2b
JH
64832009-03-29 Jan Hubicka <jh@suse.cz>
6484
6485 * bitmap.c (bitmap_last_set_bit): New function.
6486 * bitmap.h (bitmap_last_set_bit): Declare.
6487
4ea80a41
DA
64882009-03-29 David Ayers <ayers@fsfe.org>
6489
6490 PR objc/27377
6491 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
6492 by calling objc_compare_types and surpress warnings about
6493 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 6494
4ea80a41 64952009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
6496
6497 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
6498 call initialize_inline_failed.
6499 (initialize_inline_failed): Move it from here ...
6500 * cgraph.c (initialize_inline_failed): ... to here.
6501 (cgraph_create_edge): Call initialize_inline_failed rather than
6502 setting inline_failed directly.
6503
7fb0ee07
BE
65042009-03-29 Ben Elliston <bje@au.ibm.com>
6505
6506 PR target/32542
6507 * sysv4.opt (msdata): Improve comment.
6508 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
6509 * sysv4.h (SVR4_ASM_SPEC): Likewise.
6510
0be77bf2
BE
65112009-03-29 Ben Elliston <bje@au.ibm.com>
6512
6513 PR target/30451
6514 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
6515 load and store attributes.
6516
593812b6
BE
65172009-03-29 Ben Elliston <bje@au.ibm.com>
6518
6519 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
6520 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
6521 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
6522 * doc/extend.texi (X86 Built-in Functions): Add index entries for
6523 __builtin_infq and __builtin_huge_valq.
6524
8272d11d
AS
65252009-03-28 Anatoly Sokolov <aesok@post.ru>
6526
6527 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
6528 atmega8m1 devices.
6529 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6530 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
6531
74fe548b
XDL
65322009-03-28 Xinliang David Li <davidxl@google.com>
6533
2ba9daa7 6534 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
6535 (do_dbg_cnt): New function.
6536
33977f81
JH
65372009-03-28 Jan Hubicka <jh@suse.cz>
6538
6539 Merge from pretty-ipa:
6540
6541 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 6542
33977f81
JH
6543 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6544 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
6545 * passes.c (function_called_by_processed_nodes_p): New.
6546 * ipa-pure-const.c (check_call): Fix handling of operands.
6547 (analyze_function): Dump debug output for skipped bodies.
6548 (local_pure_const): Use function_called_by_processed_nodes_p.
6549 * dwarf2out.c (reference_to_unused): Use output.
6550 * passes.c (do_per_function_toporder): Likewise.
6551
6552 2008-11-12 Jan Hubicka <jh@suse.cz>
6553
6554 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
6555 * ipa-pure-const.c (funct_state_d): Add can throw field; make
6556 state_set_in_source enum
6557 (check_decl): Ignore memory tags; do not set fake looping flags;
6558 dump diagnostics.
6559 (check_operand, check_tree, check_rhs_var, check_lhs_var,
6560 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
6561 (check_call, analyze_function): Rewrite.
6562 (check_stmt): New.
6563 (add_new_function): Update call of analyze_function.
6564 (generate_summary): Add call of analyze_function.
6565 (propagate): Propagate can_throw; handle state_set_in_source correctly.
6566 (local_pure_const): New function.
6567 (pass_local_pure_const): New pass.
6568 * ipa-inline.c (inline_transform): Set after_inlining.
6569 * tree-eh.c (stmt_can_throw_external): New.
6570 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
6571 work with aliasing built.
6572 * tree-flow.h (stmt_can_throw_external): New.
6573 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
6574 and local pure/const pass in early and late optimization queue.
ba20e309 6575
617f3897
MJ
65762009-03-28 Martin Jambor <mjambor@suse.cz>
6577
6578 * fold-const.c (get_pointer_modulus_and_residue): New parameter
6579 allow_func_align.
6580 (fold_binary): Allow function decl aligment consideration is the
6581 second argument is integer constant one.
6582 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
6583 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
6584 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
6585
fe89fbc5
JH
65862009-03-28 Jan Hubicka <jh@suse.cz>
6587
6588 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
6589 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
6590 * function.h (rtl_data): Add nothrow flag.
6591 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
6592 set DECL_NOTHROW for AVAILABLE functions.
6593
574872ff
JJ
65942009-03-28 Jakub Jelinek <jakub@redhat.com>
6595
b3bf8855
JJ
6596 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
6597 following vector keyword has expansion starting with pixel or bool
6598 keyword, expand vector to __vector and pixel or bool to __pixel or
6599 __bool.
6600
574872ff
JJ
6601 PR c++/39554
6602 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
6603 warn_if_disallowed_function_p): Removed.
6604 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
6605 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
6606 warning_if_disallowed_function_p.
6607 * flags.h (warn_if_disallowed_function_p,
6608 warn_disallowed_functions): Removed.
6609 * common.opt (Wdisallowed-function-list=): Removed.
6610 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
6611
b005da11
RG
66122009-03-28 Richard Guenther <rguenther@suse.de>
6613
6614 PR tree-optimization/38723
6615 * tree-ssa-pre.c (compute_avail): Add all default definitions to
6616 the entry block.
6617
1de812a6
JH
66182009-03-28 Jan Hubicka <jh@suse.cz>
6619
6620 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
6621 test introduced by my previous patch.
6622
fbb789d4
RG
66232009-03-28 Richard Guenther <rguenther@suse.de>
6624
6625 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
6626 the PHIs value undefined.
6627
6f1873a1
JH
66282009-03-28 Jan Hubicka <jh@suse.cz>
6629
6630 * tree-pass.h (pass_fixup_cfg): New pass.
6631 * ipa-inline.c (inline_transform): Set
6632 always_inline_functions_inlined/after_inlining.
6633 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
6634 (pass_fixup_cfg): New pass.
6635 * passes.c (init_optimization_passes): Add fixup_cfg.
6636
17021bc8
RG
66372009-03-28 Richard Guenther <rguenther@suse.de>
6638
6639 PR tree-optimization/38458
6640 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
6641 argument use the arguments copy-of value.
6642
e8114fba
RG
66432009-03-28 Richard Guenther <rguenther@suse.de>
6644
6645 PR tree-optimization/38180
6646 * tree-ssa-ccp.c (get_default_value): Simplify.
6647 (likely_value): Likewise.
6648 (surely_varying_stmt_p): Properly handle VOP case.
6649 (ccp_initialize): Likewise.
6650 (ccp_fold): Handle propagating through *&.
6651 (fold_const_aggregate_ref): Also handle decls.
6652
257eb6e3
JH
66532009-03-28 Jan Hubicka <jh@suse.cz>
6654
6655 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6656 * cgraph.h (cgraph_node): Likewise.
6657 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
6658 (cgraph_reset_node): Use process flag.
6659 (cgraph_mark_functions_to_output): Likewise.
6660 (cgraph_expand_function): Likewise.
6661 (cgraph_expand_all_functions): Likewise.
6662 (cgraph_output_in_order): Likewise.
6663 * dwarf2out.c (reference_to_unused): Likewise.
6664 * passes.c do_per_function_toporder): Likewise.
6665
61a05df1
JH
66662009-03-28 Jan Hubicka <jh@suse.cz>
6667
6668 Bring from lto-branch:
ba20e309 6669
61a05df1
JH
6670 2008-09-03 Doug Kwan <dougkwan@google.com>
6671
6672 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
6673 enums instead of reason strings.
6674 * cgraph.c (cgraph_create_edge): Same.
6675 (cgraph_inline_failed_string): New function.
6676 * cgraph.h (cgraph_inline_failed_t): New enum type.
6677 (cgraph_inline_failed_string): New prototype.
6678 (struct cgraph_edge): Change type of INLINED_FAILED from constant
6679 char pointer to cgraph_inline_failed_t.
6680 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
6681 (cgraph_default_inline_p): Ditto.
60839f5d 6682 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
6683 to cgraph_inline_failed_t pointer.
6684 * cif-code.def: New file.
6685 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
6686 reason string.
6687 (cgraph_check_inline_limits): Change type of REASON to pointer to
6688 cgraph_inline_failed_t. Replace reason strings with enums.
6689 (cgraph_default_inline_p): Ditto.
6690 (cgraph_recursive_inlining_p): Ditto.
6691 (update_caller_keys): Change type of FAILED_REASON to
6692 cgraph_inline_failed_t.
6693 (cgraph_set_inline_failed): Change type of REASON to pointer to
6694 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
6695 convert enums to strings for text output.
6696 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
6697 to be of type cgraph_inline_failed_t. Replace reason strings with
6698 enums. Call cgraph_inline_failed_string to covert enums
6699 to strings for text output.
6700 (cgraph_decide_inlining): Replace reason strings with enums.
6701 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
6702 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
6703 for text output.
6704 * tree-inline.c (expand_call_inline): Change type of REASON
6705 to cgraph_inline_failed_t. Replace reason strings with enums.
6706 Call cgraph_inline_failed_string for text output.
6707 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
6708 (cgraph.o): Ditto.
6709
144e8aac
JH
67102009-03-28 Jan Hubicka <jh@suse.cz>
6711
6712 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
6713 cgraph_clone_node): Remove master clone handling.
6714 (cgraph_is_master_clone, cgraph_master_clone): Remove.
6715 * cgraph.h (master_clone): Remove.
6716 (cgraph_is_master_clone, cgraph_master_clone): Remove.
6717 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
6718 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
6719
4a371c8d
JH
67202009-03-28 Jan Hubicka <jh@suse.cz>
6721
6722 * cgraph.c (cgraph_function_body_availability): Functions declared
6723 inline are always safe to assume that it is not going to be replaced.
6724
6cdb0ee3
RG
67252009-03-28 Richard Guenther <rguenther@suse.de>
6726
6727 PR tree-optimization/38513
6728 * tree-ssa-pre.c (eliminate): Remove redundant stores.
6729 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
6730 EXC_PTR_EXPR and FILTER_EXPR.
6731 (get_ref_from_reference_ops): Likewise.
6732
8ca1fd76
RG
67332009-03-28 Richard Guenther <rguenther@suse.de>
6734
6735 PR tree-optimization/38968
6736 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
6737 Use FLOOR_MOD_EXPR to compute misalignment.
6738
a254e44d
RG
67392009-03-28 Richard Guenther <rguenther@suse.de>
6740
6741 PR tree-optimization/37795
6742 * tree.h (combine_comparisons): Declare.
6743 * fold-const.c (combine_comparisons): Export.
6744 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
6745 comparisons.
6746 (ifcombine_iforif): Use combine_comparisons.
6747
a8ee227c
JH
67482009-03-28 Jan Hubicka <jh@suse.cz>
6749
6750 * tree-eh.c (inlinable_call_p): New function.
6751 (make_eh_edges): Use it.
6752 (verify_eh_edges): Use it.
6753 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
6754 * except.c (reachable_next_level): Add inlinable_function argument
6755 (sjlj_find_directly_reachable_regions): Update.
6756 (add_reachable_handler): Do not set saw_any_handlers.
6757 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
6758 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6759 Add new inlinable call parameter.
6760 (can_throw_internal, can_throw_external): Update.
6761 * except.h (can_throw_internal_1, can_throw_external_1,
6762 foreach_reachable_handler): Update declaration.
6763
52c0e446
JM
67642009-03-28 Joseph Myers <joseph@codesourcery.com>
6765
6766 * config/arm/t-arm-coff, config/h8300/coff.h,
6767 config/i386/i386-aout.h, config/i386/i386-coff.h,
6768 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
6769 config/pdp11/2bsd.h, config/rs6000/aix41.h,
6770 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
6771 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
6772 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
6773 sys-types.h: Remove.
6774 * Makefile.in: Remove protoize and fixproto support and references
6775 in comments.
6776 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
6777 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
6778 Remove.
6779 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
6780 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
6781 unprotoize$(exeext).
6782 (rest.encap): Don't depend on $(STMP_FIXPROTO)
6783 (.PHONY): Don't depend on proto.
6784 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
6785 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
6786 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
6787 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
6788 build/gen-protos.o, build/scan.o, xsys-protos.h,
6789 build/fix-header$(build_exeext), build/fix-header.o,
6790 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
6791 stmp-install-fixproto): Remove.
6792 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
6793 SYSCALLS.c or fixproto files.
6794 (install-common): Don't install protoize.
6795 (install-headers-tar, install-headers-cpio, install-headers-cp):
6796 Don't depend on $(STMP_FIXPROTO).
6797 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
6798 install fixproto files or write out fixproto settings.
6799 (uninstall): Don't uninstall protoize.
6800 * config.gcc (use_fixproto): Remove.
6801 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
6802 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
6803 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
6804 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
6805 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
6806 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
6807 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
6808 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
6809 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
6810 * config/t-vxworks (STMP_FIXPROTO): Remove.
6811 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
6812 STMP_FIXPROTO): Remove.
6813 * config.in, configure: Regenerate.
6814 * crtstuff.c (gid_t, uid_t): Don't undefine.
6815 * doc/install.texi: Change m68k-coff to m68k-elf in example.
6816 (arm-*-coff, arm-*-aout: Remove target entries.
6817 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
6818 Remove mention of AIX 4.1.
6819 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
6820 * doc/invoke.texi (Running Protoize): Remove.
6821 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
6822 (Protoize Caveats): Remove.
6823 * tsystem.h: Update comments on headers assumed to exist.
6824
20a07f44
VM
68252009-03-27 Vladimir Makarov <vmakarov@redhat.com>
6826
6827 * genautomata.c: Add a new year to the copyright. Add a new
6828 reference.
6829 (struct insn_reserv_decl): Add comments for member bypass_list.
6830 (find_bypass): Remove.
6831 (insert_bypass): New.
6832 (process_decls): Use insert_bypass.
6833 (output_internal_insn_latency_func): Output all bypasses with the
6834 same input insn in one switch case.
6835
6836 * rtl.def (define_bypass): Describe bypass choice.
6837 * doc/md.texi (define_bypass): Ditto.
6838
3a0d06c1
RB
68392009-03-27 Richard Guenther <rguenther@suse.de>
6840
6841 * gimplify.c (mark_addressable): Export.
6842 * tree-flow.h (mark_addressable): Declare.
6843 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
6844 * tree-ssa.c (verify_phi_args): Verify that address taken
6845 variables have TREE_ADDRESSABLE set.
6846
68472009-03-27 Richard Guenther <rguenther@suse.de>
6848
6849 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
6850 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
6851 Do not mark decls TREE_ADDRESSABLE.
6852 (build_fold_addr_expr): Adjust.
6853 (fold_addr_expr): Remove.
6854 (fold_unary): Use build_fold_addr_expr.
6855 (fold_comparison): Likewise.
6856 (split_address_to_core_and_offset): Likewise.
6857 * coverage.c (tree_coverage_counter_addr): Mark the array decl
6858 TREE_ADDRESSABLE.
6859 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
6860 (gimplify_modify_expr_to_memcpy): Mark source and destination
6861 addressable.
6862 * omp-low.c (create_omp_child_function): Mark the object decl
6863 TREE_ADDRESSABLE.
6864 (lower_rec_input_clauses): Mark the var we take the address of
6865 TREE_ADDRESSABLE.
6866 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
6867
2ac26e15
L
68682009-03-27 H.J. Lu <hongjiu.lu@intel.com>
6869
6870 PR middle-end/39315
6871 * cfgexpand.c (expand_one_stack_var_at): Change alignment
6872 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
6873
472c7fbd
RG
68742009-03-27 Richard Guenther <rguenther@suse.de>
6875
6876 PR tree-optimization/39120
6877 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
6878 constraints.
6879 (handle_lhs_call): Process return constraints. Add escape
6880 constraints if necessary.
6881 (handle_const_call): Fill out return constraints. Make nested
6882 case more precise. Avoid consttmp if possible.
6883 (handle_pure_call): Fill out return constraints. Avoid
6884 callused if possible.
6885 (find_func_aliases): Simplify call handling.
6886
68872009-03-27 Richard Guenther <rguenther@suse.de>
6888
6889 PR tree-optimization/39120
6890 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
6891 as a representative.
6892 (solve_graph): Do propagate CALLUSED.
6893 (handle_pure_call): Use a scalar constraint from CALLUSED for
6894 the return value.
6895 (find_what_p_points_to): CALLUSED shall not appear in poins-to
6896 solutions.
6897
d9223014
L
68982009-03-27 H.J. Lu <hongjiu.lu@intel.com>
6899
6900 PR c/39323
6901 * c-common.c (handle_aligned_attribute): Properly check alignment
6902 overflow. Use (1U << i) instead of (1 << i).
6903
ba20e309 6904 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
6905
6906 * expr.h (get_mem_align_offset): Updated.
6907
6908 * tree.h (tree_decl_common): Change align to "unsigned int" and
6909 move it before pointer_alias_set.
6910
689b689c
L
69112009-03-27 H.J. Lu <hongjiu.lu@intel.com>
6912 Jakub Jelinek <jakub@redhat.com>
6913
6914 PR target/38034
6915 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
6916 gr_register_operand with gr_reg_or_0_operand.
6917 (cmpxchg_rel_di): Likewise.
6918 (sync_lock_test_and_set<mode>): Likewise.
6919
c619e982
L
69202009-03-27 H.J. Lu <hongjiu.lu@intel.com>
6921
6922 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
6923 (true_regnum): Likewise.
6924
6925 * rtlanal.c (subreg_info): Moved to ...
6926 * rtl.h (subreg_info): Here. New.
6927 (subreg_get_info): New.
6928
6929 * rtlanal.c (subreg_get_info): Make it extern.
6930
51212b32
L
69312009-03-27 H.J. Lu <hongjiu.lu@intel.com>
6932
6933 PR target/39472
6934 * config/i386/i386.c (ix86_abi): New.
6935 (override_options): Handle -mabi=.
ba20e309 6936 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
6937 (ix86_call_abi_override): Likewise.
6938 (init_cumulative_args): Likewise.
6939 (function_arg_advance): Likewise.
6940 (function_arg_64): Likewise.
6941 (function_arg): Likewise.
6942 (ix86_pass_by_reference): Likewise.
6943 (ix86_function_value_regno_p): Likewise.
6944 (ix86_build_builtin_va_list_abi): Likewise.
6945 (setup_incoming_varargs_64): Likewise.
6946 (is_va_list_char_pointer): Likewise.
6947 (ix86_init_machine_status): Likewise.
ba20e309 6948 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
6949 (ix86_function_type_abi): Return enum calling_abi. Rewrite
6950 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 6951 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
6952 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
6953 with ix86_abi.
6954 (ix86_fn_abi_va_list): Updated.
6955
6956 * config/i386/i386.h (ix86_abi): New.
6957 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
6958 (CONDITIONAL_REGISTER_USAGE): Likewise.
6959 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
6960 (machine_function): Likewise.
6961
6962 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
6963 with ix86_abi.
6964 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
6965 (STACK_BOUNDARY): Likewise.
6966 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
6967
6968 * config/i386/i386.opt (mabi=): New.
6969
6970 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
6971 return enum calling_abi.
6972 (ix86_function_type_abi): Likewise.
6973 (ix86_function_abi): Removed.
6974
6975 * doc/invoke.texi: Document -mabi= option for x86.
6976
7338ea63
KG
69772009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6978
6979 * builtins.c (real_dconstp): Delete.
6980 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
6981
68599f33
DS
69822009-03-27 Dodji Seketeli <dodji@redhat.com>
6983 Jakub Jelinek <jakub@redhat.com>
6984
6985 PR debug/37959
6986 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
6987 (gen_subprogram_die): When a function is explicit, generate the
6988 DW_AT_explicit attribute.
6989 * langhooks.h (struct lang_hooks_for_decls): Add
6990 function_decl_explicit_p langhook.
6991 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
6992 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
6993
9f5e9983
JJ
69942009-03-27 Jakub Jelinek <jakub@redhat.com>
6995
64d7685c
JJ
6996 * builtins.c (fold_builtin_memory_op): Optimize memmove
6997 into memcpy if we can prove source and destination don't overlap.
6998
9f5e9983
JJ
6999 * tree-inline.c: Include gt-tree-inline.h.
7000 (clone_fn_id_num): New variable.
7001 (clone_function_name): New function.
7002 (tree_function_versioning): Use it.
7003 * Makefile.in (GTFILES): Add tree-inline.c.
7004
e54d52a8
MM
70052009-03-27 Mark Mitchell <mark@codesourcery.com>
7006
7007 * BASE-VER: Change to 4.5.0.
7008
e9d51dc6
XDL
70092009-03-27 Xinliang David Li <davidxl@google.com>
7010
7011 PR tree-optimization/39557
7012 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
7013
4577cea1
XDL
70142009-03-27 Xinliang David Li <davidxl@google.com>
7015
7016 PR tree-optimization/39548
2ba9daa7 7017 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
7018 candidate check.
7019
0f7464f4
L
70202009-03-27 H.J. Lu <hongjiu.lu@intel.com>
7021
7022 * c-common.c (pointer_int_sum): Use %wd on return from
7023 tree_low_cst.
7024
a8847a7f
L
70252009-03-27 H.J. Lu <hongjiu.lu@intel.com>
7026
7027 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
7028 on return from tree_low_cst.
7029
b0957daf
AP
70302009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
7031
7032 PR c++/36799
ba20e309
UB
7033 * ginclude/stdarg.h (va_copy): Define also for
7034 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 7035
a5f805df
MLI
70362009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7037
7038 PR c++/35652
7039 * builtins.h (c_strlen): Do not warn here.
7040 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7041 * c-common.c (pointer_int_sum): Take an explicit location.
7042 Warn about offsets out of bounds.
7043 * c-common.h (pointer_int_sum): Adjust declaration.
7044
6f401211
RW
70452009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7046
a5f805df
MLI
7047 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
7048 markup glitch.
6f401211 7049
5a59b39e
JJ
70502009-03-26 Jakub Jelinek <jakub@redhat.com>
7051
7052 PR c++/39554
7053 * opts.c (warn_if_disallowed_function_p): Don't assume
7054 get_callee_fndecl must return non-NULL.
7055
d5f89b53
VM
70562009-03-26 Vladimir Makarov <vmakarov@redhat.com>
7057
7058 PR rtl-optimization/39522
7059 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
7060 when reg_reloaded_valid is set.
7061
61238a79
UW
70622009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7063
7064 * config/spu/divv2df3.c: New file.
7065 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
7066 (DPBIT_FUNCS): Filter out _div_df.
7067
03f8829b
BS
70682009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
7069
7070 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
7071 a jump insn, count that jump in the distance to the loop start.
7072
9fdcdc74
KK
70732009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
7074
7075 PR target/39523
7076 * config/sh/sh.c (calc_live_regs): Fix condition for global
7077 registers except PIC_OFFSET_TABLE_REGNUM.
7078
46994828
KT
70792009-03-25 Kai Tietz <kai.tietz@onevision.com>
7080
7081 PR/39518
7082 * doc/invoke.texi (-mconsole): New.
7083 (-mcygwin): New.
7084 (-mno-cygwin): New.
7085 (-mdll): New.
7086 (-mnop-fun-dllimport): New.
7087 (-mthread): New.
7088 (-mwin32): New.
7089 (-mwindows): New.
7090 (sub section "i386 and x86-64 Windows Options"): New.
7091
60839f5d 70922009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
7093
7094 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
7095 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
7096
ae560440
RG
70972009-03-25 Richard Guenther <rguenther@suse.de>
7098
7099 PR middle-end/39497
7100 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
7101 of -Wno-error.
7102
cd510f15
AM
71032009-03-25 Andrey Belevantsev <abel@ispras.ru>
7104
7105 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
7106 neither of haifa/selective schedulers are working.
7107
44ab0f0e
RW
71082009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7109
7110 * doc/invoke.texi (Debugging Options): Fix description of
7111 -fno-merge-debug-strings.
7112
ad9646c7
HPN
71132009-03-24 Hans-Peter Nilsson <hp@axis.com>
7114
e6142656
HPN
7115 * config/cris/libgcc.ver: New version-script.
7116 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
7117
ad9646c7
HPN
7118 * configure.ac <GAS features, nop mnemonic>: Add pattern
7119 crisv32-*-* for "nop".
ba20e309 7120 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
7121 * configure: Regenerate.
7122
09ac4473
IR
71232009-03-24 Ira Rosen <irar@il.ibm.com>
7124
7125 PR tree-optimization/39529
7126 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
7127 mark_sym_for_renaming for the tag copied to the new vector
7128 pointer.
7129
d94a427e
AL
71302009-03-24 Arthur Loiret <aloiret@debian.org>
7131
ba20e309 7132 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
7133 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
7134 EXTRA_SPEC_FUNCTIONS.
7135 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
7136 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
7137 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
7138 -march and -mtune options.
7139
60839f5d 71402009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
7141
7142 * config/m68k/t-rtems: Add m5329 multilib.
7143
603f5959
DS
71442009-03-24 Dodji Seketeli <dodji@redhat.com>
7145 Jakub Jelinek <jakub@redhat.com>
7146
7147 PR debug/39524
7148 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
7149 nodes.
7150
c5cdb03f
JJ
71512009-03-23 Jakub Jelinek <jakub@redhat.com>
7152
7153 PR c/39495
7154 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
7155 instead of c_parser_expression_conv, if original_code isn't one of the
7156 4 allowed comparison codes, fail.
7157
3691626c
RG
71582009-03-23 Richard Guenther <rguenther@suse.de>
7159
7160 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
7161 * tree.h (struct tree_type): Likewise.
7162 * reload.h (struct insn_chain): Likewise.
7163 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
7164 * function.h (struct function): Likewise.
7165 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
7166
88ccb72a
JJ
71672009-03-23 Jakub Jelinek <jakub@redhat.com>
7168
7169 PR tree-optimization/39516
7170 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
7171
60839f5d 71722009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 7173
2ba9daa7 7174 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
7175 should be set true if BITS_PER_WORD of target is bigger than 32
7176
f82162f8
HPN
71772009-03-22 Hans-Peter Nilsson <hp@axis.com>
7178
7179 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
7180 Translate -B-options to -rpath-link. Correct existing
7181 rpath-link and conditionalize on !nostdlib.
7182
048fd785
RW
71832009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7184
7185 * doc/extend.texi (Function Attributes, Variable Attributes):
7186 Fix typos.
7187 * doc/invoke.texi (Debugging Options, Optimize Options)
7188 (i386 and x86-64 Options, MCore Options): Likewise.
7189
6e75c1a9
JJ
71902009-03-20 Jakub Jelinek <jakub@redhat.com>
7191
7192 PR debug/37890
7193 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
7194 it for block local namespace aliases.
7195 (gen_decl_die): Pass context_die to gen_namespace_die.
7196
ea1199ee
JJ
71972009-03-19 Jakub Jelinek <jakub@redhat.com>
7198
7199 PR c/39495
7200 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
7201 minimum or maximum value.
7202
58929c10
AO
72032009-03-19 Alexandre Oliva <aoliva@redhat.com>
7204
7205 * reginfo.c (globalize_reg): Recompute derived reg sets.
7206
60839f5d 72072009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
7208
7209 PR target/39063
7210 * libgcc2.c (mprotect): Do not use signed arguments for
7211 VirtualProtect, use DWORD arguments. Also fix the 'may
7212 be used uninitialized' warning for the np variable.
7213
f57c2f04
JJ
72142009-03-19 Jakub Jelinek <jakub@redhat.com>
7215
7216 PR target/39496
7217 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
7218 functions using regparm calling conventions when not optimizing.
7219 (ix86_function_sseregparm): Similarly for sseregparm calling
7220 conventions.
7221
9e517d61
LF
72222009-03-19 Li Feng <nemokingdom@gmail.com>
7223
7224 PR middle-end/39500
7225 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
7226 dependence if the first conflict is after niter iterations.
7227
8ef20026
HPN
72282009-03-19 Hans-Peter Nilsson <hp@axis.com>
7229
7230 PR middle-end/38609
7231 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
7232 functions with dynamic stack-pointer adjustments.
7233
64e4a1a6
BE
72342009-03-19 Ben Elliston <bje@au.ibm.com>
7235
7236 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
7237 option; change to -msdata=data.
7238
9a0f3e86
RW
72392009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7240
7241 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
7242 and -fopenmp.
7243
09bc5979
EB
72442009-03-18 Eric Botcazou <ebotcazou@adacore.com>
7245
7246 PR target/35180
7247 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
7248
332459cd
SL
72492009-03-18 Sandra Loosemore <sandra@codesourcery.com>
7250
7251 * doc/invoke.texi (Code Gen Options): Expand discussion of
7252 -fno-common.
7253
8f5929e1
JJ
72542009-03-18 Jakub Jelinek <jakub@redhat.com>
7255
7256 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
7257 * matrix-reorg.c (struct matrix_info): Likewise.
7258 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
7259 * rtl.h (struct mem_attrs): Likewise.
7260 * df.h (struct df): Likewise.
7261 * tree-data-ref.h (struct data_dependence_relation): Likewise.
7262 * ira-int.h (struct ira_allocno): Likewise.
7263 * df-scan.c (struct df_collection_rec): Likewise.
7264 * ira.c (struct equivalence): Likewise.
7265 * function.c (struct temp_slot): Likewise.
7266 * cfgloop.h (struct loop): Likewise.
7267
d130d647
JJ
7268 PR debug/39485
7269 * function.c (use_register_for_decl): When not optimizing, disregard
7270 register keyword for variables with types containing methods.
7271
9968d233
SP
72722009-03-18 Sebastian Pop <sebastian.pop@amd.com>
7273
7274 PR middle-end/39447
7275 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
7276 (is_simple_operand): Call contains_component_ref_p before calling data
7277 reference analysis that would fail on COMPONENT_REFs.
7278
7279 * tree-vrp.c (search_for_addr_array): Fix formatting.
7280
69484bfd
RG
72812009-03-18 Richard Guenther <rguenther@suse.de>
7282
7283 * tree-vect-transform.c (vect_loop_versioning): Fold the
7284 generated comparisons.
7285 * tree-vectorizer.c (set_prologue_iterations): Likewise.
7286 (slpeel_tree_peel_loop_to_edge): Likewise.
7287
66811228
RW
72882009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7289
0631b69f
RW
7290 PR middle-end/37805
7291 * opts.c (print_specific_help): In addition to `undocumented',
7292 accept `separate' and `joined' flags if passed alone. Describe
7293 output by the first matched one of those.
7294 (common_handle_option): Skip over empty strings.
7295 * gcc.c (display_help): Fix help string for `--help='.
7296 * doc/invoke.texi (Option Summary, Overall Options): With
7297 `--help=', classes and qualifiers can both be repeated, but
7298 only the latter can be negated. One should not pass only
7299 negated qualifiers. Fix markup and examples.
7300
66811228
RW
7301 Revert
7302 2008-10-14 Jakub Jelinek <jakub@redhat.com>
7303 PR middle-end/37805
7304 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
7305 and -fhelp=separate.
7306
3c072c6b
JY
73072009-03-17 Jing Yu <jingyu@google.com>
7308
7309 PR middle-end/39378
80c65208
JY
7310 * function.h (struct rtl_data): Move is_thunk from here...
7311 (struct function): ...to here.
7312 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
7313 * varasm.c (assemble_start_function): Change is_thunk from crtl to
7314 cfun.
80c65208
JY
7315 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
7316 cfun.
7317 (alpha_does_function_need_gp, alpha_start_function): Likewise.
7318 (alpha_output_function_end_prologue): Likewise.
7319 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
7320 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
7321 (rs6000_output_function_epilogue): Likewise.
7322 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 7323
9ade279b
UB
73242009-03-17 Uros Bizjak <ubizjak@gmail.com>
7325
7326 PR target/39482
7327 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
7328 from different units in a single alternative.
7329 (*truncdfsf_i387): Ditto.
7330 (*truncxfsf2_mixed): Ditto.
7331 (*truncxfdf2_mixed): Ditto.
7332
16e60c17
JJ
73332009-03-17 Jakub Jelinek <jakub@redhat.com>
7334
98381eb4
JJ
7335 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
7336 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
7337
df5deb18
JJ
7338 PR debug/39474
7339 * tree-ssa-live.c (remove_unused_locals): Don't remove local
7340 unused non-artificial variables when not optimizing.
7341
a3f596ba
JJ
7342 PR debug/39471
7343 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
7344 DW_TAG_imported_module even if decl is IMPORTED_DECL with
7345 NAMESPACE_DECL in its DECL_INITIAL.
7346
6b2b8871
JJ
7347 PR middle-end/39443
7348 * optabs.c (set_user_assembler_libfunc): New function.
7349 * expr.h (set_user_assembler_libfunc): New prototype.
7350 * c-common.c: Include libfuncs.h.
7351 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
7352 for memcmp, memset, memcpy, memmove and abort.
7353 * Makefile.in (c-common.o): Depend on libfuncs.h.
7354
16e60c17
JJ
7355 PR debug/39412
7356 * dwarf2out.c (gen_inlined_enumeration_type_die,
7357 gen_inlined_structure_type_die, gen_inlined_union_type_die,
7358 gen_tagged_type_instantiation_die): Removed.
7359 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
7360 do nothing.
7361
4d936aca
JJ
73622009-03-17 Janis Johnson <janis187@us.ibm.com>
7363
7364 PR testsuite/38526
7365 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
7366 its use.
7367 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
7368 (check-parallel-%): Ditto.
7369 (check-consistency): Ditto.
7370
4e9b2e50
KT
73712009-03-17 Kai Tietz <kai.tietz@onevision.com>
7372
7373 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
7374 local variable rhs by NULL_TREE.
7375
21440b2d
L
73762009-03-17 H.J. Lu <hongjiu.lu@intel.com>
7377
7378 PR target/39477
9ade279b 7379 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 7380
d8905c6a
L
73812009-03-17 H.J. Lu <hongjiu.lu@intel.com>
7382
7383 PR target/39476
9ade279b 7384 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
7385
73862009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
7387
7388 PR target/39473
7389 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
7390 for ms->sysv ABI calls only in 64bit mode.
7391
7392 * config/i386/i386.md (untyped_call): Support 32bit.
7393
cdcabece
L
73942009-03-16 H.J. Lu <hongjiu.lu@intel.com>
7395
7396 * doc/extend.texi: Replace x86_65 with x86_64.
7397
97b4ba9f
JJ
73982009-03-16 Jakub Jelinek <jakub@redhat.com>
7399
7400 PR tree-optimization/39455
7401 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
7402 mismatches for POINTER_TYPE_P (type).
7403 (number_of_iterations_le): Likewise.
7404
60839f5d 74052009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
7406
7407 * config/picochip/picochip.c: Removed profiling support.
7408 * config/picochip/picochip.md: Removed profiling instruction.
7409 * config/picochip/picochip.h: Removed profiling builtin.
7410
f38095f3
JM
74112009-03-16 Joseph Myers <joseph@codesourcery.com>
7412
7413 * doc/install.texi (--with-host-libstdcxx): Document.
7414
2cb4817b
AS
74152009-03-14 Anatoly Sokolov <aesok@post.ru>
7416
7417 PR target/34299
7418 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
7419 generate a warning if the function name does not begin with
7420 "__vector" and the function has either the 'signal' or 'interrupt'
7421 attribute, from here to ...
7422 (avr_declare_function_name): ...here. New function.
7423 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
7424 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
7425
39b2ac74
JJ
74262009-03-14 Jakub Jelinek <jakub@redhat.com>
7427
7428 PR bootstrap/39454
7429 * cse.c (fold_rtx): Don't modify original const_arg1 when
7430 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
7431 separate variable instead.
7432 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
7433 from out of range shift counts.
7434 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
7435
ad41bd84 74362009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 7437
60839f5d 7438 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
7439 diagnostic.h with $(DIAGNOSTIC_H).
7440
ad41bd84 74412009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
7442
7443 PR target/39431
7444 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
7445 predicate.
7446 * config/i386/sync.md (sync_compare_and_swap<mode>,
7447 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
7448 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
7449 into a register.
7450 (sync_double_compare_and_swapdi_pic,
7451 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
7452 cmpxchg8b_pic_memory_operand instead of just memory_operand.
7453
122c59c7
L
74542009-03-12 H.J. Lu <hongjiu.lu@intel.com>
7455
7456 PR target/39445
9ade279b 7457 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 7458
cec8874f
L
74592009-03-12 H.J. Lu <hongjiu.lu@intel.com>
7460
7461 PR target/39327
7462 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7463 (avx_addsubv4df3): Likewise.
7464 (*avx_addsubv4sf3): Likewise.
7465 (sse3_addsubv4sf3): Likewise.
7466
bbb52802
L
74672009-03-12 H.J. Lu <hongjiu.lu@intel.com>
7468
7469 PR target/38824
9ade279b 7470 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 7471
a812fb07
VM
74722009-03-12 Vladimir Makarov <vmakarov@redhat.com>
7473
7474 PR debug/39432
7475 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
7476 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7477 registers for allocnos created from user-defined variables.
7478
4caab5ba
UW
74792009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7480
7481 PR target/39181
7482 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
7483 of non-integer mode as well.
7484
498e51ca
AN
74852009-03-11 Adam Nemet <anemet@caviumnetworks.com>
7486
7487 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
7488 for functions for which the parameter types are unknown.
7489
9bfaf89d
JJ
74902009-03-11 Jakub Jelinek <jakub@redhat.com>
7491
7492 PR target/39137
9ade279b 7493 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
7494 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
7495 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
7496 * config/i386/i386.c (ix86_local_alignment): For
7497 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
7498 long long variables on the stack to avoid dynamic realignment.
7499 Allow the first argument to be a decl rather than type.
7500 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
7501
18a3bdcb
NC
75022009-03-11 Nick Clifton <nickc@redhat.com>
7503
7504 PR target/5362
40190a76
NC
7505 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
7506 options.
7507 Add description to mno-lsim option.
7508 * config/mcore/mcore.h: Remove comment about deprecated m4align
7509 option.
7510 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
7511 * doc/invoke.texi: Add description of mno-lsim and
7512 mstack-increment options.
7513
18a3bdcb
NC
7514 * config/fr30/fr30.opt: Document the -mno-lsim option.
7515 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
7516 and -mno-lsim options.
7517
dc215785
UW
75182009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7519
7520 * fold-const.c (fold_comparison): Only call fold_inf_compare
7521 if the mode supports infinities.
7522
7716876b
JM
75232009-03-11 Jason Merrill <jason@redhat.com>
7524
7525 PR debug/39086
7526 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
7527 end already did. Notice GIMPLE_CALL modifications of the result.
7528 Don't copy debug information from an ignored decl or a decl from
7529 another function.
7530
ddef83d2
RG
75312009-03-10 Richard Guenther <rguenther@suse.de>
7532 Nathan Froyd <froydnj@codesourcery.com>
7533
7534 PR middle-end/37850
9ade279b 7535 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
7536 (__divMODE3): Likewise.
7537
9a9ba8d9
JJ
75382009-03-09 Jakub Jelinek <jakub@redhat.com>
7539
7540 PR tree-optimization/39394
7541 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
7542 DECL_SIZE_UNIT of variable length FIELD_DECLs.
7543
929b7fc3
AK
75442009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7545
7546 * recog.c (verfiy_changes): Disallow renaming of hard regs in
7547 inline asms for register asm ("") declarations.
7548
1803581d
EB
75492009-03-09 Eric Botcazou <ebotcazou@adacore.com>
7550
7551 * fold-const.c (fold_unary): Fix comment.
7552
8454d27e
JH
75532009-03-07 Jan Hubicka <jh@suse.cz>
7554
7555 PR target/39361
969a5433
JJ
7556 * tree-inline.c (setup_one_parameter): Do replacement of const
7557 argument by constant in SSA form.
8454d27e 7558
3a695389
UW
75592009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7560
7561 PR middle-end/38028
7562 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
7563 determine alignment passed to assign_stack_local.
7564 (assign_parms_unsplit_complex): Likewise.
7565 * except.c (sjlj_build_landing_pads): Likewise.
7566
9f0e7885
JJ
75672009-03-06 Jakub Jelinek <jakub@redhat.com>
7568
65401a0b
JJ
7569 PR middle-end/39360
7570 * tree-flow.h (add_referenced_var): Return bool instead of void.
7571 * tree-dfa.c (add_referenced_var): Return result of
7572 referenced_var_check_and_insert call.
7573 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
7574 of referenced_var_check_and_insert.
7575
9f0e7885 7576 PR debug/39372
9ade279b 7577 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
7578 (gen_variable_die): Emit DW_AT_location on abstract static variable's
7579 DIE, don't emit it if abstract origin already has it.
7580 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
7581 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
7582
3b664bd1
JBG
75832009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7584
ba20e309 7585 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
7586 detection.
7587 (write_tm_constrs_h): Indent generated code.
7588
d8f8ca80
RR
75892009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7590
7591 * doc/extend.texi (Function Attributes): Add documentation
7592 for isr attributes.
7593
6c3d550c
JJ
75942009-03-06 Jakub Jelinek <jakub@redhat.com>
7595
7596 PR debug/39387
7597 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
7598 take locus from its DECL_SOURCE_LOCATION instead of input_location.
7599
f9e96751
BS
76002009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
7601
7602 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
7603 the loop as bad.
7604
ee0ee7e2
JJ
76052009-03-05 Jakub Jelinek <jakub@redhat.com>
7606
7607 PR debug/39379
7608 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
7609 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
7610
6c6094f1
UB
76112009-03-05 Uros Bizjak <ubizjak@gmail.com>
7612
7613 * config/i386/i386.md (R8_REG, R9_REG): New constants.
7614 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
7615 constants instead of magic numbers.
7616 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
7617 (QI_REG_P): Ditto.
7618 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
7619 (x86_64_ms_abi_int_parameter_registers): Ditto.
7620 (x86_64_int_return_registers): Ditto.
09f8a8d3 7621 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
7622 (ix86_expand_call): Ditto for clobbered_registers array.
7623 (ix86_hard_regno_mode_ok): Ditto.
7624 (x86_extended_QIreg_mentioned_p): Ditto.
7625
b267bd41
R
76262009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
7627
6c6094f1 7628 PR tree-optimization/39349
1f3ad3f0
R
7629 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
7630
b267bd41
R
7631 * combine.c (gen_lowpart_for_combine): Use omode when generating
7632 clobber.
7633
1242bc9d
R
76342009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
7635
6c6094f1 7636 PR rtl-optimization/39235
1242bc9d
R
7637 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
7638
48f03606
ZD
76392009-03-04 Zdenek Dvorak <ook@ucw.cz>
7640
7641 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
7642
b505e785
RG
76432009-03-04 Richard Guenther <rguenther@suse.de>
7644
7645 PR tree-optimization/39362
7646 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
7647 that occur in abnormal PHIs should be varying.
7648
f017bf5e
ZD
76492009-03-04 Zdenek Dvorak <ook@ucw.cz>
7650
7651 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
7652 Extend comments.
7653 (simple_iv): Take loop as an argument instead of statement.
7654 * tree-scalar-evolution.h (simple_iv): Declaration changed.
7655 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
7656 to simple_iv.
7657 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
7658 Ditto.
7659 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
7660 * matrix-reorg.c (analyze_transpose): Ditto.
7661 * tree-data-ref.c (dr_analyze_innermost): Ditto.
7662 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
7663 * tree-predcom.c (ref_at_iteration): Ditto.
7664 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
7665
6a66f28e
RG
76662009-03-04 Richard Guenther <rguenther@suse.de>
7667
7668 PR tree-optimization/39358
7669 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
7670 escaped_id and callused_id.
7671 (solve_graph): Likewise.
7672
57e454ee
RG
76732009-03-04 Richard Guenther <rguenther@suse.de>
7674
7675 PR tree-optimization/39339
7676 * tree-sra.c (try_instantiate_multiple_fields): Make it
7677 no longer ICE on the above.
7678
a6fe9ed4
JM
76792009-03-03 Joseph Myers <joseph@codesourcery.com>
7680
7681 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
7682 that fits within Pmode.
7683
dc672951
SE
76842009-03-03 Steve Ellcey <sje@cup.hp.com>
7685
7686 PR middle-end/10109
7687 * tm.texi (LIBCALL_VALUE): Update description.
7688
8b9d598f
SE
76892009-03-03 Steve Ellcey <sje@cup.hp.com>
7690
7691 PR middle-end/34443
7692 * doc/extend.texi (section): Update description.
7693
13e4e36e
L
76942009-03-03 H.J. Lu <hongjiu.lu@intel.com>
7695
7696 PR middle-end/39345
7697 * tree-inline.c (remapped_type): New.
7698 (can_be_nonlocal): Call remapped_type instead of remap_type.
7699
067dd3c9
JJ
77002009-03-03 Jakub Jelinek <jakub@redhat.com>
7701
7702 PR fortran/39354
7703 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
7704 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
7705
9bd9f738
RG
77062009-03-03 Richard Guenther <rguenther@suse.de>
7707
7708 PR middle-end/39272
7709 * tree.c (tree_nonartificial_location): New function.
7710 * tree.h (tree_nonartificial_location): Declare.
7711 * builtins.c (expand_builtin_memory_chk): Provide location
7712 of the call location for artificial function pieces.
7713 (maybe_emit_chk_warning): Likewise.
7714 (maybe_emit_sprintf_chk_warning): Likewise.
7715 (maybe_emit_free_warning): Likewise.
7716 * expr.c (expand_expr_real_1): Likewise.
7717
f07049c8
JJ
77182009-03-03 Jakub Jelinek <jakub@redhat.com>
7719
7720 PR tree-optimization/39343
7721 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
7722 COMPONENT_REF t has ARRAY_TYPE.
7723
7d4fba4a
SP
77242009-03-02 Sebastian Pop <sebastian.pop@amd.com>
7725
7726 PR middle-end/39335
7727 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
7728 when the type precision of the induction variable should be
7729 larger than the type precision of nit.
7730 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
7731 * graphite.c (graphite_loop_normal_form): Same.
7732 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
7733
78168632
UB
77342009-03-02 Uros Bizjak <ubizjak@gmail.com>
7735
7736 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
7737 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 7738 numbers to describe clobbered registers.
78168632 7739 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
7740 * config/i386/mmx.md (mmx_emms): Ditto.
7741 (mmx_femms): Ditto.
78168632 7742
63553059
RS
77432009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
7744
7745 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
7746 of ABI_64.
7747
500a1f85
UW
77482009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7749
7750 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
7751 (spu_section_type_flags): New function.
7752
962aae34
UB
77532009-03-02 Uros Bizjak <ubizjak@gmail.com>
7754
7755 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
7756 reg_class_contents of FLOAT_REGS into a temporary.
7757
6dfb529c 77582009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 7759 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
7760
7761 PR tree-optimization/39318
7762 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
7763 information to the vectorized statement.
7764
6b5629db
UB
77652009-03-01 Uros Bizjak <ubizjak@gmail.com>
7766
434426d2
UB
7767 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
7768 variable. Use defined names instead of magic constants for REX SSE
7769 registers.
6b5629db 7770
14e5b285
RG
77712009-03-01 Richard Guenther <rguenther@suse.de>
7772
7773 PR tree-optimization/39331
7774 * omp-low.c (lower_send_shared_vars): Do not receive new
7775 values for the reference of DECL_BY_REFERENCE parms or results.
7776
526d73ab
JH
77772009-03-01 Jan Hubicka <jh@suse.cz>
7778
7779 PR debug/39267
7780 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
7781 BLOCK_NONLOCALIZED_VAR): New macros.
7782 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
7783 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
7784 gen_decl_die): Add origin argument. Allow generation of die with
7785 origin at hand only.
526d73ab 7786 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
7787 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
7788 of gen_*.
526d73ab
JH
7789 (gen_block_die): Fix checking for unused blocks.
7790 (process_scope_var): Break out from .... ; work with origins only.
7791 (decls_for_scope) ... here; process nonlocalized list.
7792 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
7793 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
7794 vars.
526d73ab
JH
7795 (dump_scope_block): Dump them.
7796 * tree-inline.c (remap_decls): Handle nonlocalized vars.
7797 (remap_block): Likewise.
7798 (can_be_nonlocal): New predicate.
7799 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
7800
7a9d3fe8
RW
78012009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7802
7803 * configure: Regenerate.
7804
b3cdf3cb
RW
78052009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7806
a16d1645 7807 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 7808 Reuse help texts for duplicate options which do not have any.
a16d1645 7809
1156c176
RW
7810 * gcc.c (display_help): Document --version.
7811
033505fc
RW
7812 * gcc.c (main): If print_help_list and verbose_flag, ensure
7813 driver output comes before subprocess output.
7814
4d077054
RW
7815 * optc-gen.awk: Assign all remaining fields to help string,
7816 space-separated, for multi-line help in *.opt.
7817
a072f1cf
RW
7818 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
7819 -Wno-pedantic-ms-format is for MinGW targets only.
7820
b3cdf3cb
RW
7821 * doc/options.texi (Option file format): Fix bad indentation,
7822 restoring dropped sentence.
7823
a3aadcc5
JH
78242009-02-28 Jan Hubicka <jh@suse.cz>
7825
7826 * tree-inline.c (tree_function_versioning): Output debug info.
7827
1cf5abb3
JH
78282009-02-28 Jan Hubicka <jh@suse.cz>
7829
7830 PR debug/39267
7831 * tree-inline.c (setup_one_parameter): Do not copy propagate
7832 arguments when not optimizing.
7833
c4d3f42f
L
78342009-02-28 H.J. Lu <hongjiu.lu@intel.com>
7835
7836 PR target/39327
7837 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7838 (avx_addsubv4df3): Likewise.
7839 (*avx_addsubv4sf3): Likewise.
7840 (sse3_addsubv4sf3): Likewise.
7841 (*avx_addsubv2df3): Likewise.
7842 (sse3_addsubv2df3): Likewise.
7843 (avx_unpckhps256): Correct item selectors.
7844 (avx_unpcklps256): Likewise.
7845 (avx_unpckhpd256): Likewise.
7846 (avx_unpcklpd256): Likewise.
7847
eb50f5f4
JH
78482009-02-28 Jan Hubicka <jh@suse.cz>
7849
7850 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
7851 static vars.
7852 (copy_arguments_for_versioning): If var is declared don't declare it.
7853 (tree_function_versioning): First setup substitutions and then copy
7854 args.
7855
26140130
JH
78562009-02-27 Jan Hubicka <jh@suse.cz>
7857
7858 PR debug/39267
7859 * cgraph.h (varpool_output_debug_info): Remove.
7860 * cgraphunit.c (varpool_output_debug_info): Remove.
7861 * dwarf2out.c (deferred_locations_struct): New struct
7862 (deferred_locations): New type.
7863 (deferred_locations_list): New static var.
7864 (deffer_location): New function.
7865 (gen_variable_die): Use it.
7866 (decls_for_scope): Output info on local static vars.
7867 (dwarf2out_finish): Process deferred locations.
7868 * varpool.c (varpool_output_debug_info): Remove.
7869
cff7525f
JH
78702009-02-27 Jan Hubicka <jh@suse.cz>
7871
7872 PR debug/39267
7873 * tree.h (TREE_PROTECTED): Fix comment.
7874 (BLOCK_HANDLER_BLOCK): Remove.
7875 (struct tree_block): Remove handler_block add body_block.
7876 (inlined_function_outer_scope_p): New.
7877 (is_body_block): Remove.
7878 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
7879 * dwarf2out.c (is_inlined_entry_point): Remove.
7880 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
7881 (gen_block_die): Use is_inlined_entry_point check. Remove body block
7882 code.
cff7525f
JH
7883 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
7884 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
7885 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
7886 block with multiple subblocks.
cff7525f
JH
7887 (dump_scope_block): Prettier output; dump more flags and info.
7888 (dump_scope_blocks): New.
7889 (remove_unused_locals): Use dump_scope_blocks.
7890 * tree-flow.h (dump_scope_blocks): Declare.
7891 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
7892 * stmt.c (is_body_block): Remove.
7893 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
7894 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
7895
c20993b9
SP
78962009-02-27 Sebastian Pop <sebastian.pop@amd.com>
7897
7898 PR middle-end/39308
2ba9daa7 7899 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
7900 number_of_iterations_exit from a gcc_assert.
7901
e3cba5e5
AK
79022009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7903
60839f5d 7904 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
7905 jumps if COND is NULL.
7906 (find_cond_jump): New function.
7907 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 7908 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 7909
9dadeeb8
UB
79102009-02-26 Uros Bizjak <ubizjak@gmail.com>
7911
7912 * config/alpha/alpha.h (alpha_expand_mov): Return false if
7913 force_const_mem returns NULL_RTX.
7914
625d3251
EB
79152009-02-26 Jan Hubicka <jh@suse.cz>
7916
7917 PR debug/39267
7918 * cgraph.h (varpool_output_debug_info): Remove.
7919 * cgraphunit.c (varpool_output_debug_info): Remove.
7920 * dwarf2out.c (deferred_locations_struct): New struct
7921 (deferred_locations): New type.
7922 (deferred_locations_list): New static var.
7923 (deffer_location): New function.
7924 (gen_variable_die): Use it.
7925 (decls_for_scope): Output info on local static vars.
7926 (dwarf2out_finish): Process deferred locations.
7927 * varpool.c (varpool_output_debug_info): Remove.
7928
38432148 79292009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
7930
7931 PR rtl-optimization/39241
7932 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
7933 to subreg_offset_representable_p.
7934
62d049cf
PB
79352009-02-25 Paolo Bonzini <bonzini@gnu.org>
7936
7937 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
7938 execute function prototype. Get f and nregs from max_reg_num
7939 and get_insns. Remove the first backward pass as it's dead,
7940 guard the forward pass by flag_expensive_optimizations.
7941 (rest_of_handle_regmove): Delete.
7942 (pass_regmove): Replace it with regmove_optimize.
7943
f618d33e
MJ
79442009-02-25 Martin Jambor <mjambor@suse.cz>
7945
7946 PR tree-optimization/39259
7947 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 7948 calls_alloca function flags.
f618d33e
MJ
7949 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
7950 calls are detected.
7951
c8a05f7c
PB
79522009-02-25 Paolo Bonzini <bonzini@gnu.org>
7953
7954 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
7955 flags_set_1_rtx, flags_set_1_set): Delete.
7956 (regmove_optimize): Do not call mark_flags_life_zones.
7957
6d2538f5
JB
79582009-02-24 Julian Brown <julian@codesourcery.com>
7959
7960 PR target/35965
7961 * config/arm/arm.c (require_pic_register): Only set
7962 cfun->machine->pic_reg once per function.
7963
a2fa6772
SL
79642009-02-24 Sandra Loosemore <sandra@codesourcery.com>
7965
7966 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 7967 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 7968
5472de36
SE
79692009-02-24 Steve Ellcey <sje@cup.hp.com>
7970
7971 PR target/33785
7972 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
7973
844216f3
RG
79742009-02-24 Richard Guenther <rguenther@suse.de>
7975
7976 PR debug/39285
7977 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
7978
71adbef3 79792009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 7980 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
7981
7982 PR tree-optimization/39233
7983 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
7984 from converting them to a generic type.
7985
f1a558e0
SP
79862009-02-23 Sebastian Pop <sebastian.pop@amd.com>
7987
7988 PR tree-optimization/39260
7989 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
7990 contains a condition with a real type.
7991 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
7992
d8028f2c
JM
79932009-02-23 Jason Merrill <jason@redhat.com>
7994
7995 PR c++/38880
7996 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
7997 narrowing_initializer_constant_valid_p.
2ba9daa7 7998 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
7999 null_pointer_node for adding a pointer to itself.
8000
9283b513
JH
80012009-02-23 Jan Hubicka <jh@suse.cz>
8002
8003 PR c/12245
9dadeeb8
UB
8004 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
8005 resizing.
9283b513 8006
61e04322
JH
80072009-02-23 Jan Hubicka <jh@suse.cz>
8008
9dadeeb8
UB
8009 PR tree-optimization/37709
8010 * tree.c (block_ultimate_origin): Move here from dwarf2out.
8011 * tree.h (block_ultimate_origin): Declare.
8012 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
8013 * tree-ssa-live.c (remove_unused_scope_block_p):
8014 Eliminate blocks containig no instructions nor live variables nor
8015 nested blocks.
8016 (dump_scope_block): New function.
8017 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 8018 enable dumping at TDF_DETAILS.
61e04322 8019
38432148 80202009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
8021
8022 * config/i386/i386.c (classify_argument): Don't allow COImode
8023 and OImode.
8024 (function_arg_advance_32): Don't allow OImode.
8025 (function_arg_32): Likewise.
8026 (function_value_32): Likewise.
8027 (return_in_memory_32): Likewise.
8028 (function_arg_64): Remove OImode comment.
8029
38432148 80302009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
8031
8032 PR target/39261
8033 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
8034 ix86_expand_vector_set for V4DImode in 64bit mode only.
8035 (ix86_expand_vector_init_one_var): Likewise.
8036
dcd739a6
SP
80372009-02-21 Sebastian Pop <sebastian.pop@amd.com>
8038
8039 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
8040
6c3b938d
RS
80412009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
8042
8e361f23 8043 PR bootstrap/39257
6c3b938d
RS
8044 * loop-iv.c: Revert last change.
8045 * emit-rtl.c: Likewise.
8046
38432148 80472009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
8048
8049 PR target/39256
8050 * config/i386/i386.c (type_natural_mode): Remove an extra
8051 space in the warning message.
8052 (function_value_32): Handle 32-byte vector modes.
8053 (return_in_memory_32): Likewise.
8054
2ec62529
RS
80552009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
8056
8057 * loop-iv.c (truncate_value): New function.
8058 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
8059 of lowpart_subreg.
8060 (lowpart_subreg): Move to...
8061 * emit-rtl.c: ...here.
8062
ecb8c3cc 80632009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 8064
ecb8c3cc
DS
8065 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
8066 accidental and undocumented change at revision 140860.
8067
ae46a823
JM
80682009-02-21 Joseph Myers <joseph@codesourcery.com>
8069
8070 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
8071 take gimple_seq * arguments.
8072 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
8073 types_compatible_p langhook.
8074
07d8efe3 80752009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 8076 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
8077
8078 * config/arm/arm.c (arm_builtin_va_list): New function.
8079 (arm_expand_builtin_va_start): Likewise.
8080 (arm_gimplify_va_arg_expr): Likewise.
8081 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
8082 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
8083 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
8084 (va_list_type): New variable.
8085 (arm_mangle_type): Mangle va_list_type appropriately.
8086
b1fb9f56
JJ
80872009-02-20 Jakub Jelinek <jakub@redhat.com>
8088
8089 PR middle-end/39157
8090 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
8091 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
8092 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
8093 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
8094 parameter to 1000 for -O1 by default.
8095 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
8096 parameter.
8097 * loop-invariant.c: Include params.h.
8098 (move_loop_invariants): Don't call move_single_loop_invariants on
8099 very large loops.
8100
5bc0807c
JM
81012009-02-20 Jaka Mocnik <jaka@xlab.si>
8102
8103 * calls.c (emit_library_call_value_1): Use slot_offset instead of
8104 offset when calculating bounds for indexing stack_usage_map. Fixes
8105 a buffer overflow with certain target setups.
8106
c69cd1f5
JJ
81072009-02-20 Jakub Jelinek <jakub@redhat.com>
8108
8109 PR target/39240
8110 * calls.c (expand_call): Clear try_tail_call if caller and callee
8111 disagree in promotion of function return value.
8112
09812622
JJ
81132009-02-19 Jakub Jelinek <jakub@redhat.com>
8114
8115 PR target/39175
8116 * c-common.c (c_determine_visibility): If visibility changed and
8117 DECL_RTL has been already set, call make_decl_rtl to update symbol
8118 flags.
8119
68017cb4
L
81202009-02-19 H.J. Lu <hongjiu.lu@intel.com>
8121
8122 PR c++/39188
8123 * varasm.c (assemble_variable): Don't check DECL_NAME when
8124 globalizing a variable.
8125
ab4194da
JM
81262009-02-19 Joseph Myers <joseph@codesourcery.com>
8127
8128 PR c/38483
8129 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
8130 expression before any __builtin_trap call.
8131 * c-typeck.c (build_function_call): Convert and check function
8132 arguments before generating a call to a trap. Evaluate the
8133 function arguments before the trap.
8134
6b67572e
UB
81352009-02-19 Uros Bizjak <ubizjak@gmail.com>
8136
8137 PR target/39228
8138 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
8139 (UNSPEC_FXAM_MEM): New unspec.
8140 (fxam<mode>2_i387_with_temp): New insn and split pattern.
8141 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
8142 memory using fxam<mode>2_i387_with_temp to remove excess precision.
8143
9e39dba6
RG
81442009-02-19 Richard Guenther <rguenther@suse.de>
8145
8146 PR tree-optimization/39207
8147 PR tree-optimization/39074
8148 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
8149 storedanything_tree): New.
8150 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 8151 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
8152 (build_succ_graph): Add edges from STOREDANYTHING to all
8153 non-direct nodes.
8154 (init_base_vars): Initialize STOREDANYTHING.
8155 (compute_points_to_sets): Free substitution info after
8156 building the succ graph.
8157 (ipa_pta_execute): Likewise.
8158
8159 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
8160 field.
8161 (do_ds_constraint): Do not add to special var or non-pointer
8162 field solutions.
8163 (type_could_have_pointers): Split out from ...
8164 (could_have_pointers): ... here. For arrays use the element type.
8165 (create_variable_info_for): Initialize may_have_pointers.
8166 (new_var_info): Likewise.
8167 (handle_lhs_call): Make the HEAP variable unknown-sized.
8168 (intra_create_variable_infos): Use a type with pointers for
8169 PARM_NOALIAS, make it unknown-sized.
8170
fd7b2603
L
81712009-02-18 H.J. Lu <hongjiu.lu@intel.com>
8172
8173 PR target/39224
6b67572e 8174 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 8175
98b80692
JM
81762009-02-18 Jason Merrill <jason@redhat.com>
8177
8178 PR target/39179
8179 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
8180 value if DECL_EXTERNAL.
8181 * tree-sra.c (sra_walk_gimple_assign): Likewise.
8182 * target.h (gcc_target::binds_local_p): Clarify "module".
8183 * tree.h (TREE_PUBLIC): Clarify "module".
8184
0705d3f4
L
81852009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
8186
8187 PR target/38891
8188 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
8189 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
8190
bce08d50
L
81912009-02-17 H.J. Lu <hongjiu.lu@intel.com>
8192
8193 PR target/39082
8194 * c.opt (Wabi): Support C and ObjC.
8195 (Wpsabi): New.
8196
8197 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
8198
8199 * config/i386/i386.c (classify_argument): Warn once about the ABI
8200 change when passing union with long double.
8201
8202 * doc/invoke.texi: Update -Wabi for warning psABI changes.
8203
5600f233
JM
82042009-02-18 Joseph Myers <joseph@codesourcery.com>
8205
8206 PR c/35447
8207 * c-parser.c (c_parser_compound_statement): Always enter and leave
8208 a scope.
8209
8cd01fe6
JDA
82102009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8211
8212 PR target/34587
8213 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
8214
418df9d7
JJ
82152009-02-18 Jakub Jelinek <jakub@redhat.com>
8216
8217 PR tree-optimization/36922
8218 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
8219 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
8220 Likewise.
8221
082d2ebb
RS
82222009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
8223
8224 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
8225 to 0 for EABI64.
8226
17de576c
RS
82272009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
8228
8229 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
8230
6d8d5435
RS
82312009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
8232
8233 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
8234 tree sharing.
8235
e69ff910
RB
82362009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
8237 Richard Sandiford <rdsandiford@googlemail.com>
8238
8239 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
8240 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
8241 (loongson_biadd): ...this.
8242
6b24ee26
RG
82432009-02-17 Richard Guenther <rguenther@suse.de>
8244
8245 PR tree-optimization/39202
8246 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
8247 a var make sure to follow existing collapses.
8248
91ab2c86
RG
82492009-02-17 Richard Guenther <rguenther@suse.de>
8250
8251 PR middle-end/39214
8252 * langhooks.c (lhd_print_error_function): Check for NULL block.
8253
73a63870
RG
82542009-02-17 Richard Guenther <rguenther@suse.de>
8255
8256 PR tree-optimization/39204
8257 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
8258 of the PHI arg.
8259
0e08f686
UB
82602009-02-17 Uros Bizjak <ubizjak@gmail.com>
8261
8262 * config/soft-fp/double.h: Update from glibc CVS.
8263
a60b7ddb
RG
82642009-02-17 Richard Guenther <rguenther@suse.de>
8265
8266 PR tree-optimization/39207
8267 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
8268 strict-aliasing warnings for pointers pointing to NULL.
8269
a47e20fd
JM
82702009-02-16 Joseph Myers <joseph@codesourcery.com>
8271
8272 PR c/35446
8273 * c-parser.c (c_parser_braced_init): Call pop_init_level when
8274 skipping until next close brace.
8275
50aab7dc
L
82762009-02-16 H.J. Lu <hongjiu.lu@intel.com>
8277
8278 PR target/37049
8279 * config/i386/i386.c (ix86_expand_push): Set memory alignment
8280 to function argument boundary.
8281
68e53db0
HS
82822009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
8283
8284 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
8285 in the lea_add. Reload eventually constraints it properly.
8286 * config/picochip/constraints.md : Remove the target constraint
8287 "b", since it is not needed anymore.
8288
09e361bb
JJ
82892009-02-16 Jakub Jelinek <jakub@redhat.com>
8290
8291 * gthr-dce.h: Uglify function parameter and local variable names.
8292 * gthr-gnat.h: Likewise.
8293 * gthr-mipssde.h: Likewise.
8294 * gthr-nks.h: Likewise.
8295 * gthr-posix95.h: Likewise.
8296 * gthr-posix.h: Likewise.
8297 * gthr-rtems.h: Likewise.
8298 * gthr-single.h: Likewise.
8299 * gthr-solaris.h: Likewise.
8300 * gthr-tpf.h: Likewise.
8301 * gthr-vxworks.h: Likewise.
8302 * gthr-win32.h: Likewise.
8303
47f5a48f
L
83042009-02-15 H.J. Lu <hongjiu.lu@intel.com>
8305
8306 PR target/39196
8307 * config/i386/i386.md: Restrict the new peephole2 to move
8308 between MMX/SSE registers.
8309
68c9ab45
RG
83102009-02-15 Richard Guenther <rguenther@suse.de>
8311
8312 Revert
8313 2009-02-13 Richard Guenther <rguenther@suse.de>
8314
8315 * configure.ac: Enable LFS.
8316 * configure: Re-generate.
8317 * config.in: Likewise.
8318
d7815554
UW
83192009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8320
8321 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
8322 spu_srqwbyte, spu_srqwbytebc): Define.
8323 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
8324 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
8325 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
8326 "shrqby_<mode>"): New insn-and-split patterns.
8327 * config/spu/spu.c (expand_builtin_args): Determine and return
8328 number of operands using spu_builtin_description data.
8329 (spu_expand_builtin_1): Use it.
8330
c208436c
SE
83312009-02-13 Steve Ellcey <sje@cup.hp.com>
8332
8333 PR target/38056
8334 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
8335 TARGET_CONST_GP.
8336
c2e7ba7e
L
83372009-02-13 H.J. Lu <hongjiu.lu@intel.com>
8338
8339 PR target/39149
8340 * config/i386/i386.c (override_options): Correct warning
6c6094f1 8341 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 8342
72f4e3a7
L
83432009-02-13 H.J. Lu <hongjiu.lu@intel.com>
8344
8345 PR target/39152
8346 * config/i386/i386.md: Restrict the new peephole2 to move
8347 between the general purpose registers.
8348
53f648e2
L
83492009-02-13 H.J. Lu <hongjiu.lu@intel.com>
8350
8351 PR target/39162
8352 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 8353 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
8354 (function_arg_advance): Updated.
8355 (function_arg): Likewise.
8356 (ix86_function_value): Likewise.
8357 (ix86_return_in_memory): Likewise.
8358 (ix86_sol10_return_in_memory): Likewise.
8359 (ix86_gimplify_va_arg): Likewise.
8360 (function_arg_32): Don't warn ABX ABI change here.
8361 (function_arg_64): Likewise.
8362
38432148 83632009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
8364
8365 * loop-iv.c (implies_p): In the final case, test that operands 0
8366 of the two comparisons match.
8367
dd2139e7
BS
8368 * config/bfin/bfin.c (find_prev_insn_start): New function.
8369 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
8370 (find_next_insn_start): Move.
8371
601b3e1a
RG
83722009-02-13 Richard Guenther <rguenther@suse.de>
8373
8374 * configure.ac: Enable LFS.
8375 * configure: Re-generate.
8376 * config.in: Likewise.
8377
f007042e
JM
83782009-02-13 Joseph Myers <joseph@codesourcery.com>
8379
8380 PR c/35444
8381 * c-parser.c (c_parser_parms_list_declarator): Discard pending
8382 sizes on syntax error after some arguments have been parsed.
8383
3f238e8b
JJ
83842009-02-12 Jakub Jelinek <jakub@redhat.com>
8385
8386 * doc/invoke.texi (-fira): Remove.
8387
328e13b7
L
83882009-02-12 H.J. Lu <hongjiu.lu@intel.com>
8389
8390 * caller-save.c: Replace regclass.c with reginfo.c in comments.
8391 * recog.c: Likewise.
8392 * rtl.h: Likewise.
8393
c252db20
L
83942009-02-12 Uros Bizjak <ubizjak@gmail.com>
8395
8396 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
8397 (umul_ppmm): Likewise.
8398 (count_leading_zeros): Likewise.
8399 (count_trailing_zeros): Likewise.
8400 (UMUL_TIME): Likewise.
8401
84022009-02-12 H.J. Lu <hongjiu.lu@intel.com>
8403
ba181049
UB
8404 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
8405 soft-fp/t-softfp to tmake_file.
c252db20
L
8406
8407 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
8408 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
8409 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
8410 IA64_BUILTIN_INFQ]: New.
c252db20
L
8411 (ia64_init_builtins): Initialize __builtin_infq,
8412 __builtin_fabsq and __builtin_copysignq if not HPUX.
8413 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
8414 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
8415
8416 * config/ia64/lib1funcs.asm (__divtf3): Define only if
8417 SHARED is defined.
8418 (__fixtfti): Likewise.
8419 (__fixunstfti): Likewise.
8420 (__floattitf): Likewise.
8421
8422 * config/ia64/libgcc-glibc.ver: New.
8423 * config/ia64/t-fprules-softfp: Likewise.
8424 * config/ia64/sfp-machine.h: Likewise.
8425
8426 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
8427 (LIBGCC2_TF_CEXT): Likewise.
8428 (TF_SIZE): Likewise.
8429 (TARGET_INIT_LIBFUNCS): Likewise.
8430
ba181049 8431 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 8432 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 8433
f13eae6a
L
84342009-02-12 H.J. Lu <hongjiu.lu@intel.com>
8435
8436 * config/i386/i386.c (construct_container): Rewrite processing
8437 BLKmode with X86_64_SSE_CLASS.
8438
12019aec
L
84392009-02-12 Paolo Bonzini <bonzini@gnu.org>
8440
8441 PR target/39152
8442 * config/i386/i386.md: Replace simplify_replace_rtx with
8443 replace_rtx in the new peephole2.
8444
28c11eb3
NS
84452009-02-12 Nathan Sidwell <nathan@codesourcery.com>
8446
8447 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
8448 loop unrolling do not happen at -O2.
8449
c7b94907
MM
84502009-02-12 Michael Matz <matz@suse.de>
8451
8452 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
8453
61e98967
JJ
84542009-02-12 Jakub Jelinek <jakub@redhat.com>
8455
8456 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
8457 for -g3.
8458
a2a237b5
BE
84592009-02-12 Ben Elliston <bje@au.ibm.com>
8460
8461 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
8462 patterns when updating the back chain. Missed in the 2009-02-10
8463 change.
8464
853eda8d
JJ
84652009-02-11 Janis Johnson <janis187@us.ibm.com>
8466
8467 * doc/extend.texi (Decimal Floating Types): Update identifier of
8468 draft TR and list of missing support.
8469
3ad6b266
JJ
84702009-02-11 Jakub Jelinek <jakub@redhat.com>
8471
8472 PR middle-end/39154
8473 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
8474 bit to variable length decl's flags, add it also to its
8475 pointer replacement variable.
8476
b058b753
UB
84772009-02-11 Uros Bizjak <ubizjak@gmail.com>
8478 Jakub Jelinek <jakub@redhat.com>
8479
8480 PR target/39118
8481 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
8482 (memory_blockage): New expander.
8483 (*memory_blockage): New insn pattern.
8484 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
8485 instead of general blockage at the end of function prologue when
8486 frame pointer is used to access red zone area. Do not emit blockage
8487 when profiling, it is emitted in generic code.
8488 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
8489 function epilogue when frame pointer is used to access red zone area.
8490
bab64f23
PB
84912009-02-11 Paolo Bonzini <bonzini@gnu.org>
8492
0ce6dcfa 8493 PR target/38824
bab64f23
PB
8494 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
8495 by arithmetic with memory operands.
8496 * config/i386/predicates.md (commutative_operator): New.
8497
8fd94bda
JJ
84982009-02-10 Janis Johnson <janis187@us.ibm.com>
8499
8500 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
8501 bulleted lists.
8502
794511d2
EB
85032009-02-10 Eric Botcazou <ebotcazou@adacore.com>
8504
8505 * alias.h (record_alias_subset): Declare.
8506 * alias.c (record_alias_subset): Make global.
8507
6da7fc87
NC
85082009-02-10 Nick Clifton <nickc@redhat.com>
8509
8510 * tree-parloops.c: Change license to GPLv3.
8511 * ipa-struct-reorg.c: Change license to GPLv3.
8512 * ipa-struct-reorg.h: Change license to GPLv3.
8513
a03813c8
SE
85142009-02-10 Steve Ellcey <sje@cup.hp.com>
8515
8516 PR c/39084
8517 * c-decl.c (start_struct): Return NULL on error.
8518
fc3103e7
JJ
85192009-02-10 Jakub Jelinek <jakub@redhat.com>
8520
9b43d37b
JJ
8521 PR middle-end/39124
8522 * cfgloopmanip.c (remove_path): Call remove_bbs after
8523 cancel_loop_tree, not before it.
8524
fc3103e7 8525 PR target/39139
b058b753 8526 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
8527 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
8528 VAR_DECLs were seen.
8529 * tree-ssa-live.c (remove_unused_locals): Recompute
8530 cfun->has_local_explicit_reg_vars.
8531 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
8532 copies or clearings if cfun->has_local_explicit_reg_vars.
8533
dbf9ee15
UB
85342009-02-10 Uros Bizjak <ubizjak@gmail.com>
8535
8536 PR target/39118
8537 * config/i386/i386.c (expand_prologue): Emit blockage at the end
8538 of function prologue when frame pointer is used to access
8539 red zone area.
8540
bdec4dc7
RG
85412009-02-10 Richard Guenther <rguenther@suse.de>
8542
8543 PR middle-end/39127
8544 * gimplify.c (gimple_regimplify_operands): Always look if
8545 we need to create a temporary.
8546
7cae94fc
RG
85472009-02-10 Richard Guenther <rguenther@suse.de>
8548
8549 PR tree-optimization/39132
8550 * tree-loop-distribution.c (todo): New global var.
8551 (generate_memset_zero): Trigger TODO_rebuild_alias.
8552 (tree_loop_distribution): Return todo.
8553
a8800687
L
85542009-02-10 H.J. Lu <hongjiu.lu@intel.com>
8555
8556 PR target/39119
8557 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
8558 (x86_64_reg_class_name): Removed.
8559 (classify_argument): Return 0 if bytes > 32. Return 0 if the
8560 first one isn't X86_64_SSE_CLASS or any other ones aren't
8561 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
8562 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
8563 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
8564 and 3 X86_64_SSEUP_CLASS.
8565 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
8566 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
8567
d4bacef0
BE
85682009-02-10 Ben Elliston <bje@au.ibm.com>
8569
8570 * config/rs6000/rs6000.md (allocate_stack): Always use an update
8571 form instruction to update the stack back chain word, even if the
8572 user has disabled the generation of update instructions.
8573 (movdi_<mode>_update_stack): New.
8574 (movsi_update_stack): Likewise.
8575 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
8576 always use an update form instruction to update the stack back
8577 chain word.
8578
01d7d2f3
SP
85792009-02-09 Sebastian Pop <sebastian.pop@amd.com>
8580
8581 PR middle-end/38953
b058b753
UB
8582 * graphite.c (if_region_set_false_region): After moving a region in
8583 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
8584 (gloog): Remove wrong fix for PR38953.
8585
e41e2ab4
UW
85862009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8587
8588 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
8589 generation due to implicit sign extension.
8590
4bb07c5d
EB
85912009-02-09 Eric Botcazou <ebotcazou@adacore.com>
8592
8593 PR middle-end/38981
8594 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
8595 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
8596
f060a261
RG
85972009-02-09 Richard Guenther <rguenther@suse.de>
8598
8599 PR middle-end/35202
8600 * convert.c (convert_to_real): Disable (float)fn((double)x)
8601 to fnf(x) conversion if errno differences may occur and
8602 -fmath-errno is set.
8603
5a7e237c
AS
86042009-02-07 Anatoly Sokolov <aesok@post.ru>
8605
8606 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
8607 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8608 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8609
feab5a67
JM
86102009-02-06 Joseph Myers <joseph@codesourcery.com>
8611
8612 PR c/35434
8613 * c-common.c (handle_alias_attribute): Disallow attribute for
8614 anything not a FUNCTION_DECL or VAR_DECL.
8615
90ef2296
JJ
86162009-02-06 Janis Johnson <janis187@us.ibm.com>
8617
8618 PR c/39035
8619 * real.c (do_compare): Special-case compare of zero against
8620 decimal float value.
8621
1de2c900
JM
86222009-02-06 Joseph Myers <joseph@codesourcery.com>
8623
8624 PR c/36432
8625 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
8626 as indicating flexible array members unless the field itself is
8627 being declarared as the incomplete array.
8628
e901811a
JH
86292009-02-06 Jan Hubicka <jh@suse.cz>
8630
8631 PR tree-optimization/38844
8632 * ipa-inline.c (try_inline): Stop inlining recursion when edge
8633 is already inlined.
8634
3cfa762b
RG
86352009-02-06 Richard Guenther <rguenther@suse.de>
8636
8637 PR middle-end/38977
8638 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
8639 fork because we may expand it as __gcov_fork.
8640
8506528c
NC
86412009-02-06 Nick Clifton <nickc@redhat.com>
8642
dbf9ee15 8643 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 8644
85169114
PB
86452009-02-06 Paolo Bonzini <bonzini@gnu.org>
8646
8647 PR tree-optimization/35659
8648 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
8649 vn_phi_eq): Shortcut if hashcode does not match.
8650 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
8651 NULL operands.
8652 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
8653 and avoid iterative_hash_expr.
8654 (FOR_EACH_VALUE_ID_IN_SET): New.
8655 (value_id_compare): Remove.
8656 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
8657 sort expressions by value id.
8658
6d39673d
KK
86592009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
8660
8661 PR target/38991
8662 * config/sh/predicates.md (general_movsrc_operand): Don't check
8663 the subreg of system registers here.
8664
e6e1c050
JJ
86652009-02-05 Jakub Jelinek <jakub@redhat.com>
8666
8667 PR c++/39106
8668 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
8669 on the copied decl.
8670
65a74b5d
PB
86712009-02-05 Paolo Bonzini <bonzini@gnu.org>
8672
8673 PR rtl-optimization/39110
8674 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
8675 addresses, not aligned ones.
8676
08e14b2a
DB
86772009-02-05 Daniel Berlin <dberlin@dberlin.org>
8678 Richard Guenther <rguenther@suse.de>
8679
8680 PR tree-optimization/39100
8681 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
8682 comment says and add edges.
8683
5006381c
JM
86842009-02-05 Joseph Myers <joseph@codesourcery.com>
8685
8686 PR c/35435
8687 * c-common.c (handle_tls_model_attribute): Ignore attribute for
8688 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
8689
2ba9daa7 86902009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
8691
8692 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
8693 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
8694 register_bb_in_sese, new_sese, free_sese): Moved.
8695 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
8696 outermost_loop_in_scop, build_scop_iteration_domain,
8697 expand_scalar_variables_ssa_name, get_vdef_before_scop,
8698 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
8699 Use loop_in_sese_p instead of loop_in_scop_p.
8700 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
8701 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
8702 (scopdet_basic_block_info): Fix bug in scop detection.
8703 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
8704 eq_loop_to_cloog_loop): Remove.
8705 (nb_loops_around_loop_in_scop, nb_loop
8706 ref_nb_loops): Moved here...
8707 * graphite.h (ref_nb_loops): ... from here.
8708 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
8709 (loop_domain_dim, loop_iteration_vector_dim): Remove.
8710 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
8711 * testsuite/gcc.dg/graphite/scop-19.c: New
8712
48e8382e
PB
87132009-02-04 Paolo Bonzini <bonzini@gnu.org>
8714 Hans-Peter Nilsson <hp@axis.com>
8715
8716 PR rtl-optimization/37889
8717 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
8718 Move offset handling from PLUS to before the switch. Use new
8719 arguments when considering SYMBOL_REFs too.
8720 (rtx_addr_can_trap_p): Pass dummy offset and size.
8721 (enum may_trap_p_flags): Remove.
8722 (may_trap_p_1): Pass size from MEM_SIZE.
8723
8724 PR rtl-optimization/38921
8725 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
8726 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
8727 * rtlanal.c (may_trap_after_code_motion_p): Delete.
8728 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
8729
69349ea5
L
87302009-02-04 H.J. Lu <hongjiu.lu@intel.com>
8731
8732 AVX Programming Reference (January, 2009)
8733 * config/i386/sse.md (*vpclmulqdq): New.
8734
b545e411
JJ
87352009-02-04 Jakub Jelinek <jakub@redhat.com>
8736
8737 PR tree-optimization/38977
8738 PR gcov-profile/38292
bf9b2cc9 8739 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 8740
5b43bf05
HS
87412009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
8742
8743 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
8744 non-indexable addresses even before reload.
8745
062c4bb3
JM
87462009-02-03 Joseph Myers <joseph@codesourcery.com>
8747
8748 PR c/29129
8749 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
8750 as having variable size. Do not give an error for unnamed
8751 parameters with [*] declarators. Give a warning for type names
8752 with [*] declarators and mark them as variable size.
8753 * c-parser.c (c_parser_sizeof_expression): Do not give an error
8754 for sizeof applied to [*] type names.
8755
6175f578
AP
87562009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
8757
8758 PR C++/36607
8759 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
8760
d4f4bc84
JJ
87612009-02-03 Jakub Jelinek <jakub@redhat.com>
8762
8763 * gcc.c (process_command): Update copyright notice dates.
8764 * gcov.c (print_version): Likewise.
8765 * gcov-dump.c (print_version): Likewise.
8766 * mips-tfile.c (main): Likewise.
8767 * mips-tdump.c (main): Likewise.
8768
f6294de7
JM
87692009-02-03 Joseph Myers <joseph@codesourcery.com>
8770
8771 PR c/35433
8772 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
8773 for composite type involving a zero-length array type.
8774
754ccf7c
JJ
87752009-02-03 Jakub Jelinek <jakub@redhat.com>
8776
70f16287
JJ
8777 PR target/35318
8778 * function.c (match_asm_constraints_1): Skip over
8779 initial optional % in the constraint.
8780
754ccf7c
JJ
8781 PR inline-asm/39059
8782 * c-parser.c (c_parser_postfix_expression): If fixed point is not
8783 supported, don't accept FIXED_CSTs.
8784 * c-decl.c (finish_declspecs): Error if fixed point is not supported
8785 and _Sat is used without _Fract/_Accum. Set specs->type to
8786 integer_type_node for cts_fract/cts_accum if fixed point is not
8787 supported.
8788
965fdadf
CM
87892009-02-02 Catherine Moore <clm@codesourcery.com>
8790
dbf9ee15 8791 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 8792
2e8a796f
RS
87932009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
8794
8795 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
8796 (ABI_HAS_64BIT_SYMBOLS): Use it.
8797 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
8798
e0079468
PB
87992009-02-02 Paul Brook <paul@codesourcery.com>
8800
8801 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
8802
eca72963
JJ
88032009-02-02 Jakub Jelinek <jakub@redhat.com>
8804
8805 PR inline-asm/39058
8806 * recog.h (asm_operand_ok): Add constraints argument.
8807 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
8808 recurse on matching constraint.
8809 (check_asm_operands): Pass constraints as 3rd argument to
8810 asm_operand_ok. Don't look up matching constraint here.
8811 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
8812 to asm_operand_ok.
8813
b5bde9ff
BE
88142009-02-02 Ben Elliston <bje@au.ibm.com>
8815
8816 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
8817 TARGET_NARROW_VOLATILE_BITFIELD macro names.
8818
30f3e427
JDA
88192009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8820
be7659ba
JDA
8821 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
8822 information. Remove some obsolete information. Reorganize.
8823
30f3e427
JDA
8824 * config/pa/fptr.c: Revert license to GPL 2.
8825 * config/pa/milli64.S: Likewise.
8826
3cbfaf98
DK
88272009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
8828
8829 PR target/38904
8830 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
8831 LIBRARY name in, instead of hard-coding it.
8832 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
8833 extra target make frag to tmake_files according to EH model.
8834 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
8835 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
8836 frags that define makefile variable EH_MODEL appropriately.
8837 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
8838 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
8839 to "-sjlj" according to type of EH configured.
8840 (LIBGCC_SONAME): Concatenate it to shared library base name.
8841 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
8842 to "_sjlj" according to type of EH configured.
8843 (LIBGCC_SONAME): Concatenate it to shared library base name.
8844 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
8845 (SHLIB_LINK): Add missing semicolon to if-else construct.
8846 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
8847 string value of "pe_dll" command-line option.
8848 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
8849 (SHLIB_SONAME): Use it when overriding t-cygming default.
8850 (SHLIB_IMPLIB): Override t-cygming default.
8851 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
8852 string value of "pe_dll" command-line option.
8853
8d0b6068
DK
88542009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
8855
8856 PR target/38952
8857 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 8858 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 8859
14c28276
RG
88602009-01-31 Richard Guenther <rguenther@suse.de>
8861
8862 PR tree-optimization/38937
8863 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
8864 computing the transitive closure.
8865
5f4d82c2
RG
88662009-01-30 Richard Guenther <rguenther@suse.de>
8867
8868 PR tree-optimization/39041
8869 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
8870 Propagate variable indices only if the types match for this stmt.
8871
d0728ae0
JJ
88722009-01-30 Jakub Jelinek <jakub@redhat.com>
8873
8874 PR target/39013
8875 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
8876 inline but never defined.
8877
6b67572e 88782009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
8879
8880 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
8881 (*insv_h_di_reg_extimm): New insn.
8882 (*insv_l<mode>_reg_extimm): New insn.
8883
88842009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
8885
8886 * config/picochip/picochip.c (flag_conserve_stack): set
8887 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
8888 fconserve-stack. Reduce call-overhead used by inliner.
8889
9fec758d 88902009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
8891
8892 PR/38157
8893 * common.opt (flag_conserve_stack): Initialised to zero.
8894
7f1c539c
KT
88952009-01-30 Kai Tietz <kai.tietz@onevision.com>
8896
8897 PR/39002
8898 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
8899 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
8900 method.
8901
3631be48
L
89022009-01-29 H.J. Lu <hongjiu.lu@intel.com>
8903
8904 * ira-color.c (allocno_reload_assign): Update comments.
8905 * regmove.c (regmove_optimize): Likewise.
8906
8907 * ra.h: Removed.
8908
416ac4d4
RM
89092009-01-29 Robert Millan <rmh@aybabtu.com>
8910
60839f5d
EB
8911 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
8912 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 8913 `MD_UNWIND_SUPPORT'.
60839f5d 8914 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 8915
d5e54bc1
KH
89162009-01-29 Kazu Hirata <kazu@codesourcery.com>
8917
8918 PR tree-optimization/39007
8919 * tree-loop-distribution.c (generate_builtin): Use
8920 recompute_dominator to compute the immediate dominator of the
8921 basic block just after the loop.
8922
38432148 89232009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
8924
8925 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
8926 (ASM_OUTPUT_DWARF_PCREL): Define.
8927
38432148 89282009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
8929
8930 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
8931 * doc/passes.texi: Remove entries about regclass, local-alloc, and
8932 global. Modify entries about regmove and IRA.
8933
8934 * ra-conflict.c: Remove the file.
8935
8936 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
8937
8938 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
8939 (pass_regclass_init): Rename to pass_reginfo_init.
8940
8941 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
8942
8943 * toplev.h (flag_ira): Remove.
8944
8945 * caller-save.c (setup_save_areas): Remove flag_ira.
8946
bf9b2cc9 8947 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
8948
8949 * global.c: Remove the file.
8950
ba20e309 8951 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
8952
8953 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
8954
8955 * regmove.c: Modify file description.
8956 (find_use_as_address, try_auto_increment): Define them only if
8957 AUTO_INC_DEC is defined.
8958 (replacement_quality, replace_in_call_usage, fixup_match_1,
8959 stable_and_no_regs_but_for_p): Remove.
8960 (reg_set_in_bb): Make it static.
8961 (regmove_optimize): Remove flag_ira and code which worked for
8962 !flag_ira.
8963
8964 * local-alloc.c: Remove the file.
8965
8966 * common.opt (fira): Remove.
8967
8968 * ira.c: Include except.h.
8969 (eliminable_regset): Move from global.c.
8970 (mark_elimination): Ditto. Remove flag_ira.
8971 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
8972 equiv_mem_modified, validate_equiv_mem_from_store,
8973 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
8974 contains_replace_regs, memref_referenced_p, memref_used_between_p,
8975 no_equiv, recorded_label_ref): Move from local-alloc.c.
8976 (update_equiv_regs): Ditto. Make it static.
8977 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 8978 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
8979 (build_insn_chain): Ditto. Make it static.
8980 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
8981 Rename to init_live_subregs.
8982 (gate_ira): Remove flag_ira.
8983
8984 * regclass.c: Rename reginfo.c. Change file description.
8985 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 8986 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
8987 (init_reg_sets_1): Remove code for evaluation of
8988 reg_class_superclasses and losing_caller_save_reg_set.
8989 (init_regs): Remove init_reg_autoinc.
8990 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
8991 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 8992 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
8993 (pass_regclass_init): Rename to pass_reginfo_init. Modify
8994 corresponding entries.
8995 (dump_regclass, record_operand_costs, scan_one_insn,
8996 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
8997 record_address_regs, auto_inc_dec_reg_p): Remove.
8998 (gt-regclass.h): Rename to gt-reginfo.h.
8999
9000 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 9001 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
9002
9003 * Makefile.in (RA_H): Remove.
9004 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
9005 Rename regclass.o to reginfo.o.
9006 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
9007 gt-reginfo.h.
9008 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
9009 (GTFILES): Rename regclass.c to reginfo.c.
9010
9011 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 9012 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
9013
9014 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
9015 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
9016 Remove flag_ira.
6b67572e 9017 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 9018
c95b2534 90192009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
9020
9021 PR middle-end/35854
9022 * doc/invoke.texi (rtl debug options): Complete rewrite.
9023 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
9024 to auto_inc_dec".
9025 * mode-switching.c (pass_mode_switching): Rename pass from
9026 "mode-sw" to "mode_sw".
9027 * except.c (pass_convert_to_eh_ranges): Rename pass from
9028 "eh-ranges" to "eh_ranges".
9029 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
9030 to "subreg1".
2ba9daa7
AS
9031
9032
72a54528
AM
90332009-01-29 Andrey Belevantsev <abel@ispras.ru>
9034 Alexander Monakov <amonakov@ispras.ru>
9035
9036 PR middle-end/38857
9037 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
9038 register.
9039 (move_exprs_to_boundary): Change return type and pass through
9040 should_move from move_op. Relax assert. Update usage ...
9041 (schedule_expr_on_boundary): ... here. Use should_move instead of
9042 cant_move.
9043 (move_op_orig_expr_found): Indicate that insn was disconnected from
9044 stream.
9045 (code_motion_process_successors): Do not call after_merge_succs
9046 callback if original expression was not found when traversing any of
9047 the branches.
9048 (code_motion_path_driver): Change return type. Update prototype.
9049 (move_op): Update comment. Add a new parameter (should_move). Update
9050 prototype. Set *should_move based on indication provided by
9051 move_op_orig_expr_found.
9052
001b9eb6
PH
90532009-01-28 Pat Haugen <pthaugen@us.ibm.com>
9054
9055 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
9056 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
9057 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
9058 * config/rs6000/rs6000.c (rs6000_override_options): Default
9059 avoid-indexed-addresses on for Power6, off for everything else.
9060 (avoiding_indexed_address_p): New function.
9061 (rs6000_legitimize_address): Use it.
9062 (rs6000_legitimate_address): Likewise.
9063 * config/rs6000/rs6000.md (movXX_updateX): Likewise
9064
59dc4898
KH
90652009-01-28 Kazu Hirata <kazu@codesourcery.com>
9066
9067 PR tree-optimization/38997
9068 * tree-loop-distribution.c (generate_memset_zero): Use
9069 POINTER_PLUS_EXPR for a pointer addition.
9070
07da44ab
AK
90712009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
9072
9073 * config/s390/s390.md (bswap<mode>2): New pattern added.
9074
cdc15d23
WG
90752009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
9076
9077 * config/s390/s390.md (*tls_load_31): Added type attribute.
9078
d46f24b6
WG
90792009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
9080
9081 * config/s390/s390.md: Fix a few comments.
9082
729e750f
WG
90832009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
9084
9085 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
9086 (*tm<mode>_full): Fixed z10prop attribute.
9087 (*tst<mode>_extimm): Fixed z10prop attribute.
9088 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
9089 (*tstqiCCT_cconly): Fixed z10prop attribute.
9090 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
9091 (*movsi_larl): Fixed z10prop attribute.
9092 (*movsi_zarch): Fixed z10prop attribute.
9093 (*movsi_eas): Fixed z10prop attribute.
9094 (*movhi): Fixed z10prop attribute.
9095 (*movqi): Fixed z10prop attribute.
9096 (*movstrictqi): Fixed z10prop attribute.
9097 (*mov<mode>): Fixed z10prop attribute.
9098 (*movcc): Fixed z10prop attribute.
9099 (*sethighpartdi_64): Fixed z10prop attribute.
9100 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
9101 (*negdi2_sign_cc): Fixed z10prop attribute.
9102 (*negdi2_sign): Fixed z10prop attribute.
9103 (*absdi2_sign_cc): Fixed z10prop attribute.
9104 (*absdi2_sign): Fixed z10prop attribute.
9105 (*negabsdi2_sign_cc): Fixed z10prop attribute.
9106 (*negabsdi2_sign): Fixed z10prop attribute.
9107 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
9108 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
9109 (doloop_si64): Fixed z10prop attribute.
9110 (doloop_si31): Fixed z10prop attribute.
9111 (doloop_long): Fixed z10prop attribute.
9112 (indirect_jump): Fixed z10prop attribute.
9113 (nop): Fixed z10prop attribute.
9114 (main_base_64): Fixed z10prop attribute.
9115 (reload_base_64): Fixed z10prop attribute.
9116
c7789bfb
JJ
91172009-01-28 Jakub Jelinek <jakub@redhat.com>
9118
9119 PR rtl-optimization/38740
6b67572e
UB
9120 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
9121 if !optimize.
c7789bfb
JJ
9122 * config/mips/mips.c (mips_reorg): Likewise.
9123
de081cfd
RG
91242009-01-28 Richard Guenther <rguenther@suse.de>
9125
9126 PR tree-optimization/38926
9127 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
9128 with the correct value id to a value.
9129 (do_regular_insertion): Use the value number of edoubleprime
9130 for the value number of the expr.
9131
9132 Revert
9133 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 9134
d748c406
UB
9135 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
9136 a PHI ask VN if it is already available.
9137 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
9138 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 9139
a9d386a1
JJ
91402009-01-28 Jakub Jelinek <jakub@redhat.com>
9141
9142 PR middle-end/38934
9143 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
9144 set to varying whenever max has TREE_OVERFLOW set, similarly
9145 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
9146
97a170cd
RG
91472009-01-28 Richard Guenther <rguenther@suse.de>
9148
9149 PR middle-end/38908
9150 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
9151 uninitialized aggregate uses in call arguments.
9152
89ebafc6
PB
91532009-01-28 Paolo Bonzini <bonzini@gnu.org>
9154
9155 PR tree-optimization/38984
9156 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
9157 the nothing_id variable if -fno-delete-null-pointer-checks.
9158
bef3c57b
UB
91592009-01-28 Uros Bizjak <ubizjak@gmail.com>
9160
9161 PR target/38988
9162 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
9163 (set_got_offset_rex64): Ditto.
9164
0c6390fa
L
91652009-01-27 H.J. Lu <hongjiu.lu@intel.com>
9166
9167 PR target/38941
9168 * doc/extend.texi: Improve local variable with asm reg.
9169
bee6fa6d
AN
91702009-01-27 Adam Nemet <anemet@caviumnetworks.com>
9171
9172 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
9173 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
9174 was not supplied then set warn_packed_bitfield_compat to the
9175 default value of 1.
9176 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
9177 against 1.
9178
b5c3dfbb
RG
91792009-01-27 Richard Guenther <rguenther@suse.de>
9180
9181 PR tree-optimization/38503
9182 * cfgexpand.c (expand_gimple_basic_block): Ignore
9183 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
9184 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
9185 variables that cannot have TBAA applied.
9186 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
9187 statements.
9188
d748c406 91892009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
9190
9191 PR middle-end/38969
9192 * calls.c (initialize_argument_information): Do not wrap complex
9193 arguments in SAVE_EXPR.
9194
9112bb38
AT
91952009-01-26 Andreas Tobler <a.tobler@schweiz.org>
9196
9197 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 9198 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 9199
4757704f
RG
92002009-01-26 Richard Guenther <rguenther@suse.de>
9201
9202 PR tree-optimization/38745
9203 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
9204 from special handling.
9205
e3e6cff4
RG
92062009-01-26 Richard Guenther <rguenther@suse.de>
9207
9208 PR tree-optimization/38745
9209 * tree-ssa.c (execute_update_addresses_taken): Do not include
9210 variables that cannot possibly be a register in not_reg_needs.
9211 Do not clear TREE_ADDRESSABLE on vars that may not become
9212 registers.
9213 * tree-ssa.c (update_alias_info_1): Include those in the set
9214 of addressable vars.
9215
dc874b53
RG
92162009-01-26 Richard Guenther <rguenther@suse.de>
9217
9218 PR middle-end/38851
9219 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
9220 * tree-ssa-dse.c: Include langhooks.h
9221 (execute_simple_dse): Remove stores with zero size.
9222
849421a3
JJ
92232009-01-24 Jakub Jelinek <jakub@redhat.com>
9224
9225 PR c/38957
9226 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
9227 as PLUS_EXPR.
9228
82f70421
JB
92292009-01-24 Julian Brown <julian@codesourcery.com>
9230
9231 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
9232 config/arm/linux-atomic.c.
9233 * config/arm/linux-atomic.c: New.
9234
863412d6
EB
92352009-01-24 Eric Botcazou <ebotcazou@adacore.com>
9236
9237 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
9238 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
9239 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
9240
8c684300
L
92412009-01-24 H.J. Lu <hongjiu.lu@intel.com>
9242
9243 PR c/38938
93f1527a 9244 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
9245 properly.
9246
b840fb02
SP
92472009-01-24 Sebastian Pop <sebastian.pop@amd.com>
9248
9249 PR tree-optimization/38953
9250 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
9251 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
9252 (gloog): Split the exit of the scop when the scop exit is a loop exit.
9253 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
9254 changed the CFG.
9255
ecee559f
PB
92562009-01-24 Paul Brook <paul@codesourcery.com>
9257
9258 * config/arm/neon.md (neon_type): Move to arm.md.
9259 (neon_mov<VSTRUCT>): Add neon_type attribute.
9260 * config/arm/arm.md (neon_type): Move to here.
9261 (conds): Add "unconditioal" and use as default for NEON insns.
9262
61ad0914
BE
92632009-01-24 Ben Elliston <bje@au.ibm.com>
9264
9265 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
9266 void *' warning from -Wc++-compat.
9267 * Makefile.in (dominance.o-warn): Remove.
9268
38432148 92692009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
9270
9271 PR tree-optimization/38932
9272 * fold-const.c (fold_unary_ignore_overflow): New.
9273 * tree.h (fold_unary_ignore_overflow): Declare.
9274 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
9275 * tree-ssa-sccvn.c (visit_reference_op_load,
9276 simplify_unary_expression): Likewise.
9277
2cd36c22
AN
92782009-01-22 Adam Nemet <anemet@caviumnetworks.com>
9279
9280 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
9281 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
9282 regardless of their type.
9283 * c-common.c (handle_packed_attribute): Don't ignore packed on
9284 bitfields.
9285 * c.opt (Wpacked-bitfield-compat): New warning option.
9286 * stor-layout.c (place_field): Warn if offset of a field changed.
9287 * doc/extend.texi (packed): Mention the ABI change.
9288 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
9289 (Warning Options): Add it to the list.
9290
e4e624ab
L
92912009-01-22 H.J. Lu <hongjiu.lu@intel.com>
9292
9293 * c-opts.c (c_common_post_options): Fix a typo in comments.
9294
d0ea0759
SE
92952009-01-22 Steve Ellcey <sje@cup.hp.com>
9296
9297 PR middle-end/38615
9298 * gimplify.c (gimplify_init_constructor): Fix promotion of const
9299 variables to static.
9300 * doc/invoke.texi (-fmerge-all-constants): Update description.
9301
87673f84
UB
93022009-01-22 Uros Bizjak <ubizjak@gmail.com>
9303
9304 PR target/38931
9305 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
9306 (*movdi_1_rex64): Use type "mmx" for alternative 5.
9307
96339268
RE
93082009-01-22 Richard Earnshaw <rearnsha@arm.com>
9309
9310 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
9311 a word boundary.
9312 (LOCAL_ALIGNMENT): Similarly.
9313
442dc742 93142009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 9315 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
9316
9317 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
9318 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
9319 * config/arm/arm-tune.md: Regenerate.
9320 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
9321 -march=iwmmxt2.
9322
9b34732e
MS
93232009-01-22 Mark Shinwell <shinwell@codesourcery.com>
9324
9325 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
9326 version number to five.
9327
03c2a308
DS
93282009-01-22 Dodji Seketeli <dodji@redhat.com>
9329
9330 PR c++/38930
ba20e309 9331 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
9332 * c-common.c (set_underlying_type): Likewise.
9333 (is_typedef_decl ): Likewise
9334 * tree.h: Likewise
9335 (set_underlying_type): Likewise.
9336 (is_typedef_type): Likewise.
9337
1240d76e
VM
93382009-01-21 Vladimir Makarov <vmakarov@redhat.com>
9339
9340 PR middle-end/38587
9341 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
9342 crossing setjmps.
9343
b8a1087d
DK
93442009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
9345
9346 PR bootstrap/37660
9347 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
9348 (LIBGCC_SPEC): Don't define.
9349 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
9350
435da628
UB
93512009-01-21 Uros Bizjak <ubizjak@gmail.com>
9352
9353 PR rtl-optimization/38879
9354 * alias.c (base_alias_check): Unaligned access via AND address can
9355 alias all surrounding object types except those with sizes equal
9356 or wider than the size of unaligned access.
9357
d597b3ce
DS
93582009-01-21 Dodji Seketeli <dodji@redhat.com>
9359
9360 PR c++/26693
ba20e309 9361 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 9362 * c-common.c (set_underlying_type): ... here.
435da628 9363 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
9364 the newly created typedef variant type.
9365 (is_typedef_decl ): New entry point.
9366 * tree.h: Added a new member member_types_needing_access_check to
9367 struct tree_decl_non_common.
9368 (set_underlying_type): New entry point.
9369 (is_typedef_type): Likewise.
9370
71a6fe66
BM
93712009-01-21 Bingfeng Mei <bmei@broadcom.com>
9372
9373 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
9374 Check whether two instructions have memory references that
9375 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
9376 are helper functions for traversing.
9377 * alias.h (insn_alias_sets_confilict_p): New prototypes.
9378 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
9379 not to draw dependency edge for instructions with non-conflicting
9380 alias sets.
9381
5a248274
JM
93822009-01-20 Joseph Myers <joseph@codesourcery.com>
9383
9384 PR other/38758
6b67572e
UB
9385 * longlong.h: Update copyright years. Use soft-fp license notice.
9386 Sync __clz_tab declaration with glibc.
5a248274 9387
4b84f3de
SE
93882009-01-20 Steve Ellcey <sje@cup.hp.com>
9389
9390 PR target/30687
9391 * doc/extend.texi (syscall_linkage): New.
9392 (version_id): Modify.
9393
37348bf1 93942009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 9395 Richard Guenther <rguenther@suse.de>
37348bf1
AP
9396
9397 PR tree-optimization/38747
9398 PR tree-optimization/38748
9399 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
9400 conversion if the base address is an indirect reference and the
9401 aliasing sets could cause issues.
9402
d0a58904
SP
94032009-01-20 Sebastian Pop <sebastian.pop@amd.com>
9404
2ba9daa7 9405 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
9406 explaining why these options are not documented.
9407
71e7afb2
SP
94082009-01-20 Sebastian Pop <sebastian.pop@amd.com>
9409
9410 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
9411 gimple_call_lhs is NULL.
9412
38432148 94132009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
9414
9415 PR target/38868
9416 * emit-rtl.c (adjust_address_1): Make sure memref is never
9417 overwritten.
9418
cbb8dee3
BE
94192009-01-20 Ben Elliston <bje@au.ibm.com>
9420
9421 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 9422 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
9423 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9424 const qualifier from arg 2.
9425
72c66596
IS
94262009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9427
435da628 9428 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 9429
f68211cd
VM
94302009-01-19 Vladimir Makarov <vmakarov@redhat.com>
9431
9432 PR c/38869
9433 * rtl.h (reinit_regs): New prototype.
9434 * regclass.c: Include ira.h.
9435 (reinit_regs): New.
9436 * Makefile.in (regclass.o): Add ira.h.
9437 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
9438
6e4f1168
L
94392009-01-18 H.J. Lu <hongjiu.lu@intel.com>
9440
9441 PR target/38736
9442 * c-common.c (handle_aligned_attribute): Use
9443 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
9444 default alignment value.
9445
9446 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
9447
9448 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
9449 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
9450
9451 * doc/extend.texi: Update __attribute__ ((aligned)). Document
9452 __BIGGEST_ALIGNMENT__.
9453
9454 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
9455
890065bf
RG
94562009-01-18 Richard Guenther <rguenther@suse.de>
9457
9458 PR tree-optimization/38819
9459 * tree-flow.h (operation_could_trap_helper_p): Declare.
9460 * tree-eh.c (operation_could_trap_helper_p): Export.
9461 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
9462 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
9463 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
9464 are about to insert a possibly trapping instruction and fail
9465 in this case.
9466
a729d731
AS
94672009-01-18 Andreas Schwab <schwab@suse.de>
9468
9469 * doc/install.texi (Configuration): Remove obsolete paragraph
9470 about use of --with-gnu-ld with --with-gnu-as.
9471
a640c13b
KH
94722009-01-18 Kazu Hirata <kazu@codesourcery.com>
9473
9474 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
9475 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
9476 Follow spelling conventions.
9477
dba2cc0c
BE
94782009-01-18 Ben Elliston <bje@au.ibm.com>
9479
9480 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
9481 C++ warning about implicit conversion from void * to struct
9482 bitmap_head_def *.
9483 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 9484 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 9485
2207a498
DK
94862009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
9487
9488 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
9489
8137e465
SP
94902009-01-17 Sebastian Pop <sebastian.pop@amd.com>
9491 Tobias Grosser <tobi.grosser@amd.com>
9492
9493 * graphite.c (graphite_trans_scop_block): Do not block single
9494 nested loops.
9495
5be1c58c
AO
94962009-01-16 Alexandre Oliva <aoliva@redhat.com>
9497
9498 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
9499 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
9500 test with assertion.
9501
786ce82d
RG
95022009-01-16 Richard Guenther <rguenther@suse.de>
9503
9504 PR tree-optimization/38835
9505 PR middle-end/36227
9506 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
9507 and INT + PTR -> (INT)(PTR p+ INT) folding.
9508 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
9509
c1cb09ad
AN
95102009-01-16 Adam Nemet <anemet@caviumnetworks.com>
9511
9512 PR target/38554
9513 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
9514 the subreg from a lowpart subreg if it is also casting the value.
9515
bcab4e19
SP
95162009-01-16 Sebastian Pop <sebastian.pop@amd.com>
9517 Tobias Grosser <tobi.grosser@amd.com>
9518
9519 * graphite.c (compare_prefix_loops): New.
9520 (build_scop_canonical_schedules): Rewritten.
9521 (graphite_transform_loops): Move build_scop_canonical_schedules
9522 after build_scop_iteration_domain.
9523
0b040072
SP
95242009-01-16 Sebastian Pop <sebastian.pop@amd.com>
9525 Tobias Grosser <tobi.grosser@amd.com>
9526
2ba9daa7 9527 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
9528 the dimension of the iteration domain. Do copy the domain
9529 only when it exists.
9530 (build_scop_conditions_1): Do not call add_conditions_to_domain.
9531 (add_conditions_to_constraints): New.
9532 (can_generate_code_stmt, can_generate_code): Removed.
9533 (gloog): Do not call can_generate_code.
9534 (graphite_transform_loops): Call add_conditions_to_constraints
9535 after building the iteration domain.
9536
56c6a499
JJ
95372009-01-16 Jakub Jelinek <jakub@redhat.com>
9538
9539 PR tree-optimization/38789
9540 * tree-ssa-threadedge.c
9541 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
9542 __builtin_constant_p.
9543
c95b2534 95442009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
9545
9546 * dce.c (delete_unmarked_insns): Reversed the order that insns are
9547 examined before deleting them.
2ba9daa7 9548
c433cb14
RE
95492009-01-16 Richard Earnshaw <rearnsha@arm.com>
9550
9551 * function.c (aggregate_value_p): Correctly extract the function
9552 type from CALL_EXPR_FN lookup.
9553
c95b2534 95542009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
9555
9556 * config/picochip/picochip.c (picochip_override_options): Revert
9557 CFI asm flag disable commited previously.
9558
c77bb78f
SP
95592009-01-15 Sebastian Pop <sebastian.pop@amd.com>
9560 Tobias Grosser <tobi.grosser@amd.com>
9561 Jan Sjodin <jan.sjodin@amd.com>
9562
9563 * graphite.c (scan_tree_for_params): On substractions negate
9564 all the coefficients of the term.
9565 (clast_to_gcc_expression_red): New. Handle reduction expressions
9566 of more than two operands.
9567 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
9568 (get_vdef_before_scop): Handle also the case of default definitions.
9569
574af2d6
RS
95702009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
9571
9572 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
9573 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
9574 Also use them when walking CALL_INSN_FUNCTION_USAGE.
9575
e939805b
L
95762009-01-15 H.J. Lu <hongjiu.lu@intel.com>
9577 Joey Ye <joey.ye@intel.com>
9578
9579 PR middle-end/37843
9580 * cfgexpand.c (expand_stack_alignment): Don't update stack
9581 boundary nor check incoming stack boundary here.
9582 (gimple_expand_cfg): Update stack boundary and check incoming
9583 stack boundary here.
9584
c95b2534 95852009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 9586
435da628 9587 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 9588
0196c95e
JJ
95892009-01-14 Jakub Jelinek <jakub@redhat.com>
9590
9591 PR rtl-optimization/38245
9592 * calls.c (expand_call): Add stack arguments to
9593 CALL_INSN_FUNCTION_USAGE even for pure calls (when
9594 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
9595 in regs and partially in memory or BLKmode arguments.
9596 (emit_library_call_value_1): Add stack arguments to
9597 CALL_INSN_FUNCTION_USAGE even for pure calls (when
9598 ACCUMULATE_OUTGOING_ARGS).
9599 * dce.c: Include tm_p.h.
9600 (find_call_stack_args): New function.
9601 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
9602 argument.
9603 (mark_insn): Call find_call_stack_args for CALL_Ps.
9604 (prescan_insns_for_dce): Walk insns backwards in bb rather than
9605 forwards. Allocate and free arg_stores bitmap if needed, pass it
9606 down to deletable_insn_p, don't mark stores set in arg_stores
9607 bitmap, clear the bitmap at the beginning of each bb.
9608 * Makefile.in (dce.o): Depend on $(TM_P_H).
9609
6df6bcfa
MM
96102009-01-14 Michael Meissner <gnu@the-meissners.org>
9611
9612 PR target/22599
435da628
UB
9613 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
9614 to make sure the insn is a conditional test (bug 22599). Reformat a
9615 few long lines.
6df6bcfa 9616
765ec70c
SP
96172009-01-14 Sebastian Pop <sebastian.pop@amd.com>
9618
9619 PR middle-end/38431
9620 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
9621 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
9622 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 9623 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
9624 scops have been code generated.
9625
7de2b688
BS
96262009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
9627 * doc/gty.texi (Invoking the garbage collector): Added new node
9628 and section documenting ggc_collect.
9629
10bd6c5c
RG
96302009-01-14 Richard Guenther <rguenther@suse.de>
9631
9632 PR tree-optimization/38826
9633 PR middle-end/38477
9634 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
9635 initialization notes only if we actually emitted a warning.
9636 (intra_create_variable_infos): Add constraints for a result decl
9637 that is passed by hidden reference.
9638 (build_pred_graph): Mark all related variables non-direct on
9639 address-taking.
9640
9c7c70ee
NC
96412009-01-14 Nick Clifton <nickc@redhat.com>
9642
9643 * ira-conflicts.c: Include addresses.h for the definition of
9644 base_reg_class.
435da628
UB
9645 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
9646 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 9647
cf0c2a60
VM
96482009-01-13 Vladimir Makarov <vmakarov@redhat.com>
9649
9650 PR target/38811
9651 * Makefile.in (ira-lives.o): Add except.h.
9652
9653 * ira-lives.c: Include except.h.
9654 (process_bb_node_lives): Process can_throw_internal.
9655
d3302fd3
JJ
96562009-01-13 Jakub Jelinek <jakub@redhat.com>
9657
9658 PR rtl-optimization/38774
9659 * combine.c (simplify_set): When undoing cc_use change, don't do
9660 PUT_CODE on the newly created comparison, but instead put back the
9661 old comparison.
9662
7ab23fd0
JM
96632009-01-13 Joseph Myers <joseph@codesourcery.com>
9664
9665 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
9666 values. Remove duplicate arm8 entry.
9667
f9344488
SP
96682009-01-13 Sebastian Pop <sebastian.pop@amd.com>
9669
9670 PR tree-optimization/38786
9671 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
9672 the SSA_NAME case of expand_scalar_variables_expr.
9673 Set the type of an expression to the type of its assign statement.
9674 (expand_scalar_variables_expr): Also gather the scalar computation
9675 used to index the memory access. Do not pass loop_p.
9676 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
9677 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
9678 the gimple_stmt_iterator where it inserts new code.
9679 Do not pass loop_p.
f9344488
SP
9680 (copy_bb_and_scalar_dependences): Do not pass loop_p.
9681 (translate_clast): Update call to copy_bb_and_scalar_dependences.
9682
2d8bb84d
SP
96832009-01-13 Sebastian Pop <sebastian.pop@amd.com>
9684
9685 * graphite.h (debug_value): Removed.
9686 * graphite.c (debug_value): Removed.
9687
ff128632
RE
96882009-01-13 Richard Earnshaw <rearnsha@arm.com>
9689
435da628
UB
9690 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
9691 ldrd/strd with two 32-bit instructions.
ff128632 9692
d5a0a47b
RE
96932009-01-13 Richard Earnshaw <rearnsha@arm.com>
9694
435da628
UB
9695 * config/arm/arm.c (struct processors): Pass for speed down into
9696 cost helper functions.
d5a0a47b
RE
9697 (const_ok_for_op): Handle COMPARE and inequality nodes.
9698 (arm_rtx_costs_1): Rewrite.
9699 (arm_size_rtx_costs): Update prototype.
9700 (arm_rtx_costs): Pass speed down to helper functions.
9701 (arm_slowmul_rtx_costs): Rework cost calculations.
9702 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
9703 (arm_9e_rtx_costs): Likewise.
9704
26d5bf5b
UB
97052009-01-13 Uros Bizjak <ubizjak@gmail.com>
9706
9707 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 9708 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
9709 (alpha_legitimize_address): Do not split local symbols wider than
9710 UNITS_PER_WORD into HIGH/LO_SUM parts.
9711
5d14e3d5
DS
97122009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
9713
9714 PR bootstrap/38580
9715 * gcc.c (process_command): Replace call to execvp with calls
9716 to pex_one and exit.
9717
33faafca
AS
97182009-01-03 Anatoly Sokolov <aesok@post.ru>
9719
9720 PR target/29141
9721 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
9722 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
9723 variant for devices with 3-byte PC.
ba20e309 9724 (__tablejump_elpm__): New.
33faafca 9725
634b5df5
JJ
97262009-01-12 Jakub Jelinek <jakub@redhat.com>
9727
9728 PR c/32041
9729 * c-parser.c (c_parser_postfix_expression): Allow `->' in
9730 offsetof member-designator, handle it as `[0].'.
9731
2842bb86
JDA
97322009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9733
9734 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
9735 function when not using named sections on targets with named sections
9736 if branch distance is less than 262132.
9737
76ee70f6
RE
97382009-01-12 Richard Earnshaw <rearnsha@arm.com>
9739
9740 * combine.c (combine_instructions): Recompute
9741 optimize_this_for_speed_p for each BB in the main combine loop.
9742
f56e675d
TB
97432009-01-12 Tomas Bily <tbily@suse.cz>
9744
9745 PR middlend/38385
26d5bf5b
UB
9746 * tree-loop-distribution.c (prop_phis): New function.
9747 (generate_builtin): Call prop_phis.
9748 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 9749
c2152239
JJ
97502009-01-12 Jakub Jelinek <jakub@redhat.com>
9751
9752 PR tree-optimization/38807
9753 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
9754 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
9755
0e510b3e
AN
97562009-01-11 Adam Nemet <anemet@caviumnetworks.com>
9757
9758 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
9759 subreg of op0 to the original op0.
9760
c95b2534 97612009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
9762
9763 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 9764
53a7ff9a
MS
97652009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
9766
9767 PR debug/7055
60839f5d 9768 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
9769 starting with digits.
9770
b3a796bc
JJ
97712009-01-10 Jakub Jelinek <jakub@redhat.com>
9772
9773 PR target/38695
9774 * config/arm/arm.c (arm_is_long_call_p): Don't call
9775 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
9776
b21b850e
SB
97772009-01-09 Steven Bosscher <steven@gcc.gnu.org>
9778
9779 * regrename.c (regrename_optimize): Fix dumping.
9780 (find_oldest_value_reg): Preserve REG_POINTER.
9781 (copy_hardreg_forward_1): Likewise.
9782
e0e10d3a
DN
97832009-01-09 Diego Novillo <dnovillo@google.com>
9784
bf9b2cc9 9785 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
9786 the restrictions on its use.
9787 (gimple_uid): Tidy.
9788 (gimple_set_uid): Tidy.
9789
c9da2ae8
JJ
97902009-01-09 Jakub Jelinek <jakub@redhat.com>
9791
9792 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
9793 zero guard even if align_bytes != 0 and count is smaller than
9794 size_needed.
9795
38432148 97962009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
9797
9798 PR rtl-optimization/38495
26d5bf5b 9799 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
9800 (add_range_and_copies_from_move_list): Print all added ranges.
9801 Add ranges to memory optimized destination.
9802
260fda3d
JJ
98032009-01-09 Jakub Jelinek <jakub@redhat.com>
9804
6f6278ad
JJ
9805 PR target/38686
9806 PR target/38708
9807 * config/i386/i386.c (override_options): Reject
9808 -mstringop-strategy=rep_8byte with -m32.
9809 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
9810 to 1. Do count comparison against epilogue_size_needed at compile
9811 time even when count_exp was constant forced into register. For
9812 size_needed don't jump to epilogue, instead just avoid aligning
9813 and invoke the body algorithm. If need_zero_guard, add zero guard
9814 even if count is non-zero, but smaller than size_needed + number of
9815 bytes that could be stored for alignment.
9816 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
9817 to 1. If need_zero_guard, add zero guard even if count is non-zero,
9818 but smaller than size_needed + number of bytes that could be stored
9819 for alignment. Compare size_needed with epilogue_size_needed instead
9820 of desired_align - align, don't adjust size_needed, pass
9821 epilogue_size_needed to the epilogue expanders.
9822
260fda3d 9823 PR c/35742
26d5bf5b 9824 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 9825
67b846fa
JDA
98262009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9827
9828 * pa.c (last_address): Change to unsigned.
9829 (update_total_code_bytes): Change argument to unsigned. Don't
9830 check if insn addresses are set.
9831 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
9832 addresses are not set.
9833 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
9834
91c82473
NC
98352009-01-09 Nick Clifton <nickc@redhat.com>
9836
9837 * config/sh/symbian.c: Replace uses of DECL_INLINE with
9838 DECL_DECLARED_INLINE_P.
9839
4017e262
JJ
98402009-01-09 Jakub Jelinek <jakub@redhat.com>
9841
0a49e5c2
JJ
9842 PR middle-end/38347
9843 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
9844 GET_MODE (op0) in operand_subword_force calls.
9845
4017e262
JJ
9846 PR middle-end/38771
9847 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
9848 fold_convert arg0 operands to TREE_TYPE (op0) first.
9849
7cd06356
VM
98502009-01-08 Vladimir Makarov <vmakarov@redhat.com>
9851
9852 * params.def (ira-max-conflict-table-size): Decrease default value
9853 to 1000.
9854
96867bbd
JJ
98552009-01-08 Jakub Jelinek <jakub@redhat.com>
9856
9857 PR tree-optimization/37031
9858 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
9859 on parameter_set.
9860 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
9861 allocate it using gc instead of heap, use VEC_quick_push instead of
9862 VEC_safe_push.
9863 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
9864 instead of heap, use VEC_quick_push instead of VEC_safe_push.
9865 * tree-data-ref.h (struct access_matrix): Change matrix to gc
9866 allocated vector from heap allocated.
9867 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
9868 * tree-loop-linear.c (linear_transform_loops): Allocate nest
9869 vector only after perfect_loop_nest_depth call.
9870
68f61c3d
SP
98712009-01-08 Sebastian Pop <sebastian.pop@amd.com>
9872 Jan Sjodin <jan.sjodin@amd.com>
9873
9874 PR tree-optimization/38559
9875 * graphite.c (debug_value, copy_constraint,
9876 swap_constraint_variables, scale_constraint_variable, ): New.
9877 (get_lower_bound, get_upper_bound): Removed.
9878 (graphite_trans_bb_strip_mine): Clean up this code that works
9879 only for constant number of iterations. Fully copy upper and
9880 lower bound constraints, not only the constant part of them.
9881 * graphite.h (debug_value): Declared.
9882
82567e33
IR
98832009-01-08 Ira Rosen <irar@il.ibm.com>
9884
9885 PR tree-optimization/37194
9886 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 9887 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
9888 outside cost in case of known number of iterations.
9889
7da13f1d
NF
98902009-01-07 Nathan Froyd <froydnj@codesourcery.com>
9891 Alan Modra <amodra@bigpond.net.au>
9892
9893 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
9894 non-word-aligned REG+CONST addressing.
9895
c0f64575
UB
98962009-01-07 Uros Bizjak <ubizjak@gmail.com>
9897
9898 PR target/38706
9899 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
9900 free_after_compilation when outputting a thunk.
9901 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
9902 Do not call free_after_compilation here.
9903
301b6a4e
UB
99042009-01-07 Uros Bizjak <ubizjak@gmail.com>
9905
9906 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
9907 (ix86_valid_target_attribute_inner_p): Ditto.
9908
6a114766
JS
99092009-01-07 Jan Sjodin <jan.sjodin@amd.com>
9910
9911 PR tree-optimization/38492
9912 PR tree-optimization/38498
9913 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
9914 * tree-chrec.h (scev_is_linear_expression): Declared.
9915 * graphite.c (graphite_cannot_represent_loop_niter): New.
9916 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
9917 (graphite_loop_normal_form): Use gcc_assert.
9918 (scan_tree_for_params): Use CASE_CONVERT.
9919 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
9920 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
9921 Use gcc_assert. Discard scops that contain unhandled cases.
9922 (build_scop_conditions): Return a boolean status for unhandled cases.
9923 (strip_mine_profitable_p): Print the loop number, not its depth.
9924 (is_interchange_valid): Pass the depth of the loop nest, don't
9925 recompute it wrongly.
9926 (graphite_trans_bb_block): Same.
9927 (graphite_trans_bb_block): Print tentative of loop blocking.
9928 (graphite_trans_scop_block): Do not print that the loop has been
9929 blocked.
9930 (graphite_transform_loops): Do not handle scops that contain condition
9931 scalar phi nodes.
9932
65b82caa
L
99332009-01-07 H.J. Lu <hongjiu.lu@intel.com>
9934
9935 AVX Programming Reference (December, 2008)
9936 * config/i386/avxintrin.h (_mm256_stream_si256): New.
9937 (_mm256_stream_pd): Likewise.
9938 (_mm256_stream_ps): Likewise.
9939
9940 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
9941 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
9942 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
9943 (bdesc_special_args): Add __builtin_ia32_movntdq256,
9944 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
9945 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
9946 (ix86_expand_special_args_builtin): Likewise.
9947
9948 * config/i386/sse.md (AVXMODEDI): New.
9949 (avx_movnt<mode>): Likewise.
9950 (avx_movnt<mode>): Likewise.
9951 (<sse>_movnt<mode>): Remove AVX support.
9952 (sse2_movntv2di): Likewise.
9953
cef158f9
RG
99542009-01-07 Richard Guenther <rguenther@suse.de>
9955
9956 PR middle-end/38751
9957 * fold-const.c (extract_muldiv): Remove obsolete comment.
9958 (fold_plusminus_mult_expr): Undo MINUS_EXPR
9959 to PLUS_EXPR canonicalization for the canonicalization.
9960
246cb5be
GP
99612009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
9962
9963 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
9964 hosted cross-compilers generating less efficient code.
9965
84b9b872
RS
99662009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
9967
9968 * function.h (rtl_data): Add a dbr_scheduled_p field.
9969 * reorg.c (dbr_schedule): Set it.
9970 (gate_handle_delay_slots): Check it.
9971 * config/mips/mips.c (mips_base_delayed_branch): Delete.
9972 (mips_reorg): Check flag_delayed_branch instead of
9973 mips_base_delayed_branch.
9974 (mips_override_options): Don't set mips_base_delayed_branch
9975 or flag_delayed_branch.
9976
ace984c8
RS
99772009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
9978
9979 PR rtl-optimization/38426.
9980 * ira.c (ira): Set current_function_is_leaf earlier.
9981
7ad7809b
JJ
99822009-01-06 Jakub Jelinek <jakub@redhat.com>
9983
9984 PR rtl-optimization/38722
9985 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
9986 too early, only set a flag and modify after last possible
9987 undo_all point.
9988
c52ec948
JJ
99892009-01-06 Janis Johnson <janis187@us.ibm.com>
9990
9991 PR c/34252
9992 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
9993 * real.c (decimal_single_format): Correct values of emin and emax.
9994 (decimal_double_format): Ditto.
9995 (decimal_quad_format): Ditto.
9996 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
9997 computation of DECnn_MIN and DECnn_MAX for corrected values of
9998 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
9999 __DECnn_MIN__, and adjust its computation for the corrected value
10000 of emin.
10001
300240e1
JH
100022009-01-06 Jan Hubicka <jh@suse.cz>
10003
10004 PR target/38744
435da628 10005 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 10006
271c069e
GP
100072009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
10008
10009 * doc/contrib.texi (Contributors): Slightly adjust the end note.
10010 Add Robert Clark to the list of testers.
10011
64e4c301 100122009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 10013 Kai Tietz <kai.tietz@onevision.com>
64e4c301 10014
435da628
UB
10015 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
10016 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 10017
7650b83e 100182009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 10019 Kai Tietz <kai.tietz@onevision.com>
7650b83e 10020
435da628
UB
10021 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
10022 for w64 ABI.
10023 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
10024 (ix86_nsaved_regs): Count only general purpose regs.
10025 (ix86_nsaved_sseregs): New.
10026 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
10027 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
10028 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
10029 general purpose regs.
7650b83e
JH
10030 (ix86_emit_save_sse_regs_using_mov): New.
10031 (ix86_expand_prologue): Save SSE regs if needed.
10032 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
10033 (ix86_emit_restore_sse_regs_using_mov): New.
10034 (ix86_expand_epilogue): Save SSE regs if needed.
10035
9aa5c1b2 100362009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 10037 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 10038
435da628
UB
10039 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
10040 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
10041 functions when accumulate outgoing args is off.
9aa5c1b2 10042
f7556aae
L
100432009-01-06 H.J. Lu <hongjiu.lu@intel.com>
10044
10045 PR bootstrap/38742
10046 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
10047 before using pseudos_have_intersected_live_ranges_p.
10048
10049 * ira-int.h (ira_assert): Always define.
10050
e47b7d04
L
100512009-01-06 H.J. Lu <hongjiu.lu@intel.com>
10052
10053 AVX Programming Reference (December, 2008)
10054 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
10055 (_mm256_permute2_pd): Likewise.
10056 (_mm_permute2_ps): Likewise.
10057 (_mm256_permute2_ps): Likewise.
10058 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
10059 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
10060
10061 * config/i386/i386.c (ix86_builtins): Remove
10062 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
10063 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
10064 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
10065 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
10066 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
10067 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
10068 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
10069 __builtin_ia32_vpermil2ps256.
10070 (ix86_init_mmx_sse_builtins): Updated.
10071 (ix86_expand_args_builtin): Likewise.
10072
44b86471
JDA
100732009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10074
e47b7d04
L
10075 * pa.c (output_call): Relocate non-jump insns in the delay slot of
10076 long absolute calls when generating PA 2.0 code.
44b86471 10077
311aab06
VM
100782009-01-05 Vladimir Makarov <vmakarov@redhat.com>
10079
10080 PR rtl-optimization/38583
10081 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
10082
10083 * params.def (ira-max-conflict-table-size): New.
10084
10085 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 10086
311aab06 10087 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 10088
311aab06
VM
10089 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
10090 table. Report this. Return result of building.
10091 (ira_build_conflicts): Use ira_conflicts_p. Check result of
10092 building conflict table.
10093
301b6a4e 10094 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 10095 (ira_color): Use ira_conflicts_p.
2ba9daa7 10096
311aab06
VM
10097 * global.c: Include ira.h.
10098 (pseudo_for_reload_consideration_p, build_insn_chain): Use
10099 ira_conflicts_p.
10100
10101 * Makefile.in (global.o): Add ira.h.
2ba9daa7 10102
311aab06
VM
10103 * ira-build.c (mark_all_loops_for_removal,
10104 propagate_some_info_from_allocno): New.
10105 (remove_unnecessary_allocnos): Call
10106 propagate_some_info_from_allocno.
10107 (remove_low_level_allocnos): New.
10108 (remove_unnecessary_regions): Add parameter. Call
10109 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
10110 parameter to remove_unnecessary_regions.
10111 (ira_build): Remove all regions but root if the conflict table was
10112 not built. Update conflict hard regs for allocnos crossing calls.
10113
10114 * ira.c (ira_conflicts_p): New global.
10115 (ira): Define and use ira_conflicts_p.
10116
10117 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10118 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 10119 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 10120
5641785f
BE
101212009-01-06 Ben Elliston <bje@au.ibm.com>
10122
10123 * gengtype-lex.l (YY_NO_INPUT): Define.
10124
e4e5261f
AP
101252009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
10126
10127 PR c/34911
5641785f
BE
10128 * c-common.c (handle_vector_size_attribute): Also reject
10129 BOOLEAN_TYPE types.
e4e5261f 10130
7b10257f
SP
101312009-01-05 Sebastian Pop <sebastian.pop@amd.com>
10132
10133 PR tree-optimization/38492
10134 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
10135 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
10136 rename_map_elt_info, eq_rename_map_elts,
10137 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
10138 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
10139 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
10140 (sese_build_livein_liveouts): New.
10141 (new_sese, free_sese): New.
10142 (new_scop): Call new_sese.
10143 (free_scop): Call free_sese.
10144 (rename_variables_from_edge, rename_phis_end_scop): Removed.
10145 (register_old_new_names): Renamed register_old_and_new_names.
10146 (register_scop_liveout_renames, add_loop_exit_phis,
10147 insert_loop_close_phis, struct igp,
10148 default_liveout_before_guard, add_guard_exit_phis,
10149 insert_guard_phis, copy_renames): New.
10150 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
10151 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
10152 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
10153 (scop_adjust_phis_for_liveouts): New.
10154 (gloog): Call scop_adjust_phis_for_liveouts.
10155
10156 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 10157 num_ver and livein.
7b10257f
SP
10158 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
10159 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
10160 (struct scop): Added field liveout_renames.
10161 (SCOP_LIVEOUT_RENAMES): New.
10162
9761fcc7
HJ
101632009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
10164
10165 PR tree-optimization/38510
10166 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
10167 (translate_clast): Call recompute_all_dominators before
10168 graphite_verify.
10169 (gloog): Call recompute_all_dominators before graphite_verify.
10170
101712009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 10172 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
10173
10174 PR tree-optimization/38500
10175 * graphite.c (create_sese_edges): Call fix_loop_structure after
10176 splitting blocks.
10177
c95b2534 101782009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
10179
10180 * config.gcc: Add m32r*-*-rtems*.
10181 * config/m32r/rtems.h: New file.
10182
fc0cd180
BE
101832009-01-05 Ben Elliston <bje@au.ibm.com>
10184
10185 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
10186 (.po.pox): Likewise.
10187 (po/gcc.pot): Likewise.
10188
3106d8e5
DM
101892009-01-04 David S. Miller <davem@davemloft.net>
10190
10191 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
10192 (STARTING_FRAME_OFFSET): Always set to zero.
10193
0009b473
RS
101942009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
10195
10196 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
10197 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
10198 fixed-point types, and vectors of the same.
10199
4f24c6d6
RS
102002009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
10201
10202 * config/mips/sync.md (*mb_barrier): Rename to...
10203 (*memory_barrier): ...this.
10204
1df48f5c
JW
102052009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
10206
10207 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 10208 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
10209 and put in alphabetical order. Fix 'target' name and put in order.
10210 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
10211 typos.
10212
1a8c13b3
UB
102132009-01-04 Uros Bizjak <ubizjak@gmail.com>
10214
10215 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
10216 (memory_barrier): Expand as unspec instead of unspec_volatile.
10217 Remove mem:BLK from insn operands. Use Pmode scratch register.
10218 (*memory_barrier): Define as unspec instead of unspec_volatile.
10219 Use (match_dup 0) as input operand.
10220
10221 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
10222 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
10223 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
10224 scratch register. Remove operand 1.
10225 (*stbar): Define as unspec instead of unspec_volatile.
10226 Use (match_dup 0) as input operand, remove (const_int 8).
10227 (*membar): Define as unspec instead of unspec_volatile.
10228 Use (match_dup 0) as input operand, remove input operand 2.
10229
10230 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
10231 (memory_barrier): Expand as unspec instead of unspec_volatile.
10232 Remove mem:BLK from insn operands. Use Pmode scratch register.
10233 (*memory_barrier): Define as unspec instead of unspec_volatile.
10234 Use (match_dup 0) as input operand.
10235
10236 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
10237 Remove mem:BLK from insn operands. Use Pmode scratch register.
10238 Set volatile flag on operand 0.
10239 (*memory_barrier): New insn pattern.
10240
10241 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
10242 insn operands.
10243 (*memory_barrier): Use (match_dup 0) as input operand.
10244
10245 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
10246 Remove mem:BLK from insn operands. Use Pmode scratch register.
10247 Set volatile flag on operand 0.
301b6a4e 10248 (*mb_internal): New insn pattern.
1a8c13b3
UB
10249
10250 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
10251
fb0703f7
SB
102522009-01-04 Steven Bosscher <steven@gcc.gnu.org>
10253
10254 PR middle-end/38586
10255 * function.c (struct temp_slot): Move to the section of the file
10256 that deals with temp slots. Remove field 'address'.
10257 (temp_slot_address_table): New hash table of address -> temp slot.
10258 (struct temp_slot_address_entry): New struct, items for the table.
10259 (temp_slot_address_compute_hash, temp_slot_address_hash,
10260 temp_slot_address_eq, insert_temp_slot_address): Support functions
10261 for the new table.
10262 (find_temp_slot_from_address): Rewrite to use the new hash table.
10263 (remove_unused_temp_slot_addresses): Remove addresses of temp
10264 slots that have been made available.
10265 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
10266 worker function for remove_unused_temp_slot_addresses.
10267 (assign_stack_temp_for_type): Don't clear the temp slot address list.
10268 Add the temp slot address to the address -> temp slot map.
10269 (update_temp_slot_address): Update via insert_temp_slot_address.
10270 (free_temp_slots): Call remove_unused_temp_slot_addresses.
10271 (pop_temp_slots): Likewise.
10272 (init_temp_slots): Allocate the address -> temp slot map, or empty
10273 the map if it is already allocated.
10274 (prepare_function_start): Initialize temp slot processing.
10275
b5a430f3
SB
102762009-01-04 Steven Bosscher <steven@gcc.gnu.org>
10277
10278 PR middle-end/38584
10279 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
10280 Calculate the size of all stack vars assuming no packing of stack
10281 vars will happen, replacing a quadratic algorithm with a linear one.
10282
5d560619
JJ
102832009-01-03 Jakub Jelinek <jakub@redhat.com>
10284
10285 PR target/38707
10286 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
10287 can't be used.
10288
953a7caa
DN
102892009-01-03 Diego Novillo <dnovillo@google.com>
10290
10291 * doc/contrib.texi: Update contributions.
10292
5f26a230
JJ
102932009-01-03 Jakub Jelinek <jakub@redhat.com>
10294
493aa551
JJ
10295 PR c++/38705
10296 * builtins.c (fold_builtin_memory_op): Give up if either operand
10297 is volatile. Set srctype or desttype to non-qualified version
10298 of the other type.
10299
5f26a230
JJ
10300 PR c/38700
10301 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
10302 and FUNCTION_DECLs.
10303
c95b2534 103042009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
10305
10306 PR rtl-optimization/35805
10307 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
10308 problem if fast dce is able to remove any instructions.
10309 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 10310
0b355794
MM
103112009-01-02 Mark Mitchell <mark@codesourcery.com>
10312
10313 PR 33649
10314 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
10315
0cf0d02b
JJ
103162009-01-02 Jakub Jelinek <jakub@redhat.com>
10317
10318 PR middle-end/38690
10319 * tree-flow.h (op_code_prio, op_prio): New prototypes.
10320 * tree-pretty-print.c (op_code_prio): New function.
10321 (op_prio): No longer static. Use op_code_prio.
10322 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
10323 Use op_prio and op_code_prio to determine if () should be
10324 printed around operand(s) or not.
10325
10326 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
10327 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
10328 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
10329 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
10330 pp_character instead of pp_string for single letter printing.
10331
e3606f3b
RS
103322009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
10333
10334 * doc/extend.texi: Fix '#pragma GCC option' typo.
10335
c95b2534 103362009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 10337
a5f061dc
RG
10338 * doc/install.texi (--enable-checking): Mention different
10339 default for stage1.
10340 (--enable-stage1-checking): Document.
00f39bd5 10341
26de0bcb
AP
103422009-01-01 Andrew Pinski <pinskia@gmail.com>
10343
10344 PR middle-end/30142
10345 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
10346 case to be an error.
10347
7a7d8fab
BE
103482009-01-02 Ben Elliston <bje@au.ibm.com>
10349
10350 * config/fp-bit.h (pack_d): Constify argument.
10351 * config/fp-bit.c (makenan): Constify return type. Remove casts.
10352 (isnan): Constify argument.
10353 (isinf): Likewise.
10354 (iszero): Likewise.
10355 (pack_d): Likewise.
10356 (_fpadd_parts): Constify return type.
10357 (_fpmul_parts): Likewise.
10358 (_fpdiv_parts): Likewise.
10359
b295aee2
JJ
103602009-01-01 Jakub Jelinek <jakub@redhat.com>
10361
10362 PR c/36489
10363 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
10364 warn about overwriting initializer with side-effects or
10365 -Woverride-init if !IMPLICIT.
10366 (output_init_element): Likewise. Pass IMPLICIT down to
10367 add_pending_init.
10368 (process_init_element): Add IMPLICIT argument. Pass it down
10369 to output_init_element.
10370 (push_init_element, pop_init_level, set_designator): Adjust
10371 process_init_element callers.
10372 (set_nonincremental_init, set_nonincremental_init_from_string):
10373 Adjust add_pending_init callers.
10374 (output_pending_init_elements): Adjust output_init_element callers.
10375 * c-tree.h (process_init_element): Adjust prototype.
10376 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
10377 process_init_element callers.
ad41bd84
JM
10378
10379\f
10380Copyright (C) 2009 Free Software Foundation, Inc.
10381
10382Copying and distribution of this file, with or without modification,
10383are permitted in any medium without royalty provided the copyright
10384notice and this notice are preserved.