]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR fortran/39876 (module procedure name that collides with the GNU intrinsic)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
3e807ffc
PB
12009-05-08 Paolo Bonzini <bonzini@gnu.org>
2
3 PR rtl-optimization/33928
4 * loop-invariant.c (record_use): Fix && vs. || mishap.
5
1bfdbb29
PB
62009-05-08 Paolo Bonzini <bonzini@gnu.org>
7
8 PR rtl-optimization/33928
9 * loop-invariant.c (struct use): Add addr_use_p.
10 (struct def): Add n_addr_uses.
11 (struct invariant): Add cheap_address.
12 (create_new_invariant): Set cheap_address.
13 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
14 (record_uses): Pass df_ref to record_use.
15 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses used
16 only as such.
17
702cb2a0
KK
182009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
19
20 * config/sh/sh.c: Do not include c-pragma.h.
21
5e8df753
AP
222009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
23
24 * config/spu/spu.c: Remove include of c-common.h.
25
6ec637a4
JJ
262009-05-07 Janis Johnson <janis187@us.ibm.com>
27
28 PR c/39037
29 * c-common.h (mark_valid_location_for_stdc_pragma,
30 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
31 clear_float_const_decimal64, float_const_decimal64_p): New.
32 * c.opt (Wunsuffixed-float-constants): New.
33 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
34 unsuffixed float constant, handle new warning.
35 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
36 * c-decl.c (c_scope): New flag float_const_decimal64.
37 (set_float_const_decimal64, clear_float_const_decimal64,
38 float_const_decimal64_p): New.
39 (push_scope): Set new flag.
40 * c-parser.c (c_parser_translation_unit): Mark when it's valid
41 to use STDC pragmas.
42 (c_parser_external_declaration): Ditto.
43 (c_parser_compound_statement_nostart): Ditto.
44 * c-pragma.c (valid_location_for_stdc_pragma,
45 mark_valid_location_for_stdc_pragma,
46 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
47 handle_pragma_float_const_decimal64): New.
48 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
49 * cp/semantics.c (valid_location_for_stdc_pragma_p,
50 set_float_const_decimal64, clear_float_const_decimal64,
51 float_const_decimal64_p): New dummy functions.
52 * doc/extend.texi (Decimal Float): Remove statement that the
53 pragma, and suffix for double constants, are not supported.
54 * doc/invoke.texi (Warning Options): List new option.
55 (-Wunsuffixed-float-constants): New.
56
45b9b2e9
SB
572009-05-08 Steven Bosscher <steven@gcc.gnu.org>
58
59 * config/i386/i386.c: Do not include c-common.h.
60
e71da632
MH
612009-05-07 Mark Heffernan <meheff@google.com>
62
63 * doc/invoke.texi (Debugging Options): Document change of debugging
64 dump location.
65 * opts.c (decode_options): Make dump_base_name relative to
66 aux_base_name directory.
67
fe4c7bc6
HS
682009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
69
70 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
71 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
72
3b3e44eb
RAE
732009-05-07 Rafael Avila de Espindola <espindola@google.com>
74
75 * Makefile.in (install-plugin): Simplify a bit.
76
fac41238
PB
772009-05-07 Paolo Bonzini <bonzini@gnu.org>
78
79 * Makefile.in (OBJS-common): Add regcprop.o.
80 (regcprop.o): New.
81 * timevar.def (TV_CPROP_REGISTERS): New.
82 * regrename.c (regrename_optimize): Return 0.
83 (rest_of_handle_regrename): Delete.
84 (pass_rename_registers): Point to regrename_optimize.
85 (struct value_data_entry, struct value_data,
86 kill_value_one_regno, kill_value_regno, kill_value,
87 set_value_regno, init_value_data, kill_clobbered_value,
88 kill_set_value, kill_autoinc_value, copy_value,
89 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
90 replace_oldest_value_reg, replace_oldest_value_addr,
91 replace_oldest_value_mem, copyprop_hardreg_forward_1,
92 debug_value_data, validate_value_data): Move...
93 * regcprop.c: ... here.
94 (rest_of_handle_cprop): Delete.
95 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
96
472e0df9
JJ
972009-05-07 Jakub Jelinek <jakub@redhat.com>
98
99 PR middle-end/40057
100 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
101 GEN_INT for 1 << bitnum.
102 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
103 build_int_cst_type.
104
0d50d55a
UB
1052009-05-07 Uros Bizjak <ubizjak@gmail.com>
106
107 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
108 Remove wrong description of "nand" functionality.
109
22f597f1
RG
1102009-05-06 Richard Guenther <rguenther@suse.de>
111 Adam Nemet <anemet@caviumnetworks.com>
112
113 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
114 comment. Add that if LHS is not a gimple register, then RHS1 has
115 to be a single object (GIMPLE_SINGLE_RHS).
116
641cac0b
AN
1172009-05-06 Adam Nemet <anemet@caviumnetworks.com>
118
119 * expr.c (get_def_for_expr): Move it up in the file.
120 (store_field): When expanding a bit-field store, look at the
121 defining gimple stmt for the masking conversion.
122
5a5c6435
JJ
1232009-05-06 Janis Johnson <janis187@us.ibm.com>
124
125 PR middle-end/39986
126 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
127 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
128 32-bit memcpy into long.
129
96474f36
JJ
1302009-05-06 Jakub Jelinek <jakub@redhat.com>
131
132 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
133 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
134 new_reg_loc_descr.
135 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
136 instead of appending DW_OP_deref*.
137
529ff441
MM
1382009-05-06 Michael Matz <matz@suse.de>
139
140 PR middle-end/40021
141 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
142 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
143
9419a9fd
RAE
1442009-05-06 Rafael Avila de Espindola <espindola@google.com>
145
146 * Makefile.in (install-plugin): Fix srcdir handling.
147
fff1894c
AB
1482009-05-06 Andrey Belevantsev <abel@ispras.ru>
149
150 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
151 when processing for not_regs_needed bitmap.
152 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
153 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
154 handling it for rhs.
155
700ae70c
L
1562009-05-06 H.J. Lu <hongjiu.lu@intel.com>
157
ab3426a7 158 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 159 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
160 * config/i386/predicates.md (incdec_operand): Likewise.
161 (aligned_operand): Likewise.
162 * config/i386/sse.md (divv8sf3): Likewise.
163 (sqrtv8sf2): Likewise.
164
67341fb5
L
1652009-05-06 H.J. Lu <hongjiu.lu@intel.com>
166
167 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
168
169 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
170
87946f42
L
1712009-05-06 H.J. Lu <hongjiu.lu@intel.com>
172
173 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
174 ssemodesuffixf2c with avxmodesuffixf2c.
175
1202aec1
JM
1762009-05-06 Joseph Myers <joseph@codesourcery.com>
177
178 PR c/40032
aa016ff7 179 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 180
6e57a01d
JJ
1812009-05-05 Jakub Jelinek <jakub@redhat.com>
182
183 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
184 (struct tree_base): Adjust spacing for 8 bit boundaries.
185 (struct tree_decl_common): Add decl_by_reference_flag bit.
186 (DECL_BY_REFERENCE): Adjust.
187 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
188 print DECL_BY_REFERENCE bit.
189 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
190 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
191 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
192 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
193 unconditionally.
194
32f579f6
JJ
195 PR middle-end/39666
196 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
197 range of the type, but default label is missing, add it with one
198 of the existing labels instead of adding a new label for it.
199
617ab743
JM
2002009-05-05 Joseph Myers <joseph@codesourcery.com>
201
202 * dwarf.h: Remove.
203
bf016de8
RAE
2042009-05-05 Rafael Avila de Espindola <espindola@google.com>
205
206 * Makefile.in (enable_plugin, plugin_includedir): New.
207 (install): Depend on install-plugin.
208 (PLUGIN_HEADERS): New.
209 (install-plugin): New.
210 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
211
7f8fdb9f
RG
2122009-05-05 Richard Guenther <rguenther@suse.de>
213
214 PR tree-optimization/40022
215 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
216 the only vuse.
217 (phivn_valid_p): Fix tuplification error, simplify.
218 (phiprop_insert_phi): Add dumps.
219 (propagate_with_phi): Simplify.
220
8d972839
RG
2212009-05-05 Richard Guenther <rguenther@suse.de>
222
223 PR middle-end/40023
aa016ff7 224 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 225
66ba9b0b
SZ
2262009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
227
228 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
229 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
230 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
231 block_ultimate_origin): Rearrange the declarations line to match the
232 comment that indicates the .c file which the functions are defined.
233 (dwarf2out_*, set_decl_rtl): Add comment.
234 (get_base_address): Adjust comment.
235 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
236 declarations line and add comment.
237 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 238
4f1e4960
JM
2392009-05-04 Joseph Myers <joseph@codesourcery.com>
240
241 * attribs.c (decl_attributes): Use %qE for identifiers in
242 diagnostics.
243 * cgraphunit.c (verify_cgraph_node): Translate function names to
244 locale character set in diagnostics.
245 * coverage.c (get_coverage_counts): Use %qE for identifiers in
246 diagnostics.
247 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
248 Document that functions are named in UTF-8.
249 * expr.c (expand_expr_real_1): Translate function names to locale
250 character set in diagnostics.
251 * gimplify.c (omp_notice_variable, omp_is_private,
252 gimplify_scan_omp_clauses): Use %qE for identifiers in
253 diagnostics.
254 * langhooks.c (lhd_print_error_function): Translate function names
255 to locale character set.
256 * langhooks.h (decl_printable_name): Document that return value is
257 in internal character set.
258 * stmt.c: Include pretty-print.h
259 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
260 diagnostics.
261 (resolve_operand_name_1): Translate named operand name to locale
262 character set.
263 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
264 diagnostics.
265 * toplev.c (announce_function): Translate function names to locale
266 character set.
267 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
268 (default_tree_printer): Use pp_identifier or translate identifiers
269 to locale character set. Mark "<anonymous>" for translation.
270 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
271 for identifiers in diagnostics.
272 * tree.c (handle_dll_attribute): Use %qE for identifiers in
273 diagnostics.
274 * varasm.c (output_constructor): Use %qE for identifiers in
275 diagnostics.
276
40540e68
RAE
2772009-05-04 Rafael Avila de Espindola <espindola@google.com>
278
279 * configure.ac: use ` ` instead of $()
280 * configure: Regenerate.
281
33fc884c
BE
2822009-05-05 Ben Elliston <bje@au.ibm.com>
283
284 * config/pa/linux-atomic.c: Eliminate conditional include of
285 errno.h on non-LP64 systems to simplify build requirements.
286
88388a52
JM
2872009-05-04 Joseph Myers <joseph@codesourcery.com>
288
289 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
290 diagnostics.
291 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
292 and pass value to identifier_to_locale.
293 (warn_variable_length_array): Make name a tree.
294 (grokdeclarator): Separate diagnostic texts for named and unnamed
295 declarators. Use %qE for named declarators.
296 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
297 diagnostics.
298 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
299 identifiers in diagnostics.
300 * c-typeck.c (push_member_name, start_init): Pass identifiers to
301 identifier_to_locale. Mark "anonymous" strings for translation.
302
960c5c79
ME
3032009-05-04 Michael Eager <eager@eagercon.com>
304
305 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 306 address for DImode/DFmode only if double-precision FP regs.
960c5c79 307
d083fbba
ME
3082009-05-04 Michael Eager <eager@eagercon.com>
309
310 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
311 TARGET_SINGLE_FLOAT check.
312
c3ba8d32
ME
3132009-05-04 Michael Eager <eager@eagercon.com>
314
315 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
316
edce9f18
ME
3172009-05-04 Michael Eager <eager@eagercon.com>
318
319 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
320 * config/rs6000/t-xilinx: New
321
506d7b68
PB
3222009-05-04 Paolo Bonzini <bonzini@gnu.org>
323
324 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
325 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
326 * gcc/explow.c (memory_address): Use target hook.
327 * gcc/targhooks.c (default_legitimize_address): New.
328 * gcc/targhooks.h (default_legitimize_address): New.
329 * gcc/target.h (legitimize_address): New.
330 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
331 (TARGET_INITIALIZER): Include it.
332 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
333
334 * config/bfin/bfin-protos.h (legitimize_address): Remove.
335 * config/bfin/bfin.c (legitimize_address): Remove.
336 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
337 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
338 Remove.
506d7b68
PB
339 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
340 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
341
342 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
343 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
344 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
345 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
346 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
347 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
348 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
349 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
350 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
351 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
352 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
353 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
354 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
355 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
356 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
357 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
358 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
359 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
360 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
361 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
362 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
363 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
364 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
365
366 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
367 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
368 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
369 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
370 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
371 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
372 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
373 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
374 (thumb_legitimize_address): Delete.
375 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
376 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
377 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
378 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
379 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
380 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
381 Delete.
382 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
383 Delete.
506d7b68
PB
384
385 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
386 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
387 * config/m32r/m32r.c (m32r_legitimize_address): New.
388 * config/m68k/m68k.c (m68k_legitimize_address): New.
389 * config/score/score.c (score_legitimize_address): Standardize.
390 * config/score/score3.c (score3_legitimize_address): Standardize.
391 * config/score/score3.h (score3_legitimize_address): Adjust.
392 * config/score/score7.c (score7_legitimize_address): Standardize.
393 * config/score/score7.h (score7_legitimize_address): Adjust.
394 * config/sh/sh.c (sh_legitimize_address): New.
395 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
396
397 * gcc/config/s390/s390.c (legitimize_address): Rename to...
398 (s390_legitimize_address): ... this.
399 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
400 (sparc_legitimize_address): ... this.
401 * gcc/config/i386/i386.c (legitimize_address): Rename to...
402 (ix86_legitimize_address): ... this.
403 * gcc/config/avr/avr.c (legitimize_address): Rename to...
404 (avr_legitimize_address): ... this.
405 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
406 (mn10300_legitimize_address): ... this.
407 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
408 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
409 (alpha_expand_mov): Adjust call.
410
411 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
412 * config/spu/spu.c (spu_legitimize_address): Likewise.
413 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
414 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
415
a3af5087
JM
4162009-05-04 Joseph Myers <joseph@codesourcery.com>
417
418 * intl.c (locale_encoding, locale_utf8): New.
419 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
420 * intl.h (locale_encoding, locale_utf8): Declare.
421 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
422 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
423 New.
424 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
425 argument.
426 (pp_tree_identifier): Define to call pp_base_tree_identifier.
427 (pp_base_tree_identifier): Declare as function.
428 (identifier_to_locale): Declare.
429 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 430 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 431
ea5cd5f1
RG
4322009-05-04 Richard Guenther <rguenther@suse.de>
433
434 PR middle-end/40015
435 * builtins.c (fold_builtin_memory_op): Do not decay to element
436 type if the size matches the whole array.
437
ddc2690a
KH
4382009-05-04 Kazu Hirata <kazu@codesourcery.com>
439
440 * expmed.c (synth_mult): When trying out a shift, pass the result
441 of a signed shift.
442
ef268d34
KH
4432009-05-04 Kazu Hirata <kazu@codesourcery.com>
444
445 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
446 (shiftsub1_cost): New.
447 (init_expmed): Compute shiftsub1_cost.
448 (synth_mult): Optimize multiplications by constants of the form
449 -(2^^m-1) for some constant positive integer m.
450
255d3827
RG
4512009-05-03 Richard Guenther <rguenther@suse.de>
452
453 PR c/39983
454 * c-typeck.c (array_to_pointer_conversion): Do not built
455 ADDR_EXPRs of arrays of pointer-to-element type.
456 * c-gimplify.c (c_gimplify_expr): Revert change fixing
457 up wrong ADDR_EXPRs after-the-fact.
458 * c-common.c (strict_aliasing_warning): Strip pointer
459 conversions for obtaining the original type.
460 * builtins.c (fold_builtin_memset): Handle array types.
461 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
462 and array types
463
16c33770
RG
4642009-05-03 Richard Guenther <rguenther@suse.de>
465
466 PR middle-end/23329
467 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
468 Do not lose casts from array types with unknown extent to array
469 types with known extent.
470 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
471 alias set compatibility.
472
62a67c94
MLI
4732009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
474
475 * flags.h (extra_warnings): Delete.
476 * toplev.c (process_options): Handle Wuninitialized here.
477 * opts.c (extra_warnings): Delete.
478 (set_Wextra): Delete.
479 (common_handle_option): -Wextra can be handled automatically.
480 * c-opts.c (c_common_handle_option): Delete obsolete code.
481 (c_common_post_options): Simplify comment.
482 * common.opt (W): Add Var.
483 (Wextra): Add Var.
484 (Wuninitialized): Initialize to -1.
485
8c7926c4
AN
4862009-05-03 Adam Nemet <anemet@caviumnetworks.com>
487 Richard Guenther <rguenther@suse.de>
488
489 * expr.c (get_def_for_expr): New function.
490 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
491 SSA rather than trees.
492 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
493 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
494
fa5da7de
JM
4952009-05-03 Joseph Myers <joseph@codesourcery.com>
496
497 * c-common.c (reswords): Add _Imaginary.
498 * c-common.c (enum rid): Add RID_IMAGINARY.
499
2ddd5020
PB
5002009-05-03 Paolo Bonzini <bonzini@gnu.org>
501
502 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
503 Patch by Richard Guenther.
504
aea88c05
AS
5052009-05-03 Anatoly Sokolov <aesok@post.ru>
506
507 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
508 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
509 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
510 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
511 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
512 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
513 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
514 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
515 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
516 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
517 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
518 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
519 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
520 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
521 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
522 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
523 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
524 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
525
85e59f3a
RG
5262009-05-02 Richard Guenther <rguenther@suse.de>
527
528 PR tree-optimization/39940
529 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
530 doing so.
531
4636b850
RG
5322009-05-02 Richard Guenther <rguenther@suse.de>
533
534 PR middle-end/40001
535 * tree-ssa.c (execute_update_addresses_taken): Properly check
536 if we can mark a variable DECL_GIMPLE_REG_P.
537 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
538 back to the end of the function.
539 (is_gimple_reg_type): Remove complex type special casing.
540 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
541 if not optimizing.
542
5e10cb5a
BE
5432009-05-02 Ben Elliston <bje@au.ibm.com>
544
545 * doc/collect2.texi (Collect2): Document search path behaviour
546 when configured with --with-ld.
547
048bf48b
JH
5482009-05-02 Jan Hubicka <jh@suse.cz>
549
550 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
551 parameter; update callers.
aa016ff7
UB
552 (coalesce_cost_edge): EH edges are costier because they needs
553 splitting even if not critical and even more costier when there are
554 multiple EH predecestors.
048bf48b 555
d5c5f9ab
JH
5562009-05-02 Jan Hubicka <jh@suse.cz>
557
558 * except.c (remove_eh_handler_and_replace): Handle updating after
559 removing TRY blocks.
560
2ed1959a
EB
5612009-05-02 Eric Botcazou <ebotcazou@adacore.com>
562
563 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
564
d363a7e7
SB
5652009-05-02 Steven Bosscher <steven@gcc.gnu.org>
566
567 * varasm.c: Do not include c-pragma.h.
568 * attribs.c: Do not incude c-common.h.
569
9c3d55b4
MM
5702009-05-01 Michael Matz <matz@suse.de>
571
572 * calls.c (initialize_argument_information): Handle SSA names like
573 decls with a non MEM_P DECL_RTL.
574
ea264ca5
SB
5752009-05-01 Steven Bosscher <steven@gcc.gnu.org>
576
577 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
578 * ipa-utils.c: Likewise.
579 * ipa-type-escape.c: Likewise.
580 * cgraphunit.c Do not include c-common.h.
581 * ipa-pure-const.c: Likewise.
582 * tree-if-conv.c: Likewise.
583 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
584 * ipa-struct-reorg.c: Likewise.
585 * tree-nomudflap.c: Likewise.
586 * tree-ssa-structalias.c: Likewise.
587
6c5d4d1a
SB
5882009-05-01 Steven Bosscher <steven@gcc.gnu.org>
589
590 * store-motion.c: Many cleanups to make this pass a first-class
591 citizen instead of an appendix to gcse load motion. Add TODO list
592 to make this pass faster/cleaner/better.
593
594 (struct ls_expr): Post gcse.c-split cleanups.
595 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
596 "stores" field to "avail_stores".
597 (pre_ldst_mems): Rename to store_motion_mems.
598 (pre_ldst_table): Rename to store_motion_mems_table.
599 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
600 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
601 (ldst_entry): Rename to st_expr_entry, update users.
602 (free_ldst_entry): Rename to free_st_expr_entry, update users.
603 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
604 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
605 update caller.
6c5d4d1a
SB
606 (first_ls_expr): Rename to first_st_expr, update users.
607 (next_ls_expr): Rename to next_st_expr, update users.
608 (print_ldst_list): Rename to print_store_motion_mems. Print names of
609 fields properly for store motion instead of names inherited from load
610 motion in gcse.c.
611 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
612 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
613 are done with it.
614
615 (ae_kill): Rename to st_kill, update users.
616 (ae_gen): Rename to st_avloc, update users.
617 (transp): Rename to st_transp, update users.
618 (pre_insert_map): Rename to st_insert_map, update users.
619 (pre_delete_map): Rename to st_delete_map, update users.
620 (insert_store, build_store_vectors, free_store_memory,
621 one_store_motion_pass): Update for abovementioned changes.
622
623 (gcse_subst_count, gcse_create_count): Remove.
624 (one_store_motion_pass): New statistics counters "n_stores_deleted"
625 and "n_stores_created", local variables.
626
627 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
628 use for_each_rtx.
629
630 (regvec, compute_store_table_current_insn): Remove.
631 (reg_set_info, reg_clear_last_set): Remove.
632 (compute_store_table): Use DF caches instead of local dataflow
633 solvers.
634
b02cec6e
JM
6352009-05-01 Joseph Myers <joseph@codesourcery.com>
636
637 * c-objc-common.c (c_tree_printer): Print identifiers with
638 pp_identifier, not pp_string. Mark "({anonymous})" for
639 translation.
640 * c-pretty-print.c (pp_c_ws_string): New.
641 (pp_c_cv_qualifier, pp_c_type_specifier,
642 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
643 pp_c_storage_class_specifier, pp_c_function_specifier,
644 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
645 pp_c_primary_expression, pp_c_postfix_expression,
646 pp_c_unary_expression, pp_c_shift_expression,
647 pp_c_relational_expression, pp_c_equality_expression,
648 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
649 use pp_string and pp_c_ws_string in place of pp_identifier and
650 pp_c_identifier for non-identifiers. Mark English strings for
651 translation.
652 * c-pretty-print.h (pp_c_ws_string): Declare.
653
cd533689
PP
6542009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
655 Roland McGrath <roland@redhat.com>
656
aa016ff7 657 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
658 (ENABLE_LD_BUILDID): New configuration option.
659 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
660 (LINK_BUILDID_SPEC): New macro.
661 (init_spec): If defined, prepend it between LINK_EH_SPEC and
662 link_spec.
663 * doc/install.texi: Document --enable-linker-build-id option.
664 * configure: Rebuild.
665 * config.in: Rebuild.
666
ba6adec4
AN
6672009-04-30 Adam Nemet <anemet@caviumnetworks.com>
668
669 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
670 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
671 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
672 MIPS_GP_SAVE_AREA_SIZE.
673 * config/mips/mips.c (struct mips_frame_info): Update comment
674 before arg_pointer_offset and hard_frame_pointer_offset.
675 (mips_compute_frame_info): Update diagram before function: to
676 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
677 indicate the position of frame_pointer_rtx with -fstack-protector and
678 to show args_size. Don't allocate cprestore area for leaf functions
679 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
680 cprestore_size.
681 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
682
48f5b722
MM
6832009-04-30 Michael Matz <matz@suse.de>
684
ba6adec4
AN
685 PR tree-optimization/39955
686 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 687
b65d6744
DK
6882009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
689
690 * ira.c (setup_cover_and_important_classes): Use safe macro
691 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
692 directly.
693 * genpreds.c (write_tm_preds_h): Output suitable definition of
694 REG_CLASS_FOR_CONSTRAINT.
695
f136c8ae
RAE
6962009-04-30 Rafael Avila de Espindola <espindola@google.com>
697
698 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
699 instead of an int.
700 * bitmap.c (bitmap_descriptor): Likewise.
701 * ggc-common.c (loc_descriptor): Likewise.
702 * varray.c (varray_descriptor): Likewise.
703 * vec.c (vec_descriptor): Likewise.
704
43fcece8 7052009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
706
707 * Makefile.in (dce.o): Add $(EXCEPT_H).
708 * dce.c: Include except.h and delete redundant vector definitions.
709 (deletable_insn_p): Return false for non-call insns that can throw
710 if DF is running.
711
df35c271
SB
7122009-04-30 Steven Bosscher <steven@gcc.gnu.org>
713
714 * gcse.c (ae_gen): Remove.
715 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
716 and make non-static function to make it available in store-motion.c.
717 Update call sites with search-and-replace.
718 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
719 extract_mentioned_regs, extract_mentioned_regs_helper,
720 find_moveable_store, compute_store_table, load_kills_store, find_loads,
721 store_killed_in_insn, store_killed_after, store_killed_before,
722 build_store_vectors, insert_insn_start_basic_block, insert-store,
723 remove_reachable_equiv_notes, replace_store_insn, delete_store,
724 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
725 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
726 * store-motion.c: ...new file. Also copy data structures from gcse.c
727 and clean up to remove parts not used by store motion.
728 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
729 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
730
f711a87a
RR
7312009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
732
733 PR target/38571
734 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
735 when optimizing for size.
736
fa5ed76e
HPN
7372009-04-30 Hans-Peter Nilsson <hp@axis.com>
738
739 * gcse.c (gcse_constant_p): Fix typo in last change.
740
0acbbdb0
RAE
7412009-04-30 Rafael Avila de Espindola <espindola@google.com>
742
743 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
744
82f5c05d
AK
7452009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
746
747 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
748
6d8f135b
JW
7492009-04-29 James E. Wilson <wilson@codesourcery.com>
750
751 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
752 CONST_HIGH_PART result.
753
c21ca196
AS
7542009-04-29 Anatoly Sokolov <aesok@post.ru>
755
756 * config/avr/avr.c (initial_elimination_offset): Rename to
757 avr_initial_elimination_offset.
758 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
759 change return type to bool.
760 (avr_can_eliminate): New function.
761 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
762 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
763 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 764 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
765 avr_initial_elimination_offset.
766 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
767 (avr_initial_elimination_offset): Define.
768
2a34bece 7692009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 770 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
771
772 PR rtl-optimization/39938
773 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
774 * cfgrtl.c: Include insn-attr.h.
775 (rest_of_pass_free_cfg): New function.
776 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
777 * resource.c (init_resource_info): Remove call to df_analyze.
778
5dc7911e
RG
7792009-04-29 Richard Guenther <rguenther@suse.de>
780
781 PR target/39943
782 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
783 allow conversion to signed integers.
784
1fe479fd
RG
7852009-04-29 Richard Guenther <rguenther@suse.de>
786
787 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
788 shifts of floating point vectors if the shift amount is
789 a constant multiple of the element size.
790
8e001680
AK
7912009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
792 Michael Matz <matz@suse.de>
793
794 PR middle-end/39927
795 PR bootstrap/39929
796 * tree-outof-ssa.c (emit_partition_copy): New function.
797 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
798 insert_part_to_rtx_on_edge): Perform the partition base var
799 copy using emit_partition_copy.
800 (insert_value_copy_on_edge): Convert constants to the right mode.
801 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
802 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
803
e50e3081
BS
8042009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
805
806 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
807 scan backwards to try to find a constant to initialize it.
808
4e5d521b
BS
809 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
810 insn before the loop_end instruction, don't look past labels.
811
7c90021d
RG
8122009-04-29 Richard Guenther <rguenther@suse.de>
813
814 PR middle-end/39937
815 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
816 loose type conversions.
817 (forward_propagate_addr_expr): Fix tuplification bug. Remove
818 stmts only if there are no uses of its definition.
819
97a988bc
BS
8202009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
821
822 * config/bfin/bfin.h (splitting_loops): Declare.
823 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
824 Reorder bit definitions to be ascending.
825 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
826 * config/bfin/bfin.c (splitting_loops): New variable.
827 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
828 (struct loop_info): Remove members INIT and LOOP_INIT.
829 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
830 the LSETUP sequence. Allow LC to be loaded from any register, but
831 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
832 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
833 set to 1.
834 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
835 of reload_completed.
aa016ff7 836
97a988bc
BS
837 From Jie Zhang:
838 * config/bfin/bfin.md (movsi_insn): Refine constraints.
839
0c463e16
RAE
8402009-04-29 Rafael Avila de Espindola <espindola@google.com>
841
842 * Makefile.in (PLUGIN_VERSION_H): New.
843 (OBJS-common): Remove plugin-version.o.
844 (plugin.o): Depend on (PLUGIN_VERSION_H).
845 (plugin-version.o): Remove.
846 * configure: Regenerate
847 * configure.ac: Create plugin-version.h.
848 * gcc-plugin.h (plugin_gcc_version): Remove.
849 (plugin_default_version_check): Change signature.
850 * plugin-version.c: Remove.
851 * plugin.c: Include plugin-version.h.
852 (str_plugin_gcc_version_name): Remove.
853 (try_init_one_plugin): Pass gcc version to plugin_init.
854 (plugin_default_version_check): Both gcc and plugin versions are now
855 arguments.
856
307e7eab
BS
8572009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
858
859 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
860 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
861 Remove special case testing for last insn of inner loops. Don't fail
862 if the loop ends with a jump, emit an extra nop instead.
307e7eab 863
c5d96723
BS
864 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
865 DREGS rather than comparing directly. Remove code that tries to
866 account for latencies.
867
de0b4ad5
RG
8682009-04-29 Richard Guenther <rguenther@suse.de>
869
870 PR tree-optimization/39941
871 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
872 eliminating an indirect call.
873
3a19701a
RG
8742009-04-29 Richard Guenther <rguenther@suse.de>
875
876 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
877 parameter. Allow invariants as base if !require_lvalue.
878 (verify_gimple_assign_single): Adjust.
879
a0a31d1e
BS
8802009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
881
882 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
883 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
884 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
885 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
886 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
887 a VEC_SELECT.
aa016ff7
UB
888 * config/bfin/bfin.c (bfin_expand_builtin,
889 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 890
795bd26a
RG
8912009-04-28 Richard Guenther <rguenther@suse.de>
892
893 * tree-vect-loop.c (get_initial_def_for_induction): Use
894 correct types for pointer increment.
895
04be270f
KG
8962009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
897
898 * toplev.c (print_version): Update GMP version string calculation.
899
e1a3b85c
EB
9002009-04-28 Eric Botcazou <ebotcazou@adacore.com>
901
902 PR rtl-optimization/39938
903 * resource.c (init_resource_info): Add call to df_analyze.
904
8224166e
UB
9052009-04-28 Uros Bizjak <ubizjak@gmail.com>
906
907 * config/alpha/alpha.md (usegp): Cast the result of
908 alpha_find_lo_sum_using_gp to enum attr_usegp.
909 * config/alpha/alpha.c (override_options): Remove end-of-structure
910 marker element from cpu_table. Use array size of cpu_table to handle
911 -mcpu and -mtune options.
912 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
913
c5f0fe67
JM
9142009-04-28 Joseph Myers <joseph@codesourcery.com>
915
916 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
917 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
918 tune_32 and tune_64.
919 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
920 support on PowerPC.
921 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
922 * config/rs6000/option-defaults.h: ... here. New file.
923 (OPT_64, OPT_32): Define.
924 (MASK_64BIT): Define to 0 if not already defined.
925 (OPT_ARCH64, OPT_ARCH32): Define.
926 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
927 and tune_64.
928
0c48a567
RR
9292009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
930
931 * config/arm/arm.c (arm_override_options): Emit error on using
932 fpa with AAPCS.
933
f1028b9d
UB
9342009-04-28 Uros Bizjak <ubizjak@gmail.com>
935
936 PR rtl-optimization/39914
937 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
938 registers for allocnos created from user-defined variables only
939 when not optimizing.
940
e0dd989a
RG
9412009-04-28 Richard Guenther <rguenther@suse.de>
942
943 PR middle-end/39937
944 * fold-const.c (fold_binary): Use distribute_real_division only
945 on float types.
946
9a17c91d
SE
9472009-04-28 Steve Ellcey <sje@cup.hp.com>
948
949 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
950 add hpux-stdint.h to tm_file.
951 (hppa[12]*-*-hpux11*): Ditto.
952 (ia64*-*-hpux*): Ditto.
953 * config/hpux-stdint.h: New.
60839f5d 954 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 955 __STDC_EXT__ for all compiles.
60839f5d
EB
956 * config/pa/pa-hpux.h: Ditto.
957 * config/pa/pa-hpux10.h: Ditto.
958 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 959
af04e659
CM
9602009-04-28 Catherine Moore <clm@codesourcery.com>
961
962 * debug.h (set_name): Add comment.
963
04ef80ce
AP
9642009-04-28 Andrew Pinski <pinskia@gmail.com>
965
966 PR target/39929
967 * config/darwin.c (machopic_gen_offset): Check
968 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
969 * config/arm/arm.c (require_pic_register): Likewise.
970
65ad77af
PB
9712009-04-28 Paolo Bonzini <bonzini@gnu.org>
972
8224166e
UB
973 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
974 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
975 m32c_promote_prototypes): Delete.
65ad77af 976
1b15a008
MM
9772009-04-28 Michael Matz <matz@suse.de>
978
979 PR middle-end/39922
980 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
981 constants.
982
7569a6cc
RG
9832009-04-28 Richard Guenther <rguenther@suse.de>
984
f1028b9d 985 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 986
ead204d9
RR
9872009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
988
989 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
990 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
991 * config/arm/arm-tune.md: Regenerate.
992
f2c45f08 9932009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 994
f2c45f08
AM
995 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
996 block if there are complex incoming edges.
997 (sel_merge_blocks): Remove useless assert.
998 (sel_redirect_edge_and_branch): Check that edge was redirected.
999 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
1000 (sel_find_rgns): Delete declaration.
1001 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
1002 the region when it is not a preheader.
1003
7a00d767
UB
10042009-04-28 Uros Bizjak <ubizjak@gmail.com>
1005
1006 PR c/39323
1007 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
1008
448ee662
RG
10092009-04-28 Richard Guenther <rguenther@suse.de>
1010
1011 * tree.h (SSA_NAME_VALUE): Remove.
1012 (struct tree_ssa_name): Remove value_handle member.
1013 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
1014 array for jump threading.
1015 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
1016 SSA_NAME_VALUEs.
1017 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
1018 * tree-flow.h (threadedge_initialize_values): Declare.
1019 (threadedge_finalize_values): Likewise.
1020 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
1021 (SSA_NAME_VALUE): Define.
1022 (threadedge_initialize_values): New function.
1023 (threadedge_finalize_values): Likewise.
1024 * tree-ssa-dom.c (ssa_name_values): New global variable.
1025 (SSA_NAME_VALUE): Define.
f1028b9d 1026 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 1027
8644a673
IR
10282009-04-28 Ira Rosen <irar@il.ibm.com>
1029
1030 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
1031 Use REPORT_VECTORIZED_LOCATIONS instead
1032 REPORT_VECTORIZED_LOOPS.
1033 * tree-vectorizer.c (vect_verbosity_level): Make static.
1034 (vect_loop_location): Rename to vect_location.
1035 (vect_set_verbosity_level): Update comment.
1036 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
1037 and vect_location.
1038 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
1039 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
1040 instead REPORT_UNVECTORIZED_LOOPS.
1041 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
1042 vect_loop_def to vect_external_def and vect_internal_def.
1043 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 1044 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
1045 REPORT_UNVECTORIZED_LOCATIONS.
1046 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
1047 and vect_used_in_loop and to vect_unused_in_scope and
1048 vect_used_in_scope.
1049 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
1050 (vect_verbosity_level): Remove declaration.
1051 (vect_analyze_operations): Likewise.
1052 (vect_analyze_stmt): Declare.
1053 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
1054 REPORT_UNVECTORIZED_LOCATIONS.
1055 (vect_get_loop_niters): Fix indentation.
1056 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
1057 (vect_analyze_loop_operations): New function.
1058 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
1059 vect_analyze_operations.
1060 (vect_is_simple_reduction): Use new names.
1061 (vectorizable_live_operation, vect_transform_loop): Likewise.
1062 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
1063 specify whether the data references can be a part of interleaving chain.
1064 (vect_analyze_data_ref_dependence): Use new names.
1065 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
1066 (vect_create_addr_base_for_vector_ref): Remove redundant code.
1067 * tree-vect-patterns.c (widened_name_p): Use new names.
1068 (vect_recog_dot_prod_pattern): Likewise.
1069 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
1070 (process_use, vect_mark_stmts_to_be_vectorized,
1071 vect_model_simple_cost, vect_model_store_cost,
1072 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
1073 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
1074 vectorizable_operation, vectorizable_type_demotion,
1075 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
1076 vectorizable_condition): Likewise.
1077 (vect_analyze_operations): Split into vect_analyze_loop_operations
1078 and ...
1079 (vect_analyze_stmt): ... new function.
1080 (new_stmt_vec_info): Use new names.
1081 (vect_is_simple_use): Use new names and fix comment.
1082 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
1083 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
1084
b91322f2
UB
10852009-04-28 Uros Bizjak <ubizjak@gmail.com>
1086
1087 PR target/39911
1088 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
1089 and integer modes for x87 operands. Do not ICE for unsupported size,
1090 generate error instead. Generate error for unsupported operand types.
1091 ['z']: Do not handle HImode memory operands specially. Warning
1092 for floating-point operands. Fallthru to 'Z' for unsupported operand
1093 types. Do not ICE for unsupported size, generate error instead.
1094 (output_387_binary_op): Use %Z to output operands.
1095 (output_fp_compare): Ditto.
1096 (output_387_reg_move): Ditto.
1097
b2ed71b6
BE
10982009-04-28 Ben Elliston <bje@au.ibm.com>
1099
1100 PR c++/35652
1101 Revert:
1102
1103 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1104
1105 * builtins.c (c_strlen): Do not warn here.
1106 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
1107 * c-common.c (pointer_int_sum): Take an explicit location.
1108 Warn about offsets out of bounds.
1109 * c-common.h (pointer_int_sum): Adjust declaration.
1110
81f40b79
ILT
11112009-04-27 Ian Lance Taylor <iant@google.com>
1112
1113 * collect2.c (is_ctor_dtor): Change type of ret field in struct
1114 names to symkind.
1115 * dce.c (run_fast_df_dce): Change type of old_flags to int.
1116 * df-core.c (df_set_flags): Change return type to int. Change
1117 type of old_flags to int.
1118 (df_clear_flags): Likewise.
1119 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
1120 (df_get_conditional_uses): Likewise.
1121 * df.h (df_set_flags, df_clear_flags): Update declarations.
1122 * dwarf2out.c (struct indirect_string_node): Change type of form
1123 field to enum dwarf_form.
1124 (AT_string_form): Change return type to enum dwarf_form.
1125 * fixed-value.c (fixed_compare): Add cast to enum type.
1126 * fwprop.c (update_df): Change 0 to VOIDmode.
1127 * gensupport.c: Change 0 to UNKNOWN.
1128 * gimple.h (gimple_cond_code): Add cast to enum type.
1129 * haifa-sched.c (reemit_notes): Add cast to enum type.
1130 * hooks.c (hook_int_void_no_regs): Remove function.
1131 * hooks.h (hook_int_void_no_regs): Remove declaration.
1132 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 1133 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
1134 * real.c (real_arithmetic): Add cast to enum type.
1135 (real_compare): Likewise.
1136 * target.h (struct gcc_target): Change return type of
1137 branch_target_register_class to enum reg_class.
1138 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
1139 default_branch_target_register_class.
7a00d767 1140 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 1141 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 1142 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
1143 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
1144 cast to int.
1145 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
1146 ERROR_MARK.
1147 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
1148 vect_uninitialized_def. Change 0 to ERROR_MARK.
1149 * tree-vect-stmts.c (supportable_widening_operation): Don't
1150 initialize icode1 and icode2.
7a00d767 1151 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
1152 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
1153 and to STD_C89.
1154 (cmn_err_flag_specs): Change 0 to STD_C89.
1155 (cmn_err_char_table): Likewise.
1156 * config/arm/arm.c (get_arm_condition_code): Change type of code
1157 to enum arm_cond_code.
1158 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
1159 (IWMMXT_BUILTIN2): Likewise.
1160 (neon_builtin_type_bits): Don't define typedef.
1161 (neon_builtin_datum): Change type of bits field to int.
1162 (arm_expand_neon_args): Add cast to enum type.
1163 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
1164 TLS_MODEL_NONE.
1165 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
1166 casts to enum type.
1167 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
1168 MIPS_FP_COND_f.
1169 * config/mips/mips.md (jal_macro): Return enum constant.
1170 (single_insn): Likewise.
1171 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
1172 CODE_FOR_nothing.
1173 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1174 casts to enum type.
1175 * config/s390/s390.c (s390_tune_flags): Change type to int.
1176 (s390_arch_flags): Likewise.
7a00d767 1177 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
1178 * config/s390/s390.h (s390_tune_flags): Update declaration.
1179 (s390_arch_flags): Likewise.
1180 * config/sh/sh.c (prepare_move_operands): Compare
1181 tls_symbolic_operand result with enum constant.
1182 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
1183 (sh_expand_prologue): Add cast to enum type.
1184 (sh_expand_epilogue): Likewise.
1185 (tls_symbolic_operand): Change return type to enum tls_model.
1186 (fpscr_set_from_mem): Add cast to enum type.
1187 (legitimize_pic_address): Compare tls_symbolic_operand result with
1188 enum constant.
1189 (sh_target_reg_class): Change return type to enum reg_class.
1190 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
1191 PROCESSOR_xxx.
7a00d767
UB
1192 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
1193 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
1194 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
1195 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
1196 (delayed_branch, tls_call_delay): Likewise.
1197 (eligible_for_sibcall_delay): Likewise.
1198 (eligible_for_return_delay): Likewise.
1199 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
1200 (spu_expand_builtin_1): Likewise.
1201
1202 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
1203 for all types of conversions.
1204 (output_init_element): Issue -Wc++-compat warning if needed when
1205 initializing a bitfield with enum type.
1206 * c-parser.c (c_parser_expression): Set original_type to
1207 original_type of right hand operand of comman operator.
1208
e4ae5e77
RW
12092009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1210
1211 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
1212 grammar nits.
7a00d767 1213 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
1214 * doc/cpp.texi (Standard Predefined Macros)
1215 (Implementation-defined behavior): Likewise.
7a00d767 1216 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
1217 * doc/gimple.texi (GIMPLE Exception Handling)
1218 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 1219 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
1220 * doc/invoke.texi (Warning Options, Optimize Options)
1221 (AVR Options, Darwin Options): Likewise.
1222 (Optimize Options): Reformulate -fwhole-program description.
1223 * doc/loop.texi (Lambda): Likewise.
1224 * doc/md.texi (Output Template, Define Constraints)
1225 (Standard Names, Insn Splitting): Likewise.
1226 * doc/options.texi (Option properties): Likewise.
1227 * doc/passes.texi (Tree-SSA passes): Likewise.
1228 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
1229 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
1230 (File Names and DBX): Likewise.
1231 * doc/trouble.texi (Incompatibilities): Likewise.
1232
1883802f 12332009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
1234
1235 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
1236 instruction is correct.
1237
1883802f 12382009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
1239
1240 Allow non-constant arguments to conversion intrinsics.
1241 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
1242 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
1243 * spu.c (print_operand): Handle 'v' and 'w'.
1244 (exp2_immediate_p, spu_gen_exp2): Define.
1245 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
1246 spu_convtf_1): Update parameter descriptions.
7a00d767 1247 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
1248 * constraints.md ('v', 'w'): New.
1249 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
1250 Remove.
1251 (i2f, I2F): New define_mode_attr.
1252 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
1253 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
1254 fixuns_truncv4sfv4si2): Update to use mode attribute.
1255 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
1256 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
1257 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
1258 patterns for combine.
1259
5f39ad47
SB
12602009-04-27 Steven Bosscher <steven@gcc.gnu.org>
1261
1262 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
1263 (cprop, hoist, pre, store_motion): New debug counters.
1264 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
1265 is not an RTL pass anymore.
1266 (pass_profiling): Remove extern decl for pass removed in 2005.
1267 (pass_gcse, pass_jump_bypass): Remove.
1268 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
1269 to 0 for clean state.
1270 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
1271 * cse.c (gate_handle_cse_after_global_opts,
1272 rest_of_handle_cse_after_global_opts): New functions.
1273 (pass_cse_after_global_opts): New pass, does local CSE.
1274 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
1275 (TV_CPROP): New timevar.
1276 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
1277 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
1278 (gcse_main, recompute_all_luids): Remove.
1279 (compute_hash_table_work): Call max_reg_num instead of reading
1280 max_gcse_regno.
1281 (cprop_jump): Don't set run_jump_opt_after_gcse.
1282 (constprop_register): Always allow to alter jumps.
1283 (cprop_insn): Likewise.
1284 (do_local_cprop): Likewise.
1285 (local_cprop_pass): Likewise. Return non-zero if something changed.
1286 (cprop): Remove function, fold interesting bits into one_cprop_pass.
1287 (find_implicit_sets): Add note about missed optimization opportunity.
1288 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
1289 pass_rtl_cprop execute function.
1290 Don't bother tracking the pass number, each pass gets its own dumpfile
1291 now anyway.
1292 Always allow to alter jumpsand bypass jumps.
1293 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
1294 will just find no suitable set.
1295 (pre_edge_insert): Fix dumping, this function is for PRE only.
1296 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
1297 pass_rtl_pre execute function.
1298 (hoist_code): Return non-zero if something changed. Keep track of
1299 substitutions and insertions for statistics gathering similar to PRE.
1300 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
1301 called from the pass_rtl_hoist execute function. Show pass statistics.
1302 (compute_store_table): Use max_reg_num directly instead of using the
1303 formerly global max_gcse_regno.
1304 (build_store_vectors): Likewise.
1305 (replace_store_insn): Fix dumping.
1306 (store_motion): Rename to ...
1307 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
1308 pass, called from the pass_rtl_store_motion execute function. Keep
1309 track of substitutions and insertions for statistics gathering similar
1310 to PRE.
1311 (bypass_jumps): Remove, fold interesting bits into ...
1312 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
1313 from the pass_rtl_cprop execute function.
1314 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
1315 pass_jump_bypass): Remove.
1316 (gate_handle_gcse, rest_of_handle_gcse): Remove.
1317 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
1318 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
1319 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
1320 (gate_rtl_store_motion, execute_rtl_store_motion,
1321 pass_rtl_store_motion): New.
1322 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
1323 make it clear that -fcse-skip-blocks is a no-op for backward compat.
1324 * passes.c (init_optimization_passes): Remove pass_gcse and
1325 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
1326 and cse_after_global_opts in place of pass_gcse. Schedule cprop
1327 instead of pass_jump_bypass.
1328
c685de4a
RG
13292009-04-27 Richard Guenther <rguenther@suse.de>
1330
1331 PR middle-end/39928
1332 * gimplify.c (gimplify_expr): If we are required to create
1333 a temporary make sure it ends up as register.
1334
72d41f29
L
13352009-04-27 H.J. Lu <hongjiu.lu@intel.com>
1336
1337 PR target/39903
1338 * config/i386/i386.c (construct_container): Don't call
1339 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
1340 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
1341
e97809c6
MM
13422009-04-27 Michael Matz <matz@suse.de>
1343
1344 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
1345 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
1346 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
1347 (dump_replaceable_exprs): Take a bitmap.
1348 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
1349 array.
1350 (expand_gimple_basic_block): Likewise.
1351 * tree-ssa-ter.c (struct temp_expr_table_d): Make
1352 replaceable_expressions member a bitmap.
1353 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
1354 (mark_replaceable): Likewise.
1355 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
1356 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
1357
211ca15c
RG
13582009-04-27 Richard Guenther <rguenther@suse.de>
1359
1360 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
1361 (verify_stmts): Dispatch to gimple/type verification code.
1362 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
1363 issue with call argument types.
1364
fca5f3d1
MM
13652009-04-27 Michael Matz <matz@suse.de>
1366
1367 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
1368 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
1369 to above.
1370
a1fa3e79 13712009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 1372 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
1373
1374 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
1375 a label's basic block.
1376 (mark_target_live_regs): Tidy and rework obsolete comments.
1377 Change back DF problem to LIVE. If a label starts a basic block,
1378 assume that all registers that used to be live then still are.
1379 (init_resource_info): If a label starts a basic block, set its
1380 BLOCK_FOR_INSN accordingly.
1381 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
1382
33b223c0
RG
13832009-04-27 Richard Guenther <rguenther@suse.de>
1384
1385 * tree-flow-inline.h (function_ann): Remove.
1386 (get_function_ann): Likewise.
1387 * tree-dfa.c (create_function_ann): Remove.
1388 * tree-flow.h (struct static_var_ann_d): Remove.
1389 (struct function_ann_d): Likewise.
1390 (union tree_ann_d): Remove fdecl member.
1391 (function_ann_t): Remove.
1392 (function_ann, get_function_ann, create_function_ann): Remove
1393 declarations.
1394
e3136fa2
UB
13952009-04-27 Uros Bizjak <ubizjak@gmail.com>
1396
1397 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
1398
f87c9042
JH
13992009-04-27 Jan Hubicka <jh@suse.cz>
1400
1401 * ipa-pure-const.c (struct funct_state_d): New fields
1402 state_previously_known, looping_previously_known; remove
1403 state_set_in_source.
1404 (analyze_function): Use new fields.
1405 (propagate): Avoid assumption that state_set_in_source imply
1406 nonlooping.
1407
1408 * tree-ssa-loop-niter.c (finite_loop_p): New function.
1409 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
1410 * cfgloop.h (finite_loop_p): Declare.
1411
33abd718
MM
14122009-04-26 Michael Matz <matz@suse.de>
1413
e3136fa2 1414 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 1415
ddc34084
MM
14162009-04-26 Michael Matz <matz@suse.de>
1417
1418 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
1419 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
1420 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
1421 pass_mark_used_blocks): Remove.
1422 * tree-optimize.c (pass_free_datastructures,
1423 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
1424 * passes.c (init_optimization_passes): Don't call
1425 pass_mark_used_blocks, remove dead code.
1426
1fec7ed4
L
14272009-04-26 H.J. Lu <hongjiu.lu@intel.com>
1428
1429 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
1430 * tree-ssa-live.h (register_ssa_partition): Likewise.
1431
4e3825db
MM
14322009-04-26 Michael Matz <matz@suse.de>
1433
1434 Expand from SSA.
1435 * builtins.c (fold_builtin_next_arg): Handle SSA names.
1436 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
1437 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
1438 SSA names.
1439 (compare_pairs): Swap cost comparison.
1440 (coalesce_ssa_name): Don't use change_partition_var.
1441 * tree-nrv.c (struct nrv_data): Add modified member.
1442 (finalize_nrv_r): Set it.
1443 (tree_nrv): Use it to update statements.
1444 (pass_nrv): Require PROP_ssa.
1445 * tree-mudflap.c (mf_decl_cache_locals,
1446 mf_build_check_statement_for): Use make_rename_temp.
1447 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
1448 * alias.c (find_base_decl): Handle SSA names.
1449 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
1450 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
1451 * rtl.h (set_reg_attrs_for_parm): Declare.
1452 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
1453 to "optimized", remove unused locals at finish.
1454 (execute_free_datastructures): Make global, call
1455 delete_tree_cfg_annotations.
1456 (execute_free_cfg_annotations): Don't call
1457 delete_tree_cfg_annotations.
1458
1459 * ssaexpand.h: New file.
1460 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 1461 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
1462 (expand_expr_real_1): Expand SSA names.
1463 * cfgexpand.c (toplevel): Include ssaexpand.h.
1464 (SA): New global variable.
1465 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
1466 (SSAVAR): New macro.
1467 (set_rtl): New helper function.
1468 (add_stack_var): Deal with SSA names, use set_rtl.
1469 (expand_one_stack_var_at): Likewise.
1470 (expand_one_stack_var): Deal with SSA names.
1471 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
1472 before unique numbers.
1473 (expand_stack_vars): Use set_rtl.
1474 (expand_one_var): Accept SSA names, add asserts for them, feed them
1475 to above subroutines.
1476 (expand_used_vars): Expand all partitions (without default defs),
1477 then only the local decls (ignoring those expanded already).
1478 (expand_gimple_cond): Remove edges when jumpif() expands an
1479 unconditional jump.
1480 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
1481 or remove abnormal edges. Ignore insns setting the LHS of a TERed
1482 SSA name.
1483 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
1484 members of SA; deal with PARM_DECL partitions here; expand
1485 all PHI nodes, free tree datastructures and SA. Commit instructions
1486 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
1487 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
1488 info and statements at start, collect garbage at finish.
1489 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
1490 (VAR_ANN_PARTITION) Remove.
1491 (change_partition_var): Don't declare.
1492 (partition_to_var): Always return SSA names.
1493 (var_to_partition): Only accept SSA names.
1494 (register_ssa_partition): Only check argument.
1495 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
1496 member.
1497 (delete_var_map): Don't free it.
1498 (var_union): Only accept SSA names, simplify.
1499 (partition_view_init): Mark only useful SSA names as used.
1500 (partition_view_fini): Only deal with SSA names.
1501 (change_partition_var): Remove.
1502 (dump_var_map): Use ssa_name instead of partition_to_var member.
1503 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
1504 basic blocks.
1505 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
1506 (struct _elim_graph): New member const_dests; nodes member vector of
1507 ints.
1508 (set_location_for_edge): New static helper.
1509 (create_temp): Remove.
1510 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 1511 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
1512 (new_elim_graph): Allocate const_dests member.
1513 (clean_elim_graph): Truncate const_dests member.
1514 (delete_elim_graph): Free const_dests member.
1515 (elim_graph_size): Adapt to new type of nodes member.
1516 (elim_graph_add_node): Likewise.
1517 (eliminate_name): Likewise.
1518 (eliminate_build): Don't take basic block argument, deal only with
1519 partition numbers, not variables.
1520 (get_temp_reg): New static helper.
1521 (elim_create): Use it, deal with RTL temporaries instead of trees.
1522 (eliminate_phi): Adjust all calls to new signature.
1523 (assign_vars, replace_use_variable, replace_def_variable): Remove.
1524 (rewrite_trees): Only do checking.
1525 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
1526 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
1527 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
1528 contains_tree_r, MAX_STMTS_IN_LATCH,
1529 process_single_block_loop_latch, analyze_edges_for_bb,
1530 perform_edge_inserts): Remove.
1531 (expand_phi_nodes): New global function.
1532 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
1533 functions, initialize new parameter, remember partitions having a
1534 default def.
1535 (finish_out_of_ssa): New global function.
1536 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
1537 don't reset in_ssa_p here, don't disable TER when mudflap.
1538 (pass_del_ssa): Remove.
1539 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
1540 partition members.
1541 (execute_free_datastructures): Declare.
1542 * Makefile.in (SSAEXPAND_H): New variable.
1543 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
1544 * basic-block.h (commit_one_edge_insertion): Declare.
1545 * passes.c (init_optimization_passes): Move pass_nrv and
1546 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
1547 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
1548 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
1549 (redirect_branch_edge): Deal with super block when expanding, split
1550 out jump patching itself into ...
1551 (patch_jump_insn): ... here, new static helper.
1552
17c665a9
MM
15532009-04-26 Michael Matz <matz@suse.de>
1554
1555 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
1556 beyond num_ssa_names.
1557 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
1558 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
1559
92061771
JJ
15602009-04-26 Jakub Jelinek <jakub@redhat.com>
1561
ce372372
JJ
1562 PR inline-asm/39543
1563 * fwprop.c (forward_propagate_asm): New function.
1564 (forward_propagate_and_simplify): Propagate also into __asm, if it
1565 doesn't increase the number of referenced registers.
1566
92061771
JJ
1567 PR c/39889
1568 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
1569
15702009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
1571
1572 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
1573 note_nonlocal_vla_type for nonlocal VLAs.
1574 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
1575 contains_remapped_vars, remap_vla_decls): New functions.
1576 (convert_nonlocal_reference_stmt): If not optimizing, call
1577 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
1578 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
1579 if it wasn't found in var_map.
1580 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
1581 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
1582 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
1583 declare_vars.
1584 * gimplify.c (nonlocal_vlas): New variable.
1585 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
1586 referenced VLAs.
1587 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 1588
4561e242
JJ
1589 * dwarf2out.c (loc_descr_plus_const): New function.
1590 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
1591 mem_loc_descriptor, loc_descriptor_from_tree_1,
1592 descr_info_loc, gen_variable_die): Use it.
1593
a9548ddf
JJ
1594 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
1595 !TREE_STATIC VAR_DECLs.
1596 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
1597 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
1598 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
1599 DECL_BY_REFERENCE is valid.
1600 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
1601 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
1602 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
1603 Copy DECL_BY_REFERENCE.
1604 (struct nesting_copy_body_data): New type.
1605 (nesting_copy_decl): New function.
1606 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
1607 if they have variable length.
1608
10555d08
MM
16092009-04-26 Michael Matz <matz@suse.de>
1610
1611 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
1612 mark new temporaries for renaming.
1613
e11187cc
JM
16142009-04-26 Joseph Myers <joseph@codesourcery.com>
1615
1616 PR c/39581
1617 * c-decl.c (global_bindings_p): Return negative value.
1618 (c_variable_size): New. Based on variable_size from
1619 stor-layout.c.
1620 (grokdeclarator): Call c_variable_size not variable_size.
1621
f6a51d31
UB
16222009-04-26 Uros Bizjak <ubizjak@gmail.com>
1623
1624 * config/i386/i386.c (print_operand) ['z']: Fix typo.
1625
4b97723d
KT
16262009-04-26 Kai Tietz <kai.tietz@onevision.com>
1627
1628 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
1629 Redefine it to just use mingw/include.
1630 (ASM_SPEC): Rules for -m32 and -m64.
1631 (LINK_SPEC): Use Likewise.
1632 (SPEC_32): New define.
1633 (SPEC_64): Likewise.
1634 (SUB_LINK_SPEC): Likewise.
1635 (MULTILIB_DEFAULTS): New define.
1636 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
1637 Add multilib options.
1638 (MULTILIB_DIRNAMES): Likewise.
1639 (MULTILIB_OSDIRNAMES): Likewise.
1640 (LIBGCC): Likewise.
1641 (INSTALL_LIBGCC): Likewise.
1642
991d6621
JM
16432009-04-26 Joseph Myers <joseph@codesourcery.com>
1644
1645 PR c/39556
1646 * c-tree.h (enum c_inline_static_type): New.
1647 (record_inline_static): Declare.
1648 * c-decl.c (struct c_inline_static, c_inline_statics,
1649 record_inline_static, check_inline_statics): New.
1650 (pop_file_scope): Call check_inline_statics.
1651 (start_decl): Call record_inline_static instead of pedwarning
1652 directly for static in inline function.
1653 * c-typeck.c (build_external_ref): Call record_inline_static
1654 instead of pedwarning directly for static referenced in inline
1655 function.
1656
4a81774c
SB
16572009-04-26 Steven Bosscher <steven@gcc.gnu.org>
1658
1659 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
1660 not new but only being rescanned.
1661 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
1662 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
1663 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
1664 record_set_info, compute_set, grealloc): Remove.
1665 (recompute_all_luids): New function.
1666 (gcse_main): Don't compute sets, and don't do related memory
1667 allocations/free-ing. If something changed before the end of the
1668 pass, update LUIDs using recompute_all_luids.
1669 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
1670 (free_gcse_mem): Don't free it either.
1671 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
1672 Use the df insn LUIDs.
1673 (load_killed_in_block): Likewise.
1674 (compute_hash_table_work): Don't compute reg_set_in_block.
1675 (compute_transp): Use DF_REG_DEF_CHAINs.
1676 (local_cprop_pass): Don't use compute_sets and related functions.
1677 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
1678 Use get_max_uid() instead of max_cuid.
1679 (insert_insn_end_basic_block, pre_insert_copy_insn,
1680 update_ld_motion_stores): Don't try to
1681 keep reg_set tables up to date.
1682 (pre_insert_copies): Use df insn LUIDs.
1683 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
1684 (reg_set_info): Don't use extra bitmap argument.
1685 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
1686 information to compute regs_set_in_block.
1687 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
1688 (bypass_jumps): Don't use compute_sets and friends.
1689
e8f99a9d
RW
16902009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1691
1692 PR testsuite/39710
1693 * opts.c (undocumented_msg): Do not leave blank even with
1694 ENABLE_CHECKING.
1695
6895bac8
JM
16962009-04-25 Joseph Myers <joseph@codesourcery.com>
1697
1698 * c-decl.c (build_enumerator): Allow values folding to integer
1699 constants but not integer constant expressions with a pedwarn if
1700 pedantic.
1701
24070fcb
JM
17022009-04-25 Joseph Myers <joseph@codesourcery.com>
1703
1704 PR c/39582
1705 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
1706 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
1707 type is an integer constant.
1708
d6d89aa1
UB
17092009-04-25 Uros Bizjak <ubizjak@gmail.com>
1710
1711 PR target/39897
1712 * config/i386/i386.c (print_operand) ['z']: Revert handling of
1713 HImode operands.
1714
92f6fd0b
JM
17152009-04-25 Joseph Myers <joseph@codesourcery.com>
1716
1717 PR c/39564
1718 * c-decl.c (grokdeclarator): Diagnose declarations of functions
1719 with variably modified return type and no storage class
1720 specifiers, except for the case of nested functions. Distinguish
1721 extern declarations of functions with variably modified return
1722 types from those of objects with variably modified types.
1723
a3710436
JH
17242009-04-25 Jan Hubicka <jh@suse.cz>
1725
1726 * tree.c (list_equal_p): New function.
1727 * tree.h (list_equal_p): Declare.
1728 * coretypes.h (edge_def, edge, const_edge, basic_block_def
1729 basic_block_def, basic_block, const_basic_block): New.
1730 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
1731 (redirect_eh_edge): New function.
1732 (make_eh_edge_update_phi): EH edges are not abnormal.
1733 * except.c: Include tree-flow.h.
1734 (list_match): New function.
1735 (eh_region_replaceable_by_p): New function.
1736 (replace_region): New function.
1737 (hash_type_list): New function.
1738 (hash_eh_region): New function.
1739 (eh_regions_equal_p): New function.
1740 (merge_peers): New function.
1741 (remove_unreachable_regions): Verify EH tree when checking;
1742 merge peers.
1743 (copy_eh_region_1): New function.
1744 (copy_eh_region): New function.
1745 (push_reachable_handler): New function.
1746 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
1747 regions without label but with live RESX.
1748 * except.h (redirect_eh_edge_to_label): New.
1749 * tree-flow.h (redirect_eh_edge): New.
1750 * coretypes.h (edge_def, edge, const_edge, basic_block_def
1751 basic_block_def, basic_block, const_basic_block): Remove.
1752 * Makefile.in (except.o): Add dependency on tree-flow.h
1753 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
1754 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
1755 Remove.
1756
3764d512
EB
17572009-04-25 Eric Botcazou <ebotcazou@adacore.com>
1758
1759 PR bootstrap/39645
1760 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
1761 on the destination of memcpy.
1762
1c62e8f2
PB
17632009-04-25 Paolo Bonzini <bonzini@gnu.org>
1764
1765 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
1766 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
1767 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
1768
496a4ef5
JH
17692009-04-25 Jan Hubicka <jh@suse.cz>
1770
1771 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
1772 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
1773 to be reached by different label than left.
1774 (update_eh_edges): Update comment; remove edge_to_remove if possible
1775 and return true if suceeded.
1776 (cleanup_empty_eh): Accept sharing map; handle shared regions.
1777 (cleanup_eh): Compute sharing map.
1778 * except.c (remove_eh_handler_and_replace): Add argument if we should
1779 update regions.
1780 (remove_unreachable_regions): Update for label sharing.
1781 (label_to_region_map): Likewise.
1782 (get_next_region_sharing_label): New function.
1783 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
1784 prev_try pointers.
1785 (remove_eh_handler): Update.
1786 (remove_eh_region_and_replace_by_outer_of): New function.
1787 * except.h (struct eh_region): Add next_region_sharing_label.
1788 (remove_eh_region_and_replace_by_outer_of,
1789 get_next_region_sharing_label): Declare.
1790 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
1791
17922009-04-25 Jan Hubicka <jh@suse.cz>
1793
1794 * tree-cfg.c (split_critical_edges): Split also edges where we can't
1795 insert code even if they are not critical.
1796
17972009-04-25 Jan Hubicka <jh@suse.cz>
1798
1799 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1800 (gimple_can_remove_branch_p): EH edges won't remove branch by
1801 redirection.
1802 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
1803 updating of non-abnormal EH edges.
1804 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1805 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
1806 (split_critical_edges): Split also edges where emitting code on them
1807 will lead to splitting later.
1808
a3a5e3d1
UB
18092009-04-25 Uros Bizjak <ubizjak@gmail.com>
1810 H.J. Lu <hongjiu.lu@intel.com>
1811
1812 PR target/39590
1813 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
1814 the configured assembler supports fildq and fistpq mnemonics.
1815 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
1816 * configure: Regenerated.
1817 * config.in: Ditto.
1818
1819 * config/i386/i386.c (print_operand): Handle 'Z'.
1820 ['z']: Remove handling of special fild/fist suffixes.
1821 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
1822 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
1823 suffix of fild insn.
1824 (*floatsi<mode>2_vector_mixed): Ditto.
1825 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
1826 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
1827 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1828 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
1829 * config/i386/gas.h (GAS_MNEMONICS): Remove.
1830
23750d7f
BE
18312009-04-25 Ben Elliston <bje@au.ibm.com>
1832
1833 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
1834 the source of a set operation.
1835
e6ff3083
AS
18362009-04-25 Anatoly Sokolov <aesok@post.ru>
1837
1838 * target.h (struct gcc_target): Add case_values_threshold field.
1839 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
1840 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
1841 * targhooks.c (default_case_values_threshold): New function.
1842 * targhooks.h (default_case_values_threshold): Declare function.
1843 * stmt.c (expand_case): Use case_values_threshold target hook.
1844 * expr.h (case_values_threshold): Remove declartation.
1845 * expr.c (case_values_threshold): Remove function.
1846 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
1847
1848 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
1849 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1850 (avr_case_values_threshold): Declare as static.
1851 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
1852
1853 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
1854 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1855 (mn10300_case_values_threshold): New function.
1856
569c72fc
L
18572009-04-24 H.J. Lu <hongjiu.lu@intel.com>
1858
1859 * ira.c (setup_cover_and_important_classes): Add enum cast.
1860
ff3cb468
VM
18612009-04-24 Vladimir Makarov <vmakarov@redhat.com>
1862
1863 * genpreds.c (write_enum_constraint_num): Output definition of
1864 CONSTRAINT_NUM_DEFINED_P macro.
1865 * ira.c (setup_cover_and_important_classes): Use
1866 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
1867
4f7be849
DD
18682009-04-24 DJ Delorie <dj@redhat.com>
1869
1870 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
1871 __SH2A_SINGLE_ONLY__ also.
1872
735b94a7
SE
18732009-04-24 Steve Ellcey <sje@cup.hp.com>
1874
1875 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
1876 (movdf_internal): Ditto.
1877 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
1878 SFmode and DFmode constants.
1879 (ia64_print_operand): Add 'G' format for printing
1880 floating point constants.
1881
77a30264
RG
18822009-04-24 Richard Guenther <rguenther@suse.de>
1883
1884 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
1885 from unsigned additions.
1886
2b6da65c
JM
18872009-04-24 Joseph Myers <joseph@codesourcery.com>
1888
1889 * c-typeck.c (set_init_index): Allow array designators that are
1890 not integer constant expressions with a pedwarn if pedantic.
1891
f5a17c43
BS
18922009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
1893
1894 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
1895 zero if no overlap in nonzero bits between the operands.
1896
32e8bb8e
ILT
18972009-04-24 Ian Lance Taylor <iant@google.com>
1898
1899 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
1900 (record_dead_and_set_regs): Likewise.
1901 * df.h (struct df_mw_hardreg): Change flags field to int.
1902 (struct df_base_ref): Likewise.
1903 (struct df): Change changeable_flags field to int.
1904 * df-scan.c (df_defs_record): Change clobber_flags to int.
1905 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
1906 constants rather than #define macros.
1907 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
1908 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
1909 (enum dwarf_calling_convention): Likewise.
1910 (enum dwarf_line_number_x_ops): Likewise.
1911 (enum dwarf_call_frame_info): Likewise.
1912 (enum dwarf_source_language): Likewise.
1913 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
1914 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
1915 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
1916 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
1917 * genrecog.c (maybe_both_true_2): Change c to int.
1918 (write_switch): Likewise. Add cast to enum type.
1919 * gimplify.c (gimplify_omp_for): Handle return values from
1920 gimplify_expr using MIN rather than bitwise or.
1921 (gimplify_expr): Add cast to enum type.
1922 * ipa-prop.c (update_jump_functions_after_inlining): Change
1923 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
1924 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
1925 Add casts to enum type.
32e8bb8e
ILT
1926 (setup_cover_and_important_classes): Change cl to int. Add casts
1927 to enum type.
1928 (setup_class_translate): Change cl and mode to int.
1929 (ira_init_once): Change mode to int.
1930 (free_register_move_costs): Likewise.
1931 (setup_prohibited_mode_move_regs): Add casts to enum type.
1932 * langhooks.c (add_builtin_function_common): Rework assertion that
1933 value fits bitfield.
1934 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
1935 * omega.c (omega_do_elimination): Avoid math on enum types.
1936 * optabs.c (expand_vec_shift_expr): Remove casts to int.
1937 * opts.c (set_debug_level): Change 2 to enum constant. Use new
1938 int local to handle integral_argment value.
1939 * regmove.c (try_auto_increment): Change PUT_MODE to
1940 PUT_REG_NOTE_KIND.
1941 * reload.c (push_secondary_reload): Add casts to enum type.
1942 (secondary_reload_class, find_valid_class): Likewise.
1943 * reload1.c (emit_input_reload_insns): Likewise.
1944 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
1945 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
1946 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
1947 constant.
1948 * tree.c (build_common_builtin_nodes): Add casts to enum type.
1949 * tree-complex.c (complex_lattice_t): Typedef to int rather than
1950 enum type.
1951 (expand_complex_libcall): Add casts to enum type.
1952 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
1953 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
1954 with ERROR_MARK, not NUM_TREE_CODES.
1955 (vect_create_epilog_for_reduction): Likewise.
1956 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 1957 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
1958 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
1959 enum machine_mode.
1960 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
1961 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 1962 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
1963 * var-tracking.c (get_init_value): Change return type to enum
1964 var_init_status.
1965 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
1966 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
1967 arm_fp_model.
1968 (arm_override_options): Add casts to enum type.
1969 (arm_emit_tls_decoration): Likewise.
1970 * config/i386/i386.c (ix86_function_specific_restore): Add casts
1971 to enum type.
1972 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
1973 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
1974 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
1975 enum type.
1976 * config/s390/s390.c (code_for_builtin_64): Change to array of
1977 enum insn_code.
1978 (code_for_builtin_31): Likewise.
1979 (s390_expand_builtin): Change code_for_builtin to enum insn_code
1980 const *.
1981 * config/sparc/sparc.c (sparc_override_options): Change value
1982 field in struct code_model to enum cmodel. In initializer change
1983 0 to NULL and add cast to enum type.
1984
1985 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
1986 Change all callers. Issue a -Wc++-compat warning using
1987 lhs_origtype if necessary.
1988 (convert_for_assignment): Issue -Wc++-compat warnings about
1989 invalid conversions to enum type on assignment.
1990 * c-common.h (build_modify_expr): Update declaration.
1991
ac4fc08a
NC
19922009-04-24 Nick Clifton <nickc@redhat.com>
1993
1994 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
1995 (function_arg_advance): Likewise.
1996 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
1997 5th alternative.
1998
f22e891a
AK
19992009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
2000
2001 * config/s390/constraints.md ('I', 'J'): Fix condition.
2002
ad58aabe
DN
20032009-04-24 Diego Novillo <dnovillo@google.com>
2004
2005 * gengtype-parse.c (parse_error): Add newline after message.
2006
879a4a01
L
20072009-04-24 H.J. Lu <hongjiu.lu@intel.com>
2008
2009 * config/i386/sse.md (avxmodesuffixs): Removed.
2010 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
2011 (*avx_pinsr<ssevecsize>): This.
2012
f63426af
BS
20132009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
2014
2015 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
2016 follow chains of regs with a single definition, and allow expressions
2017 that are function_invariant_p.
ce72fe6c 2018 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 2019
30349c74
PB
20202009-04-24 Paolo Bonzini <bonzini@gnu.org>
2021
2022 PR middle-end/39867
2023 * fold-const.c (fold_cond_expr_with_comparison): When folding
2024 > and >= to MAX, make sure the MAX uses the same type as the
2025 comparison's operands.
2026
8d8256c1
NC
20272009-04-24 Nick Clifton <nickc@redhat.com>
2028
2029 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
2030 addressing for DImode accesses.
2031 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 2032 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 2033
6216f94e
JJ
20342009-04-24 Jakub Jelinek <jakub@redhat.com>
2035
2036 PR rtl-optimization/39794
2037 * alias.c (canon_true_dependence): Add x_addr argument.
2038 * rtl.h (canon_true_dependence): Adjust prototype.
2039 * cse.c (check_dependence): Adjust canon_true_dependence callers.
2040 * cselib.c (cselib_invalidate_mem): Likewise.
2041 * gcse.c (compute_transp): Likewise.
2042 * dse.c (scan_reads_nospill): Likewise.
2043 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
2044 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
2045 canon_base_addr of the group, plus optional offset.
2046 (struct group_info): Rename canon_base_mem to
2047 canon_base_addr.
2048 (get_group_info): Set canon_base_addr to canon_rtx of base, not
2049 canon_rtx of base_mem.
2050
6de7a512
PB
20512009-04-23 Paolo Bonzini <bonzini@gnu.org>
2052
2053 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
2054 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
2055
4a3a2376
UW
20562009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2057
2058 * config/spu/spu-builtins.h: Delete file.
2059
2060 * config/spu/spu.h (enum spu_builtin_type): Move here from
2061 spu-builtins.h.
2062 (struct spu_builtin_description): Likewise. Add GTY marker.
2063 Do not use enum spu_function_code or enum insn_code.
2064 (spu_builtins): Add extern declaration.
2065
2066 * config/spu/spu.c: Do not include "spu-builtins.h".
2067 (enum spu_function_code, enum spu_builtin_type_index,
2068 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
2069 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
2070 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
2071 unsigned_V2DI_type_node): Move here from spu-builtins.h.
2072 (spu_builtin_types): Make static. Add GTY marker.
2073 (spu_builtins): Add extern declaration with GTY marker.
2074 Include "gt-spu.h".
2075
2076 * config/spu/spu-c.c: Do not include "spu-builtins.h".
2077 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
2078 Check programmatically whether all parameters are scalar.
2079
2080 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
2081
bbaba73f
EB
20822009-04-23 Eric Botcazou <ebotcazou@adacore.com>
2083
2084 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
2085 assignment from the constructor either if the target is volatile.
2086
ee93c1c6
DJ
20872009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
2088
2089 * config/arm/arm.md (insv): Do not share operands[0].
2090
b2f21330
NS
20912009-04-23 Nathan Sidwell <nathan@codesourcery.com>
2092
2093 * config/vxlib-tls.c (active_tls_threads): Delete.
2094 (delete_hook_installed): New.
2095 (tls_delete_hook): Don't delete the delete hook.
2096 (tls_destructor): Delete it here.
2097 (__gthread_set_specific): Adjust installing the delete hook.
2098 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
2099 __gthread_leave_tsd_dtor_context.
2100
4782dfa7
RAE
21012009-04-23 Rafael Avila de Espindola <espindola@google.com>
2102
2103 * c-format.c (gcc_tdiag_char_table): Add support for %E.
2104
bf758008
UB
21052009-04-23 Uros Bizjak <ubizjak@gmail.com>
2106
2107 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
2108 enum type.
2109 (alpha_rtx_costs): Ditto.
2110 (emit_unlikely_jump): Use add_reg_note.
2111 (emit_frame_store_1): Ditto.
2112 (alpha_expand_prologue): Ditto.
2113 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2114 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
2115
7323a100
NC
21162009-04-23 Nick Clifton <nickc@redhat.com>
2117
2118 * config/v850/v850.md (epilogue): Remove suppressed code.
2119 (return): Rename to return_simple and remove test of frame size.
2120 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
2121 to gen_return_simple.
2122
360032ba
JY
21232009-04-22 Jing Yu <jingyu@google.com>
2124
2125 PR testsuite/39781
2126 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
2127
53650abe
AP
21282009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
2129
2130 PR C/31499
2131 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
2132 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
2133 value is a VECTOR_CST, the element type is the element type of the
2134 vector.
2135
89043e8a
DD
21362009-04-22 DJ Delorie <dj@redhat.com>
2137
2138 * config/m32c/m32c.h: Update GTY annotations to new syntax.
2139
023f059b
JJ
21402009-04-22 Jakub Jelinek <jakub@redhat.com>
2141
2142 * alias.c (find_base_term): Move around LO_SUM case, so that
2143 CONST falls through into PLUS/MINUS handling.
2144
2c0eba5a
JJ
2145 PR c/39855
2146 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
2147 into 0, use omit_one_operand.
2148
9a461028
BE
21492009-04-23 Ben Elliston <bje@au.ibm.com>
2150
2151 * config/rs6000/linux-unwind.h (get_regs): Remove type
2152 puns. Change the type of `pc' to an array of unsigned ints and
2153 update all users. Constify frame24.
2154
653e2568
DD
21552009-04-22 DJ Delorie <dj@redhat.com>
2156
2157 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
2158 declarations before code.
2159 (current_function_special_page_vector): Likewise.
2160 (m32c_expand_insv): Silence a warning.
2161
60839f5d 21622009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
2163
2164 * alias.c: Update GTY annotations to new syntax.
2165 * basic-block.h: Likewise.
2166 * bitmap.h: Likewise.
2167 * c-common.h: Likewise.
2168 * c-decl.c: Likewise.
2169 * c-parser.c: Likewise.
2170 * c-pragma.c: Likewise.
2171 * c-tree.h: Likewise.
2172 * cfgloop.h: Likewise.
2173 * cgraph.h: Likewise.
2174 * config/alpha/alpha.c: Likewise.
2175 * config/arm/arm.h: Likewise.
2176 * config/avr/avr.h: Likewise.
2177 * config/bfin/bfin.c: Likewise.
2178 * config/cris/cris.c: Likewise.
2179 * config/darwin.c: Likewise.
2180 * config/frv/frv.c: Likewise.
2181 * config/i386/i386.c: Likewise.
2182 * config/i386/i386.h: Likewise.
2183 * config/i386/winnt.c: Likewise.
2184 * config/ia64/ia64.h: Likewise.
2185 * config/iq2000/iq2000.c: Likewise.
2186 * config/mips/mips.c: Likewise.
2187 * config/mmix/mmix.h: Likewise.
2188 * config/pa/pa.c: Likewise.
2189 * config/pa/pa.h: Likewise.
2190 * config/rs6000/rs6000.c: Likewise.
2191 * config/s390/s390.c: Likewise.
2192 * config/sparc/sparc.c: Likewise.
2193 * config/xtensa/xtensa.c: Likewise.
2194 * cselib.h: Likewise.
2195 * dbxout.c: Likewise.
2196 * dwarf2out.c: Likewise.
2197 * except.c: Likewise.
2198 * except.h: Likewise.
2199 * fixed-value.h: Likewise.
2200 * function.c: Likewise.
2201 * function.h: Likewise.
2202 * gimple.h: Likewise.
2203 * integrate.c: Likewise.
2204 * optabs.c: Likewise.
2205 * output.h: Likewise.
2206 * real.h: Likewise.
2207 * rtl.h: Likewise.
2208 * stringpool.c: Likewise.
2209 * tree-data-ref.c: Likewise.
2210 * tree-flow.h: Likewise.
2211 * tree-scalar-evolution.c: Likewise.
2212 * tree-ssa-address.c: Likewise.
2213 * tree-ssa-alias.h: Likewise.
2214 * tree-ssa-operands.h: Likewise.
2215 * tree.c: Likewise.
2216 * tree.h: Likewise.
2217 * varasm.c: Likewise.
2218 * varray.h: Likewise.
2219 * vec.h: Likewise.
bf758008 2220 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
2221 * doc/gty.texi: Update GTY documentation to new syntax.
2222 * gengtype-lex.l: Enforce attribute-like syntax for GTY
2223 annotations on structs.
2224 * gengtype-parse.c: Likewise.
2225
a123d175
MH
22262009-04-22 Mark Heffernan <meheff@google.com>
2227
bf758008 2228 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 2229
4c7c486a
KH
22302009-04-22 Kazu Hirata <kazu@codesourcery.com>
2231
2232 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
2233 where appropriate.
2234
6e782a29
KH
22352009-04-22 Kazu Hirata <kazu@codesourcery.com>
2236
2237 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
2238 the same as a PLUS without a shift. Increase the cost of a
2239 CONST_INT in MULT.
2240
38d2336a
MLI
22412009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2242
2243 * Makefile.in: Update dependencies.
bf758008 2244 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
2245 * errors.h: Remove bogus comment about compatibility.
2246 (warning): Update declaration.
2247 * genautomata.c: Update all calls to warning.
2248 * gimple.c: Do not include errors.h. Include toplev.h.
2249 * tree-ssa-structalias.c: Do not include errors.h.
2250 * omega.c: Likewise.
2251 * tree-ssa-reassoc.c: Likewise.
2252 * config/spu/spu-c.c: Likewise.
2253 * config/spu/t-spu-elf: Update dependencies.
2254
aea4deba
RG
22552009-04-22 Richard Guenther <rguenther@suse.de>
2256
2257 PR tree-optimization/39824
2258 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
2259 make sure the types are compatible.
2260
cfc93532
MLI
22612009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2262
2263 PR c++/14875
2264 * c-common.c (c_parse_error): Take a token_flags parameter.
2265 Use token_type for the token type instead.
2266 Pass token_flags to cpp_type2name.
2267 * c-common.h (c_parse_error): Update declaration.
2268 * c-parser.c (c_parser_error): Pass 0 as token flags.
2269
8632d02a
AB
22702009-04-22 Andrey Belevantsev <abel@ispras.ru>
2271
2272 PR rtl-optimization/39580
2273 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
2274
4c33221c
UW
22752009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2276
2277 * function.c (expand_function_end): Do not emit a jump to the "naked"
2278 return label for fall-through returns.
2279 * except.c (sjlj_emit_function_exit): Always place the call to the
2280 unregister function at the location installed by expand_function_end.
2281
9925bce0
RG
22822009-04-22 Richard Guenther <rguenther@suse.de>
2283
2284 PR tree-optimization/39845
2285 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
2286 (gen_inbound_check): Likewise.
2287
24a40b35
NS
22882009-04-22 Nathan Sidwell <nathan@codesourcery.com>
2289
2290 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
2291 padding for PPC.
2292 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
2293 * config/vxlib.c (__gthread_once): Add race guard for PPC.
2294
6c34a092
PB
22952009-04-22 Paolo Bonzini <bonzini@gnu.org>
2296
2297 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
2298 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
2299 shift counts to avoid out-of-bounds array accesses.
2300
baa48dfa
PB
23012009-04-22 Paolo Bonzini <bonzini@gnu.org>
2302
2303 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
2304 (Pmode): Move above.
2305
7d83f4f5
UB
23062009-04-22 Uros Bizjak <ubizjak@gmail.com>
2307
2308 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
2309 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
2310 GET_CODE macro. Use IN_RANGE macro where appropriate.
2311 * config/alpha/alpha.h: Ditto.
2312 * config/alpha/alpha.md: Ditto.
2313 * config/alpha/constraints.md: Ditto.
2314 * config/alpha/predicates.md: Ditto.
2315
3ad606bc
PB
23162009-04-22 Paolo Bonzini <bonzini@gnu.org>
2317
2318 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
2319 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2320 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2321 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2322 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2323 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2324 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2325 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2326 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2327 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2328 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2329 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2330 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2331 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2332 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2333 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2334 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2335 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2336 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2337 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2338 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2339 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2340 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2341 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2342 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2343 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2344 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2345
3cabd6d1
LB
23462009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2347
2348 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
2349 references from comments.
2350 * cfgbuild.c: (count_basic_blocks): Delete.
2351 (find_basic_blocks_1): Delete.
2352 (find_basic_blocks): Delete.
2353 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 2354 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
2355 * except.h (finish_eh_generation): Delete.
2356 * basic-block.h (find_basic_blocks): Delete.
2357 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
2358
270d1bcd
DK
23592009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
2360
2361 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
2362 (sdbout_parms): Likewise.
2363
b757d36f
KK
23642009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
2365
2366 * config/sh/sh.c (prepare_cbranch_operands): Use
2367 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
2368 (expand_cbranchdi4): Likewise.
2369 (from_compare): Add cast to enum type.
2370 (expand_cbranchsi4): Use add_reg_note.
2371 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
2372 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
2373 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
2374 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2375 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
2376 instead of CODE_FOR_nothing.
2377 (cbranchdi4): Likewise. Fix the order of arguments for
2378 gen_rtx_fmt_ee.
2379 (push_fpscr): Use add_reg_note.
2380 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
2381 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
2382
ad41bd84
JM
23832009-04-21 Joseph Myers <joseph@codesourcery.com>
2384
2385 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
2386 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2387 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2388 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
2389 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
2390 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
2391 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
2392 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
2393 config/alpha/x-vms, config/arc/t-arc,
2394 config/arm/README-interworking, config/arm/arm-c.c,
2395 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
2396 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
2397 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
2398 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
2399 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
2400 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
2401 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
2402 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
2403 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
2404 config/cris/t-elfmulti, config/crx/t-crx,
2405 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
2406 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
2407 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
2408 config/h8300/t-h8300, config/i386/athlon.md,
2409 config/i386/darwin-libgcc.10.4.ver,
2410 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
2411 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
2412 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
2413 config/i386/t-linux64, config/i386/t-nwld,
2414 config/i386/t-rtems-i386, config/i386/t-sol2-10,
2415 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
2416 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
2417 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
2418 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
2419 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
2420 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
2421 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
2422 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
2423 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
2424 config/m68k/t-uclinux, config/mcore/t-mcore,
2425 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
2426 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
2427 config/mips/crtn.asm, config/mips/irix-crti.asm,
2428 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
2429 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
2430 config/mips/mips-fixed.md, config/mips/sb1.md,
2431 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
2432 config/mips/t-iris6, config/mips/t-isa3264,
2433 config/mips/t-libgcc-mips16, config/mips/t-linux64,
2434 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
2435 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
2436 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
2437 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
2438 config/mn10300/t-linux, config/mn10300/t-mn10300,
2439 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
2440 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
2441 config/picochip/libgccExtras/clzsi2.asm,
2442 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
2443 config/rs6000/darwin-libgcc.10.4.ver,
2444 config/rs6000/darwin-libgcc.10.5.ver,
2445 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
2446 config/rs6000/t-aix43, config/rs6000/t-aix52,
2447 config/rs6000/t-darwin, config/rs6000/t-fprules,
2448 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
2449 config/rs6000/t-lynx, config/rs6000/t-netbsd,
2450 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
2451 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
2452 config/rs6000/t-rtems, config/rs6000/t-spe,
2453 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
2454 config/score/t-score-elf, config/sh/divcost-analysis,
2455 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
2456 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
2457 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
2458 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
2459 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
2460 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
2461 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
2462 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
2463 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
2464 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
2465 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
2466 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
2467 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
2468 limitx.h, version.c, xcoff.h: Add copyright and license notices.
2469 * config/h8300/genmova.sh: Include copyright and license notices
2470 in generated output.
2471 * config/h8300/mova.md: Regenerate.
2472 * doc/install.texi2html: Include word "Copyright" in copyright
2473 notice and use name "Free Software Foundation, Inc.".
2474 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2475 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2476 ChangeLog-2007, ChangeLog-2008: Correct dates.
2477
ca80e52b
EB
24782009-04-21 Eric Botcazou <ebotcazou@adacore.com>
2479
2480 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
2481 NE_EXPR operations as well.
2482 * c-parser.c (c_parser_condition): Do not set location information on
2483 the condition.
2484 (c_parser_conditional_expression): Likewise.
2485 (c_parser_binary_expression): Set location information on operators.
2486 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
2487 TRUTH_NOT_EXPR has been folded.
2488 * fold-const.c (fold_truth_not_expr): Copy location information from
2489 the incoming expression to the outgoing one.
2490 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
2491 recursive calls on the LHS of the operator but pass that of the
2492 operator to recursive calls on the RHS of the operator. Set it
2493 on the COND_EXPR.
2494 (shortcut_cond_expr): Set the locus of the operator on the second
2495 COND_EXPR and that of the expression on the first in degenerate cases.
2496 Pass the locus of the expression to calls to shortcut_cond_r.
2497 Set the locus of the 'then' block on the associated jump, if any.
2498 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
2499 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
2500 expression to call to gimplify_boolean_expr.
2501
35091630
KT
25022009-04-21 Kai Tietz <kai.tietz@onevision.com>
2503
2504 * config.gcc: Add additional configuration for
2505 i686-w64-mingw* and x86_64-w64-mingw* triplet.
2506 * config/i386/mingw-w64.h: New mingw-w64 specific header.
2507 (CPP_SPEC): Redefine for allowing -municode option.
2508 (STARTFILE_SPEC): Likewise.
2509 * config/i386/t-mingw-w64: New.
2510 * config/i386/mingw-w64.opt: New.
2511 (municode): Add new target option.
2512 * doc/invoke.texi (municode): Add documentation for new option.
2513
0267afc4
ILT
25142009-04-21 Ian Lance Taylor <iant@google.com>
2515
2516 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2517 Correct test for number of arguments.
2518 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2519
2ba9daa7
AS
25202009-04-21 Andreas Schwab <schwab@linux-m68k.org>
2521
2522 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
2523 argument of emit_library_call.
2524
ad8a1ac0
RG
25252009-04-21 Richard Guenther <rguenther@suse.de>
2526
2527 PR middle-end/39829
2528 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
2529 inside VIEW_CONVERT_EXPRs.
2530
7156c8ab
MJ
25312009-04-21 Martin Jambor <mjambor@suse.cz>
2532
2533 * tree-switch-conversion.c (build_constructors): Split a long line.
2534 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
2535 (build_one_array): Create assigns of constants if possible, do not
2536 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
2537 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
2538 make_rename_temp. Do not call mark_symbols_for_renaming, call
2539 update_stmt.
2540 (gen_def_assigns): Do not call mark_symbols_for_renaming or
2541 find_new_referenced_vars, call update_stmt.
2542 (gen_inbound_check): Use create_tmp_var and create ssa names manually
2543 instead of calling make_rename_temp. Do not call
2544 find_new_referenced_vars or mark_symbols_for_renaming, call
2545 update_stmt.
2546
2970ccb3
RG
25472009-04-21 Richard Guenther <rguenther@suse.de>
2548
2549 PR tree-optimization/39827
7d83f4f5 2550 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
2551 (tree_ssa_phiprop): Pass the correct array size.
2552
47f402d1
UB
25532009-04-21 Uros Bizjak <ubizjak@gmail.com>
2554
2555 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
2556
1e4ae551
MLI
25572009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
2558
2559 PR 16202
2560 * c-typeck.c (lvalue_p): Move declaration ...
2561 * c-common.h (lvalue_p): ... to here.
2562 * c-common.c (candidate_equal_p): New.
2563 (add_tlist): Use it.
2564 (merge_tlist): Use it.
2565 (warn_for_collisions_1): Likewise.
2566 (warning_candidate_p): Accept more candidates.
2567 (verify_tree): A warning candidate can be an expression. Use
2568 candidate_equal_p.
2569
244609a6
BE
25702009-04-21 Ben Elliston <bje@au.ibm.com>
2571
2572 PR target/5267
2573 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2574 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
2575 options. Remove -mcall-solaris documentation.
2576
9c650d90
MLI
25772009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2578
2579 PR c++/13358
2580 * doc/invoke.texi (-Wlong-long): Update description.
2581 * c-lex (interpret_integer): Only warn if there was no previous
2582 overflow and -Wlong-long is enabled.
2583 * c-decl.c (declspecs_add_type): Drop redundant flags.
2584 * c.opt (Wlong-long): Init to -1.
2585 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
2586 and front-end warn_long_long. Wlong-long only depends on other
2587 flags if it is uninitialized.
2588 * c-parser.c (disable_extension_diagnostics): warn_long_long is
2589 the same for CPP and FE.
2590 (restore_extension_diagnostics): Likewise.
2591
bbbbb16a
ILT
25922009-04-20 Ian Lance Taylor <iant@google.com>
2593
2594 Fix enum conversions which are invalid in C++:
47f402d1
UB
2595 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
2596 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
2597 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
2598 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 2599 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 2600 (dbxout_parms): Likewise.
47f402d1 2601 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
2602 (df_clear_flags): Likewise.
2603 * df-problems.c (df_rd_bb_local_compute_process_def): Change
2604 top_flag parameter to int.
2605 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
2606 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
2607 Remove cast.
bbbbb16a
ILT
2608 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
2609 (df_ref_create_structure, df_def_record_1): Likewise.
2610 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
2611 (df_notes_rescan): Change 0 to VOIDmode in function call.
2612 (df_get_call_refs, df_insn_refs_collect): Likewise.
2613 (df_bb_regs_collect): Likewise.
2614 (df_entry_block_defs_collect): Likewise.
2615 (df_exit_block_uses_collect): Likewise.
2616 * df.h: Update declarations.
2617 * double-int.c (double_int_divmod): Add cast to enum type.
2618 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
2619 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
2620 (based_loc_descr): Likewise.
2621 (loc_descriptor_from_tree_1): Change first_op and second_op to
2622 enum dwarf_location_atom. Add cast to enum type.
2623 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 2624 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
2625 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
2626 (do_store_flag): Likewise.
2627 * fixed-value.h (struct fixed_value): Change mode to enum
2628 machine_mode.
47f402d1 2629 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
2630 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
2631 function call.
2632 (insert_insn_decl, insert_decl, insert_state): Likewise.
2633 (automata_list_finish): Likewise.
2634 * genrecog.c (process_define_predicate): Add cast to enum type.
2635 * gensupport.c (init_predicate_table): Add cast to enum type.
2636 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
2637 function call.
2638 (gimple_build_call_1, gimple_build_label): Likewise.
2639 (gimple_build_goto, gimple_build_asm_1): Likewise.
2640 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 2641 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
2642 (enum fallback): Rename from enum fallback_t.
2643 (fallback_t): Typedef as int.
2644 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
2645 GSI_SAME_STMT in function call.
2646 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
2647 enum type.
2648 (setup_reg_class_relations): Likewise.
47f402d1 2649 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
2650 (setup_prohibited_class_mode_regs): Add cast to enum type.
2651 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 2652 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
2653 (record_address_regs): Change i to enum reg_class.
2654 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
2655 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
2656 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
2657 (GET_MODE_2XWIDER_MODE): Likewise.
2658 (GET_CLASS_NARROWEST_MODE): Likewise.
2659 * omp-low.c (expand_omp_for): Add cast to enum type.
2660 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
2661 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
2662 * postreload.c (reload_cse_simplify_operands): Change rclass local
2663 to enum reg_class.
2664 * predict.c (combine_predictions_for_insn): Change best_predictor
2665 and predictor to enum br_predictor.
2666 (combine_predictions_for_bb): Likewise.
2667 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
2668 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 2669 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
2670 * reginfo.c (init_move_cost): Add casts to enum type.
2671 (init_reg_sets_1, init_fake_stack_mems): Likewise.
2672 * regmove.c (regclass_compatible_p): Change class0 and class1 to
2673 enum reg_class.
2674 * reload.c (find_valid_class): Add casts to enum type.
2675 (push_reload): Change 0 to NO_REGS in function call.
2676 (find_reloads): Change this_alternative to array of enum
2677 reg_class. Remove some now-unnecessary casts.
2678 (make_memloc): Change 0 to VOIDmode in function call.
2679 * reload1.c (reload): Change 0 to VOIDmode in function call.
2680 (eliminate_regs_1, elimination_effects): Likewise.
2681 (eliminate_regs_in_insn): Likewise.
2682 (emit_input_reload_insns): Add cast to enum type.
2683 (delete_output_reload): Change 0 to VOIDmode in function call.
2684 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
2685 to enum type in function call.
2686 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
2687 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 2688 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
2689 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
2690 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
2691 (dump_function): Likewise.
2692 * tree-dump.h: Update declarations.
2693 * tree-pass.h: Update declarations.
2694 * varasm.c (assemble_integer): Change mclass to enum mode_class.
2695 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
2696 enum type.
2697 (arm_rtx_costs_1): Correct parenthesization.
2698 (arm_rtx_costs): Add casts to enum type.
2699 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
2700 (vfp_emit_fstmd): Use add_rg_note.
2701 (emit_multi_reg_push, emit_sfm): Likewise.
2702 (thumb_set_frame_pointer): Likewise.
2703 (arm_expand_prologue): Likewise.
2704 (arm_regno_class): Change return type to enum reg_class.
2705 (thumb1_expand_prologue): Use add_reg_note.
2706 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
2707 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
2708 in function call.
2709 * config/arm/gentune.sh: Add cast to enum type.
2710 * config/arm/arm-tune.md: Rebuild.
2711 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
2712 (ix86_split_fp_branch, predict_jump): Likewise.
2713 (ix86_expand_multi_arg_builtin): Change sub_code from enum
2714 insn_code to enum rtx_code.
2715 (ix86_builtin_vectorized_function): Add cast to enum type.
2716 * config/i386/i386.md (truncdfsf2): Change slot to enum
2717 ix86_stack_slot.
2718 (truncxf<mode>2, isinf<mode>2): Likewise.
2719 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
2720 enum type.
2721 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
2722 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
2723 (insert_bundle_state): Change 1 to INSERT in function call.
2724 (ia64_add_bundle_selector_before): Likewise.
2725 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
2726 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
2727 (restore_stack_nonlocal): Likewise.
2728 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
2729 function call.
2730 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
2731 function call.
2732 (mips_rtx_costs): Likewise.
2733 (mips_override_options): Add casts to enum type.
2734 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
2735 in function call.
2736 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
2737 (store_reg, set_reg_plus_d): Likewise.
2738 (hppa_expand_prologue, hppa_profile_hook): Likewise.
2739 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2740 cast to enum type.
2741 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
2742 function call.
2743 (emit_unlikely_jump): Use add_reg_note.
2744 (rs6000_emit_allocate_stack): Likewise.
2745 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
2746 (output_toc): Change 1 to INSERT in function call.
2747 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
2748 (rs6000_initialize_trampoline): Likewise.
2749 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
2750 function call.
2751 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
2752 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
2753 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
2754 (save_gprs): Use add_reg_note.
2755 (s390_emit_prologue): Likewise.
47f402d1 2756 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
2757 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
2758 (sparc_fold_builtin): Add cast to enum type.
2759 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
2760 enum insn_code.
2761 (spu_expand_prologue): Use add_reg_note.
47f402d1 2762 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
2763
27642009-04-20 Ian Lance Taylor <iant@google.com>
2765
2766 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
2767 (c_parser_postfix_expression_after_primary): Get VEC for list of
2768 arguments. Get original types of arguments. Call
2769 build_function_call_vec.
2770 (cached_expr_list_1, cached_expr_list_2): New static variables.
2771 (c_parser_expr_list): Change return type to VEC *. Add
2772 p_orig_types parameter. Change all callers.
2773 (c_parser_release_expr): New static function.
2774 (c_parser_vec_to_tree_list): New static function.
2775 * c-typeck.c (build_function_call): Rewrite to build a VEC and
2776 call build_function_call_vec.
2777 (build_function_call_vec): New function, based on old
2778 build_function_call.
2779 (convert_arguments): Remove nargs and argarray parameters. Change
2780 values to a VEC. Add origtypes parameter.
47f402d1 2781 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
2782 (convert_for_assignment): Add origtype parameter. Change all
2783 callers. If warn_cxx_compat, check for conversion to an enum
2784 type when calling a function.
2785 (store_init_value): Add origtype parameter. Change all callers.
2786 (digest_init): Likewise.
2787 (struct init_node): Add origtype field.
2788 (add_pending_init): Add origtype parameter. Change all callers.
2789 (output_init_element): Likewise.
2790 (output_pending_init_elements): Pass origtype from init_node to
2791 output_init_element.
f28a61ab 2792 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
2793 output_init_element.
2794 (c_finish_return): Add origtype parameter. Change all callers.
2795 * c-common.c (sync_resolve_size): Change params to VEC *. Change
2796 caller.
2797 (sync_resolve_params): Likewise.
47f402d1 2798 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 2799 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 2800 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
2801 * c-decl.c (finish_decl): Add origtype parameter. Change all
2802 callers. Call build_function_call_vec rather than
2803 build_function_call for cleanup.
2804 * c-tree.h: Update declarations.
2805 * c-common.h: Update declarations.
2806 * stub-objc.c (objc_rewrite_function_call): Change parameter from
2807 params to first_param.
2808 * target.h (struct gcc_target): Change resolve_overloaded_builtin
2809 params parameter from tree to void *.
2810 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2811 Change arglist parameter to have type void *, and to be a pointer
2812 to a VEC.
2813 * config/rs6000/rs6000-protos.h
2814 (altivec_resolve_overloaded_builtin): Update declaration.
2815 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
2816 fnargs parameter to have type void *, and to be a pointer to a
2817 VEC. Call build_function_call_vec instead of
2818 build_function_call.
47f402d1 2819 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 2820
6ff078d4 28212009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 2822 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
2823 H.J. Lu <hongjiu.lu@intel.com>
2824
2825 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
2826
2827 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
2828 (IX86_LEA_PRIORITY): Likewise.
2829 (distance_non_agu_define): New function.
2830 (distance_agu_use): Likewise.
2831 (ix86_lea_for_add_ok): Likewise.
2832 (ix86_dep_by_shift_count): Likewise.
2833
2834 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
2835 should split for LEA.
2836
2837 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
2838 function.
2839 (ix86_dep_by_shift_count): Likewise.
2840
87a5b4cc
RG
28412009-04-20 Richard Guenther <rguenther@suse.de>
2842
2843 * expr.c (handled_component_p): Move ...
2844 * tree.h (handled_component_p): ... here.
2845 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
2846 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
2847 and REALPART_EXPR to be in one group.
2848
438c239d
RG
28492009-04-20 Richard Guenther <rguenther@suse.de>
2850
2851 * basic-block.h (get_all_dominated_blocks): Declare.
2852 * dominance.c (get_all_dominated_blocks): New function.
2853 * tree-cfg.c (get_all_dominated_blocks): Remove.
2854 (remove_edge_and_dominated_blocks): Adjust.
2855 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
2856 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
2857 instead of recursing.
2858
fed5ae11
DK
28592009-04-20 Doug Kwan <dougkwan@google.com>
2860
2861 * cgraph.h (cgraph_node_ptr): New type for vector functions.
2862 (struct cgraph_node_set_def): New type.
2863 (cgraph_node_set) New type. Also declare vector functions.
2864 (struct cgraph_node_set_element_def): New type.
2865 (cgraph_node_set_element): Ditto.
2866 (cgraph_node_set_iterator): New iterator type.
2867 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
2868 cgraph_node_set_remove, dump_cgraph_node_set,
2869 debug_cgraph_node_set): New prototypes.
2870 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
2871 cgraph_node_set_size): New inlines.
2872 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
2873 including cgraph.h.
2874 (struct ipa_opt_pass): Add struct cgraph_node_set_def
2875 argument to function 'write_summary'.
2876 * ipa.c: Include ggc.h.
2877 (hash_cgraph_node_set_element,
2878 eq_cgraph_node_set_element, cgraph_node_set_new,
2879 cgraph_node_set_add, cgraph_node_set_remove,
2880 cgraph_node_set_find, dump_cgraph_node_set,
2881 debug_cgraph_node_set): New functions.
2882 * Makefile.in (ipa.o): Add dependency on GGC_H.
2883
c4551b28
IR
28842009-04-20 Ira Rosen <irar@il.ibm.com>
2885
2886 PR tree-optimization/39675
2ba9daa7 2887 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
2888 check of the return code of vect_schedule_slp. Check that
2889 stmt_vec_info still exists for the statement, before checking its
2890 vectorization type.
c4551b28 2891
21a495fb
MM
28922009-04-20 Michael Matz <matz@suse.de>
2893
2894 * Makefile.in (generated_files): Take out $(simple_generated_c).
2895
8e208874
DK
28962009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
2897
2898 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
2899 (UINTPTR_TYPE): Likewise.
2900
a45e580b
JM
29012009-04-19 Joseph Myers <joseph@codesourcery.com>
2902
2903 PR c/37481
2904 * c-typeck.c (digest_init): Check for initializing an array with a
2905 string literal.
2906
20845d35
JM
29072009-04-19 Joseph Myers <joseph@codesourcery.com>
2908
2909 PR c/19771
2910 * c-semantics.c (pop_stmt_list): Propagate
2911 STATEMENT_LIST_HAS_LABEL to parent statement list.
2912
28143fdd
AN
29132009-04-19 Adam Nemet <anemet@caviumnetworks.com>
2914
2915 * config/mips/mips.h (mips_tune_attr): New macro.
2916 * config/mips/mips.md (cpu): Use it.
2917
da377db9
JM
29182009-04-19 Joseph Myers <joseph@codesourcery.com>
2919
2920 PR c/38243
2921 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
2922 declaring a tag.
2923
3baf459d
DN
29242009-04-19 Diego Novillo <dnovillo@google.com>
2925
2926 * toplev.c (compile_file): Move call to coverage_finish ...
2927 * cgraphunit.c (ipa_passes): ... here.
2928 Call cgraph_process_new_functions.
2929 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
2930 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
2931
b6fa5b01
JH
29322009-04-19 Jan Hubicka <jh@suse.cz>
2933
47f402d1
UB
2934 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
2935 cfun.
b6fa5b01
JH
2936 (dump_cgraph_node): Dump can throw external flag.
2937 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
2938
ca409efd
MLI
29392009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
2940
2941 PR c/32061
2942 PR c++/36954
2943 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
2944 * common.opt (Wlogical-op): Move from here...
2945 * c.opt (Wlogical-op): ... to here.
2946 * c-typeck.c (parser_build_binary_op): Update call to
2947 warn_logical_operator.
2948 * c-opts.c (c_common_post_options): Enable warn_logical_op with
2949 extra_warnings.
2950 * c-common.c (warn_logical_op): Update.
2951 * c-common.h (warn_logical_op): Update declaration.
2952
9db4cdd3
EB
29532009-04-19 Eric Botcazou <ebotcazou@adacore.com>
2954
2955 * tree.c (protected_set_expr_location): Fix formatting.
2956
f37acdf9
JM
29572009-04-18 Joseph Myers <joseph@codesourcery.com>
2958
2959 PR c/27676
2960 * c-typeck.c (readonly_warning): new.
2961 (build_unary_op, build_modify_expr): Use readonly_warning for
2962 storing into something readonly but not const-qualified.
2963
2b4b7036
JM
29642009-04-18 Joseph Myers <joseph@codesourcery.com>
2965
2966 PR c/22367
2967 * c-typeck.c (build_unary_op): Check for taking address of
2968 expression of type void.
2969
3ce62965
JM
29702009-04-18 Joseph Myers <joseph@codesourcery.com>
2971
2972 PR c/35210
2973 * c-typeck.c (build_function_call): Check for calling a function
2974 with qualified void return types. Call require_complete_type when
2975 generating a trap.
2976
2505c5ed
JH
29772009-04-18 Jan Hubicka <jh@suse.cz>
2978
2979 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
2980 Set nothrow flag.
2981 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
2982 can_throw_external flag.
2983 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
2984 * ipa-pure-const.c (ignore_edge): New function.
2985 (propagate): Compute order for NOTHROW computation; set NOTHROWs
2986 only over can_throw_external edges.
2987 (local_pure_const): Add nothrow flag.
2988 * ipa-utils.c (searchc): Add ignore_edge callback.
2989 (ipa_utils_reduced_inorder): Add ignore_edge callback.
2990 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
2991 (set_nothrow_function_flags): Update cgraph.
2992 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
2993
2586ba4b
RG
29942009-04-18 Richard Guenther <rguenther@suse.de>
2995
2996 PR middle-end/39804
2997 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
2998 (fold_stmt): ... this and ...
2999 (fold_stmt_inplace): ... this.
3000 (fold_stmt_1): Fold references in calls and asms.
3001 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
3002
1eefab17
KH
30032009-04-18 Kazu Hirata <kazu@codesourcery.com>
3004
3005 * tree-vrp.c (ssa_name_nonzero_p): Remove.
3006 * tree.h: Remove the prototype for ssa_name_nonzero_p.
3007
aa424b01
KH
30082009-04-18 Kazu Hirata <kazu@codesourcery.com>
3009
3010 * tree.c (function_args_count): Remove.
3011 * tree.h: Remove the prototype for function_args_count.
3012
613a896b
KH
30132009-04-18 Kazu Hirata <kazu@codesourcery.com>
3014
3015 * tree-iterator.c (expr_only): Remove.
3016 * tree.h: Remove the prototype for expr_only.
3017
579e694c
KH
30182009-04-18 Kazu Hirata <kazu@codesourcery.com>
3019
3020 * reginfo.c (cannot_change_mode_set_regs): Remove.
3021 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
3022
ee7e3ad3
AS
30232009-04-08 Anatoly Sokolov <aesok@post.ru>
3024
3025 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
3026 whether operands 0 and 1 overlaps.
3027
92ef7fb1
MLI
30282009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
3029
3030 PR middle-end/36902
3031 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
3032 pointer. Use warning_at instead of warning.
3033 (search_for_addr_array): Likewise.
3034 (check_array_bounds): Likewise.
3035 (check_all_array_refs): Check that the incoming edge is not in the
3036 list of edges to be removed.
3037 (check_all_array_refs): Avoid the temporal pointer.
3038 (vrp_visit_cond_stmt): Fix typo.
3039 (simplify_switch_using_ranges): Handle the case where the switch
3040 index is an integer constant.
3041
0e097268
AN
30422009-04-18 Adam Nemet <anemet@caviumnetworks.com>
3043
3044 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
3045
c782f1dd
KH
30462009-04-18 Kazu Hirata <kazu@codesourcery.com>
3047
3048 * doc/extend.texi, doc/invoke.texi: Fix typos.
3049
668fb0e8
CC
30502009-04-17 Cary Coutant <ccoutant@google.com>
3051
3052 * tree-flow-inline.h (get_lineno): Fix inverted test.
3053
4d4014c1
DN
30542009-04-17 Diego Novillo <dnovillo@google.com>
3055
3056 * tree-ssa-pre.c (create_expression_by_pieces): Remove
3057 assertion for AVAIL_OUT.
3058
2984e1b6
MF
30592009-04-17 Mike Frysinger <vapier@gentoo.org>
3060
3061 PR target/38627
3062 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
3063 * config/sh/linux-atomic.asm: Likewise.
3064
9994a182
DN
30652009-04-17 Diego Novillo <dnovillo@google.com>
3066
3067 * except.c (debug_eh_tree): New.
3068 (struct eh_region, struct eh_status): Move ...
3069 * except.h: ... here.
3070 (add_type_for_runtime): Declare extern.
3071 (lookup_type_for_runtime): Likewise.
3072 (debug_eh_tree): Declare.
3073 * Makefile.in (GTFILES): List except.h before except.c
3074
07485407
DN
30752009-04-17 Diego Novillo <dnovillo@google.com>
3076
47f402d1 3077 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
3078 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
3079 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
3080 (find_vars_r): ... here.
3081 * tree-flow.h (find_referenced_vars_in): Declare.
3082 * tree-ssa-pre.c (create_expression_by_pieces): Assert
3083 that AVAIL_OUT exists for BLOCK.
3084 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
3085 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
3086 (tree-parloops.o): Likewise.
3087
4e53d196
SB
30882009-04-17 Simon Baldwin <simonb@google.com>
3089
3090 * toplev.c (default_tree_printer): Add handling for %E format.
3091
413d3aa8
DN
30922009-04-17 Diego Novillo <dnovillo@google.com>
3093
47f402d1
UB
3094 * tree-pretty-print.c (dump_generic_node): Add break after
3095 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
3096 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
3097 FUNCTION_TYPE together. Call print_struct_decl when printing
3098 structures and TDF_SLIM is not given.
413d3aa8
DN
3099 (print_struct_decl): Fix logic for detecting recursion.
3100
5a691e98
RAE
31012009-04-17 Rafael Avila de Espindola <espindola@google.com>
3102
3103 PR 31567
3104 * gcc.c (create_at_file): New.
3105 (compile_input_file_p): New.
3106 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
3107 * main.c (main): Update call to toplev_main.
3108 * toplev.c (toplev_main): Change signature. Call expandargv.
3109 * toplev.h (toplev_main): Change signature.
3110
9eacf7a6
EB
31112009-04-17 Eric Botcazou <ebotcazou@adacore.com>
3112
3113 * dwarf2out.c (field_byte_offset): Use the type size as the field size
3114 if the latter is not constant.
3115
58298177
DE
31162009-04-17 David Edelsohn <edelsohn@gnu.org>
3117
3118 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
3119
5b4c43d7
EB
31202009-04-17 Eric Botcazou <ebotcazou@adacore.com>
3121
3122 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
3123 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
3124
b51605c4
RG
31252009-04-17 Richard Guenther <rguenther@suse.de>
3126
3127 * tree-ssa-structalias.c (get_constraint_for_component_ref):
3128 Handle component references view-converting an invariant address.
3129
9e3be889
AN
31302009-04-17 Adam Nemet <anemet@caviumnetworks.com>
3131
3132 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
3133 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
3134 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
3135 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
3136 Use @deftypevr rather than @deftypevar.
3137
7c3e9dc3
RG
31382009-04-17 Richard Guenther <rguenther@suse.de>
3139
47f402d1 3140 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
3141 (get_prop_source_stmt): Likewise.
3142 (can_propagate_from): Likewise.
3143
aca600aa
AS
31442009-04-17 Andrew Stubbs <ams@codesourcery.com>
3145
3146 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
3147 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
3148 (--with-multilib-list): Add default value.
3149 * configure: Regenerate.
3150 * Makefile.in (TM_ENDIAN_CONFIG): Define.
3151 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
3152 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
3153 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
3154 Don't add default cpu to multilib list unnecessarily, but do enable
3155 the relevant compiler option..
3156 Add support for --with-multilib-list=<blank> and
3157 --with-multilib-list=!<somelib> to supress unwanted multilibs.
3158 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
3159 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
3160 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
3161 TM_MULTILIB_CONFIG.
3162 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
3163 (MULTILIB_OSDIRNAMES): New variable.
3164 * config/sh/t-1e: Delete file.
3165 * config/sh/t-mlib-sh1: Delete file.
3166 * config/sh/t-mlib-sh2: Delete file.
3167 * config/sh/t-mlib-sh2a: Delete file.
3168 * config/sh/t-mlib-sh2a-nofpu: Delete file.
3169 * config/sh/t-mlib-sh2a-single: Delete file.
3170 * config/sh/t-mlib-sh2a-single-only: Delete file.
3171 * config/sh/t-mlib-sh2e: Delete file.
3172 * config/sh/t-mlib-sh3e: Delete file.
3173 * config/sh/t-mlib-sh4: Delete file.
3174 * config/sh/t-mlib-sh4-nofpu: Delete file.
3175 * config/sh/t-mlib-sh4-single: Delete file.
3176 * config/sh/t-mlib-sh4-single-only: Delete file.
3177 * config/sh/t-mlib-sh4a: Delete file.
3178 * config/sh/t-mlib-sh4a-nofpu: Delete file.
3179 * config/sh/t-mlib-sh4a-single: Delete file.
3180 * config/sh/t-mlib-sh4a-single-only: Delete file.
3181 * config/sh/t-mlib-sh4al: Delete file.
3182 * config/sh/t-mlib-sh5-32media: Delete file.
3183 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
3184 * config/sh/t-mlib-sh5-64media: Delete file.
3185 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
3186 * config/sh/t-mlib-sh5-compact: Delete file.
3187 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
3188 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
3189 * doc/install.texi (Options specification): Add
3190 --with-multilib-list and --with-endian.
3191
cf8aba7f
RAE
31922009-04-17 Rafael Avila de Espindola <espindola@google.com>
3193
3194 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
3195 REVISION_c.
3196 (OBJS-common): Add plugin-version.o.
3197 (plugin-version.o): New.
3198 * gcc-plugin.h (plugin_gcc_version): New.
3199 (plugin_default_version_check): New.
3200 (plugin_init_func, plugin_init): Add version argument.
3201 * plugin-version.c: New.
3202 * plugin.c (str_plugin_gcc_version_name): New.
3203 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
3204 pass it to the init function.
3205 (plugin_default_version_check): New.
3206
61e20b90
RG
32072009-04-17 Richard Guenther <rguenther@suse.de>
3208
3209 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
3210 for decl-vs-decl disambiguation.
3211
90c6fd8a
AK
32122009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
3213
3214 * config/s390/s390.h (s390_tune_attr): New macro definition.
3215 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
3216
9fe9fe04
RG
32172009-04-17 Richard Guenther <rguenther@suse.de>
3218
3219 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
3220 (fold_stmt_r): Likewise.
3221 (maybe_fold_reference): New function.
3222 (fold_gimple_assign): Handle cases fold_stmt_r did.
3223 (fold_stmt): Do not use fold_stmt_r.
3224 (fold_stmt_inplace): Likewise.
3225
7e673273
RG
32262009-04-17 Richard Guenther <rguenther@suse.de>
3227
3228 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
3229 (record_equivalences_from_stmt): Remove useless checks and
3230 simplifications.
3231 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
3232 the type is already suitable.
3233
fabf2749
PB
32342009-04-17 Paolo Bonzini <bonzini@gnu.org>
3235
3236 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
3237
68f7b061
UB
32382009-04-17 Uros Bizjak <ubizjak@gmail.com>
3239
3240 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
3241 (CMPtype): Define as __gcc_CMPtype.
3242
532bfb0a
AJ
32432009-04-17 Aurelien Jarno <aurelien@aurel32.net>
3244
3245 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
3246 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
3247
e3ac77ff
RG
32482009-04-17 Richard Guenther <rguenther@suse.de>
3249
3250 PR tree-optimization/39746
3251 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
3252 special-casing for builtins and static variable use/def.
3253 (call_may_clobber_ref_p_1): Likewise.
3254
7072a650
ILT
32552009-04-16 Ian Lance Taylor <iant@google.com>
3256
3257 * df.h: Include "timevar.h".
3258 (struct df_problem): Change tv_id field to timevar_id_t.
3259 * tree-pass.h: Include "timevar.h".
3260 (struct opt_pass): Change tv_id field to timevar_id_t.
3261 * timevar.h (timevar_id_t): Define TV_NONE.
3262 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
3263 TV_NONE rather than tv_id != 0.
3264 (execute_one_pass): Likewise.
3265 * Makefile.in (DF_H): Add $(TIMEVAR_H).
3266 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
3267 dependencies to $(TREE_PASS_H).
3268 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
3269 to TV_NONE.
3270 (pass_branch_target_load_optimize2): Likewise.
3271 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
3272 (pass_outof_cfg_layout_mode): Likewise.
3273 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
3274 (pass_rebuild_cgraph_edges): Likewise.
3275 (pass_remove_cgraph_callee_edges): Likewise.
3276 * df-core.c (pass_df_initialize_opt): Likewise.
3277 (pass_df_initialize_no_opt): Likewise.
3278 (pass_df_finish): Likewise.
3279 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
3280 * except.c (pass_set_nothrow_function_flags): Likewise.
3281 (pass_convert_to_eh_region_ranges): Likewise.
3282 * final.c (pass_compute_alignments): Likewise.
3283 * function.c (pass_instantiate_virtual_regs): Likewise.
3284 (pass_init_function): Likewise.
3285 (pass_leaf_regs): Likewise.
3286 (pass_match_asm_constraints): Likewise.
3287 * gimple-low.c (pass_lower_cf): Likewise.
3288 (pass_mark_used_blocks): Likewise.
3289 * init-regs.c (pass_initialize_regs): Likewise.
3290 * integrate.c (pass_initial_value_sets): Likewise.
3291 * ira.c (pass_ira): Likewise.
3292 * jump.c (pass_cleanup_barriers): Likewise.
3293 * omp-low.c (pass_expand_omp): Likewise.
3294 (pass_lower_omp): Likewise.
3295 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
3296 * recog.c (pass_split_all_insns): Likewise.
3297 (pass_split_after_reload): Likewise.
3298 (pass_split_before_regstack): Likewise.
3299 (pass_split_before_sched2): Likewise.
3300 (pass_split_for_shorten_branches): Likewise.
3301 * reginfo.c (pass_reginfo_init): Likewise.
3302 (pass_subregs_of_mode_init): Likewise.
3303 (pass_subregs_of_mode_finish): Likewise.
3304 * passes.c (pass_postreload): Likewise.
3305 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3306 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
3307 (pass_warn_function_return): Likewise.
3308 (pass_warn_function_noreturn): Likewise.
3309 * tree-complex.c (pass_lower_complex): Likewise.
3310 (pass_lower_complex_O0): Likewise.
3311 * tree-if-conv.c (pass_if_conversion): Likewise.
3312 * tree-into-ssa.c (pass_build_ssa): Likewise.
3313 * tree-mudflap.c (pass_mudflap_1): Likewise.
3314 (pass_mudflap_2): Likewise.
3315 * tree-nomudflap.c (pass_mudflap_1): Likewise.
3316 (pass_mudflap_2): Likewise.
3317 * tree-nrv.c (pass_return_slot): Likewise.
3318 * tree-object-size.c (pass_object_sizes): Likewise.
3319 * tree-optimize.c (pass_all_optimizations): Likewise.
3320 (pass_early_local_passes): Likewise.
3321 (pass_all_early_optimizations): Likewise.
3322 (pass_cleanup_cfg): Likewise.
3323 (pass_cleanup_cfg_post_optimizing): Likewise.
3324 (pass_free_datastructures): Likewise.
3325 (pass_free_cfg_annotations): Likewise.
3326 (pass_fixup_cfg): Likewise.
3327 (pass_init_datastructures): Likewise.
3328 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
3329 (pass_late_warn_uninitialized): Likewise.
3330 (pass_update_address_taken): Likewise.
3331 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
3332 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
3333 (pass_cse_sincos): Likewise.
3334 (pass_convert_to_rsqrt): Likewise.
3335 * tree-ssa-structalias.c (pass_build_alias): Likewise.
3336 * tree-stdarg.c (pass_stdarg): Likewise.
3337 * tree-tailcall.c (pass_tail_recursion): Likewise.
3338 (pass_tail_calls): Likewise.
3339 * tree-vect-generic.c (pass_lower_vector): Likewise.
3340 (pass_lower_vector_ssa): Likewise.
3341 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
3342
0051ef59
JM
33432009-04-16 Joseph Myers <joseph@codesourcery.com>
3344
3345 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
3346 XLR entry.
3347 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
3348 Handle -march=xlr.
3349 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
3350 logical and signext.
3351
b3f8558a
KK
33522009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
3353
3354 PR target/39767
3355 * config/sh/predicates.md (arith_operand): Check if the operand
3356 of TRUNCATE is a REG.
3357
f57597d9
KH
33582009-04-16 Kazu Hirata <kazu@codesourcery.com>
3359
3360 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3361 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3362
b172d063
KH
33632009-04-16 Kazu Hirata <kazu@codesourcery.com>
3364
3365 * tree-iterator.c (tsi_split_statement_list_after,
3366 tsi_split_statement_list_before): Remove.
3367 * tree-iterator.h: Remove the prototypes for
532bfb0a 3368 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 3369
78fe4f1f
KH
33702009-04-16 Kazu Hirata <kazu@codesourcery.com>
3371
3372 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
3373 * tree-ssa-propagate.h: Remove the prototype for
3374 stmt_makes_single_load.
3375
43dd3201
KH
33762009-04-16 Kazu Hirata <kazu@codesourcery.com>
3377
3378 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
3379 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
3380
4252a4aa
KH
33812009-04-16 Kazu Hirata <kazu@codesourcery.com>
3382
3383 * tree-iterator.c (EXPR_LAST_BODY): Remove.
3384
bfb69968
KH
33852009-04-16 Kazu Hirata <kazu@codesourcery.com>
3386
3387 * except.c (eh_region_outer_p): Remove.
3388 * except.h: Remove the prototype for eh_region_outer_p.
3389
c7db7fa5
KH
33902009-04-16 Kazu Hirata <kazu@codesourcery.com>
3391
3392 * function.c (current_function_assembler_name): Remove.
3393 * function.h: Remove the prototype for
3394 current_function_assembler_name.
3395
efc0b2bd
ILT
33962009-04-16 Ian Lance Taylor <iant@google.com>
3397
532bfb0a 3398 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
3399 (add_reg_note): Call alloc_reg_note.
3400 * rtl.h (alloc_reg_note): Declare.
3401 * combine.c (try_combine): Use alloc_reg_note.
3402 (recog_for_combine, move_deaths): Likewise.
3403 (distribute_notes): Use alloc_reg_note and add_reg_note.
3404 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
3405 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
3406 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
3407
6080348f
VM
34082009-04-16 Vladimir Makarov <vmakarov@redhat.com>
3409
3410 PR rtl-optimization/39762
3411 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
3412 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 3413 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 3414
6080348f
VM
3415 * ira-conflicts.c (process_regs_for_copy): Use function
3416 ira_get_register_move_cost instead of global
3417 ira_register_move_cost.
3418
3419 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
3420 color_pass, move_spill_restore, update_curr_costs): Ditto.
3421
3422 * ira-lives.c (process_single_reg_class_operands): Ditto.
3423
3424 * ira-emit.c (emit_move_list): Ditto.
3425
3426 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
3427 (record_reg_classes): Ditto. Use functions
3428 ira_get_register_move_cost and ira_get_may_move_cost instead of
3429 global vars ira_register_move_cost, ira_may_move_out_cost and
3430 ira_may_move_in_cost.
3431 (record_address_regs): Don't call ira_init_register_move_cost.
3432 Use function ira_get_may_move_cost instead of global
3433 ira_may_move_in_cost.
3434 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 3435 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 3436 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 3437
646bea10
RG
34382009-04-16 Richard Guenther <rguenther@suse.de>
3439
3440 * tree-cfg.c (verify_gimple_assign_binary):
3441 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
3442 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
3443 (create_general_new_stmt): Note that this function is broken.
3444
02e819ff
RAE
34452009-04-16 Rafael Avila de Espindola <espindola@google.com>
3446
3447 * common.opt (fhelp): Add Var(help_flag).
3448 * gcc-plugin.h (plugin_info): Add help.
3449 * plugin.c (plugin_name_args): Add help.
3450 (register_plugin_info): Set plugin->help.
3451 (print_help_one_plugin): New.
3452 (print_plugins_help): New.
3453 * plugin.h (print_plugins_help): New.
3454 * toplev.c (toplev_main): Call print_plugins_help if needed.
3455
ccacdf06
RG
34562009-04-16 Richard Guenther <rguenther@suse.de>
3457
3458 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
3459 (gimple_ior_addresses_taken_1): New function.
3460 (gimple_ior_addresses_taken): Likewise.
3461 * gimple.h (struct gimple_statement_with_ops_base): Remove
3462 addresses_taken member.
3463 (gimple_ior_addresses_taken): Declare.
3464 (gimple_addresses_taken, gimple_addresses_taken_ptr,
3465 gimple_set_addresses_taken): Remove.
3466 * ipa-reference.c (mark_address): New function.
3467 (scan_stmt_for_static_refs): Use it for marking addresses taken.
3468 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
3469 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
3470 (gimple_add_to_addresses_taken): Remove.
3471 (get_tmr_operands): Call mark_address_taken.
3472 (get_asm_expr_operands): Likewise.
3473 (get_expr_operands): Likewise.
3474 (build_ssa_operands): Do not clear the addresses_taken bitmap.
3475 (free_stmt_operands): Do not free it.
3476 * tree-ssa.c (delete_tree_ssa): Likewise.
3477 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
3478
346ef3fa
RG
34792009-04-16 Richard Guenther <rguenther@suse.de>
3480
3481 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
3482 (walk_stmt_load_store_ops): Likewise.
3483 * gimple.c (get_base_loadstore): New function.
3484 (walk_stmt_load_store_addr_ops): Likewise.
3485 (walk_stmt_load_store_ops): Likewise.
3486 * ipa-pure-const.c (check_op): Simplify.
3487 (check_load, check_store): New functions.
3488 (check_stmt): Use walk_stmt_load_store_ops.
3489 * ipa-reference.c (mark_load): Adjust signature.
3490 (mark_store): Likewise.
3491 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
3492
44e9f006
RAE
34932009-04-16 Rafael Avila de Espindola <espindola@google.com>
3494
3495 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
3496 (plugin_info): New.
3497 * opts.c (common_handle_option): Don't call print_version.
3498 * plugin.c (plugin_name_args): Add version.
3499 (register_plugin_info): New.
3500 (register_callback): Handle PLUGIN_INFO.
3501 (try_init_one_plugin): New.
3502 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
3503 if failed to init.
3504 (finalize_one_plugin): New.
3505 (finalize_plugins): New.
3506 (print_one_plugin): New.
3507 (print_plugins_versions): New.
3508 * plugin.h (print_plugins_versions): New.
3509 (finalize_plugins): New.
3510 * toplev.c (compile_file): Don't call initialize_plugins.
3511 (print_version): Call print_plugins_versions.
3512 (toplev_main): Call initialize_plugins. Print version if needed.
3513 Call finalize_plugins.
3514
41fd0f9b
RAE
35152009-04-16 Rafael Avila de Espindola <espindola@google.com>
3516
3517 * common.opt (fversion): New.
3518 * gcc.c (print_version): New.
3519 (process_command): Don't print the version. Just set print_version.
3520 (main): Print version. Call subprocesses if print_version and
3521 verbose_flag are set.
3522 * opts.c (common_handle_option): Handle OPT_fversion.
3523
550918ca 35242009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 3525 Ira Rosen <irar@il.ibm.com>
550918ca
RG
3526
3527 PR tree-optimization/39698
3528 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
3529 type of the reduction variable. Only generate the def if
3530 it is needed.
3531
3532 * omp-low.c (expand_omp_for_generic): When converting to a pointer
3533 make sure to first convert to an integer of the same precision.
3534 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
3535 the type of the evolution correctly in computing the new
3536 induction variable base.
3537
54634841
RG
35382009-04-16 Richard Guenther <rguenther@suse.de>
3539
3540 PR middle-end/39625
3541 * tree-cfg.c (make_blocks): Split statements with to-be
3542 abnormal SSA names on the lhs.
3543
b6fc2cdb
PB
35442009-04-16 Paolo Bonzini <bonzini@gnu.org>
3545
3546 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
3547 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
3548 * c-typeck.c (really_start_incremental_init): Likewise.
3549 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
3550 (TARGET_INITIALIZER): Remove it.
3551 * target.h (struct target): Remove vector_opaque_p.
3552 * tree.c (build_opaque_vector_type): New.
3553 * tree.h (TYPE_VECTOR_OPAQUE): New.
3554 (build_opaque_vector_type): Declare.
3555 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
3556 * config/rs6000/rs6000.c (build_opaque_vector_type,
3557 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
3558 (rs6000_init_builtins): Use build_opaque_vector_type for
3559 opaque_V4SI_type_node.
3560
a417cdd9
CM
35612009-04-15 Catherine Moore <clm@codesourcery.com>
3562
532bfb0a
AJ
3563 * debug.h (set_name): Declare.
3564 * dwarf2out.c (dwarf2out_set_name): Declare.
3565 (dwarf2_debug_hooks): Add set_name.
3566 (find_AT_string): New.
3567 (add_AT_string): Call find_AT_string.
3568 (dwarf2out_set_name): New.
3569 * cp/decl.c (grokdeclarator): Call set_name.
3570 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
3571 * debug.c (do_nothing_debug_hooks): Likewise.
3572 * dbxout.c (dbx_debug_hooks): Likewise.
3573 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 3574
60839f5d 35752009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 3576
532bfb0a
AJ
3577 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
3578 reg for single-precision FPU.
3579 * config/rs6000/rs6000.md (movsi_internal1): Only for
3580 !TARGET_SINGLE_FPU.
3581 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
3582 single-precision FP regs.
3583
ada39f0b
RG
35842009-04-15 Richard Guenther <rguenther@suse.de>
3585
3586 * omp-low.c (lower_rec_input_clauses): Build correct address
3587 expressions.
3588 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 3589 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
3590 (generate_memset_zero): Fix types.
3591 * tree-profile.c (prepare_instrumented_value): Correctly
3592 widen a pointer.
3593
6866c6e8
ILT
35942009-04-15 Ian Lance Taylor <iant@google.com>
3595
3596 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
3597 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
3598 for -Wall and for -Wc++-compat.
3599 (c_common_post_options): For C++, set warn_enum_compare if not
3600 already set.
3601 * c-tree.h (struct c_expr): Add field original_type.
3602 (build_external_ref): Update declaration.
3603 * c-parser.c (c_parser_braced_init): Set original_type.
3604 (c_parser_initelt): Likewise.
3605 (c_parser_expr_no_commas): Likewise.
3606 (c_parser_conditional_expression): Likewise.
3607 (c_parser_cast_expression): Likewise.
3608 (c_parser_unary_expression): Likewise. Pull setting of
3609 original_code to top of function.
3610 (c_parser_sizeof_expression): Set original_type.
3611 (c_parser_alignof_expression): Likewise.
3612 (c_parser_postfix_expression): Likewise. Pull setting of
3613 original_code to top of function.
532bfb0a 3614 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
3615 (c_parser_postfix_expression_after_primary): Likewise.
3616 (c_parser_expression): Likewise.
3617 * c-typeck.c (build_external_ref): Add type parameter. Change all
3618 callers.
3619 (c_expr_sizeof_expr): Set original_type field.
3620 (parser_build_unary_op): Likewise.
3621 (parser_build_binary_op): Likewise. Optionally warn about
3622 comparisons of enums of different types.
3623 (digest_init): Set original_type field.
3624 (really_start_incremental_init): Likewise.
3625 (push_init_level, pop_init_level): Likewise.
3626 * doc/invoke.texi (Warning Options): -Wenum-compare now
3627 supported in C.
3628
f116fecf
RG
36292009-04-15 Richard Guenther <rguenther@suse.de>
3630
3631 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
3632 out a necessary conversion.
3633 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
3634 names we didn't value number.
3635 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
3636
25e20805
RG
36372009-04-15 Richard Guenther <rguenther@suse.de>
3638
3639 PR tree-optimization/39764
3640 * tree-ssa-ccp.c (get_value): Canonicalize value with
3641 canonicalize_float_value.
3642
90cc3676
JH
36432009-04-15 Jan Hubicka <jh@suse.cz>
3644
3645 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
3646 Wrong version of patch.
3647
6d14c006
JH
36482009-04-15 Jan Hubicka <jh@suse.cz>
3649
3650 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
3651
5afaa917
NS
36522009-04-15 Nathan Sidwell <nathan@codesourcery.com>
3653
3654 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
3655 our distinct integral and vector types.
3656
3b482fca
RAE
36572009-04-15 Rafael Avila de Espindola <espindola@google.com>
3658
3659 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
3660 * init.c (build_vtbl_address): Remove call to assemble_external.
3661
6cd1d2e2
DJ
36622009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
3663
3664 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
3665 output for other floating point modes.
3666
dab71827
DN
36672009-04-14 Diego Novillo <dnovillo@google.com>
3668
3669 * diagnostic.c (diagnostic_report_diagnostic): Do not
3670 warn about loaded plugins for DK_ERROR and DK_WARNING.
3671 * c-decl.c (declspecs_add_type): Move call to
3672 invoke_plugin_callbacks ...
3673 * c-parser.c (c_parser_declspecs): ... here.
3674 * plugin.c (dump_active_plugins): Tidy output.
3675
68a607d8
DN
36762009-04-14 Diego Novillo <dnovillo@google.com>
3677 Le-Chun Wu <lcwu@google.com>
3678
3679 * configure.ac: Add --enable-plugin support.
3680 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
3681 * Makefile.in (PLUGIN_H): Define.
3682 Export ENABLE_PLUGIN and GMPINC to site.exp.
3683 Add PLUGINLIBS to link command.
3684 Add/modify dependencies for plugin.o and files including plugin.h.
3685 (plugin.o): New.
3686 * config.in: Regenerate.
2ba9daa7 3687
68a607d8
DN
3688 * opts.c (common_handle_option): Handle OPT_fplugin_ and
3689 OPT_fplugin_arg_.
3690
36912009-04-14 Le-Chun Wu <lcwu@google.com>
3692
3693 * tree-pass.h (register_one_dump_file): Add a prototype for
3694 register_one_dump_file.
3695 * toplev.c (compile_file): Call initialize_plugins.
3696 (do_compile): Call invoke_plugin_callbacks.
3697 (toplev_main): Call invoke_plugin_callbacks.
3698 * common.opt: Add -fplugin= and -fplugin-arg-.
3699 * gcc-plugin.h: New public header file for plugins to include.
3700 * plugin.c: New source file.
3701 * plugin.h: New internal header file.
3702 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 3703
68a607d8
DN
3704 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
3705
37062009-04-14 Diego Novillo <dnovillo@google.com>
3707
3708 * doc/plugins.texi: New.
3709 * doc/gccint.texi: Add reference to Plugins chapter.
3710 * doc/invoke.texi: Document -fplugin and -fplugin-arg
3711 * diagnostic.c (diagnostic_report_diagnostic): Warn about
3712 loaded plugins, if any.
3713 * timevar.def (TV_PLUGIN_INIT): Define.
3714 (TV_PLUGIN_RUN): Define.
3715 * plugin.c: Include timevar.h
3716 (plugins_active_p): New.
3717 (dump_active_plugins): New.
3718 (debug_active_plugins): New.
3719
50617257
JM
37202009-04-14 Joseph Myers <joseph@codesourcery.com>
3721
3722 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
3723 library paths.
3724 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
3725
b32f6fff
KH
37262009-04-14 Kazu Hirata <kazu@codesourcery.com>
3727
3728 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
3729 the same as a minus without a shift.
3730
85d04fa2
NC
37312009-04-14 Nick Clifton <nickc@redhat.com>
3732
3733 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
3734 comparisons with small integers will always produce a short
3735 branch.
3736
e495a0c8
RAE
37372009-04-14 Rafael Avila de Espindola <espindola@google.com>
3738
3739 Merge:
e495a0c8
RAE
3740 2008-12-19 Diego Novillo <dnovillo@google.com>
3741
532bfb0a 3742 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 3743
ad41bd84 37442009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
3745
3746 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
3747 verification.
3748 (verify_gimple_assign_binary): Likewise. Handle shifts and
3749 rotates correctly.
3750 (verify_gimple_phi): Print the mismatched argument position.
3751 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3752 Fix types.
3753 (vect_update_init_of_dr): Likewise.
3754 * matrix-reorg.c (transform_access_sites): Do what the
3755 comment suggests.
3756 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
3757
60839f5d 37582009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
3759
3760 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
3761 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
3762 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 3763 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
3764 remove duplicate config
3765
b0e2d008
DR
37662009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
3767
3768 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
3769 file_name:line_number type locator of the call site.
2ba9daa7 3770
1244a8b7
VM
37712009-04-13 Vladimir Makarov <vmakarov@redhat.com>
3772
3773 * genautomata.c: Put blank after comma.
3774 (automaton_decls): New.
3775 (struct unit_usage): Add comments to member next.
3776 (store_alt_unit_usage): Keep the list ordered.
3777 (unit_present_on_list_p, equal_alternatives_p): New.
3778 (check_regexp_units_distribution): Check units distribution
3779 correctness correctly.
3780 (main): Don't write automata if error is found. Return correct
3781 exit code.
2ba9daa7 3782
1244a8b7
VM
3783 * config/m68k/cf.md (cfv4_ds): Remove.
3784 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
3785 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
3786
3787 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
3788 power4-load-ext, power4-store, power4-store-update,
3789 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
3790 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
3791 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
3792 power4-sqrt, power4-isync): Modify reservation to make correct
3793 unit distribution to automata.
3794
3795 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
3796 power5-store-update, power5-two, power5-three, power5-lmul,
3797 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 3798
f7dd1864
AN
37992009-04-13 Adam Nemet <anemet@caviumnetworks.com>
3800
3801 * except.c (pass_set_nothrow_function_flags): Set name and add
3802 TODO_dump_func.
3803 (set_nothrow_function_flags): Mention in the dump file when
3804 changing a function to nothrow.
3805
59a1171f
OS
38062009-04-13 Ozkan Sezer <sezeroz@gmail.com>
3807
3808 PR/39066
3809 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
3810 instead of unsigned long.
3811
934c2060
RR
38122009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3813
f7dd1864
AN
3814 * config/arm/arm.c (return_used_this_function): Remove.
3815 (arm_output_function_prologue): Remove use of
934c2060 3816 return_used_this_function.
f7dd1864 3817 (output_return_instruction): Replace use of
934c2060
RR
3818 return_used_this_function
3819 by cfun->machine->return_used_this_function.
f7dd1864
AN
3820 (arm_output_epilogue): Likewise.
3821 (arm_output_function_epilogue): Likewise.
3822 (thumb_unexpanded_epilogue): Likewise.
3823 * config/arm/arm.h (struct machine_function):
934c2060 3824 New member return_used_this_function.
f7dd1864 3825
ae5cc016
MM
38262009-04-12 Mark Mitchell <mark@codesourcery.com>
3827
3828 * doc/install.texi: Correct description of default directory for
3829 --with-gxx-include-dir.
3830
a0ce68df 38312009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
3832
3833 * fold-const.c (build_range_check): Properly deal with enumeral and
3834 boolean base types.
3835
3906a4a1
SB
38362009-04-12 Steven Bosscher <steven@gcc.gnu.org>
3837
3838 * doc/invoke.texi (max_gcse_passes): Remove documentation.
3839 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
3840 * params.h (MAX_GCSE_PASSES): Remove.
3841 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
3842 in sequence. Remove ability to run multiple passes.
3843 (bypass_jumps): Report run as third CPROP pass.
3844
efaadb93
AN
38452009-04-12 Adam Nemet <anemet@caviumnetworks.com>
3846
3847 PR middle-end/39651
3848 * except.c (can_throw_external): Look at each insn in a SEQUENCE
3849 when deciding whether the whole SEQUENCE can throw.
3850
4c48007b
UB
38512009-04-12 Uros Bizjak <ubizjak@gmail.com>
3852
3853 PR target/39740
3854 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
3855 offseted label references.
3856
b4104018
JH
38572009-04-11 Jan Hubicka <jh@suse.cz>
3858
3859 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
3860
32848948
RG
38612009-04-11 Richard Guenther <rguenther@suse.de>
3862
3863 PR middle-end/39732
3864 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
3865 return variables as TREE_ADDRESSABLE.
3866
8810712e
RG
38672009-04-11 Richard Guenther <rguenther@suse.de>
3868
3869 PR tree-optimization/39713
3870 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
3871 reference trees have SSA_NAME operands.
3872
fa78c0c1
RG
38732009-04-11 Richard Guenther <rguenther@suse.de>
3874
3875 PR c/39712
3876 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
3877 address expressions.
3878
4d722130
DK
38792009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
3880
3881 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
3882 match changes in Cygwin 1.7
3883 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
3884 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
3885
567a90f5
PB
38862009-04-10 Paolo Bonzini <bonzini@gnu.org>
3887
3888 PR tree-optimization/39701
3889 * doc/invoke.texi (Optimization Options): Document change in
3890 meaning and initialization of -fdelete-null-pointer-checks.
3891
1ad2f450
L
38922009-04-10 H.J. Lu <hongjiu.lu@intel.com>
3893
3894 PR middle-end/39701
3895 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
3896
3897 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
3898 here.
3899
3900 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
3901
1afc5373
CF
39022009-04-10 Chao-ying Fu <fu@mips.com>
3903
3904 * doc/tm.texi (Instruction Output): Document
3905 TARGET_ASM_FINAL_POSTSCAN_INSN.
3906 * target.h (final_postscan_insn): New field in asm_out.
3907 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3908 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
3909 * final.c (final_scan_insn): Call
3910 targetm.asm_out.final_postscan_insn after outputting
3911 an asm macro and a normal instruction.
3912
3913 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
3914 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
3915 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
3916 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
3917 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3918
4d35e75c
PB
39192009-04-10 Paolo Bonzini <bonzini@gnu.org>
3920
3921 PR middle-end/39701
1ad2f450
L
3922 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
3923 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 3924
62c49b83
L
39252009-04-10 H.J. Lu <hongjiu.lu@intel.com>
3926
3927 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
3928
80558628
L
39292009-04-09 H.J. Lu <hongjiu.lu@intel.com>
3930
3931 PR target/39678
3932 * config/i386/i386.c (classify_argument): Handle SCmode with
3933 (bit_offset % 64) != 0.
3934
8c70d28b
SL
39352009-04-09 Sandra Loosemore <sandra@codesourcery.com>
3936
3937 * doc/invoke.texi (Optimize Options): Add cross-reference to
3938 -Q --help=optimizers examples.
3939
e1ff19bf
BE
39402009-04-10 Ben Elliston <bje@au.ibm.com>
3941
3942 PR target/36800
3943 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
3944 regalign for the reg == fpr and TDmode case.
3945
52daca75
DA
39462009-04-09 David Ayers <ayers@fsfe.org>
3947
3948 PR objc/29200
3949 * objc/objc-act.c (warn_with_method): Remove helper function.
3950 (check_duplicates): Call warning and inform directly.
3951 (really_start_method): Likewise.
3952
b45f0e58
PB
39532009-04-09 Paolo Bonzini <bonzini@gnu.org>
3954
3955 * expmed.c (expand_divmod): Always use a comparison for a division
3956 by a large unsigned integer.
3957
1ad2f450
L
3958 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
3959 for things others than variables or functions as nonzero.
b45f0e58 3960
748086b7
JJ
39612009-04-09 Nick Clifton <nickc@redhat.com>
3962
3963 * unwind-compat.c: Change copyright header to refer to version
3964 3 of the GNU General Public License with version 3.1 of the
3965 GCC Runtime Library Exception and to point readers at the
7a715bba 3966 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
3967 * config/alpha/crtfastmath.c: Likewise.
3968 * config/alpha/linux-unwind.h: Likewise.
3969 * config/alpha/qrnnd.asm: Likewise.
3970 * config/alpha/vms-crt0-64.c: Likewise.
3971 * config/alpha/vms-crt0.c: Likewise.
3972 * config/alpha/vms-dwarf2.asm: Likewise.
3973 * config/alpha/vms-dwarf2eh.asm: Likewise.
3974 * config/alpha/vms-psxcrt0-64.c: Likewise.
3975 * config/alpha/vms-psxcrt0.c: Likewise.
3976 * config/alpha/vms_tramp.asm: Likewise.
3977 * config/arc/initfini.c: Likewise.
3978 * config/arc/lib1funcs.asm: Likewise.
3979 * config/arm/bpabi-v6m.S: Likewise.
3980 * config/arm/bpabi.S: Likewise.
3981 * config/arm/bpabi.c: Likewise.
3982 * config/arm/crti.asm: Likewise.
3983 * config/arm/crtn.asm: Likewise.
3984 * config/arm/ieee754-df.S: Likewise.
3985 * config/arm/ieee754-sf.S: Likewise.
3986 * config/arm/lib1funcs.asm: Likewise.
3987 * config/arm/libunwind.S: Likewise.
3988 * config/arm/linux-atomic.c: Likewise.
3989 * config/arm/mmintrin.h: Likewise.
3990 * config/arm/pr-support.c: Likewise.
3991 * config/arm/unaligned-funcs.c: Likewise.
3992 * config/arm/unwind-arm.c: Likewise.
3993 * config/arm/unwind-arm.h: Likewise.
3994 * config/avr/libgcc.S: Likewise.
3995 * config/bfin/crti.s: Likewise.
3996 * config/bfin/crtlibid.s: Likewise.
3997 * config/bfin/crtn.s: Likewise.
3998 * config/bfin/lib1funcs.asm: Likewise.
3999 * config/bfin/linux-unwind.h: Likewise.
4000 * config/cris/arit.c: Likewise.
4001 * config/cris/cris_abi_symbol.c: Likewise.
4002 * config/darwin-64.c: Likewise.
4003 * config/darwin-crt2.c: Likewise.
4004 * config/darwin-crt3.c: Likewise.
4005 * config/darwin.h: Likewise.
4006 * config/dbxelf.h: Likewise.
4007 * config/dfp-bit.c: Likewise.
4008 * config/dfp-bit.h: Likewise.
4009 * config/elfos.h: Likewise.
4010 * config/fixed-bit.c: Likewise.
4011 * config/fixed-bit.h: Likewise.
4012 * config/fp-bit.c: Likewise.
4013 * config/fp-bit.h: Likewise.
4014 * config/fr30/crti.asm: Likewise.
4015 * config/fr30/crtn.asm: Likewise.
4016 * config/fr30/lib1funcs.asm: Likewise.
4017 * config/freebsd-spec.h: Likewise.
4018 * config/frv/cmovd.c: Likewise.
4019 * config/frv/cmovh.c: Likewise.
4020 * config/frv/cmovw.c: Likewise.
4021 * config/frv/frvbegin.c: Likewise.
4022 * config/frv/frvend.c: Likewise.
4023 * config/frv/lib1funcs.asm: Likewise.
4024 * config/glibc-stdint.h: Likewise.
4025 * config/h8300/clzhi2.c: Likewise.
4026 * config/h8300/crti.asm: Likewise.
4027 * config/h8300/crtn.asm: Likewise.
4028 * config/h8300/ctzhi2.c: Likewise.
4029 * config/h8300/fixunssfsi.c: Likewise.
4030 * config/h8300/lib1funcs.asm: Likewise.
4031 * config/h8300/parityhi2.c: Likewise.
4032 * config/h8300/popcounthi2.c: Likewise.
4033 * config/i386/ammintrin.h: Likewise.
4034 * config/i386/att.h: Likewise.
4035 * config/i386/avxintrin.h: Likewise.
4036 * config/i386/biarch64.h: Likewise.
4037 * config/i386/bmmintrin.h: Likewise.
4038 * config/i386/cpuid.h: Likewise.
4039 * config/i386/cross-stdarg.h: Likewise.
4040 * config/i386/crtfastmath.c: Likewise.
4041 * config/i386/crtprec.c: Likewise.
4042 * config/i386/cygming-crtbegin.c: Likewise.
4043 * config/i386/cygming-crtend.c: Likewise.
4044 * config/i386/cygwin.asm: Likewise.
4045 * config/i386/emmintrin.h: Likewise.
4046 * config/i386/gmm_malloc.h: Likewise.
4047 * config/i386/gthr-win32.c: Likewise.
4048 * config/i386/i386.h: Likewise.
4049 * config/i386/immintrin.h: Likewise.
4050 * config/i386/linux-unwind.h: Likewise.
4051 * config/i386/linux64.h: Likewise.
4052 * config/i386/mm3dnow.h: Likewise.
4053 * config/i386/mmintrin-common.h: Likewise.
4054 * config/i386/mmintrin.h: Likewise.
4055 * config/i386/nmmintrin.h: Likewise.
4056 * config/i386/pmm_malloc.h: Likewise.
4057 * config/i386/pmmintrin.h: Likewise.
4058 * config/i386/smmintrin.h: Likewise.
4059 * config/i386/sol2-c1.asm: Likewise.
4060 * config/i386/sol2-ci.asm: Likewise.
4061 * config/i386/sol2-cn.asm: Likewise.
4062 * config/i386/sol2-gc1.asm: Likewise.
4063 * config/i386/tmmintrin.h: Likewise.
4064 * config/i386/unix.h: Likewise.
4065 * config/i386/w32-unwind.h: Likewise.
4066 * config/i386/wmmintrin.h: Likewise.
4067 * config/i386/x86-64.h: Likewise.
4068 * config/i386/x86intrin.h: Likewise.
4069 * config/i386/xmmintrin.h: Likewise.
4070 * config/ia64/crtbegin.asm: Likewise.
4071 * config/ia64/crtend.asm: Likewise.
4072 * config/ia64/crtfastmath.c: Likewise.
4073 * config/ia64/crti.asm: Likewise.
4074 * config/ia64/crtn.asm: Likewise.
4075 * config/ia64/fde-glibc.c: Likewise.
4076 * config/ia64/lib1funcs.asm: Likewise.
4077 * config/ia64/linux-unwind.h: Likewise.
4078 * config/ia64/quadlib.c: Likewise.
4079 * config/ia64/unwind-ia64.c: Likewise.
4080 * config/linux.h: Likewise.
4081 * config/m32c/m32c-lib1.S: Likewise.
4082 * config/m32c/m32c-lib2-trapv.c: Likewise.
4083 * config/m32c/m32c-lib2.c: Likewise.
4084 * config/m32r/initfini.c: Likewise.
4085 * config/m68hc11/larith.asm: Likewise.
4086 * config/m68hc11/m68hc11-crt0.S: Likewise.
4087 * config/m68k/cf.md: Likewise.
4088 * config/m68k/crti.s: Likewise.
4089 * config/m68k/crtn.s: Likewise.
4090 * config/m68k/lb1sf68.asm: Likewise.
4091 * config/m68k/linux-unwind.h: Likewise.
4092 * config/mcore/crti.asm: Likewise.
4093 * config/mcore/crtn.asm: Likewise.
4094 * config/mcore/lib1.asm: Likewise.
4095 * config/mips/linux-unwind.h: Likewise.
4096 * config/mips/loongson.h: Likewise.
4097 * config/mips/mips16.S: Likewise.
4098 * config/mmix/crti.asm: Likewise.
4099 * config/mmix/crtn.asm: Likewise.
4100 * config/pa/fptr.c: Likewise.
4101 * config/pa/hpux-unwind.h: Likewise.
4102 * config/pa/lib2funcs.asm: Likewise.
4103 * config/pa/linux-atomic.c: Likewise.
4104 * config/pa/linux-unwind.h: Likewise.
4105 * config/pa/milli64.S: Likewise.
4106 * config/pa/quadlib.c: Likewise.
4107 * config/pa/stublib.c: Likewise.
4108 * config/picochip/libgccExtras/adddi3.asm: Likewise.
4109 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
4110 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
4111 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
4112 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
4113 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
4114 * config/picochip/libgccExtras/divmod15.asm: Likewise.
4115 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
4116 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
4117 * config/picochip/libgccExtras/longjmp.asm: Likewise.
4118 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
4119 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
4120 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
4121 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
4122 * config/picochip/libgccExtras/setjmp.asm: Likewise.
4123 * config/picochip/libgccExtras/subdi3.asm: Likewise.
4124 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
4125 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
4126 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
4127 * config/rs6000/750cl.h: Likewise.
4128 * config/rs6000/altivec.h: Likewise.
4129 * config/rs6000/biarch64.h: Likewise.
4130 * config/rs6000/crtresfpr.asm: Likewise.
4131 * config/rs6000/crtresgpr.asm: Likewise.
4132 * config/rs6000/crtresxfpr.asm: Likewise.
4133 * config/rs6000/crtresxgpr.asm: Likewise.
4134 * config/rs6000/crtsavfpr.asm: Likewise.
4135 * config/rs6000/crtsavgpr.asm: Likewise.
4136 * config/rs6000/darwin-asm.h: Likewise.
4137 * config/rs6000/darwin-fallback.c: Likewise.
4138 * config/rs6000/darwin-fpsave.asm: Likewise.
4139 * config/rs6000/darwin-ldouble.c: Likewise.
4140 * config/rs6000/darwin-tramp.asm: Likewise.
4141 * config/rs6000/darwin-unwind.h: Likewise.
4142 * config/rs6000/darwin-vecsave.asm: Likewise.
4143 * config/rs6000/darwin-world.asm: Likewise.
4144 * config/rs6000/e500crtres32gpr.asm: Likewise.
4145 * config/rs6000/e500crtres64gpr.asm: Likewise.
4146 * config/rs6000/e500crtres64gprctr.asm: Likewise.
4147 * config/rs6000/e500crtrest32gpr.asm: Likewise.
4148 * config/rs6000/e500crtrest64gpr.asm: Likewise.
4149 * config/rs6000/e500crtresx32gpr.asm: Likewise.
4150 * config/rs6000/e500crtresx64gpr.asm: Likewise.
4151 * config/rs6000/e500crtsav32gpr.asm: Likewise.
4152 * config/rs6000/e500crtsav64gpr.asm: Likewise.
4153 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
4154 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
4155 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
4156 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
4157 * config/rs6000/eabi-ci.asm: Likewise.
4158 * config/rs6000/eabi-cn.asm: Likewise.
4159 * config/rs6000/eabi.asm: Likewise.
4160 * config/rs6000/linux-unwind.h: Likewise.
4161 * config/rs6000/linux64.h: Likewise.
4162 * config/rs6000/paired.h: Likewise.
4163 * config/rs6000/paired.md: Likewise.
4164 * config/rs6000/ppc64-fp.c: Likewise.
4165 * config/rs6000/ppu_intrinsics.h: Likewise.
4166 * config/rs6000/rs6000.h: Likewise.
4167 * config/rs6000/si2vmx.h: Likewise.
4168 * config/rs6000/sol-ci.asm: Likewise.
4169 * config/rs6000/sol-cn.asm: Likewise.
4170 * config/rs6000/spe.h: Likewise.
4171 * config/rs6000/spu2vmx.h: Likewise.
4172 * config/rs6000/sysv4.h: Likewise.
4173 * config/rs6000/tramp.asm: Likewise.
4174 * config/rs6000/vec_types.h: Likewise.
4175 * config/s390/linux-unwind.h: Likewise.
4176 * config/s390/tpf-unwind.h: Likewise.
4177 * config/score/crti.asm: Likewise.
4178 * config/score/crtn.asm: Likewise.
4179 * config/sh/crt1.asm: Likewise.
4180 * config/sh/crti.asm: Likewise.
4181 * config/sh/crtn.asm: Likewise.
4182 * config/sh/divtab-sh4-300.c: Likewise.
4183 * config/sh/divtab-sh4.c: Likewise.
4184 * config/sh/divtab.c: Likewise.
4185 * config/sh/lib1funcs-4-300.asm: Likewise.
4186 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
4187 * config/sh/lib1funcs.asm: Likewise.
4188 * config/sh/lib1funcs.h: Likewise.
4189 * config/sh/linux-atomic.asm: Likewise.
4190 * config/sh/linux-unwind.h: Likewise.
4191 * config/sh/shmedia.h: Likewise.
4192 * config/sh/sshmedia.h: Likewise.
4193 * config/sh/ushmedia.h: Likewise.
4194 * config/sparc/crtfastmath.c: Likewise.
4195 * config/sparc/linux-unwind.h: Likewise.
4196 * config/sparc/sol2-c1.asm: Likewise.
4197 * config/sparc/sol2-ci.asm: Likewise.
4198 * config/sparc/sol2-cn.asm: Likewise.
4199 * config/spu/divmodti4.c: Likewise.
4200 * config/spu/divv2df3.c: Likewise.
4201 * config/spu/float_disf.c: Likewise.
4202 * config/spu/float_unsdidf.c: Likewise.
4203 * config/spu/float_unsdisf.c: Likewise.
4204 * config/spu/float_unssidf.c: Likewise.
4205 * config/spu/mfc_multi_tag_release.c: Likewise.
4206 * config/spu/mfc_multi_tag_reserve.c: Likewise.
4207 * config/spu/mfc_tag_release.c: Likewise.
4208 * config/spu/mfc_tag_reserve.c: Likewise.
4209 * config/spu/mfc_tag_table.c: Likewise.
4210 * config/spu/multi3.c: Likewise.
4211 * config/spu/spu_internals.h: Likewise.
4212 * config/spu/spu_intrinsics.h: Likewise.
4213 * config/spu/spu_mfcio.h: Likewise.
4214 * config/spu/vec_types.h: Likewise.
4215 * config/spu/vmx2spu.h: Likewise.
4216 * config/stormy16/stormy16-lib2.c: Likewise.
4217 * config/svr4.h: Likewise.
4218 * config/sync.c: Likewise.
4219 * config/v850/lib1funcs.asm: Likewise.
4220 * config/vxlib-tls.c: Likewise.
4221 * config/vxlib.c: Likewise.
4222 * config/vxworks-dummy.h: Likewise.
4223 * config/xtensa/crti.asm: Likewise.
4224 * config/xtensa/crtn.asm: Likewise.
4225 * config/xtensa/ieee754-df.S: Likewise.
4226 * config/xtensa/ieee754-sf.S: Likewise.
4227 * config/xtensa/lib1funcs.asm: Likewise.
4228 * config/xtensa/lib2funcs.S: Likewise.
4229 * config/xtensa/linux-unwind.h: Likewise.
4230 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4231 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
4232 * coretypes.h: Likewise.
4233 * crtstuff.c: Likewise.
4234 * defaults.h: Likewise.
4235 * dwarf2.h: Likewise.
4236 * emutls.c: Likewise.
4237 * gbl-ctors.h: Likewise.
4238 * gcov-io.h: Likewise.
4239 * ginclude/float.h: Likewise.
4240 * ginclude/iso646.h: Likewise.
4241 * ginclude/stdarg.h: Likewise.
4242 * ginclude/stdbool.h: Likewise.
4243 * ginclude/stddef.h: Likewise.
4244 * ginclude/stdfix.h: Likewise.
4245 * ginclude/stdint-gcc.h: Likewise.
4246 * ginclude/tgmath.h: Likewise.
4247 * gthr-aix.h: Likewise.
4248 * gthr-dce.h: Likewise.
4249 * gthr-gnat.c: Likewise.
4250 * gthr-gnat.h: Likewise.
4251 * gthr-lynx.h: Likewise.
4252 * gthr-mipssde.h: Likewise.
4253 * gthr-nks.h: Likewise.
4254 * gthr-posix.c: Likewise.
4255 * gthr-posix.h: Likewise.
4256 * gthr-posix95.h: Likewise.
4257 * gthr-rtems.h: Likewise.
4258 * gthr-single.h: Likewise.
4259 * gthr-solaris.h: Likewise.
4260 * gthr-tpf.h: Likewise.
4261 * gthr-vxworks.h: Likewise.
4262 * gthr-win32.h: Likewise.
4263 * gthr.h: Likewise.
4264 * libgcc2.c: Likewise.
4265 * libgcc2.h: Likewise.
4266 * libgcov.c: Likewise.
4267 * tsystem.h: Likewise.
4268 * typeclass.h: Likewise.
4269 * unwind-c.c: Likewise.
4270 * unwind-compat.h: Likewise.
4271 * unwind-dw2-fde-compat.c: Likewise.
4272 * unwind-dw2-fde-darwin.c: Likewise.
4273 * unwind-dw2-fde-glibc.c: Likewise.
4274 * unwind-dw2-fde.c: Likewise.
4275 * unwind-dw2-fde.h: Likewise.
4276 * unwind-dw2.c: Likewise.
4277 * unwind-dw2.h: Likewise.
4278 * unwind-generic.h: Likewise.
4279 * unwind-pe.h: Likewise.
4280 * unwind-sjlj.c: Likewise.
4281 * unwind.inc: Likewise.
4282 * config/arm/neon-gen.ml: Change generated copyright header to
4283 refer to version 3 of the GNU General Public License with
4284 version 3.1 of the GCC Runtime Library Exception and to point
4285 readers at the COPYING3 and COPYING3.RUNTIME files and the
4286 FSF's license web page.
4287 * config/arm/arm_neon.h: Regenerate.
4288
42892009-04-09 Jakub Jelinek <jakub@redhat.com>
4290
4291 * config/cris/cris.md: Change copyright header to refer to version
4292 3 of the GNU General Public License.
4293 * doc/install.texi2html: Change copyright header to refer to version
4294 3 of the GNU General Public License and to point readers at the
4295 COPYING3 file and the FSF's license web page.
4296 * config/vax/linux.h: Likewise.
4297
4a77c72b
PB
42982009-04-09 Paolo Bonzini <bonzini@gnu.org>
4299
1ad2f450
L
4300 * config/i386/i386.md (cmpcc): New.
4301 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
4302 (sync_compare_and_swap_cc*): Delete.
4303
4304 * config/s390/s390.c (s390_compare_emitted): Remove.
4305 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
4306 s390_compare_emitted used to be handled. Assert that modes match.
4307 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
4308 refer to sync_compare_and_swap_ccsi.
4309 * config/s390/s390.h (s390_compare_emitted): Remove.
4310 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
4311 instead of s390_compare_emitted.
4312 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
4313 instead of s390_compare_emitted.
4314 * config/s390/s390.md (cmpcc): New.
4315 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
4316 CC_REGNUM, do not pretend it's set.
4317 (sync_compare_and_swap_cc*): Delete.
4318 * config/s390/predicates.md (cc_reg_operand): New.
4319
4320 * expr.c (sync_compare_and_swap_cc): Delete.
4321 * optabs.h (sync_compare_and_swap_cc): Delete.
4322 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
4323 is being used with can_compare_p.
4324 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
4325 (find_cc_set): New.
4326 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
4327 look for a MODE_CC set instead. Use emit_store_flag.
4328 (expand_compare_and_swap_loop): Likewise, with some additional
4329 complication to avoid a force_reg when useless. Use
4330 emit_cmp_and_jump_insns.
4331 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
4332 * doc/md.texi (sync_compare_and_swap_cc): Merge with
4333 sync_compare_and_swap documentation.
4a77c72b 4334
0c0efb33
JH
43352009-04-09 Jan Hubicka <jh@suse.cz>
4336
4337 * except.c (find_prev_try): Break out from ....
4338 (duplicate_eh_regions): ... here; properly update prev_try pointers
4339 when duplication part of tree.
4340 (dump_eh_tree): Improve dumping.
4341 (verify_eh_region): New.
4342 (verify_eh_tree): Use it.
4343
22a65a54
RG
43442009-04-06 Richard Guenther <rguenther@suse.de>
4345
4346 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
4347 &ARRAY addresses by adjusting their types and prepending
4348 a conversion.
4349 * tree-cfg.c (verify_gimple_assign_single): Verify that
4350 addresses are correct.
4351
f76968e6
RG
43522009-04-09 Richard Guenther <rguenther@suse.de>
4353
4354 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
4355 indices into an array reference if possible.
4356 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4357 Fold POINTER_PLUS_EXPR statements with invariant address.
4358
c90c5fb5
AM
43592009-04-09 Alan Modra <amodra@bigpond.net.au>
4360
4361 PR target/39634
4362 * config.gcc (powerpc64-*-linux*): Always build biarch.
4363
17cede2e
JM
43642009-04-09 Joseph Myers <joseph@codesourcery.com>
4365
4366 PR c/39613
4367 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
4368 it and pedwarn if this results in an INTEGER_CST.
4369
a3337ea2
KG
43702009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4371
4372 * doc/install.texi: Update minimum GMP version. Remove obsolete
4373 text in MPFR section.
4374
ce9ba79b
JJ
43752009-04-08 Jakub Jelinek <jakub@redhat.com>
4376
4377 * dwarf2out.c (class_scope_p): New static inline.
4378 (class_or_namespace_scope_p): Use it.
4379 (gen_variable_die): Use DW_TAG_member tag for static data member
4380 declarations instead of DW_TAG_variable.
4381
4f0ae266
JJ
4382 PR middle-end/39573
4383 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
4384 variables.
4385
d27f0ddc
RG
43862009-04-08 Richard Guenther <rguenther@suse.de>
4387
4388 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
4389 valueize random data.
4390
557cc596
DE
43912009-04-08 David Edelsohn <edelsohn@gnu.org>
4392
4393 * config.gcc (aix tm_file): Add aix-stdint.h.
4394 (aix tm clause use_gcc_stdint): Set to wrap.
4395 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 4396
75ccc1e7
RG
43972009-04-08 Richard Guenther <rguenther@suse.de>
4398
4399 PR middle-end/36291
4400 * tree-dfa.c (add_referenced_var): Do not recurse into
4401 global initializers.
4402 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
4403 exposed variables.
4404 (fold_const_aggregate_ref): Likewise.
4405
c6963675
PB
44062009-04-08 Paolo Bonzini <bonzini@gnu.org>
4407
6c44cf79
L
4408 * recog.c (ordered_comparison_operator): New.
4409 * gensupport.c (std_preds): Add it.
c6963675
PB
4410 * doc/md.texi (Machine-Independent Predicates): Document it.
4411
6d07ad98
JH
44122009-04-08 Jan Hubicka <jh@suse.cz>
4413
4414 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
4415 * function.h (rtl_eh): Remove exception_handler_label_map.
4416 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
4417 remove_exception_handler_label, for_each_eh_label_1): Remove.
4418 (rtl_remove_unreachable_regions): Remove.
4419 (convert_from_eh_region_ranges): Do not remove unreachable regions.
4420 (find_exception_handler_labels): Don't build the hashtable.
4421 (maybe_remove_eh_handler): Remove.
4422 (for_each_eh_label): Rewrite to walk the tree.
4423 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
4424 * except.h (maybe_remove_eh_handler): Remove.
4425 * passes.c (init_optimization_passes): Schedule second EH cleanup
4426 before out-of-ssa.
4427 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
4428 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
4429
7ddf71e3
PB
44302009-04-08 Paolo Bonzini <bonzini@gnu.org>
4431
4432 * genoutput.c (validate_optab_operands): New.
4433 (gen_insn, gen_expand): Call it.
4434
4435 * genflags.c (gen_insn): Detect misused iterators.
4436 (main): Pass line_no to gen_insn, exit with status 1 on error.
4437
4438 * genextract.c (line_no): Make global.
4439 (VEC_safe_set_locstr): Change assertion to error message.
4440 (main): Exit with status 1 on error.
4441
4d84fe7c
JM
44422009-04-08 Joseph Myers <joseph@codesourcery.com>
4443
4444 PR c/39614
4445 PR c/39673
4446 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
4447 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
4448 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
4449 * c-convert.c (convert): Do not call fold on results of conversion
4450 functions when the result is a C_MAYBE_CONST_EXPR.
4451 * c-parser.c (c_parser_postfix_expression): Do not fold condition
4452 of __builtin_choose_expr.
4453 * c-typeck.c (remove_c_maybe_const_expr): New.
4454 (build_unary_op, build_conditional_expr, build_compound_expr,
4455 build_binary_op, c_objc_common_truthvalue_conversion): Call
4456 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
4457 integer operands.
4458
60839f5d 44592009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 4460
2ba9daa7 4461 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 4462 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 4463
8e481a2c
DS
44642009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
4465
4466 PR bootstrap/39660
4467 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
4468 mix declarations and code.
4469
ee618c17
BE
44702009-04-08 Ben Elliston <bje@au.ibm.com>
4471
4472 * gcc.c: Replace `CC' with `GCC' throughout.
4473
f2a758a2
L
44742009-04-07 H.J. Lu <hongjiu.lu@intel.com>
4475
4476 * doc/invoke.texi: Document Atom support.
4477
6ea2bd47
JM
44782009-04-07 Jason Merrill <jason@redhat.com>
4479
4480 PR c++/25185
4481 * c-common.h, c-common.c: Add flag_pretty_templates.
4482 * c-opts.c (c_common_handle_option): Set it.
4483 * c.opt: Add -fno-pretty-templates.
4484 * doc/invoke.texi (C++ Dialect Options): Likewise.
4485
fcb82ab0
UB
44862009-04-07 Uros Bizjak <ubizjak@gmail.com>
4487
4488 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
4489 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
4490 (ia64_expand_builtin): Likewise.
4491
dc5e7298
MJ
44922009-04-07 Martin Jambor <mjambor@suse.cz>
4493
4494 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
4495 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
4496 ADDR_EXPRS are include too.
4497
0609b355
RG
44982009-04-07 Richard Guenther <rguenther@suse.de>
4499
4500 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
4501 decls are only used if passes as parameters or if they are
4502 local statics and the call is not to a builtin.
4503 (call_may_clobber_ref_p_1): Likewise.
4504
d8e535fa
PB
45052009-04-07 Paolo Bonzini <bonzini@gnu.org>
4506
4507 * expr.c (do_store_flag): Remove last argument. Simplify code
4508 to avoid duplication of tests already done by can_compare_p.
4509 (expand_expr_real_1): Adjust caller.
4510
c3c64f50
PB
45112009-04-07 Paolo Bonzini <bonzini@gnu.org>
4512
fcb82ab0
UB
4513 * optabs.c (can_compare_p): Test the predicate of a
4514 cbranch and cstore pattern.
c3c64f50 4515
9a53bc17
PB
45162009-04-07 Paolo Bonzini <bonzini@gnu.org>
4517
fcb82ab0
UB
4518 * expr.c (convert_move): Use emit_store_flag instead of
4519 "emulating" it.
9a53bc17 4520
67b8f1c1
PB
45212009-04-07 Paolo Bonzini <bonzini@gnu.org>
4522
fcb82ab0
UB
4523 * config/i386/i386.c (ix86_compare_emitted): Remove.
4524 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
4525 ix86_compare_op0 like ix86_compare_emitted used to be handled.
4526 * config/i386/i386.h (ix86_compare_emitted): Remove.
4527 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
4528 instead of ix86_compare_emitted.
4529 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 4530
44509946
AS
45312009-04-07 Andrew Stubbs <ams@codesourcery.com>
4532
4533 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
4534 Add t-sysroot-suffix to tmake_file.
4535 * config/print-sysroot-suffix.sh: New file.
4536 * config/t-sysroot-suffix: New file.
4537
ca22d882
BE
45382009-04-07 Ben Elliston <bje@au.ibm.com>
4539
4540 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
4541 as the latter produces a warning when the target does not support
4542 infinity.
4543
95aac11b
BE
45442009-04-07 Ben Elliston <bje@au.ibm.com>
4545
4546 * dfp.c: Replace type punning assignments with memcpy throughout.
4547 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 4548
633dd061
AM
45492009-04-07 Alan Modra <amodra@bigpond.net.au>
4550
4551 PR target/39634
4552 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
4553 Include soft-fp/t-softfp after rs6000/t-linux64.
4554
fe0a25ec
EB
45552009-04-06 Eric Botcazou <ebotcazou@adacore.com>
4556
4557 * stor-layout.c (set_sizetype): Use the full precision of their
4558 machine mode for bitsize types.
4559
0c011bc3
L
45602009-04-06 H.J. Lu <hongjiu.lu@intel.com>
4561
4562 * config/i386/i386.md: Revert 2 accidental checkins.
4563
b6837b94 45642009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 4565 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
4566 H.J. Lu <hongjiu.lu@intel.com>
4567
4568 Atom pipeline model, tuning and insn selection.
4569 * config.gcc (atom): Add atom config options and target.
4570
4571 * config/i386/atom.md: New.
4572
4573 * config/i386/i386.c (atom_cost): New cost.
4574 (m_ATOM): New macro flag.
4575 (initial_ix86_tune_features): Set m_ATOM.
4576 (x86_accumulate_outgoing_args): Likewise.
4577 (x86_arch_always_fancy_math_387): Likewise.
4578 (processor_target): Add Atom cost.
4579 (cpu_names): Add Atom cpu name.
4580 (override_options): Set Atom ISA.
4581 (ix86_issue_rate): New case PROCESSOR_ATOM.
4582 (ix86_adjust_cost): Likewise.
4583
4584 * config/i386/i386.h (TARGET_ATOM): New target macro.
4585 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
4586 (TARGET_OPT_AGU): New target option.
4587 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
4588 (processor_type): Add PROCESSOR_ATOM.
4589
4590 * config/i386/i386.md (cpu): Add new value "atom".
4591 (use_carry, movu): New attr.
4592 (atom.md): Include atom.md.
4593 (adddi3_carry_rex64): Set attr "use_carry".
4594 (addqi3_carry): Likewise.
4595 (addhi3_carry): Likewise.
4596 (addsi3_carry): Likewise.
4597 (*addsi3_carry_zext): Likewise.
4598 (subdi3_carry_rex64): Likewise.
4599 (subqi3_carry): Likewise.
4600 (subhi3_carry): Likewise.
4601 (subsi3_carry): Likewise.
4602 (x86_movdicc_0_m1_rex64): Likewise.
4603 (*x86_movdicc_0_m1_se): Likewise.
4604 (x86_movsicc_0_m1): Likewise.
4605 (*x86_movsicc_0_m1_se): Likewise.
4606 (*adddi_1_rex64): Emit add insn as much as possible.
4607 (*addsi_1): Likewise.
4608 (return_internal): Set atom_unit.
4609 (return_internal_long): Likewise.
4610 (return_pop_internal): Likewise.
4611 (*rcpsf2_sse): Set atom_sse_attr attr.
4612 (*qrt<mode>2_sse): Likewise.
4613 (*prefetch_sse): Likewise.
4614
4615 * config/i386/i386-c.c (ix86_target_macros_internal): New case
4616 PROCESSOR_ATOM.
4617 (ix86_target_macros_internal): Likewise.
4618
4619 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
4620 (*prefetch_sse_rex): Likewise.
4621 (sse_rcpv4sf2): Likewise.
4622 (sse_vmrcpv4sf2): Likewise.
4623 (sse_sqrtv4sf2): Likewise.
4624 (<sse>_vmsqrt<mode>2): Likewise.
4625 (sse_ldmxcsr): Likewise.
4626 (sse_stmxcsr): Likewise.
4627 (*sse_sfence): Likewise.
4628 (sse2_clflush): Likewise.
4629 (*sse2_mfence): Likewise.
4630 (*sse2_lfence): Likewise.
4631 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
4632 (<sse>_movup<ssemodesuffixf2c>): Likewise.
4633 (avx_movdqu<avxmodesuffix>): Likewise.
4634 (avx_lddqu<avxmodesuffix>): Likewise.
4635 (sse2_movntv2di): Change attr "type" to "ssemov".
4636 (sse2_movntsi): Likewise.
4637 (rsqrtv8sf2): Change attr "type" to "sseadd".
4638 (sse3_addsubv2df3): Set attr "atom_unit".
4639 (sse3_h<plusminus_insn>v4sf3): Likewise.
4640 (*sse2_pmaddwd): Likewise.
4641 (*vec_extractv2di_1_rex64): Likewise.
4642 (*vec_extractv2di_1_avx): Likewise.
4643 (sse2_psadbw): Likewise.
4644 (ssse3_phaddwv8hi3): Likewise.
4645 (ssse3_phaddwv4hi3): Likewise.
4646 (ssse3_phadddv4si3): Likewise.
4647 (ssse3_phadddv2si3): Likewise.
4648 (ssse3_phaddswv8hi3): Likewise.
4649 (ssse3_phaddswv4hi3): Likewise.
4650 (ssse3_phsubwv8hi3): Likewise.
4651 (ssse3_phsubwv4hi3): Likewise.
4652 (ssse3_phsubdv4si3): Likewise.
4653 (ssse3_phsubdv2si3): Likewise.
4654 (ssse3_phsubswv8hi3): Likewise.
4655 (ssse3_phsubswv4hi3): Likewise.
4656 (ssse3_pmaddubsw128): Likewise.
4657 (sse3_pmaddubsw: Likewise.
4658 (ssse3_palignrti): Likewise.
4659 (ssse3_palignrdi): Likewise.
4660
53e350d3
GP
46612009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
4662
4663 * doc/install.texi (Specific): Fix two cross-references to MinGW.
4664
439ef907
RG
46652009-04-06 Richard Guenther <rguenther@suse.de>
4666
4667 PR tree-optimization/28868
4668 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
4669 of which PHI results we inserted.
4670 (insert_into_preds_of_block): Record inserted PHIs.
4671 (eliminate): Eliminate redundant PHI nodes.
4672 (init_pre): Init inserted_phi_names.
4673
4bad83f5
RG
46742009-04-06 Richard Guenther <rguenther@suse.de>
4675
4676 PR tree-optimization/39643
4677 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
4678 IMAGPART_EXPRs of complex constants.
4679 (execute_fold_all_builtins): If we folded a call queue
4680 TODO_update_address_taken.
4681
570c4247
JH
46822009-04-06 Jan Hubicka <jh@suse.cz>
4683
4684 PR middle-end/39659
4685 * except.c (remove_unreachable_regions): Propagate may_contain_throw
4686 flag.
4687
a460d7a1
AS
46882009-04-06 Andrew Stubbs <ams@codesourcery.com>
4689
4690 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
4691 delay slot.
4692 (ic_invalidate_array): Likewise.
4693
60839f5d 46942009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
4695
4696 * calls.c (emit_library_call_value_1): Fix a problem with parameter
4697 alignment for library calls.
4698
7d253f6e
DS
46992009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
4700
4701 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
4702 (mingw32 tm clause use_gcc_stdint): Set to wrap.
4703 * config/i386/mingw-stdint.h: New file.
4704
941c3614
RB
47052009-04-05 Richard Guenther <rguenther@suse.de>
4706
4707 PR tree-optimization/39648
4708 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
4709 our &A vs. &A[0] IL deficiencies.
4710
12633413
JH
47112009-04-04 Jan Hubicka <jh@suse.cz>
4712
941c3614
RB
4713 * except.c (sjlj_find_directly_reachable_regions): Be ready for
4714 removed toplevel regions.
12633413
JH
4715 (sjlj_mark_call_sites): Likewise.
4716
bb2aaded
DK
47172009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
4718
4719 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
4720 (cygwin tm clause use_gcc_stdint): Set to wrap.
4721 * config/i386/cygwin-stdint.h: New file.
4722
86290011
RG
47232009-04-04 Richard Guenther <rguenther@suse.de>
4724
4725 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
4726 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
4727 single-argument PHIs if we are in loop-closed SSA form.
4728 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
4729 for the pre-condition.
4730 (slpeel_tree_peel_loop_to_edge): Likewise.
4731 (vect_build_loop_niters): Take an optional sequence to append stmts.
4732 (vect_generate_tmps_on_preheader): Likewise.
4733 (vect_do_peeling_for_loop_bound): Take extra guards for the
4734 pre-condition.
4735 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
4736 the cost model check.
4737 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 4738 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
4739 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
4740 (vect_do_peeling_for_loop_bound): Likewise.
4741 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
4742 loop bound only record extra pre-conditions, do not apply loop
4743 versioning.
4744
5eeeac64
RG
47452009-04-04 Richard Guenther <rguenther@suse.de>
4746
4747 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
4748 renaming code.
4749
1ff7d06b
JH
47502009-04-04 Jan Hubicka <jh@suse.cz>
4751
4752 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
4753 last_basic_block for size of bb->index indexed array.
4754 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
4755 compute_out, link_btr_uses, build_btr_def_use_webs,
4756 build_btr_def_use_webs, migrate_btr_defs): Likewise.
4757
14925fcd
JH
47582009-04-04 Jan Hubicka <jh@suse.cz>
4759
4760 * except.c (remove_eh_handler_and_replace): Break out from ...
4761 (remove_eh_handler): ... here.
4762 (bring_to_root): New function.
4763 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
4764 handled ones, bring others to root of tree.
4765
4e6d1743
JH
47662009-04-04 Jan Hubicka <jh@suse.cz>
4767
4cb735f7
JH
4768 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
4769 (all_phis_safe_to_merge): New function.
4770 (update_info): New structure.
4771 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
4772 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 4773
c6803d43
RG
47742009-04-04 Richard Guenther <rguenther@suse.de>
4775
4776 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
4777 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
4778 (append_vuse): Likewise.
4779
54f5943c
JJ
47802009-04-04 Jakub Jelinek <jakub@redhat.com>
4781
4782 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
4783 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
4784 instead of REG_UNSAVED for DW_CFA_undefined.
4785 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
4786 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
4787 outermost frame.
4788
aad2bccb
RE
47892009-04-04 Richard Earnshaw <rearnsha@arm.com>
4790
4791 PR target/39501
4792 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
4793 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
4794 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
4795
aa7069aa
RG
47962009-04-04 Richard Guenther <rguenther@suse.de>
4797
4798 PR tree-optimization/8781
4799 PR tree-optimization/37892
4800 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
4801 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
4802 (valueize_refs): Call it for *& valueizations.
4803 (shared_reference_ops_from_ref): Rename to ...
4804 (valueize_shared_reference_ops_from_ref): ... this and valueize.
4805 (shared_reference_ops_from_call): Rename to ...
4806 (valueize_shared_reference_ops_from_call): ... this and valueize.
4807 (vn_reference_lookup): Update.
4808 (visit_reference_op_call): Likewise.
4809 * tree-ssa-pre.c (phi_translate_1): Fold *&.
4810 (eliminate): Value-replace the call address in call statements.
4811
cd15ad3e
RG
48122009-04-04 Richard Guenther <rguenther@suse.de>
4813
4814 PR tree-optimization/39636
4815 * tree-ssa-forwprop.c
4816 (forward_propagate_addr_into_variable_array_index): Check for
4817 GIMPLE_ASSIGN before accessing the rhs code.
4818
462f3262
JM
48192009-04-03 Jason Merrill <jason@redhat.com>
4820
4821 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
4822
6adb807e
SE
48232009-04-03 Steve Ellcey <sje@cup.hp.com>
4824
4825 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
4826 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
4827 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
4828 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
4829 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
4830 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
4831 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
4832 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
4833 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
4834 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
4835 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
4836 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
4837 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
4838 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
4839 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
4840 Use fr_reg_or_fp01_operand instead of fr_register_operand
4841
4842 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
4843 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
4844 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
4845
174b3107
VM
48462009-04-03 Vladimir Makarov <vmakarov@redhat.com>
4847
b844e5d8
L
4848 PR rtl-optimization/39607
4849 PR rtl-optimization/39631
7a715bba
UB
4850
4851 Revert:
2ba9daa7 4852
174b3107
VM
4853 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
4854 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
4855 instead of DF_LR_OUT.
4856 * ira-lives.c (process_bb_node_lives): Ditto.
4857 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
4858 instead of DF_LR_{OUT,IN}.
4859 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
4860 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
4861
535b544a
SB
48622009-04-03 Steven Bosscher <steven@gcc.gnu.org>
4863
4864 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
4865 (execute_lower_omp): Always run but take the short way out if -fopenmp
4866 is not given.
4867 (gate_lower_omp): Remove, forcing the pass manager to always run the
4868 pass and always set PROP_gimple_lomp.
4869 (pass_lower_omp): Remove gate function.
4870 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
4871 PROP_trees. Instead, require it.
4872 * ipa-cp.c (pass_ipa_cp): Likewise.
4873 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
4874 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
4875 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
4876 and PROP_gimple_leh.
4877
5006671f
RG
48782009-04-03 Richard Guenther <rguenther@suse.de>
4879
4880 PR middle-end/13146
4881 PR tree-optimization/23940
4882 PR tree-optimization/33237
4883 PR middle-end/33974
4884 PR middle-end/34093
4885 PR tree-optimization/36201
4886 PR tree-optimization/36230
4887 PR tree-optimization/38049
4888 PR tree-optimization/38207
4889 PR tree-optimization/38230
4890 PR tree-optimization/38301
4891 PR tree-optimization/38585
4892 PR middle-end/38895
4893 PR tree-optimization/38985
4894 PR tree-optimization/39299
4895 * tree-ssa-structalias.h: Remove.
4896 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
4897 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
4898 (struct vuse_element_d): Remove.
4899 (struct vuse_vec_d): Likewise.
4900 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
4901 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
4902 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
4903 VUSE_ELEMENT_VAR): Likewise.
4904 (struct voptype_d): Likewise.
4905 (NUM_VOP_FREE_BUCKETS): Likewise.
4906 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
4907 (struct stmt_operands_d): Remove.
4908 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
4909 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
4910 VDEF_NUM, VDEF_VECT): Likewise.
4911 (copy_virtual_operands): Remove.
4912 (operand_build_cmp): Likewise.
4913 (create_ssa_artificial_load_stmt): Likewise.
4914 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
4915 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
4916 vuse_index and mayuse_index members. Pack and move done and iter_type
4917 members to the front.
4918 (SSA_OP_VMAYUSE): Remove.
4919 (SSA_OP_VIRTUAL_USES): Adjust.
4920 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
4921 (unlink_stmt_vdef): Declare.
4922 (add_to_addressable_set): Remove.
4923 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
4924 (vrp_visit_stmt): Likewise.
4925 * doc/tree-ssa.texi (Alias analysis): Update.
4926 * doc/invoke.texi (max-aliased-vops): Remove docs.
4927 (avg-aliased-vops): Likewise.
4928 * tree-into-ssa.c (syms_to_rename): Remove.
4929 (need_to_update_vops_p): Likewise.
4930 (need_to_initialize_update_ssa_p): Rename to ...
4931 (update_ssa_initialized_fn): ... this. Track function we are
4932 initialized for.
4933 (symbol_marked_for_renaming): Simplify.
4934 (add_new_name_mapping): Do not set need_to_update_vops_p.
4935 (dump_currdefs): Use SYMS_TO_RENAME.
4936 (rewrite_update_stmt): Always walk all uses/defs.
4937 (dump_update_ssa): Adjust.
4938 (init_update_ssa): Take function argument. Track what we are
4939 initialized for.
4940 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
4941 (create_new_def_for): Initialize for cfun, assert we are initialized
4942 for cfun.
4943 (mark_sym_for_renaming): Simplify.
4944 (mark_set_for_renaming): Do not initialize update-ssa.
4945 (need_ssa_update_p): Simplify. Take function argument.
4946 (name_mappings_registered_p): Assert we ask for the correct function.
4947 (name_registered_for_update_p): Likewise.
4948 (ssa_names_to_replace): Likewise.
4949 (release_ssa_name_after_update_ssa): Likewise.
4950 (update_ssa): Likewise. Use SYMS_TO_RENAME.
4951 (dump_decl_set): Do not print a newline.
4952 (debug_decl_set): Do it here.
4953 (dump_update_ssa): And here.
4954 * tree-ssa-loop-im.c (move_computations): Adjust.
4955 (movement_possibility): Likewise.
4956 (determine_max_movement): Likewise.
4957 (gather_mem_refs_stmt): Likewise.
4958 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
4959 or NAME_MEMORY_TAG.
4960 * tree-complex.c (update_all_vops): Remove.
4961 (expand_complex_move): Adjust.
4962 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
4963 Simplify test for memory referencing statement. Exclude
4964 non-invariant ADDR_EXPRs.
4965 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
4966 * tree-loop-distribution.c (generate_memset_zero): Adjust.
4967 (rdg_flag_uses): Likewise.
4968 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
4969 related code.
4970 (tree_optimize_tail_calls_1): Also split the
4971 edge from the entry block if we have degenerate PHI nodes in
4972 the first basic block.
4973 * tree.c (init_ttree): Remove memory-tag related code.
4974 (tree_code_size): Likewise.
4975 (tree_node_structure): Likewise.
4976 (build7_stat): Re-write to be build6_stat.
4977 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
4978 (SSA_VAR_P): Adjust.
4979 (struct tree_memory_tag): Remove.
4980 (struct tree_memory_partition_tag): Likewise.
4981 (union tree_node): Adjust.
4982 (build7): Re-write to be build6.
4983 * tree-pass.h (pass_reset_cc_flags): Remove.
4984 (TODO_update_address_taken): New flag.
4985 (pass_simple_dse): Remove.
4986 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
4987 * params.h (MAX_ALIASED_VOPS): Remove.
4988 (AVG_ALIASED_VOPS): Likewise.
4989 * omp-low.c (expand_omp_taskreg): Update SSA form.
4990 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
4991 aliases the lhs in a copy stmt.
4992 * tree-ssa-dse.c (struct address_walk_data): Remove.
4993 (memory_ssa_name_same): Likewise.
4994 (memory_address_same): Likewise.
4995 (get_kill_of_stmt_lhs): Likewise.
4996 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
4997 unused stores. Look through PHI nodes into post-dominated regions.
4998 (dse_optimize_stmt): Simplify. Properly remove stores.
4999 (tree_ssa_dse): Compute dominators.
5000 (execute_simple_dse): Remove.
5001 (pass_simple_dse): Likewise.
5002 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
5003 gimple_loaded_syms and gimple_stored_syms computation.
5004 * toplev.c (dump_memory_report): Dump alias and pta stats.
5005 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
5006 (vn_reference_eq): Likewise.
5007 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
5008 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
5009 valueize_vuses): Remove.
5010 (get_def_ref_stmt_vuses): Simplify. Rename to ...
5011 (get_def_ref_stmt_vuse): ... this.
5012 (vn_reference_lookup_2): New function.
5013 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
5014 walking equivalent vuses. Simplify.
5015 (vn_reference_lookup): Likewise.
5016 (vn_reference_insert): Likewise.
5017 (vn_reference_insert_pieces): Likewise.
5018 (visit_reference_op_call): Simplify.
5019 (visit_reference_op_load): Likewise.
5020 (visit_reference_op_store): Likewise.
5021 (init_scc_vn): Remove shared_lookup_vuses initialization.
5022 (free_scc_vn): Remove shared_lookup_vuses freeing.
5023 (sort_vuses, sort_vuses_heap): Remove.
5024 (get_ref_from_reference_ops): Export.
5025 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
5026 vector with single vuse pointer.
5027 (vn_reference_lookup_pieces, vn_reference_lookup,
5028 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
5029 (shared_vuses_from_stmt): Remove.
5030 (get_ref_from_reference_ops): Declare.
5031 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
5032 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
5033 memory-tag related code.
5034 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
5035 (likely_value): Add comment, skip static-chain of call statements.
5036 (surely_varying_stmt_p): Adjust.
5037 (gimplify_and_update_call_from_tree): Likewise.
5038 (execute_fold_all_builtins): Do not rebuild alias info.
5039 (gimplify_and_update_call_from_tree): Properly update VOPs.
5040 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
5041 (copy_ref_info): Remove memory-tag related code.
5042 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
5043 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
5044 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
5045 computation.
5046 * tree-ssa-dom.c (gimple_p): Remove typedef.
5047 (eliminate_redundant_computations): Adjust.
5048 (record_equivalences_from_stmt): Likewise.
5049 (avail_expr_hash): Likewise.
5050 (avail_expr_eq): Likewise.
7a715bba 5051 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
5052 (stmt_makes_single_load): Likewise.
5053 (stmt_makes_single_store): Likewise.
5054 * tree-ssa-alias.c: Rewrite completely.
5055 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
5056 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
5057 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
5058 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
5059 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
5060 Remove public functions.
5061 (pass_reset_cc_flags): Remove.
5062 (pass_build_alias): Move ...
5063 * tree-ssa-structalias.c (pass_build_alias): ... here.
5064 * tree-ssa-alias.c (may_be_aliased): Move ...
5065 * tree-flow-inline.h (may_be_aliased): ... here.
5066 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
5067 count_uses_and_derefs): Move ...
5068 * gimple.c: ... here.
5069 * gimple.h (count_uses_and_derefs): Declare.
5070 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
5071 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
5072 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
5073 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
5074 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
5075 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
5076 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
5077 New functions.
5078 * tree-dfa.c (refs_may_alias_p): Move ...
5079 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
5080 * tree-ssa-alias.h: New file.
5081 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
5082 (statement_sink_location): Likewise.
5083 * opts.c (decode_options): Do not adjust max-aliased-vops or
5084 avg-aliased-vops values.
5085 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
5086 (TV_CALL_CLOBBER): Likewise.
5087 (TV_FLOW_SENSITIVE): Likewise.
5088 (TV_FLOW_INSENSITIVE): Likewise.
5089 (TV_MEMORY_PARTITIONING): Likewise.
5090 (TV_ALIAS_STMT_WALK): New timevar.
5091 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
5092 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
5093 (get_address_description): Remove memory-tag related code.
5094 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
5095 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
5096 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
5097 and immediate uses in statements. Document.
5098 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
5099 (dump_symbols): Remove.
5100 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
5101 * alias.c (get_deref_alias_set): New function split out from ...
5102 (get_alias_set): ... here.
5103 * alias.h (get_deref_alias_set): Declare.
5104 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
5105 type parameter. Remove restrict pointer handling. Create a
5106 ref-all pointer in case type-based alias sets do not conflict.
5107 (vect_analyze_data_refs): Remove SMT related code.
5108 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
5109 (vectorizable_load): Likewise.
5110 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
5111 (DR_SYMBOL_TAG, DR_VOPS): Remove.
5112 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
5113 Ignore vops and SMTs.
5114 (dr_analyze_alias): Likewise..
5115 (free_data_ref): Likewise.
5116 (create_data_ref): Likewise.
5117 (analyze_all_data_dependences): Likewise.
5118 (get_references_in_stmt): Adjust.
5119 * tree-flow-inline.h (gimple_aliases_computed_p,
5120 gimple_addressable_vars, gimple_call_clobbered_vars,
5121 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
5122 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
5123 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
5124 gimple_mem_ref_stats): Remove.
5125 (gimple_vop): New function.
5126 (op_iter_next_use): Remove vuses and mayuses cases.
5127 (op_iter_next_def): Remove vdefs case.
5128 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
5129 (clear_and_done_ssa_iter): Do not set removed fields.
5130 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
5131 Assert we are not iterating over vuses or vdefs if not also
5132 iterating over uses or defs.
5133 (op_iter_init_use): Likewise.
5134 (op_iter_init_def): Likewise.
5135 (op_iter_next_vdef): Remove.
5136 (op_iter_next_mustdef): Likewise.
5137 (op_iter_init_vdef): Likewise.
5138 (compare_ssa_operands_equal): Likewise.
5139 (link_use_stmts_after): Handle vuse operand.
5140 (is_call_used): Use is_call_clobbered.
5141 (is_call_clobbered): Global variables are always call clobbered,
5142 query the call-clobbers bitmap.
5143 (mark_call_clobbered): Ignore global variables.
5144 (clear_call_clobbered): Likewise.
5145 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
5146 virtual operands sanity check.
5147 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
5148 Remove.
5149 (TARGET_MEM_REF): Remove TMR_TAG operand.
5150 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
5151 Remove call-clobber related code.
5152 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
5153 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
5154 partitions or escape reason.
5155 (get_single_def_stmt, get_single_def_stmt_from_phi,
5156 get_single_def_stmt_with_phi): Remove.
5157 (dump_referenced_vars): Tidy.
5158 (get_ref_base_and_extent): Allow bare decls.
5159 (collect_dfa_stats): Adjust.
5160 * graphite.c (rename_variables_in_stmt): Adjust.
5161 (graphite_copy_stmts_from_block): Likewise.
5162 (translate_clast): Likewise.
5163 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
5164 (EXPR_DIES): New.
5165 (translate_vuse_through_block): Use the oracle.
5166 (phi_translate_1): Adjust.
5167 (value_dies_in_block_x): Use the oracle. Cache the outcome
5168 in EXPR_DIES.
5169 (valid_in_sets): Check if the VUSE for
5170 a REFERENCE is available.
5171 (eliminate): Do not remove stmts during elimination,
5172 instead queue and remove them afterwards.
5173 (do_pre): Do not rebuild alias info.
5174 (pass_pre): Run TODO_rebuild_alias before PRE.
5175 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
5176 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
5177 (mark_all_v_defs_stmt): Remove.
5178 (mark_all_v_defs_seq): Adjust.
5179 (sra_replace): Likewise.
5180 (scalarize_use): Likewise.
5181 (scalarize_copy): Likewise.
5182 (scalarize_init): Likewise.
5183 (scalarize_ldst): Likewise.
5184 (todoflags): Remove.
5185 (tree_sra): Do not rebuild alias info.
5186 (tree_sra_early): Adjust.
5187 (pass_sra): Run TODO_update_address_taken before SRA.
5188 * tree-predcom.c (set_alias_info): Remove.
5189 (prepare_initializers_chain): Do not call it.
5190 (mark_virtual_ops_for_renaming): Adjust.
5191 (mark_virtual_ops_for_renaming_list): Remove.
5192 (initialize_root_vars): Adjust.
5193 (initialize_root_vars_lm): Likewise.
5194 (prepare_initializers_chain): Likewise.
5195 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
5196 (may_propagate_copy_into_stmt): Likewise.
5197 (merge_alias_info): Do nothing for now.
5198 (propagate_tree_value_into_stmt): Adjust.
5199 (stmt_may_generate_copy): Likewise.
5200 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
5201 not mark symbols for renaming.
5202 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
5203 with the same statement, make sure to update the new pointed-to one.
5204 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
5205 call statements, do not mark symbols for renaming.
5206 (mark_operand_necessary): Dump something.
5207 (ref_may_be_aliased): New function.
5208 (mark_aliased_reaching_defs_necessary_1): New helper function.
5209 (mark_aliased_reaching_defs_necessary): Likewise.
5210 (mark_all_reaching_defs_necessary_1): Likewise.
5211 (mark_all_reaching_defs_necessary): Likewise.
5212 (propagate_necessity): Do not process virtual PHIs. For
5213 non-aliased loads mark all reaching definitions as necessary.
5214 For aliased loads and stores mark the immediate dominating
5215 aliased clobbers as necessary.
5216 (visited): New global static.
5217 (perform_tree_ssa_dce): Free visited bitmap after propagating
5218 necessity.
5219 (remove_dead_phis): Perform simple dead virtual PHI removal.
5220 (remove_dead_stmt): Properly unlink virtual operands when
5221 removing stores.
5222 (eliminate_unnecessary_stmts): Schedule PHI removal after
5223 stmt removal.
5224 * tree-ssa-ter.c (is_replaceable_p): Adjust.
5225 (process_replaceable): Likewise.
5226 (find_replaceable_in_bb): Likewise.
5227 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
5228 based on the single gimple vop.
5229 (verify_flow_insensitive_alias_info): Remove.
5230 (verify_flow_sensitive_alias_info): Likewise.
5231 (verify_call_clobbering): Likewise.
5232 (verify_memory_partitions): Likewise.
5233 (verify_alias_info): Likewise.
5234 (verify_ssa): Adjust..
5235 (execute_update_addresses_taken): Export. Update SSA
5236 manually. Optimize only when optimizing. Use a local bitmap.
5237 (pass_update_address_taken): Remove TODO_update_ssa, add
5238 TODO_dump_func.
5239 (pass_update_address_taken): Just use TODO_update_address_taken.
5240 (init_tree_ssa): Do not initialize addressable_vars.
5241 (verify_ssa): Verify new VUSE / VDEF properties.
5242 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
5243 Do not call verify_alias_info.
5244 (delete_tree_ssa): Clear the VUSE, VDEF operands.
5245 Do not free the loaded and stored syms bitmaps. Reset the escaped
5246 and callused solutions. Do not free addressable_vars.
5247 Remove memory-tag related code.
5248 (warn_uninitialized_var): Aliases are always available.
5249 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
5250 * lambda-code.c (can_put_in_inner_loop): Adjust.
5251 (can_put_after_inner_loop): Likewise.
5252 (perfect_nestify): Likewise.
5253 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
5254 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
5255 (vectorizable_conversion): Do not mark symbols for renaming.
5256 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
5257 (expand_call_inline): Unlink the calls virtual operands before
5258 replacing it.
5259 (tree_function_versioning): Do not call update_ssa if we are not
5260 updating clones. Simplify.
5261 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
5262 (propagate_with_phi): Likewise..
5263 * tree-outof-ssa.c (create_temp): Remove memory tag and call
5264 clobber code. Assert we are not aliased or global.
5265 * tree-flow.h: Include tree-ssa-alias.h
5266 (enum escape_type): Remove.
5267 (struct mem_sym_stats_d): Likewise.
5268 (struct mem_ref_stats_d): Likewise.
5269 (struct gimple_df): Add vop member. Remove global_var,
5270 call_clobbered_vars, call_used_vars, addressable_vars,
5271 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
5272 escaped and callused members.
5273 (struct ptr_info_def): Remove all members, add points-to solution
5274 member pt.
5275 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
5276 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
5277 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
5278 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
5279 (tree-ssa-alias.o): Likewise.
5280 (toplev.o): Add tree-ssa-alias.h
5281 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
5282 * gimple.c (gimple_set_bb): Fix off-by-one error.
5283 (is_gimple_reg): Do not handle memory tags.
5284 (gimple_copy): Also copy virtual operands.
5285 Delay updating the statement. Do not reset loaded and stored syms.
5286 (gimple_set_stored_syms): Remove.
5287 (gimple_set_loaded_syms): Likewise.
5288 (gimple_call_copy_skip_args): Copy the virtual operands
5289 and mark the new statement modified.
5290 * tree-ssa-structalias.c (may_alias_p): Remove.
5291 (set_uids_in_ptset): Take the alias set to prune with as
5292 parameter. Fold in the alias test of may_alias_p.
5293 (compute_points_to_sets): Compute whether a ptr is dereferenced
5294 in a local sbitmap.
5295 (process_constraint): Deal with &ANYTHING on the lhs, reject all
5296 other ADDRESSOF constraints on the lhs.
5297 (get_constraint_for_component_ref): Assert that we don't get
5298 ADDRESSOF constraints from the base of the reference.
5299 Properly generate UNKNOWN_OFFSET for DEREF if needed.
5300 (struct variable_info): Remove collapsed_to member.
5301 (get_varinfo_fc): Remove.
5302 (new_var_info): Do not set collapsed_to.
5303 (dump_constraint): Do not follow cycles.
5304 (dump_constraint_graph): Likewise.
5305 (build_pred_graph): Likewise.
5306 (build_succ_graph): Likewise.
5307 (rewrite_constraints): Likewise.
5308 (do_simple_structure_copy): Remove.
5309 (do_rhs_deref_structure_copy): Remove.
5310 (do_lhs_deref_structure_copy): Remove.
5311 (collapse_rest_of_var): Remove.
5312 (do_structure_copy): Re-implement.
5313 (pta_stats): New global variable.
5314 (dump_pta_stats): New function.
5315 (struct constraint_expr): Make offset signed.
5316 (UNKNOWN_OFFSET): Define special value.
5317 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
5318 (solution_set_expand): New helper function split out from ...
5319 (do_sd_constraint): ... here.
5320 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
5321 (do_ds_constraint): Likewise.
5322 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
5323 and CALLUSED = *CALLUSED.
5324 (set_union_with_increment): Make inc argument signed.
5325 (type_safe): Remove.
5326 (get_constraint_for_ptr_offset): Handle unknown and negative
5327 constant offsets.
5328 (first_vi_for_offset): Handle offsets before start. Bail
5329 out early for offsets beyond the variable extent.
5330 (first_or_preceding_vi_for_offset): New function.
5331 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
5332 Together with ESCAPED = *ESCAPED this properly computes reachability.
5333 (find_what_var_points_to): New function.
5334 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
5335 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
5336 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
5337 pt_solutions_intersect): New functions.
5338 (compute_call_used_vars): Remove.
5339 (compute_may_aliases): New main entry into PTA computation.
5340 * gimple.h (gimple_p): New typedef.
5341 (struct gimple_statement_base): Remove references_memory_p.
5342 (struct gimple_statement_with_memory_ops_base): Remove
5343 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
5344 members.
5345 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
5346 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
5347 gimple_set_references_memory): Remove.
5348 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
5349 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
5350 New functions.
5351 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
5352 (verify_expr): Allow RESULT_DECL.
5353 (gimple_duplicate_bb): Do not copy virtual operands.
5354 (gimple_duplicate_sese_region): Adjust.
5355 (gimple_duplicate_sese_tail): Likewise.
5356 (mark_virtual_ops_in_region): Remove.
5357 (move_sese_region_to_fn): Do not call it.
5358 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
5359 and pass_simple_dse.
5360 (execute_function_todo): Handle TODO_update_address_taken,
5361 call execute_update_addresses_taken for TODO_rebuild_alias.
5362 (execute_todo): Adjust.
5363 (execute_one_pass): Init dump files early.
5364 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
5365 call-clobbered.
5366 (create_general_new_stmt): Clear vops.
5367 * tree-ssa-reassoc.c (get_rank): Adjust.
5368 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
5369 symbols for renaming.
5370 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
5371 (PARAM_AVG_ALIASED_VOPS): Likewise.
5372 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
5373 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 5374 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
5375 (operand_build_cmp, copy_virtual_operands,
5376 create_ssa_artificial_load_stmt, add_to_addressable_set,
5377 gimple_add_to_addresses_taken): Remove public functions.
5378 (unlink_stmt_vdef): New function.
5379
457d1d00
AM
53802009-04-03 Alan Modra <amodra@bigpond.net.au>
5381
5382 * config.gcc (powerpc-*-linux*): Merge variants.
5383
e19da24c 53842009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 5385 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
5386
5387 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
5388 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
5389 cop0_sp_offset.
5390 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
5391 keep_interrupts_masked_p, use_debug_exception_return_p.
5392 (mips_attribute_table): Add interrupt, use_shadow_register_set,
5393 keep_interrupts_masked, use_debug_exception_return.
5394 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
5395 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
5396 New functions.
5397 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
5398 (mips_print_operand): Process COP0 registers to print $0 .. $31
5399 correctly for GAS to process.
5400 (mips_interrupt_extra_call_saved_reg_p): New function.
5401 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
5402 extra registers.
5403 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
5404 (mips_compute_frame_info): Add supports for interrupt context that
5405 includes doubleword accumulators and COP0 registers.
5406 (mips_for_each_saved_acc): New function.
5407 (mips_for_each_saved_gpr_and_fpr): Change the function name from
5408 mips_for_each_saved_reg.
5409 (mips_save_reg): Save accumulators.
5410 (mips_kernel_reg_p): A new for_each_rtx callback.
5411 (mips_expand_prologue): Support interrupt handlers.
5412 (mips_restore_reg): Restore accumulators.
5413 (mips_expand_epilogue): Support interrupt handlers.
5414 (mips_can_use_return_insn): Return false for interrupt handlers.
5415 (mips_epilogue_uses): New function.
5416 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
5417 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
5418 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
5419 cop0_move): New instructions.
5420 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
5421 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
5422 defines.
5423 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
5424 New defines.
5425 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
5426 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
5427 interrupt handlers, we use K0 as the temporary register.
5428 (EPILOGUE_USES): Change to a function call.
5429 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
5430 handlers, we use K0 as the temporary register.
2ba9daa7 5431
e19da24c
CF
5432 * doc/extend.texi (Function Attributes): Document interrupt,
5433 use_shadow_register_set, keep_interrupts_masked,
5434 use_debug_exception_return for MIPS attributes.
5435
aa1ca044
AM
54362009-04-03 Alan Modra <amodra@bigpond.net.au>
5437
5438 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
5439 Remove a number of t-files from tmake_file.
5440 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
5441 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
5442 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
5443 target_prototype, not TARGET_PROTOTYPE.
5444 (LINK_OS_GNU_SPEC): Define.
5445 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
5446 and darwin-ldoubdle.c.
5447
14fdc613
MM
54482009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
5449
5450 PR driver/39293
5451 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
5452 (cpp_options): Ditto.
5453 (default_compilers): Ditto.
5454 (display_help): Ditto.
5455 (process_command): Ditto.
5456 (do_spec_1): Ditto.
5457 (set_input): Use lbasename instead of duplicate code.
5458 (save_temps_prefix): New static for -save-temps=obj.
5459 (save_temps_length): Ditto.
2ba9daa7 5460
14fdc613
MM
5461 * doc/invoke.texi (-save-temps=obj): Document new variant to
5462 -save-temps switch.
5463
d3aa398e
JL
54642009-04-02 Jeff Law <law@redhat.com>
5465
5466 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
5467 variable.
5468
83f0ccb8
L
54692009-04-02 H.J. Lu <hongjiu.lu@intel.com>
5470
5471 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
5472 * configure: Regenerated.
5473
dcb6e951
RAE
54742009-04-02 Rafael Avila de Espindola <espindola@google.com>
5475
5476 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
5477 share the argument list.
5478
d85478c2
RAE
54792009-04-02 Rafael Avila de Espindola <espindola@google.com>
5480
5481 Merge
5482
5483 2009-02-12 Diego Novillo <dnovillo@google.com>
5484
83f0ccb8
L
5485 * varpool.c (debug_varpool): New.
5486 * cgraph.h (debug_varpool): Declare.
d85478c2 5487
34f42a49
JH
54882009-04-02 Jan Hubicka <jh@suse.cz>
5489
5490 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
5491 pass.
5492
a4747b4a
L
54932009-04-02 H.J. Lu <hongjiu.lu@intel.com>
5494
5495 * config/i386/i386.c (ix86_abi): Move initialization to ...
5496 (override_options): Here.
5497
63a9de54
CB
54982009-04-02 Christian Bruel <christian.bruel@st.com>
5499
5500 * config/sh/sh.c (sh_dwarf_register_span): New function.
5501 (TARGET_DWARF_REGISTER_SPAN): Define.
5502 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 5503
2f0fa28e
IR
55042009-04-02 Ira Rosen <irar@il.ibm.com>
5505
5506 PR tree-optimization/39595
2ba9daa7 5507 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
5508 interleaved loads group is not greater than the SLP group size.
5509
bbf7ce11
RAE
55102009-04-02 Rafael Avila de Espindola <espindola@google.com>
5511
5512 * builtins.c (is_builtin_name): New.
5513 (called_as_built_in): Use is_builtin_name.
5514 * tree.h (is_builtin_name): New.
5515 * varasm.c (incorporeal_function_p): Use is_builtin_name
5516
47e4dfcf
AS
55172009-04-02 Andrew Stubbs <ams@codesourcery.com>
5518
5519 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
5520
d0940d56
DS
55212009-04-02 Dodji Seketeli <dodji@redhat.com>
5522
5523 PR c++/26693
532bfb0a 5524 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
5525 * c-common.c (set_underlying_type): ... here.
5526 Also, make sure the function properly sets TYPE_STUB_DECL() on
5527 the newly created typedef variant type.
5528 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
5529 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
5530 points.
d0940d56 5531
bf1cbdc6
RG
55322009-04-02 Richard Guenther <rguenther@suse.de>
5533
5534 PR tree-optimization/37221
5535 * tree-flow.h (degenerate_phi_result): Declare.
5536 * tree-ssa-dom.c (degenerate_phi_result): Export.
5537 * tree-scalar-evolution.c (analyze_initial_condition): If
5538 the initial condition is defined by a degenerate PHI node
5539 use the degenerate value.
5540
87cfb32c
EB
55412009-04-01 Eric Botcazou <ebotcazou@adacore.com>
5542
5543 PR rtl-optimization/39588
5544 * combine.c (merge_outer_ops): Do not set the constant when this
5545 is not necessary.
5546 (simplify_shift_const_1): Do not modify it either in this case.
5547
bbb6eae8
SB
55482009-04-01 Steven Bosscher <steven@gcc.gnu.org>
5549
5550 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
5551 tuning is deprecated if -mtune value is set to an Itanium1 variant.
5552
839a3b8a
JJ
55532009-04-01 Janis Johnson <janis187@us.ibm.com>
5554
5555 PR c/29027
5556 * c-lex.c (interpret_float): Default (no suffix) is double.
5557
667e8acb
XDL
55582009-04-1 Xinliang David Li <davidxl@google.com>
5559
5560 * config/i386/i386.c (legitimate_constant_p): Recognize
5561 all one vector constant.
5562
60839f5d 55632009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5564
60839f5d 5565 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
5566 Change #include order to silence two warnings.
5567
60839f5d 55682009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5569
60839f5d 5570 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
5571 (ASM_SPEC): Pass -k to the assembler for PIC code.
5572
60839f5d 55732009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5574
60839f5d
EB
5575 * config.gcc: Add vax-*-linux* to the switch.
5576 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
5577 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
5578
60839f5d 55792009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5580
60839f5d 5581 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 5582 Use predicate macros instead of GET_CODE() == foo.
60839f5d 5583 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
5584 ashlsi3, rotrsi3, <unnamed>): Likewise.
5585
60839f5d 55862009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5587
60839f5d 5588 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 5589 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
5590 * config/vax/constraints.md: Likewise.
5591 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5592 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
5593 * config/vax/predicates.md: Likewise.
5594 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 5595 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
5596 * config/vax/vax.h: Likewise.
5597 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 5598
60839f5d 55992009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5600
60839f5d 5601 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
5602 (indirectable_address_p, adjacent_operands_p): Add spaces around
5603 braces.
60839f5d 5604 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 5605
60839f5d 56062009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5607
60839f5d 5608 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
5609 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
5610 index_term_p, reg_plus_index_p, legitimate_address_p,
5611 vax_mode_dependent_address_p): Update comments to match functions
5612 modified by the recent int->bool conversion.
5613
60839f5d 56142009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5615
60839f5d
EB
5616 * config/vax/builtins.md: Update copyright message.
5617 * config/vax/constraints.md: Likewise.
5618 * config/vax/netbsd-elf.h: Likewise.
5619 * config/vax/predicates.md: Likewise.
5620 * config/vax/vax-protos.h: Likewise.
5621 * config/vax/vax.c: Likewise.
5622 * config/vax/vax.h: Likewise.
5623 * config/vax/vax.md: Likewise.
5624 * config/vax/vax.opt: Likewise.
c4e75102 5625
60839f5d 56262009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 5627
60839f5d 5628 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 5629 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
5630 * config/vax/constraints.md (B, R): Likewise.
5631 * config/vax/predicates.md (external_memory_operand,
c4e75102 5632 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
5633 * config/vax/vax.c (vax_output_int_add): Likewise.
5634 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
5635 untyped_call): Likewise.
5636
60839f5d 56372009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 5638
7a715bba
UB
5639 * config/vax/predicates.md: New file.
5640 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
5641 external_const_operand, nonsymbolic_operand, external_memory_operand,
5642 indirect_memory_operand, indexed_memory_operand,
5643 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
5644 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
5645 predicate.
7a715bba
UB
5646 * config/vax/constraints.md: New file.
5647 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
5648 New constraint.
5649 * config/vax/builtins.md: New file.
5650 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
5651 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
5652 jbbccisi): Define.
c4e75102
MT
5653 * config/vax/vax.opt (mqmath): Add option.
5654 * config/vax/vax.md (isfx): Extend with DI.
5655 (VAXintQH, VAXintQHSD): Define.
5656 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
5657 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
5658 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
5659 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
5660 (movdi): Update constraints and use vax_output_int_move().
5661 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
5662 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
5663 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
5664 nonlocal_goto): New.
5665 (mov<mode>): Extend accepted operand types.
5666 (subdi3_old): Rename from subdi3, change update constraints and use
5667 a new implementation.
60839f5d 5668 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
5669 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
5670 MOVE_RATIO, CLEAR_RATIO): Define.
5671 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
5672 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
5673 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 5674 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
5675 (split_quadword_operands): Make static and really allow variable
5676 splitting.
5677 (print_operand_address): Update for PIC generation.
5678 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
5679 indexable_address_p, fixup_mathdi_operand,
5680 vax_expand_addsub_di_operands, adjacent_operands_p): New.
5681 (vax_float_literal, legitimate_constant_p,
5682 indirectable_constant_address_p, index_term_p,
5683 reg_plus_index_p): Return bool instead of int.
5684 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
5685 where needed.
5686 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
5687 generation.
5688 (vax_output_conditional_branch): Indent.
5689 (legitimate_constant_address_p, indirectable_constant_address_p,
5690 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
5691 vax_mode_dependent_address_p): Return bool instead of int, update for
5692 PIC generation.
5693 * config/vax/vax-protos.h (legitimate_constant_address_p,
5694 legitimate_constant_p, legitimate_address_p,
5695 vax_mode_dependent_address_p): Change declaration to bool.
5696 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
5697 vax_expand_addsub_di_operands, vax_output_int_subtract,
5698 vax_output_movmemsi): Declare.
5699 (split_quadword_operands, vax_float_literal): Delete declaration.
5700 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
5701 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
5702 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
5703 ASM_OUTPUT_DWARF_PCREL): Define.
5704 (ASM_SPEC): Change definition to allow PIC generation.
5705
9332c6eb
L
57062009-04-01 Steve Ellcey <sje@cup.hp.com>
5707
5708 * doc/sourcebuild.texi: Update front-end requirements.
5709
d93e052c
JJ
57102009-04-01 Jakub Jelinek <jakub@redhat.com>
5711
5712 PR target/39226
5713 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
5714 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
5715 (booldi3_internal3): Use boolean_or_operator instead of
5716 boolean_operator.
5717
6ccb2a4a
JM
57182009-04-01 Joseph Myers <joseph@codesourcery.com>
5719
5720 PR c/39605
5721 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
5722 declarator whose size is not an integer constant expression but
5723 folds to an integer constant, then treat it as a constant
5724 subsequently.
5725
299b87f8
RG
57262009-04-01 Richard Guenther <rguenther@suse.de>
5727
5728 * fold-const.c (fold_plusminus_mult_expr): Do not fold
5729 i * 4 + 2 to (i * 2 + 1) * 2.
5730
b85eb797
JJ
57312009-04-01 Jakub Jelinek <jakub@redhat.com>
5732
5733 PR c/37772
5734 * c-parser.c (c_parser_asm_statement): Skip until close paren and
5735 return if c_parser_asm_string_literal returned NULL.
5736
235e1fe8
NC
57372009-04-01 Nick Clifton <nickc@redhat.com>
5738
5739 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
5740 already defined.
5741 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
5742 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
5743 other typedefs to avoid conflicts with libgcc2.c. Define labels
5744 to gain 16-bit bit-manipulation functions from libgcc2.c and then
5745 include it.
5746 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
5747 to gain 16-bit trapping arithmetic functions from libgcc2.c and
5748 then include it.
5749
d6868399
RAE
57502009-04-01 Rafael Avila de Espindola <espindola@google.com>
5751
7a715bba
UB
5752 * varasm.c (default_function_rodata_section): Declare DOT as
5753 const char*.
d6868399 5754
73d21f56 57552009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 5756 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
5757
5758 PR/39492
5759 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
5760 Make object_name unique for each process.
5761
03742a9b
JJ
57622009-04-01 Jakub Jelinek <jakub@redhat.com>
5763
5764 PR other/39591
5765 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
5766 addressable variables in the parallel that could go out of scope while
5767 running queued tasks.
5768
4223ff5f
AS
57692009-04-01 Anatoly Sokolov <aesok@post.ru>
5770
5771 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
5772 (CASE_VALUES_THRESHOLD): Redefine.
5773 * config/avr/avr.c (avr_override_options): Remove initialization of
5774 avr_case_values_threshold variable.
5775 (avr_case_values_threshold): Remove variable. Add new function.
5776 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
5777 * config/avr/avr.opt (mno-tablejump): Remove option.
5778 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
5779
e893f6f3
DD
57802009-04-01 DJ Delorie <dj@redhat.com>
5781
5782 * varasm.c (default_function_rodata_section): Don't assume
5783 anything about where the first '.' in the section name is.
5784
b246d100
AM
57852009-04-01 Alan Modra <amodra@bigpond.net.au>
5786
5787 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
5788 rs6000_emit_stack_tie.
5789
d3e37a9e
ILT
57902009-03-31 Ian Lance Taylor <iant@google.com>
5791
5792 * tree-eh.c (tree_remove_unreachable_handlers): Compare
5793 gimple_code with GIMPLE_RESX, not RESX.
5794
c1b61fca
JM
57952009-03-31 Joseph Myers <joseph@codesourcery.com>
5796
5797 * c-common.c (c_get_ident): New.
7a715bba 5798 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 5799
c2d2ad48
BE
58002009-04-01 Ben Elliston <bje@au.ibm.com>
5801
5802 * config/rs6000/sysv4.opt (msdata): Improve option description.
5803
13d1a6e7
SE
58042009-03-31 Steve Ellcey <sje@cup.hp.com>
5805
5806 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
5807 (divdf3_internal_lat): Remove.
5808 (divxf3_internal_lat): Remove.
5809 (divxf3_internal_thr): Remove.
5810 (divxf): Use divxf3_internal.
5811 * config/ia64/div.md (divsf3_internal_lat): New.
5812 (divdf3_internal_lat): New.
5813 (divxf3_internal): New.
5814
207bf79d
JM
58152009-03-31 Joseph Myers <joseph@codesourcery.com>
5816
5817 PR c/448
5818 * Makefile.in (USE_GCC_STDINT): Define.
5819 (stmp-int-hdrs): Install stdint.h if applicable.
5820 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
5821 if known.
5822 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
5823 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
5824 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5825 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5826 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5827 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5828 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5829 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5830 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5831 (c_common_nodes_and_builtins): Initialize
5832 underlying_wchar_type_node. Do not initialize
5833 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
5834 nodes for new types.
5835 (c_stddef_cpp_builtins): Define macros for new types.
5836 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
5837 Remove.
5838 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
5839 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
5840 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
5841 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
5842 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
5843 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
5844 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
5845 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
5846 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
5847 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
5848 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
5849 int16_type_node, int32_type_node, int64_type_node,
5850 uint8_type_node, uint16_type_node, c_uint32_type_node,
5851 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
5852 int_least32_type_node, int_least64_type_node,
5853 uint_least8_type_node, uint_least16_type_node,
5854 uint_least32_type_node, uint_least64_type_node,
5855 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
5856 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
5857 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
5858 uintptr_type_node): Define.
5859 * c-cppbuiltin.c (builtin_define_constants,
5860 builtin_define_type_minmax): New.
5861 (builtin_define_stdint_macros): Define more macros.
5862 (c_cpp_builtins): Define more limit macros.
5863 (type_suffix): New.
5864 (builtin_define_type_max): Define in terms of
5865 builtin_define_type_minmax. Remove is_long parameter. All
5866 callers changed.
5867 * config.gcc (use_gcc_stdint): Define.
5868 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
5869 Add newlib-stdint.h for generic targets.
5870 * config/glibc-stdint.h, config/newlib-stdint.h,
5871 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
5872 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
5873 * config/score/score.h (UINTPTR_TYPE): Define.
5874 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
5875 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
5876 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5877 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5878 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5879 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5880 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5881 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5882 * config/spu/spu.h (STDINT_LONG32): Define.
5883 * configure.ac (use_gcc_stdint): Substitute.
5884 * configure: Regenerate.
5885 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
5886 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
5887 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
5888 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
5889 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
5890 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
5891 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
5892 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
5893 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
5894 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
5895 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
5896 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
5897 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
5898 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
5899 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
5900 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
5901 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
5902 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
5903 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
5904 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
5905 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
5906 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
5907 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5908 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5909 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5910 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5911 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5912 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5913 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
5914
ed853664
BS
59152009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
5916
5917 * loop-iv.c (suitable_set_for_replacement): Renamed from
5918 simplify_using_assignment; changed to return bool and to accept new
5919 args DEST and SRC. Return true iff we find a source/destination pair
5920 that can be used to make a replacement, and fill SRC and DEST if so.
5921 Remove arg ALTERED. Don't deal with altered regs here. All callers
5922 changed.
5923 (simplify_using_initial_values): Deal with altered regs here and track
5924 more precisely the effect they have on the validity of our expression.
5925
1569e190
BS
5926 * loop-iv.c (simplify_using_condition): A condition of the form
5927 (EQ REG CONST) can be used to simply make a substitution.
5928 (simplify_using_initial_values): Keep track of conditions we have seen
5929 and keep using them to simplify new expressions, while applying the
5930 same substitutions to them as to the expression.
5931
1d1eb80c
BS
5932 * simplify-rtx.c (simplify_relational_operation_1): Simplify
5933 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
5934 GEU/LTU reversed.
5935
28af33b0
BS
5936 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
5937 changed. Use this when trying to improve the upper bound.
5938 Generate the comparison by using simplify_gen_relational.
5939
b30321cd
BS
5940 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
5941
60081874
BS
5942 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
5943 functions.
2ba9daa7 5944 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
5945 replace_in_expr to make replacements. Call replace_single_def_regs
5946 once on the initial version of the expression.
5947
bebc6e07
RR
59482009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5949
fcb82ab0 5950 PR target/27237
bebc6e07 5951 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 5952
6b12efe9
RG
59532009-03-31 Richard Guenther <rguenther@suse.de>
5954
5955 PR middle-end/31029
5956 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
5957 equality comparisons. Fold C - X CMP X if C % 2 == 1.
5958
108f6c2f
RG
59592009-03-31 Richard Guenther <rguenther@suse.de>
5960
5961 * tree.h (div_if_zero_remainder): Declare.
5962 * fold-const.c (div_if_zero_remainder): Export.
5963 * tree-ssa-forwprop.c
5964 (forward_propagate_addr_into_variable_array_index): Handle
5965 constant array index addition outside of the variable index.
5966
8f612190
JM
59672009-03-31 Joseph Myers <joseph@codesourcery.com>
5968
5969 PR target/39592
5970 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
5971 define_splits, floatunssi<mode>2): Require x87 conversions from
5972 DImode to be permitted.
5973
47580d22
JM
59742009-03-31 Joseph Myers <joseph@codesourcery.com>
5975
5976 PR preprocessor/15638
5977 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
5978
ba4d8f9d
RG
59792009-03-31 Richard Guenther <rguenther@suse.de>
5980
5981 PR middle-end/23401
5982 PR middle-end/27810
5983 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
5984 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
5985 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
5986 a separate statement.
5987 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
5988 (lookup_tmp_var): Likewise.
5989 (is_gimple_formal_tmp_or_call_rhs): Remove.
5990 (is_gimple_reg_or_call_rhs): Rename to ...
5991 (is_gimple_reg_rhs_or_call): ... this.
5992 (is_gimple_mem_or_call_rhs): Rename to ...
5993 (is_gimple_mem_rhs_or_call): ... this.
5994 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
5995 DECL_GIMPLE_REG_P only if is_formal is true.
5996 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
5997 for non-proper post-modify expression gimplification.
5998 (gimplify_self_mod_expr): For post-modify expressions gimplify
5999 the lvalue to a minimal lvalue.
6000 (rhs_predicate_for): Remove formal temp case.
6001 (gimplify_modify_expr_rhs): Likewise.
6002 (gimplify_addr_expr): Use is_gimple_reg.
6003 (gimplify_expr): Remove formal temp cases.
6004 (gimple_regimplify_operands): Likewise.
6005 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
6006 and FILTER_EXPR like constants.
6007 * gimple.c (walk_gimple_op): Fix val_only initialization, use
6008 is_gimple_reg.
6009 (is_gimple_formal_tmp_rhs): Remove.
6010 (is_gimple_reg_rhs): Remove special casing.
6011 (is_gimple_mem_rhs): Fix.
6012 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
6013 (is_gimple_formal_tmp_var): Remove.
6014 (is_gimple_formal_tmp_reg): Likewise.
6015 (is_gimple_min_lval): Allow invariant component ref parts.
6016 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
6017 is_gimple_formal_tmp_reg): Remove declarations.
6018 * tree-cfg.c (verify_expr): Verify that variables with address
6019 taken do not have DECL_GIMPLE_REG_P set.
6020 * tree-mudflap.c (mf_build_check_statement_for): Use
6021 force_gimple_operand instead of gimplify_expr.
6022
8de9b877
AZ
60232009-03-31 Ayal Zaks <zaks@il.ibm.com>
6024
6025 * modulo-sched.c (sms_schedule_by_order): Pass the actual
6026 schedulable rows to compute_split_row.
6027
b5e3caf2
BE
60282009-03-31 Ben Elliston <bje@au.ibm.com>
6029
6030 PR target/31635
6031 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
6032 OPT_mvrsave.
6033
9752c4ad
AM
60342009-03-31 Alan Modra <amodra@bigpond.net.au>
6035
6036 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
6037 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
6038 * configure: Regenerate.
6039 * config.in: Regenerate.
6040 * config/rs6000/rs6000.opt (mtls-markers): Add.
6041 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
6042 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
6043 (tls_ld_aix, tls_ld_sysv): Likewise.
6044 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
6045 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
6046
b597d1b6
AM
60472009-03-31 Alan Modra <amodra@bigpond.net.au>
6048
6049 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
6050
a203a221
JH
60512009-03-30 Jan Hubicka <jh@suse.cz>
6052
b597d1b6
AM
6053 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
6054 out of RESX.
6055 (tree_remove_unreachable_handlers): Cleanup EH predecestor
6056 detection and label handling.
a203a221 6057
5b0c0b2c
VM
60582009-03-30 Vladimir Makarov <vmakarov@redhat.com>
6059
6060 * ira-int.h (ira_allocno): Rename left_conflicts_num to
6061 left_conflicts_size.
6062 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
6063 ALLOCNO_LEFT_CONFLICTS_SIZE.
6064
6065 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
6066 remove_allocno_from_bucket_and_push,
6067 allocno_spill_priority_compare, push_allocnos_to_stack,
6068 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
6069 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
6070 (setup_allocno_left_conflicts_num): Ditto. Rename to
6071 setup_allocno_left_conflicts_size.
6072 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
6073 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
6074 setup_allocno_left_conflicts_size instead of
6075 setup_allocno_left_conflicts_num.
6076
6077 * ira-build.c (ira_create_allocno): Use
6078 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
6079 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 6080
9a48a93f
VM
60812009-03-30 Vladimir Makarov <vmakarov@redhat.com>
6082
6083 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6084 instead of DF_LR_OUT.
6085
6086 * ira-lives.c (process_bb_node_lives): Ditto.
6087
6088 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6089 instead of DF_LR_{OUT,IN}.
6090
6091 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6092
6093 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6094
4c936d4f
JH
60952009-03-30 Jan Hubicka <jh@suse.cz>
6096
6097 * except.c (label_to_region_map): Fix thinko.
6098
f4d9f129
SE
60992009-03-30 Steve Ellcey <sje@cup.hp.com>
6100
6101 PR middle-end/38237
6102 * tree.h (tree_find_value): New declaration.
6103 * tree.c (tree_find_value): New function.
6104 * varasm.c (assemble_external): Avoid duplicate entries on lists.
6105
b3f27c15
JJ
61062009-03-30 Jakub Jelinek <jakub@redhat.com>
6107
6108 PR debug/39563
6109 * c-decl.c (struct c_binding): Add locus field.
6110 (bind): Add locus argument, set locus field from it.
6111 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
6112 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
6113 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
6114 implicitly_declare, undeclared_variable, lookup_label,
6115 declare_label, c_make_fname_decl, c_builtin_function,
6116 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
6117 bind callers.
6118
ad41bd84 61192009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
6120
6121 PR target/38781
6122 * config/i386/i386.c (classify_argument): Check total size of
6123 structure.
6124
133f9369
MJ
61252009-03-30 Martin Jambor <mjambor@suse.cz>
6126
6127 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
6128 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
6129 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
6130 respectively.
6131
6132 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
6133 seen_variable_array_ref while also traversing a union.
6134
6135 * tree-inline.c (optimize_inline_calls): Do not call
6136 cgraph_node_remove_callees.
6137 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
6138 (pass_remove_cgraph_callee_edges): New variable.
6139 * passes.c (init_optimization_passes): Add
6140 pass_remove_cgraph_callee_edges after early inlining and before all
6141 late intraprocedural passes.
6142
6143 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
6144
1190f2eb
PB
61452009-03-30 Paolo Bonzini <bonzini@gnu.org>
6146
6147 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
6148 Fix typos in names.
6149
fedc1775
PB
61502009-03-30 Paolo Bonzini <bonzini@gnu.org>
6151
fcb82ab0
UB
6152 * combine.c (simplify_comparison): Use have_insn_for.
6153 * dojump.c (do_jump): Likewise.
fedc1775 6154
65c5ae8b
PB
61552009-03-30 Paolo Bonzini <bonzini@gnu.org>
6156
6157 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
6158 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
6159 sparc_compare_op0 like sparc_compare_emitted used to be handled.
6160 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
6161 instead of sparc_compare_emitted.
6162 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
6163 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
6164 instead of sparc_compare_emitted.
6165
d25aa7ab
PB
61662009-03-30 Paolo Bonzini <bonzini@gnu.org>
6167
6168 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
6169 enter/exit cfglayout mode.
6170 (pass_partition_block): Require it.
6171 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
6172 (combine_instructions): Track basic blocks instead of labels.
6173 (update_cfg_for_uncondjump): New.
6174 (try_combine): Use it. Update jumps after rescanning.
6175 (pass_combine): Require PROP_cfglayout.
6176 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
6177
9c9e26f5
PB
61782009-03-30 Paolo Bonzini <bonzini@gnu.org>
6179
fcb82ab0
UB
6180 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
6181 Provide/destroy PROP_cfglayout respectively.
6182 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
6183 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 6184
28ddeea1
PB
61852009-03-30 Paolo Bonzini <bonzini@gnu.org>
6186
6187 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
6188 fold_convert_const_fixed_from_fixed,
6189 fold_convert_const_fixed_from_int,
6190 fold_convert_const_fixed_from_real, fold_negate_const): Do not
6191 set TREE_CONSTANT_OVERFLOW.
6192 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
6193 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
6194
ebfd146a
IR
61952009-03-30 Ira Rosen <irar@il.ibm.com>
6196
6197 * tree-vect-loop-manip.c: New file.
6198 * tree-vectorizer.c: Update documentation and included files.
6199 (vect_loop_location): Make extern.
6200 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
6201 (rename_variables_in_bb, rename_variables_in_loop,
6202 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
6203 slpeel_update_phi_nodes_for_guard1,
6204 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
6205 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
6206 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 6207 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
6208 find_loop_location): Likewise.
6209 (new_stmt_vec_info): Move to tree-vect-stmts.c.
6210 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
6211 get_vectype_for_scalar_type, vect_is_simple_use,
6212 supportable_widening_operation, supportable_narrowing_operation):
6213 Likewise.
6214 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
6215 (new_loop_vec_info, destroy_loop_vec_info,
6216 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
6217 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
6218 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
6219 (vect_supportable_dr_alignment): Likewise.
6220 * tree-vectorizer.h (tree-data-ref.h): Include.
6221 (vect_loop_location): Declare.
6222 Reorganize function declarations according to the new file structure.
6223 * tree-vect-loop.c: New file.
2ba9daa7 6224 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
6225 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
6226 * tree-vect-data-refs.c: New file.
6227 * tree-vect-patterns.c (timevar.h): Don't include.
6228 * tree-vect-stmts.c: New file.
2ba9daa7 6229 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 6230 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
6231 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
6232 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
6233 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
6234 (tree-vect-analyze.o): Remove.
6235 (tree-vect-transform.o): Likewise.
6236 (tree-vect-data-refs.o): Add rule.
2ba9daa7 6237 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
6238 tree-vect-slp.o): Likewise.
6239 (tree-vect-patterns.o): Remove redundant dependencies.
6240 (tree-vectorizer.o): Likewise.
6241 * tree-vect-slp.c: New file.
6242
40a1cfba
RW
62432009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6244
6245 * optc-gen.awk: Warn if an option flag has multiple different
6246 help strings.
6247
a9a7a9a2
SP
62482009-03-30 Sebastian Pop <sebastian.pop@amd.com>
6249
6250 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
6251 -floop-block): Document dependences on PPL, CLooG and Graphite.
6252
8ce94e44
JM
62532009-03-30 Joseph Myers <joseph@codesourcery.com>
6254
6255 PR rtl-optimization/323
6256 * c-common.c (c_fully_fold, convert_and_check,
6257 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
6258 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
6259 * c-common.def (EXCESS_PRECISION_EXPR): New.
6260 * c-cppbuiltin.c (builtin_define_float_constants): Define
6261 constants with enough digits for long double.
6262 * c-lex.c (interpret_float): Interpret constant with excess
6263 precision where appropriate.
6264 * c-opts.c (c_common_post_options): Set
6265 flag_excess_precision_cmdline. Give an error for
6266 -fexcess-precision=standard for C++ for processors where the
6267 option is significant.
6268 * c-parser.c (c_parser_conditional_expression): Handle excess
6269 precision in condition.
6270 * c-typeck.c (convert_arguments): Handle arguments with excess
6271 precision.
6272 (build_unary_op): Move excess precision outside operation.
6273 (build_conditional_expr): Likewise.
6274 (build_compound_expr): Likewise.
6275 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
6276 (build_modify_expr): Handle excess precision in RHS.
6277 (convert_for_assignment): Handle excess precision in converted
6278 value.
6279 (digest_init, output_init_element, process_init_element): Handle
6280 excess precision in initializer.
6281 (c_finish_return): Handle excess precision in return value.
6282 (build_binary_op): Handle excess precision in operands and add
6283 excess precision as needed for operation.
6284 * common.opt (-fexcess-precision=): New option.
6285 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
6286 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6287 For standard excess precision, output explicit conversion to and
6288 truncation from XFmode.
6289 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
6290 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
6291 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
6292 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
6293 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
6294 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
6295 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
6296 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
6297 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
6298 define_splits, sqrt<mode>2): Disable where appropriate for
6299 standard excess precision.
6300 * convert.c (convert_to_real): Do not shorten arithmetic to type
6301 for which excess precision would be used.
6302 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
6303 * doc/invoke.texi (-fexcess-precision=): Document option.
6304 (-mfpmath=): Correct index entry.
6305 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
6306 flag_excess_precision): New.
6307 * langhooks.c (lhd_post_options): Set
6308 flag_excess_precision_cmdline.
6309 * opts.c (common_handle_option): Handle -fexcess-precision=.
6310 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
6311 init_excess_precision): New.
6312 (lang_dependent_init_target): Call init_excess_precision.
6313 * tree.c (excess_precision_type): New.
6314 * tree.h (excess_precision_type): Declare.
6315
1e57bf47
JM
63162009-03-30 Joseph Myers <joseph@codesourcery.com>
6317
6318 PR c/35235
6319 * c-typeck.c (build_component_ref): Do not copy qualifiers from
6320 non-lvalue to component.
6321
148e4216
JM
63222009-03-29 Joseph Myers <joseph@codesourcery.com>
6323
6324 PR preprocessor/34695
6325 * Makefile.in (c-opts.o): Depend on c-tree.h.
6326 * c-common.c: Move down include of diagnostic.h.
6327 (done_lexing, c_cpp_error): New.
6328 * c-common.h (done_lexing): Declare.
6329 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
6330 (parse_in).
6331 * c-opts.c: Include c-tree.h.
6332 (c_common_init_options): Set preprocessor error callback.
6333 (c_common_handle_option): Do not set preprocessor
6334 inhibit_warnings, warnings_are_errors, warn_system_headers,
6335 pedantic_errors or inhibit_warnings flags.
6336 (c_common_post_options): Do not check cpp_errors (parse_in).
6337 (c_common_finish): Do not output dependencies if there were
6338 errors. Do not check return value of cpp_finish.
6339 * c-ppoutput.c (pp_file_change): Set input_location.
6340 * c-tree.h (c_cpp_error): Declare.
6341 * diagnostic.c (diagnostic_set_info_translated): Also initialize
6342 override_column.
6343 (diagnostic_build_prefix): Check override_column.
6344 * diagnostic.h (diagnostic_info): Add override_column field.
6345 (diagnostic_override_column): Define.
6346
2ec5deb5
PB
63472009-03-28 Paolo Bonzini <bonzini@gnu.org>
6348
ba20e309
UB
6349 * c-common.c (c_expand_expr, c_staticp): Remove.
6350 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
6351 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
6352 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
6353 * c-gimplify.c (gimplify_compound_literal_expr,
6354 optimize_compound_literals_in_ctor): Remove.
6355 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
6356 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
6357 * c-semantics.c (emit_local_var): Remove.
6358
6359 * langhooks-def.h (lhd_expand_expr): Remove.
6360 * langhooks.c (lhd_expand_expr): Remove.
6361 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
6362
6363 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
6364 handling from c-semantics.c; don't call into langhook.
6365 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
6366 * gimplify.c (gimplify_compound_literal_expr,
6367 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
6368 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
6369 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
6370 as was done in c-gimplify.c.
6371 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
6372 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
6373 Move from c-common.h.
6374 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
6375
6376 * tree.c (staticp): Do not call langhook.
6377 * langhooks.c (lhd_staticp): Delete.
6378 * langhooks-def.h (lhd_staticp): Delete prototype.
6379 (LANG_HOOKS_STATICP): Delete.
6380 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
6381
ba20e309
UB
6382 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
6383 instead of DECL_STMTs.
2ec5deb5 6384
928c19bb
JM
63852009-03-29 Joseph Myers <joseph@codesourcery.com>
6386
6387 PR c/456
6388 PR c/5675
6389 PR c/19976
6390 PR c/29116
6391 PR c/31871
6392 PR c/35198
6393 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
6394 void_type_node.
6395 (fold_call_expr): Return a NOP_EXPR from folding rather than the
6396 contained expression.
ba20e309 6397 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
6398 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
6399 conditional expressions for C.
6400 (decl_constant_value_for_optimization): Move from
ba20e309 6401 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
6402 whether optimizing and that the expression is a VAR_DECL not of
6403 array type instead of doing such checks in the caller. Do not
6404 check pedantic. Call gcc_unreachable for C++.
6405 * c-common.def (C_MAYBE_CONST_EXPR): New.
6406 * c-common.h (c_fully_fold, c_save_expr,
6407 decl_constant_value_for_optimization): New prototypes.
6408 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6409 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6410 EXPR_INT_CONST_OPERANDS): Define.
6411 * c-convert.c (convert): Strip nops from expression.
6412 * c-decl.c (groktypename): Take extra parameters expr and
6413 expr_const_operands. Update call to grokdeclarator.
6414 (start_decl): Update call to grokdeclarator. Add statement for
6415 expressions used in type of decl.
6416 (grokparm): Update call to grokdeclarator.
6417 (push_parm_decl): Update call to grokdeclarator.
6418 (build_compound_literal): Add parameter non_const and build a
6419 C_MAYBE_COSNT_EXPR if applicable.
6420 (grokdeclarator): Take extra parameters expr and
6421 expr_const_operands. Track expressions used in declaration
6422 specifiers and declarators. Fold array sizes and track whether
6423 they are constant expressions and whether they are integer
6424 constant expressions.
6425 (parser_xref_tag): Set expr and expr_const_operands fields in
6426 return value.
6427 (grokfield): Update call to grokdeclarator.
6428 (start_function): Update call to grokdeclarator.
6429 (build_null_declspecs): Set expr and expr_const_operands fields in
6430 return value.
6431 (declspecs_add_type): Handle expressions in typeof specifiers.
6432 * c-parser.c (c_parser_declspecs): Set expr and
6433 expr_const_operands fields for declaration specifiers.
6434 (c_parser_enum_specifier): Likewise.
6435 (c_parser_struct_or_union_specifier): Likewise.
6436 (c_parser_typeof_specifier): Likewise. Update call to
6437 groktypename. Fold expression as needed. Return expressions with
6438 type instead of adding statements.
6439 (c_parser_attributes): Update calls to c_parser_expr_list.
6440 (c_parser_statement_after_labels): Fold expression before passing
6441 to objc_build_throw_stmt.
6442 (c_parser_condition): Fold expression.
6443 (c_parser_asm_operands): Fold expression.
6444 (c_parser_conditional_expression): Use c_save_expr. Update call
6445 to build_conditional_expr.
6446 (c_parser_alignof_expression): Update call to groktypename.
6447 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
6448 original_code. Fold expression argument of va_arg. Create
6449 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
6450 argument to va_arg. Update calls to groktypename. Fold array
6451 index for offsetof. Verify that first argument to
6452 __builtin_choose_expr has integer type.
6453 (c_parser_postfix_expression_after_paren_type): Update calls to
6454 groktypename and build_compound_literal. Handle expressions with
6455 side effects in type name.
6456 (c_parser_postfix_expression_after_primary): Update call to
6457 c_parser_expr_list. Set original_code for calls to
6458 __builtin_constant_p.
6459 (c_parser_expr_list): Take extra parameter fold_p. Fold
6460 expressions if requested.
6461 (c_parser_objc_type_name): Update call to groktypename.
6462 (c_parser_objc_synchronized_statement): Fold expression.
6463 (c_parser_objc_receiver): Fold expression.
6464 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
6465 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
6466 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
6467 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
6468 (struct c_typespec): Add elements expr and expr_const_operands.
6469 (struct c_declspecs): Add elements expr and expr_const_operands.
6470 (groktypename, build_conditional_expr, build_compound_literal):
6471 Update prototypes.
6472 (in_late_binary_op): Declare.
6473 * c-typeck.c (note_integer_operands): New function.
6474 (in_late_binary_op): New variable.
6475 (decl_constant_value_for_broken_optimization): Move to c-common.c
6476 and rename to decl_constant_value_for_optimization.
6477 (default_function_array_conversion): Do not strip nops.
6478 (default_conversion): Do not call
6479 decl_constant_value_for_broken_optimization.
6480 (build_array_ref): Do not fold result.
6481 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
6482 result when operand is a VLA.
6483 (c_expr_sizeof_type): Update call to groktypename. Handle
6484 expressions included in type name. Use C_MAYBE_CONST_EXPR for
6485 result when operand names a VLA type.
6486 (build_function_call): Update call to build_compound_literal.
6487 Only fold result for calls to __builtin_* functions. Strip
6488 NOP_EXPR from INTEGER_CST returned from such functions. Fold
6489 the function designator.
6490 (convert_arguments): Fold arguments. Update call to
6491 convert_for_assignment.
6492 (build_unary_op): Handle increment and decrement of
6493 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
6494 decrement earlier. Fold operand of increment and decrement.
6495 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
6496 built for integer operand. Wrap returns that are INTEGER_CSTs
6497 without being integer constant expressions or that have integer
6498 constant operands without being INTEGER_CSTs.
6499 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
6500 (build_conditional_expr): Add operand ifexp_bcp. Track whether
6501 result is an integer constant expression or can be used in
6502 unevaluated parts of one and avoid folding and wrap as
6503 appropriate. Fold operands before possibly doing -Wsign-compare
6504 warnings.
6505 (build_compound_expr): Wrap result for C99 if operands can be used
6506 in integer constant expressions.
6507 (build_c_cast): Update call to digest_init. Do not ignore
6508 overflow from casting floating-point constants to integers. Wrap
6509 results that could be confused with integer constant expressions,
6510 null pointer constants or floating-point constants.
6511 (c_cast_expr): Update call to groktypename. Handle expressions
6512 included in type name.
6513 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
6514 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
6515 Update calls to convert_for_assignment.
6516 (convert_for_assignment): Take new parameter
6517 null_pointer_constant. Do not strip nops or call
6518 decl_constant_value_for_broken_optimization. Set
6519 in_late_binary_op for conversions to boolean.
6520 (store_init_value): Update call to digest_init.
6521 (digest_init): Take new parameter null_pointer_constant. Do not
6522 call decl_constant_value_for_broken_optimization. pedwarn for
6523 initializers not constant expressions. Update calls to
6524 convert_for_assignment.
6525 (constructor_nonconst): New.
6526 (struct constructor_stack): Add nonconst element.
6527 (really_start_incremental_init, push_init_level, pop_init_level):
6528 Handle constructor_nonconst and nonconst element.
6529 (set_init_index): Call constant_expression_warning for array
6530 designators.
6531 (output_init_element): Fold value. Set constructor_nonconst as
6532 applicable. pedwarn for initializers not constant expressions.
6533 Update call to digest_init. Call constant_expression_warning
6534 where constant initializers are required.
6535 (process_init_element): Use c_save_expr.
6536 (c_finish_goto_ptr): Fold expression.
6537 (c_finish_return): Fold return value. Update call to
6538 convert_for_assignment.
6539 (c_start_case): Fold switch expression.
6540 (c_process_expr_stmt): Fold expression.
6541 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 6542 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
6543 (build_binary_op): Track whether results are integer constant
6544 expressions or may occur in such, disable folding and wrap results
6545 as applicable. Fold operands for -Wsign-compare warnings unless
6546 in_late_binary_op.
6547 (c_objc_common_truthvalue_conversion): Handle results folded to
6548 integer constants that are not integer constant expressions.
6549 * doc/extend.texi: Document when typeof operands are evaluated,
6550 that condition of __builtin_choose_expr is an integer constant
6551 expression, and more about use of __builtin_constant_p in
6552 initializers.
6553
5babbcc0
RG
65542009-03-29 Richard Guenther <rguenther@suse.de>
6555
6556 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
6557 propagate addresses of array references.
6558
0340f2ba
SB
65592009-03-29 Steven Bosscher <steven@gcc.gnu.org>
6560
6561 * regmove.c (perhaps_ends_bb_p): Remove.
6562 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
6563 from INSN and check that the main loop stays within that basic block.
6564 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
6565 (regmove_forward_pass): Split out from regmove_optimize. Use
6566 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
6567 (regmove_backward_pass): Split out from regmove_optimize. Use
6568 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
6569 (regmove_optimize): Simplify.
6570
eeae74a1
L
65712009-03-29 H.J. Lu <hongjiu.lu@intel.com>
6572
6573 PR target/39545
6574 * config/i386/i386.c (classify_argument): Ignore flexible array
6575 member in struct and warn ABI change.
6576
a24078b2
L
65772009-03-29 H.J. Lu <hongjiu.lu@intel.com>
6578
6579 * config/i386/i386-protos.h (ix86_agi_dependent): New.
6580
6581 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
6582 (ix86_adjust_cost): Updated.
6583
a8da523f
JH
65842009-03-29 Jan Hubicka <jh@suse.cz>
6585
6586 PR middle-end/28850
6587 * tree-pass.h (pass_cleanup_eh): New function.
6588 (remove_unreachable_regions): Break code handling RTL
6589 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
6590 that can not be reached by runtime.
6591 (can_be_reached_by_runtime): New function.
6592 (label_to_region_map): New function.
6593 (num_eh_regions): New function.
6594 (rtl_remove_unreachable_regions): New function.
6595 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
6596 (remove_eh_region): New function.
6597 * except.h: Include sbitmap and vecprim.
6598 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
6599 num_eh_regions): Declare.
6600 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 6601 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
6602 * tree-eh.c (tree_remove_unreachable_handlers): New function.
6603 (tree_empty_eh_handler_p): New function.
6604 (cleanup_empty_eh): New function.
6605 (cleanup_eh): New function.
6606 (pass_cleanup_eh): New function.
6607
98f358e5
JH
66082009-03-29 Jan Hubicka <jh@suse.cz>
6609
6610 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
6611 for removed regions.
6612
13a9fa44
JH
66132009-03-29 Jan Hubicka <jh@suse.cz>
6614
6615 * except.c (dump_eh_tree): Dump all datastructures.
6616
e38cf733
JH
66172009-03-29 Jan Hubicka <jh@suse.cz>
6618
6619 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
6620 (duplicate_eh_regions_1): Likewise.
6621 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
6622 vector; call EH verification.
6623 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6624 Be ready for region being removed.
6625
12802c2b
JH
66262009-03-29 Jan Hubicka <jh@suse.cz>
6627
6628 * bitmap.c (bitmap_last_set_bit): New function.
6629 * bitmap.h (bitmap_last_set_bit): Declare.
6630
4ea80a41
DA
66312009-03-29 David Ayers <ayers@fsfe.org>
6632
6633 PR objc/27377
6634 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
6635 by calling objc_compare_types and surpress warnings about
6636 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 6637
4ea80a41 66382009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
6639
6640 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
6641 call initialize_inline_failed.
6642 (initialize_inline_failed): Move it from here ...
6643 * cgraph.c (initialize_inline_failed): ... to here.
6644 (cgraph_create_edge): Call initialize_inline_failed rather than
6645 setting inline_failed directly.
6646
7fb0ee07
BE
66472009-03-29 Ben Elliston <bje@au.ibm.com>
6648
6649 PR target/32542
6650 * sysv4.opt (msdata): Improve comment.
6651 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
6652 * sysv4.h (SVR4_ASM_SPEC): Likewise.
6653
0be77bf2
BE
66542009-03-29 Ben Elliston <bje@au.ibm.com>
6655
6656 PR target/30451
6657 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
6658 load and store attributes.
6659
593812b6
BE
66602009-03-29 Ben Elliston <bje@au.ibm.com>
6661
6662 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
6663 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
6664 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
6665 * doc/extend.texi (X86 Built-in Functions): Add index entries for
6666 __builtin_infq and __builtin_huge_valq.
6667
8272d11d
AS
66682009-03-28 Anatoly Sokolov <aesok@post.ru>
6669
6670 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
6671 atmega8m1 devices.
6672 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6673 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
6674
74fe548b
XDL
66752009-03-28 Xinliang David Li <davidxl@google.com>
6676
2ba9daa7 6677 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
6678 (do_dbg_cnt): New function.
6679
33977f81
JH
66802009-03-28 Jan Hubicka <jh@suse.cz>
6681
6682 Merge from pretty-ipa:
6683
6684 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 6685
33977f81
JH
6686 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6687 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
6688 * passes.c (function_called_by_processed_nodes_p): New.
6689 * ipa-pure-const.c (check_call): Fix handling of operands.
6690 (analyze_function): Dump debug output for skipped bodies.
6691 (local_pure_const): Use function_called_by_processed_nodes_p.
6692 * dwarf2out.c (reference_to_unused): Use output.
6693 * passes.c (do_per_function_toporder): Likewise.
6694
6695 2008-11-12 Jan Hubicka <jh@suse.cz>
6696
6697 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
6698 * ipa-pure-const.c (funct_state_d): Add can throw field; make
6699 state_set_in_source enum
6700 (check_decl): Ignore memory tags; do not set fake looping flags;
6701 dump diagnostics.
6702 (check_operand, check_tree, check_rhs_var, check_lhs_var,
6703 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
6704 (check_call, analyze_function): Rewrite.
6705 (check_stmt): New.
6706 (add_new_function): Update call of analyze_function.
6707 (generate_summary): Add call of analyze_function.
6708 (propagate): Propagate can_throw; handle state_set_in_source correctly.
6709 (local_pure_const): New function.
6710 (pass_local_pure_const): New pass.
6711 * ipa-inline.c (inline_transform): Set after_inlining.
6712 * tree-eh.c (stmt_can_throw_external): New.
6713 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
6714 work with aliasing built.
6715 * tree-flow.h (stmt_can_throw_external): New.
6716 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
6717 and local pure/const pass in early and late optimization queue.
ba20e309 6718
617f3897
MJ
67192009-03-28 Martin Jambor <mjambor@suse.cz>
6720
6721 * fold-const.c (get_pointer_modulus_and_residue): New parameter
6722 allow_func_align.
6723 (fold_binary): Allow function decl aligment consideration is the
6724 second argument is integer constant one.
6725 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
6726 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
6727 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
6728
fe89fbc5
JH
67292009-03-28 Jan Hubicka <jh@suse.cz>
6730
6731 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
6732 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
6733 * function.h (rtl_data): Add nothrow flag.
6734 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
6735 set DECL_NOTHROW for AVAILABLE functions.
6736
574872ff
JJ
67372009-03-28 Jakub Jelinek <jakub@redhat.com>
6738
b3bf8855
JJ
6739 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
6740 following vector keyword has expansion starting with pixel or bool
6741 keyword, expand vector to __vector and pixel or bool to __pixel or
6742 __bool.
6743
574872ff
JJ
6744 PR c++/39554
6745 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
6746 warn_if_disallowed_function_p): Removed.
6747 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
6748 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
6749 warning_if_disallowed_function_p.
6750 * flags.h (warn_if_disallowed_function_p,
6751 warn_disallowed_functions): Removed.
6752 * common.opt (Wdisallowed-function-list=): Removed.
6753 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
6754
b005da11
RG
67552009-03-28 Richard Guenther <rguenther@suse.de>
6756
6757 PR tree-optimization/38723
6758 * tree-ssa-pre.c (compute_avail): Add all default definitions to
6759 the entry block.
6760
1de812a6
JH
67612009-03-28 Jan Hubicka <jh@suse.cz>
6762
6763 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
6764 test introduced by my previous patch.
6765
fbb789d4
RG
67662009-03-28 Richard Guenther <rguenther@suse.de>
6767
6768 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
6769 the PHIs value undefined.
6770
6f1873a1
JH
67712009-03-28 Jan Hubicka <jh@suse.cz>
6772
6773 * tree-pass.h (pass_fixup_cfg): New pass.
6774 * ipa-inline.c (inline_transform): Set
6775 always_inline_functions_inlined/after_inlining.
6776 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
6777 (pass_fixup_cfg): New pass.
6778 * passes.c (init_optimization_passes): Add fixup_cfg.
6779
17021bc8
RG
67802009-03-28 Richard Guenther <rguenther@suse.de>
6781
6782 PR tree-optimization/38458
6783 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
6784 argument use the arguments copy-of value.
6785
e8114fba
RG
67862009-03-28 Richard Guenther <rguenther@suse.de>
6787
6788 PR tree-optimization/38180
6789 * tree-ssa-ccp.c (get_default_value): Simplify.
6790 (likely_value): Likewise.
6791 (surely_varying_stmt_p): Properly handle VOP case.
6792 (ccp_initialize): Likewise.
6793 (ccp_fold): Handle propagating through *&.
6794 (fold_const_aggregate_ref): Also handle decls.
6795
257eb6e3
JH
67962009-03-28 Jan Hubicka <jh@suse.cz>
6797
6798 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6799 * cgraph.h (cgraph_node): Likewise.
6800 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
6801 (cgraph_reset_node): Use process flag.
6802 (cgraph_mark_functions_to_output): Likewise.
6803 (cgraph_expand_function): Likewise.
6804 (cgraph_expand_all_functions): Likewise.
6805 (cgraph_output_in_order): Likewise.
6806 * dwarf2out.c (reference_to_unused): Likewise.
6807 * passes.c do_per_function_toporder): Likewise.
6808
61a05df1
JH
68092009-03-28 Jan Hubicka <jh@suse.cz>
6810
6811 Bring from lto-branch:
ba20e309 6812
61a05df1
JH
6813 2008-09-03 Doug Kwan <dougkwan@google.com>
6814
6815 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
6816 enums instead of reason strings.
6817 * cgraph.c (cgraph_create_edge): Same.
6818 (cgraph_inline_failed_string): New function.
6819 * cgraph.h (cgraph_inline_failed_t): New enum type.
6820 (cgraph_inline_failed_string): New prototype.
6821 (struct cgraph_edge): Change type of INLINED_FAILED from constant
6822 char pointer to cgraph_inline_failed_t.
6823 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
6824 (cgraph_default_inline_p): Ditto.
60839f5d 6825 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
6826 to cgraph_inline_failed_t pointer.
6827 * cif-code.def: New file.
6828 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
6829 reason string.
6830 (cgraph_check_inline_limits): Change type of REASON to pointer to
6831 cgraph_inline_failed_t. Replace reason strings with enums.
6832 (cgraph_default_inline_p): Ditto.
6833 (cgraph_recursive_inlining_p): Ditto.
6834 (update_caller_keys): Change type of FAILED_REASON to
6835 cgraph_inline_failed_t.
6836 (cgraph_set_inline_failed): Change type of REASON to pointer to
6837 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
6838 convert enums to strings for text output.
6839 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
6840 to be of type cgraph_inline_failed_t. Replace reason strings with
6841 enums. Call cgraph_inline_failed_string to covert enums
6842 to strings for text output.
6843 (cgraph_decide_inlining): Replace reason strings with enums.
6844 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
6845 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
6846 for text output.
6847 * tree-inline.c (expand_call_inline): Change type of REASON
6848 to cgraph_inline_failed_t. Replace reason strings with enums.
6849 Call cgraph_inline_failed_string for text output.
6850 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
6851 (cgraph.o): Ditto.
6852
144e8aac
JH
68532009-03-28 Jan Hubicka <jh@suse.cz>
6854
6855 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
6856 cgraph_clone_node): Remove master clone handling.
6857 (cgraph_is_master_clone, cgraph_master_clone): Remove.
6858 * cgraph.h (master_clone): Remove.
6859 (cgraph_is_master_clone, cgraph_master_clone): Remove.
6860 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
6861 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
6862
4a371c8d
JH
68632009-03-28 Jan Hubicka <jh@suse.cz>
6864
6865 * cgraph.c (cgraph_function_body_availability): Functions declared
6866 inline are always safe to assume that it is not going to be replaced.
6867
6cdb0ee3
RG
68682009-03-28 Richard Guenther <rguenther@suse.de>
6869
6870 PR tree-optimization/38513
6871 * tree-ssa-pre.c (eliminate): Remove redundant stores.
6872 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
6873 EXC_PTR_EXPR and FILTER_EXPR.
6874 (get_ref_from_reference_ops): Likewise.
6875
8ca1fd76
RG
68762009-03-28 Richard Guenther <rguenther@suse.de>
6877
6878 PR tree-optimization/38968
6879 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
6880 Use FLOOR_MOD_EXPR to compute misalignment.
6881
a254e44d
RG
68822009-03-28 Richard Guenther <rguenther@suse.de>
6883
6884 PR tree-optimization/37795
6885 * tree.h (combine_comparisons): Declare.
6886 * fold-const.c (combine_comparisons): Export.
6887 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
6888 comparisons.
6889 (ifcombine_iforif): Use combine_comparisons.
6890
a8ee227c
JH
68912009-03-28 Jan Hubicka <jh@suse.cz>
6892
6893 * tree-eh.c (inlinable_call_p): New function.
6894 (make_eh_edges): Use it.
6895 (verify_eh_edges): Use it.
6896 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
6897 * except.c (reachable_next_level): Add inlinable_function argument
6898 (sjlj_find_directly_reachable_regions): Update.
6899 (add_reachable_handler): Do not set saw_any_handlers.
6900 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
6901 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6902 Add new inlinable call parameter.
6903 (can_throw_internal, can_throw_external): Update.
6904 * except.h (can_throw_internal_1, can_throw_external_1,
6905 foreach_reachable_handler): Update declaration.
6906
52c0e446
JM
69072009-03-28 Joseph Myers <joseph@codesourcery.com>
6908
6909 * config/arm/t-arm-coff, config/h8300/coff.h,
6910 config/i386/i386-aout.h, config/i386/i386-coff.h,
6911 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
6912 config/pdp11/2bsd.h, config/rs6000/aix41.h,
6913 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
6914 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
6915 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
6916 sys-types.h: Remove.
6917 * Makefile.in: Remove protoize and fixproto support and references
6918 in comments.
6919 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
6920 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
6921 Remove.
6922 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
6923 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
6924 unprotoize$(exeext).
6925 (rest.encap): Don't depend on $(STMP_FIXPROTO)
6926 (.PHONY): Don't depend on proto.
6927 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
6928 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
6929 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
6930 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
6931 build/gen-protos.o, build/scan.o, xsys-protos.h,
6932 build/fix-header$(build_exeext), build/fix-header.o,
6933 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
6934 stmp-install-fixproto): Remove.
6935 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
6936 SYSCALLS.c or fixproto files.
6937 (install-common): Don't install protoize.
6938 (install-headers-tar, install-headers-cpio, install-headers-cp):
6939 Don't depend on $(STMP_FIXPROTO).
6940 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
6941 install fixproto files or write out fixproto settings.
6942 (uninstall): Don't uninstall protoize.
6943 * config.gcc (use_fixproto): Remove.
6944 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
6945 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
6946 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
6947 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
6948 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
6949 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
6950 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
6951 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
6952 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
6953 * config/t-vxworks (STMP_FIXPROTO): Remove.
6954 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
6955 STMP_FIXPROTO): Remove.
6956 * config.in, configure: Regenerate.
6957 * crtstuff.c (gid_t, uid_t): Don't undefine.
6958 * doc/install.texi: Change m68k-coff to m68k-elf in example.
6959 (arm-*-coff, arm-*-aout: Remove target entries.
6960 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
6961 Remove mention of AIX 4.1.
6962 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
6963 * doc/invoke.texi (Running Protoize): Remove.
6964 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
6965 (Protoize Caveats): Remove.
6966 * tsystem.h: Update comments on headers assumed to exist.
6967
20a07f44
VM
69682009-03-27 Vladimir Makarov <vmakarov@redhat.com>
6969
6970 * genautomata.c: Add a new year to the copyright. Add a new
6971 reference.
6972 (struct insn_reserv_decl): Add comments for member bypass_list.
6973 (find_bypass): Remove.
6974 (insert_bypass): New.
6975 (process_decls): Use insert_bypass.
6976 (output_internal_insn_latency_func): Output all bypasses with the
6977 same input insn in one switch case.
6978
6979 * rtl.def (define_bypass): Describe bypass choice.
6980 * doc/md.texi (define_bypass): Ditto.
6981
3a0d06c1
RB
69822009-03-27 Richard Guenther <rguenther@suse.de>
6983
6984 * gimplify.c (mark_addressable): Export.
6985 * tree-flow.h (mark_addressable): Declare.
6986 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
6987 * tree-ssa.c (verify_phi_args): Verify that address taken
6988 variables have TREE_ADDRESSABLE set.
6989
69902009-03-27 Richard Guenther <rguenther@suse.de>
6991
6992 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
6993 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
6994 Do not mark decls TREE_ADDRESSABLE.
6995 (build_fold_addr_expr): Adjust.
6996 (fold_addr_expr): Remove.
6997 (fold_unary): Use build_fold_addr_expr.
6998 (fold_comparison): Likewise.
6999 (split_address_to_core_and_offset): Likewise.
7000 * coverage.c (tree_coverage_counter_addr): Mark the array decl
7001 TREE_ADDRESSABLE.
7002 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
7003 (gimplify_modify_expr_to_memcpy): Mark source and destination
7004 addressable.
7005 * omp-low.c (create_omp_child_function): Mark the object decl
7006 TREE_ADDRESSABLE.
7007 (lower_rec_input_clauses): Mark the var we take the address of
7008 TREE_ADDRESSABLE.
7009 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
7010
2ac26e15
L
70112009-03-27 H.J. Lu <hongjiu.lu@intel.com>
7012
7013 PR middle-end/39315
7014 * cfgexpand.c (expand_one_stack_var_at): Change alignment
7015 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
7016
472c7fbd
RG
70172009-03-27 Richard Guenther <rguenther@suse.de>
7018
7019 PR tree-optimization/39120
7020 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
7021 constraints.
7022 (handle_lhs_call): Process return constraints. Add escape
7023 constraints if necessary.
7024 (handle_const_call): Fill out return constraints. Make nested
7025 case more precise. Avoid consttmp if possible.
7026 (handle_pure_call): Fill out return constraints. Avoid
7027 callused if possible.
7028 (find_func_aliases): Simplify call handling.
7029
70302009-03-27 Richard Guenther <rguenther@suse.de>
7031
7032 PR tree-optimization/39120
7033 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
7034 as a representative.
7035 (solve_graph): Do propagate CALLUSED.
7036 (handle_pure_call): Use a scalar constraint from CALLUSED for
7037 the return value.
7038 (find_what_p_points_to): CALLUSED shall not appear in poins-to
7039 solutions.
7040
d9223014
L
70412009-03-27 H.J. Lu <hongjiu.lu@intel.com>
7042
7043 PR c/39323
7044 * c-common.c (handle_aligned_attribute): Properly check alignment
7045 overflow. Use (1U << i) instead of (1 << i).
7046
ba20e309 7047 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
7048
7049 * expr.h (get_mem_align_offset): Updated.
7050
7051 * tree.h (tree_decl_common): Change align to "unsigned int" and
7052 move it before pointer_alias_set.
7053
689b689c
L
70542009-03-27 H.J. Lu <hongjiu.lu@intel.com>
7055 Jakub Jelinek <jakub@redhat.com>
7056
7057 PR target/38034
7058 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
7059 gr_register_operand with gr_reg_or_0_operand.
7060 (cmpxchg_rel_di): Likewise.
7061 (sync_lock_test_and_set<mode>): Likewise.
7062
c619e982
L
70632009-03-27 H.J. Lu <hongjiu.lu@intel.com>
7064
7065 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
7066 (true_regnum): Likewise.
7067
7068 * rtlanal.c (subreg_info): Moved to ...
7069 * rtl.h (subreg_info): Here. New.
7070 (subreg_get_info): New.
7071
7072 * rtlanal.c (subreg_get_info): Make it extern.
7073
51212b32
L
70742009-03-27 H.J. Lu <hongjiu.lu@intel.com>
7075
7076 PR target/39472
7077 * config/i386/i386.c (ix86_abi): New.
7078 (override_options): Handle -mabi=.
ba20e309 7079 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
7080 (ix86_call_abi_override): Likewise.
7081 (init_cumulative_args): Likewise.
7082 (function_arg_advance): Likewise.
7083 (function_arg_64): Likewise.
7084 (function_arg): Likewise.
7085 (ix86_pass_by_reference): Likewise.
7086 (ix86_function_value_regno_p): Likewise.
7087 (ix86_build_builtin_va_list_abi): Likewise.
7088 (setup_incoming_varargs_64): Likewise.
7089 (is_va_list_char_pointer): Likewise.
7090 (ix86_init_machine_status): Likewise.
ba20e309 7091 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
7092 (ix86_function_type_abi): Return enum calling_abi. Rewrite
7093 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 7094 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
7095 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
7096 with ix86_abi.
7097 (ix86_fn_abi_va_list): Updated.
7098
7099 * config/i386/i386.h (ix86_abi): New.
7100 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
7101 (CONDITIONAL_REGISTER_USAGE): Likewise.
7102 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
7103 (machine_function): Likewise.
7104
7105 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
7106 with ix86_abi.
7107 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
7108 (STACK_BOUNDARY): Likewise.
7109 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
7110
7111 * config/i386/i386.opt (mabi=): New.
7112
7113 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
7114 return enum calling_abi.
7115 (ix86_function_type_abi): Likewise.
7116 (ix86_function_abi): Removed.
7117
7118 * doc/invoke.texi: Document -mabi= option for x86.
7119
7338ea63
KG
71202009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7121
7122 * builtins.c (real_dconstp): Delete.
7123 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
7124
68599f33
DS
71252009-03-27 Dodji Seketeli <dodji@redhat.com>
7126 Jakub Jelinek <jakub@redhat.com>
7127
7128 PR debug/37959
7129 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
7130 (gen_subprogram_die): When a function is explicit, generate the
7131 DW_AT_explicit attribute.
7132 * langhooks.h (struct lang_hooks_for_decls): Add
7133 function_decl_explicit_p langhook.
7134 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
7135 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
7136
9f5e9983
JJ
71372009-03-27 Jakub Jelinek <jakub@redhat.com>
7138
64d7685c
JJ
7139 * builtins.c (fold_builtin_memory_op): Optimize memmove
7140 into memcpy if we can prove source and destination don't overlap.
7141
9f5e9983
JJ
7142 * tree-inline.c: Include gt-tree-inline.h.
7143 (clone_fn_id_num): New variable.
7144 (clone_function_name): New function.
7145 (tree_function_versioning): Use it.
7146 * Makefile.in (GTFILES): Add tree-inline.c.
7147
e54d52a8
MM
71482009-03-27 Mark Mitchell <mark@codesourcery.com>
7149
7150 * BASE-VER: Change to 4.5.0.
7151
e9d51dc6
XDL
71522009-03-27 Xinliang David Li <davidxl@google.com>
7153
7154 PR tree-optimization/39557
7155 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
7156
4577cea1
XDL
71572009-03-27 Xinliang David Li <davidxl@google.com>
7158
7159 PR tree-optimization/39548
2ba9daa7 7160 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
7161 candidate check.
7162
0f7464f4
L
71632009-03-27 H.J. Lu <hongjiu.lu@intel.com>
7164
7165 * c-common.c (pointer_int_sum): Use %wd on return from
7166 tree_low_cst.
7167
a8847a7f
L
71682009-03-27 H.J. Lu <hongjiu.lu@intel.com>
7169
7170 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
7171 on return from tree_low_cst.
7172
b0957daf
AP
71732009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
7174
7175 PR c++/36799
ba20e309
UB
7176 * ginclude/stdarg.h (va_copy): Define also for
7177 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 7178
a5f805df
MLI
71792009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7180
7181 PR c++/35652
7182 * builtins.h (c_strlen): Do not warn here.
7183 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7184 * c-common.c (pointer_int_sum): Take an explicit location.
7185 Warn about offsets out of bounds.
7186 * c-common.h (pointer_int_sum): Adjust declaration.
7187
6f401211
RW
71882009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7189
a5f805df
MLI
7190 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
7191 markup glitch.
6f401211 7192
5a59b39e
JJ
71932009-03-26 Jakub Jelinek <jakub@redhat.com>
7194
7195 PR c++/39554
7196 * opts.c (warn_if_disallowed_function_p): Don't assume
7197 get_callee_fndecl must return non-NULL.
7198
d5f89b53
VM
71992009-03-26 Vladimir Makarov <vmakarov@redhat.com>
7200
7201 PR rtl-optimization/39522
7202 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
7203 when reg_reloaded_valid is set.
7204
61238a79
UW
72052009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7206
7207 * config/spu/divv2df3.c: New file.
7208 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
7209 (DPBIT_FUNCS): Filter out _div_df.
7210
03f8829b
BS
72112009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
7212
7213 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
7214 a jump insn, count that jump in the distance to the loop start.
7215
9fdcdc74
KK
72162009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
7217
7218 PR target/39523
7219 * config/sh/sh.c (calc_live_regs): Fix condition for global
7220 registers except PIC_OFFSET_TABLE_REGNUM.
7221
46994828
KT
72222009-03-25 Kai Tietz <kai.tietz@onevision.com>
7223
7224 PR/39518
7225 * doc/invoke.texi (-mconsole): New.
7226 (-mcygwin): New.
7227 (-mno-cygwin): New.
7228 (-mdll): New.
7229 (-mnop-fun-dllimport): New.
7230 (-mthread): New.
7231 (-mwin32): New.
7232 (-mwindows): New.
7233 (sub section "i386 and x86-64 Windows Options"): New.
7234
60839f5d 72352009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
7236
7237 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
7238 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
7239
ae560440
RG
72402009-03-25 Richard Guenther <rguenther@suse.de>
7241
7242 PR middle-end/39497
7243 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
7244 of -Wno-error.
7245
cd510f15
AM
72462009-03-25 Andrey Belevantsev <abel@ispras.ru>
7247
7248 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
7249 neither of haifa/selective schedulers are working.
7250
44ab0f0e
RW
72512009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7252
7253 * doc/invoke.texi (Debugging Options): Fix description of
7254 -fno-merge-debug-strings.
7255
ad9646c7
HPN
72562009-03-24 Hans-Peter Nilsson <hp@axis.com>
7257
e6142656
HPN
7258 * config/cris/libgcc.ver: New version-script.
7259 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
7260
ad9646c7
HPN
7261 * configure.ac <GAS features, nop mnemonic>: Add pattern
7262 crisv32-*-* for "nop".
ba20e309 7263 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
7264 * configure: Regenerate.
7265
09ac4473
IR
72662009-03-24 Ira Rosen <irar@il.ibm.com>
7267
7268 PR tree-optimization/39529
7269 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
7270 mark_sym_for_renaming for the tag copied to the new vector
7271 pointer.
7272
d94a427e
AL
72732009-03-24 Arthur Loiret <aloiret@debian.org>
7274
ba20e309 7275 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
7276 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
7277 EXTRA_SPEC_FUNCTIONS.
7278 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
7279 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
7280 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
7281 -march and -mtune options.
7282
60839f5d 72832009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
7284
7285 * config/m68k/t-rtems: Add m5329 multilib.
7286
603f5959
DS
72872009-03-24 Dodji Seketeli <dodji@redhat.com>
7288 Jakub Jelinek <jakub@redhat.com>
7289
7290 PR debug/39524
7291 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
7292 nodes.
7293
c5cdb03f
JJ
72942009-03-23 Jakub Jelinek <jakub@redhat.com>
7295
7296 PR c/39495
7297 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
7298 instead of c_parser_expression_conv, if original_code isn't one of the
7299 4 allowed comparison codes, fail.
7300
3691626c
RG
73012009-03-23 Richard Guenther <rguenther@suse.de>
7302
7303 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
7304 * tree.h (struct tree_type): Likewise.
7305 * reload.h (struct insn_chain): Likewise.
7306 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
7307 * function.h (struct function): Likewise.
7308 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
7309
88ccb72a
JJ
73102009-03-23 Jakub Jelinek <jakub@redhat.com>
7311
7312 PR tree-optimization/39516
7313 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
7314
60839f5d 73152009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 7316
2ba9daa7 7317 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
7318 should be set true if BITS_PER_WORD of target is bigger than 32
7319
f82162f8
HPN
73202009-03-22 Hans-Peter Nilsson <hp@axis.com>
7321
7322 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
7323 Translate -B-options to -rpath-link. Correct existing
7324 rpath-link and conditionalize on !nostdlib.
7325
048fd785
RW
73262009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7327
7328 * doc/extend.texi (Function Attributes, Variable Attributes):
7329 Fix typos.
7330 * doc/invoke.texi (Debugging Options, Optimize Options)
7331 (i386 and x86-64 Options, MCore Options): Likewise.
7332
6e75c1a9
JJ
73332009-03-20 Jakub Jelinek <jakub@redhat.com>
7334
7335 PR debug/37890
7336 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
7337 it for block local namespace aliases.
7338 (gen_decl_die): Pass context_die to gen_namespace_die.
7339
ea1199ee
JJ
73402009-03-19 Jakub Jelinek <jakub@redhat.com>
7341
7342 PR c/39495
7343 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
7344 minimum or maximum value.
7345
58929c10
AO
73462009-03-19 Alexandre Oliva <aoliva@redhat.com>
7347
7348 * reginfo.c (globalize_reg): Recompute derived reg sets.
7349
60839f5d 73502009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
7351
7352 PR target/39063
7353 * libgcc2.c (mprotect): Do not use signed arguments for
7354 VirtualProtect, use DWORD arguments. Also fix the 'may
7355 be used uninitialized' warning for the np variable.
7356
f57c2f04
JJ
73572009-03-19 Jakub Jelinek <jakub@redhat.com>
7358
7359 PR target/39496
7360 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
7361 functions using regparm calling conventions when not optimizing.
7362 (ix86_function_sseregparm): Similarly for sseregparm calling
7363 conventions.
7364
9e517d61
LF
73652009-03-19 Li Feng <nemokingdom@gmail.com>
7366
7367 PR middle-end/39500
7368 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
7369 dependence if the first conflict is after niter iterations.
7370
8ef20026
HPN
73712009-03-19 Hans-Peter Nilsson <hp@axis.com>
7372
7373 PR middle-end/38609
7374 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
7375 functions with dynamic stack-pointer adjustments.
7376
64e4a1a6
BE
73772009-03-19 Ben Elliston <bje@au.ibm.com>
7378
7379 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
7380 option; change to -msdata=data.
7381
9a0f3e86
RW
73822009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7383
7384 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
7385 and -fopenmp.
7386
09bc5979
EB
73872009-03-18 Eric Botcazou <ebotcazou@adacore.com>
7388
7389 PR target/35180
7390 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
7391
332459cd
SL
73922009-03-18 Sandra Loosemore <sandra@codesourcery.com>
7393
7394 * doc/invoke.texi (Code Gen Options): Expand discussion of
7395 -fno-common.
7396
8f5929e1
JJ
73972009-03-18 Jakub Jelinek <jakub@redhat.com>
7398
7399 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
7400 * matrix-reorg.c (struct matrix_info): Likewise.
7401 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
7402 * rtl.h (struct mem_attrs): Likewise.
7403 * df.h (struct df): Likewise.
7404 * tree-data-ref.h (struct data_dependence_relation): Likewise.
7405 * ira-int.h (struct ira_allocno): Likewise.
7406 * df-scan.c (struct df_collection_rec): Likewise.
7407 * ira.c (struct equivalence): Likewise.
7408 * function.c (struct temp_slot): Likewise.
7409 * cfgloop.h (struct loop): Likewise.
7410
d130d647
JJ
7411 PR debug/39485
7412 * function.c (use_register_for_decl): When not optimizing, disregard
7413 register keyword for variables with types containing methods.
7414
9968d233
SP
74152009-03-18 Sebastian Pop <sebastian.pop@amd.com>
7416
7417 PR middle-end/39447
7418 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
7419 (is_simple_operand): Call contains_component_ref_p before calling data
7420 reference analysis that would fail on COMPONENT_REFs.
7421
7422 * tree-vrp.c (search_for_addr_array): Fix formatting.
7423
69484bfd
RG
74242009-03-18 Richard Guenther <rguenther@suse.de>
7425
7426 * tree-vect-transform.c (vect_loop_versioning): Fold the
7427 generated comparisons.
7428 * tree-vectorizer.c (set_prologue_iterations): Likewise.
7429 (slpeel_tree_peel_loop_to_edge): Likewise.
7430
66811228
RW
74312009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7432
0631b69f
RW
7433 PR middle-end/37805
7434 * opts.c (print_specific_help): In addition to `undocumented',
7435 accept `separate' and `joined' flags if passed alone. Describe
7436 output by the first matched one of those.
7437 (common_handle_option): Skip over empty strings.
7438 * gcc.c (display_help): Fix help string for `--help='.
7439 * doc/invoke.texi (Option Summary, Overall Options): With
7440 `--help=', classes and qualifiers can both be repeated, but
7441 only the latter can be negated. One should not pass only
7442 negated qualifiers. Fix markup and examples.
7443
66811228
RW
7444 Revert
7445 2008-10-14 Jakub Jelinek <jakub@redhat.com>
7446 PR middle-end/37805
7447 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
7448 and -fhelp=separate.
7449
3c072c6b
JY
74502009-03-17 Jing Yu <jingyu@google.com>
7451
7452 PR middle-end/39378
80c65208
JY
7453 * function.h (struct rtl_data): Move is_thunk from here...
7454 (struct function): ...to here.
7455 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
7456 * varasm.c (assemble_start_function): Change is_thunk from crtl to
7457 cfun.
80c65208
JY
7458 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
7459 cfun.
7460 (alpha_does_function_need_gp, alpha_start_function): Likewise.
7461 (alpha_output_function_end_prologue): Likewise.
7462 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
7463 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
7464 (rs6000_output_function_epilogue): Likewise.
7465 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 7466
9ade279b
UB
74672009-03-17 Uros Bizjak <ubizjak@gmail.com>
7468
7469 PR target/39482
7470 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
7471 from different units in a single alternative.
7472 (*truncdfsf_i387): Ditto.
7473 (*truncxfsf2_mixed): Ditto.
7474 (*truncxfdf2_mixed): Ditto.
7475
16e60c17
JJ
74762009-03-17 Jakub Jelinek <jakub@redhat.com>
7477
98381eb4
JJ
7478 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
7479 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
7480
df5deb18
JJ
7481 PR debug/39474
7482 * tree-ssa-live.c (remove_unused_locals): Don't remove local
7483 unused non-artificial variables when not optimizing.
7484
a3f596ba
JJ
7485 PR debug/39471
7486 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
7487 DW_TAG_imported_module even if decl is IMPORTED_DECL with
7488 NAMESPACE_DECL in its DECL_INITIAL.
7489
6b2b8871
JJ
7490 PR middle-end/39443
7491 * optabs.c (set_user_assembler_libfunc): New function.
7492 * expr.h (set_user_assembler_libfunc): New prototype.
7493 * c-common.c: Include libfuncs.h.
7494 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
7495 for memcmp, memset, memcpy, memmove and abort.
7496 * Makefile.in (c-common.o): Depend on libfuncs.h.
7497
16e60c17
JJ
7498 PR debug/39412
7499 * dwarf2out.c (gen_inlined_enumeration_type_die,
7500 gen_inlined_structure_type_die, gen_inlined_union_type_die,
7501 gen_tagged_type_instantiation_die): Removed.
7502 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
7503 do nothing.
7504
4d936aca
JJ
75052009-03-17 Janis Johnson <janis187@us.ibm.com>
7506
7507 PR testsuite/38526
7508 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
7509 its use.
7510 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
7511 (check-parallel-%): Ditto.
7512 (check-consistency): Ditto.
7513
4e9b2e50
KT
75142009-03-17 Kai Tietz <kai.tietz@onevision.com>
7515
7516 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
7517 local variable rhs by NULL_TREE.
7518
21440b2d
L
75192009-03-17 H.J. Lu <hongjiu.lu@intel.com>
7520
7521 PR target/39477
9ade279b 7522 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 7523
d8905c6a
L
75242009-03-17 H.J. Lu <hongjiu.lu@intel.com>
7525
7526 PR target/39476
9ade279b 7527 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
7528
75292009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
7530
7531 PR target/39473
7532 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
7533 for ms->sysv ABI calls only in 64bit mode.
7534
7535 * config/i386/i386.md (untyped_call): Support 32bit.
7536
cdcabece
L
75372009-03-16 H.J. Lu <hongjiu.lu@intel.com>
7538
7539 * doc/extend.texi: Replace x86_65 with x86_64.
7540
97b4ba9f
JJ
75412009-03-16 Jakub Jelinek <jakub@redhat.com>
7542
7543 PR tree-optimization/39455
7544 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
7545 mismatches for POINTER_TYPE_P (type).
7546 (number_of_iterations_le): Likewise.
7547
60839f5d 75482009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
7549
7550 * config/picochip/picochip.c: Removed profiling support.
7551 * config/picochip/picochip.md: Removed profiling instruction.
7552 * config/picochip/picochip.h: Removed profiling builtin.
7553
f38095f3
JM
75542009-03-16 Joseph Myers <joseph@codesourcery.com>
7555
7556 * doc/install.texi (--with-host-libstdcxx): Document.
7557
2cb4817b
AS
75582009-03-14 Anatoly Sokolov <aesok@post.ru>
7559
7560 PR target/34299
7561 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
7562 generate a warning if the function name does not begin with
7563 "__vector" and the function has either the 'signal' or 'interrupt'
7564 attribute, from here to ...
7565 (avr_declare_function_name): ...here. New function.
7566 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
7567 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
7568
39b2ac74
JJ
75692009-03-14 Jakub Jelinek <jakub@redhat.com>
7570
7571 PR bootstrap/39454
7572 * cse.c (fold_rtx): Don't modify original const_arg1 when
7573 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
7574 separate variable instead.
7575 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
7576 from out of range shift counts.
7577 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
7578
ad41bd84 75792009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 7580
60839f5d 7581 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
7582 diagnostic.h with $(DIAGNOSTIC_H).
7583
ad41bd84 75842009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
7585
7586 PR target/39431
7587 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
7588 predicate.
7589 * config/i386/sync.md (sync_compare_and_swap<mode>,
7590 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
7591 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
7592 into a register.
7593 (sync_double_compare_and_swapdi_pic,
7594 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
7595 cmpxchg8b_pic_memory_operand instead of just memory_operand.
7596
122c59c7
L
75972009-03-12 H.J. Lu <hongjiu.lu@intel.com>
7598
7599 PR target/39445
9ade279b 7600 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 7601
cec8874f
L
76022009-03-12 H.J. Lu <hongjiu.lu@intel.com>
7603
7604 PR target/39327
7605 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7606 (avx_addsubv4df3): Likewise.
7607 (*avx_addsubv4sf3): Likewise.
7608 (sse3_addsubv4sf3): Likewise.
7609
bbb52802
L
76102009-03-12 H.J. Lu <hongjiu.lu@intel.com>
7611
7612 PR target/38824
9ade279b 7613 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 7614
a812fb07
VM
76152009-03-12 Vladimir Makarov <vmakarov@redhat.com>
7616
7617 PR debug/39432
7618 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
7619 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7620 registers for allocnos created from user-defined variables.
7621
4caab5ba
UW
76222009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7623
7624 PR target/39181
7625 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
7626 of non-integer mode as well.
7627
498e51ca
AN
76282009-03-11 Adam Nemet <anemet@caviumnetworks.com>
7629
7630 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
7631 for functions for which the parameter types are unknown.
7632
9bfaf89d
JJ
76332009-03-11 Jakub Jelinek <jakub@redhat.com>
7634
7635 PR target/39137
9ade279b 7636 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
7637 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
7638 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
7639 * config/i386/i386.c (ix86_local_alignment): For
7640 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
7641 long long variables on the stack to avoid dynamic realignment.
7642 Allow the first argument to be a decl rather than type.
7643 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
7644
18a3bdcb
NC
76452009-03-11 Nick Clifton <nickc@redhat.com>
7646
7647 PR target/5362
40190a76
NC
7648 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
7649 options.
7650 Add description to mno-lsim option.
7651 * config/mcore/mcore.h: Remove comment about deprecated m4align
7652 option.
7653 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
7654 * doc/invoke.texi: Add description of mno-lsim and
7655 mstack-increment options.
7656
18a3bdcb
NC
7657 * config/fr30/fr30.opt: Document the -mno-lsim option.
7658 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
7659 and -mno-lsim options.
7660
dc215785
UW
76612009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7662
7663 * fold-const.c (fold_comparison): Only call fold_inf_compare
7664 if the mode supports infinities.
7665
7716876b
JM
76662009-03-11 Jason Merrill <jason@redhat.com>
7667
7668 PR debug/39086
7669 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
7670 end already did. Notice GIMPLE_CALL modifications of the result.
7671 Don't copy debug information from an ignored decl or a decl from
7672 another function.
7673
ddef83d2
RG
76742009-03-10 Richard Guenther <rguenther@suse.de>
7675 Nathan Froyd <froydnj@codesourcery.com>
7676
7677 PR middle-end/37850
9ade279b 7678 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
7679 (__divMODE3): Likewise.
7680
9a9ba8d9
JJ
76812009-03-09 Jakub Jelinek <jakub@redhat.com>
7682
7683 PR tree-optimization/39394
7684 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
7685 DECL_SIZE_UNIT of variable length FIELD_DECLs.
7686
929b7fc3
AK
76872009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7688
7689 * recog.c (verfiy_changes): Disallow renaming of hard regs in
7690 inline asms for register asm ("") declarations.
7691
1803581d
EB
76922009-03-09 Eric Botcazou <ebotcazou@adacore.com>
7693
7694 * fold-const.c (fold_unary): Fix comment.
7695
8454d27e
JH
76962009-03-07 Jan Hubicka <jh@suse.cz>
7697
7698 PR target/39361
969a5433
JJ
7699 * tree-inline.c (setup_one_parameter): Do replacement of const
7700 argument by constant in SSA form.
8454d27e 7701
3a695389
UW
77022009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7703
7704 PR middle-end/38028
7705 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
7706 determine alignment passed to assign_stack_local.
7707 (assign_parms_unsplit_complex): Likewise.
7708 * except.c (sjlj_build_landing_pads): Likewise.
7709
9f0e7885
JJ
77102009-03-06 Jakub Jelinek <jakub@redhat.com>
7711
65401a0b
JJ
7712 PR middle-end/39360
7713 * tree-flow.h (add_referenced_var): Return bool instead of void.
7714 * tree-dfa.c (add_referenced_var): Return result of
7715 referenced_var_check_and_insert call.
7716 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
7717 of referenced_var_check_and_insert.
7718
9f0e7885 7719 PR debug/39372
9ade279b 7720 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
7721 (gen_variable_die): Emit DW_AT_location on abstract static variable's
7722 DIE, don't emit it if abstract origin already has it.
7723 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
7724 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
7725
3b664bd1
JBG
77262009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7727
ba20e309 7728 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
7729 detection.
7730 (write_tm_constrs_h): Indent generated code.
7731
d8f8ca80
RR
77322009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7733
7734 * doc/extend.texi (Function Attributes): Add documentation
7735 for isr attributes.
7736
6c3d550c
JJ
77372009-03-06 Jakub Jelinek <jakub@redhat.com>
7738
7739 PR debug/39387
7740 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
7741 take locus from its DECL_SOURCE_LOCATION instead of input_location.
7742
f9e96751
BS
77432009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
7744
7745 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
7746 the loop as bad.
7747
ee0ee7e2
JJ
77482009-03-05 Jakub Jelinek <jakub@redhat.com>
7749
7750 PR debug/39379
7751 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
7752 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
7753
6c6094f1
UB
77542009-03-05 Uros Bizjak <ubizjak@gmail.com>
7755
7756 * config/i386/i386.md (R8_REG, R9_REG): New constants.
7757 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
7758 constants instead of magic numbers.
7759 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
7760 (QI_REG_P): Ditto.
7761 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
7762 (x86_64_ms_abi_int_parameter_registers): Ditto.
7763 (x86_64_int_return_registers): Ditto.
09f8a8d3 7764 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
7765 (ix86_expand_call): Ditto for clobbered_registers array.
7766 (ix86_hard_regno_mode_ok): Ditto.
7767 (x86_extended_QIreg_mentioned_p): Ditto.
7768
b267bd41
R
77692009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
7770
6c6094f1 7771 PR tree-optimization/39349
1f3ad3f0
R
7772 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
7773
b267bd41
R
7774 * combine.c (gen_lowpart_for_combine): Use omode when generating
7775 clobber.
7776
1242bc9d
R
77772009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
7778
6c6094f1 7779 PR rtl-optimization/39235
1242bc9d
R
7780 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
7781
48f03606
ZD
77822009-03-04 Zdenek Dvorak <ook@ucw.cz>
7783
7784 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
7785
b505e785
RG
77862009-03-04 Richard Guenther <rguenther@suse.de>
7787
7788 PR tree-optimization/39362
7789 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
7790 that occur in abnormal PHIs should be varying.
7791
f017bf5e
ZD
77922009-03-04 Zdenek Dvorak <ook@ucw.cz>
7793
7794 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
7795 Extend comments.
7796 (simple_iv): Take loop as an argument instead of statement.
7797 * tree-scalar-evolution.h (simple_iv): Declaration changed.
7798 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
7799 to simple_iv.
7800 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
7801 Ditto.
7802 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
7803 * matrix-reorg.c (analyze_transpose): Ditto.
7804 * tree-data-ref.c (dr_analyze_innermost): Ditto.
7805 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
7806 * tree-predcom.c (ref_at_iteration): Ditto.
7807 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
7808
6a66f28e
RG
78092009-03-04 Richard Guenther <rguenther@suse.de>
7810
7811 PR tree-optimization/39358
7812 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
7813 escaped_id and callused_id.
7814 (solve_graph): Likewise.
7815
57e454ee
RG
78162009-03-04 Richard Guenther <rguenther@suse.de>
7817
7818 PR tree-optimization/39339
7819 * tree-sra.c (try_instantiate_multiple_fields): Make it
7820 no longer ICE on the above.
7821
a6fe9ed4
JM
78222009-03-03 Joseph Myers <joseph@codesourcery.com>
7823
7824 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
7825 that fits within Pmode.
7826
dc672951
SE
78272009-03-03 Steve Ellcey <sje@cup.hp.com>
7828
7829 PR middle-end/10109
7830 * tm.texi (LIBCALL_VALUE): Update description.
7831
8b9d598f
SE
78322009-03-03 Steve Ellcey <sje@cup.hp.com>
7833
7834 PR middle-end/34443
7835 * doc/extend.texi (section): Update description.
7836
13e4e36e
L
78372009-03-03 H.J. Lu <hongjiu.lu@intel.com>
7838
7839 PR middle-end/39345
7840 * tree-inline.c (remapped_type): New.
7841 (can_be_nonlocal): Call remapped_type instead of remap_type.
7842
067dd3c9
JJ
78432009-03-03 Jakub Jelinek <jakub@redhat.com>
7844
7845 PR fortran/39354
7846 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
7847 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
7848
9bd9f738
RG
78492009-03-03 Richard Guenther <rguenther@suse.de>
7850
7851 PR middle-end/39272
7852 * tree.c (tree_nonartificial_location): New function.
7853 * tree.h (tree_nonartificial_location): Declare.
7854 * builtins.c (expand_builtin_memory_chk): Provide location
7855 of the call location for artificial function pieces.
7856 (maybe_emit_chk_warning): Likewise.
7857 (maybe_emit_sprintf_chk_warning): Likewise.
7858 (maybe_emit_free_warning): Likewise.
7859 * expr.c (expand_expr_real_1): Likewise.
7860
f07049c8
JJ
78612009-03-03 Jakub Jelinek <jakub@redhat.com>
7862
7863 PR tree-optimization/39343
7864 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
7865 COMPONENT_REF t has ARRAY_TYPE.
7866
7d4fba4a
SP
78672009-03-02 Sebastian Pop <sebastian.pop@amd.com>
7868
7869 PR middle-end/39335
7870 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
7871 when the type precision of the induction variable should be
7872 larger than the type precision of nit.
7873 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
7874 * graphite.c (graphite_loop_normal_form): Same.
7875 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
7876
78168632
UB
78772009-03-02 Uros Bizjak <ubizjak@gmail.com>
7878
7879 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
7880 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 7881 numbers to describe clobbered registers.
78168632 7882 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
7883 * config/i386/mmx.md (mmx_emms): Ditto.
7884 (mmx_femms): Ditto.
78168632 7885
63553059
RS
78862009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
7887
7888 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
7889 of ABI_64.
7890
500a1f85
UW
78912009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7892
7893 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
7894 (spu_section_type_flags): New function.
7895
962aae34
UB
78962009-03-02 Uros Bizjak <ubizjak@gmail.com>
7897
7898 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
7899 reg_class_contents of FLOAT_REGS into a temporary.
7900
6dfb529c 79012009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 7902 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
7903
7904 PR tree-optimization/39318
7905 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
7906 information to the vectorized statement.
7907
6b5629db
UB
79082009-03-01 Uros Bizjak <ubizjak@gmail.com>
7909
434426d2
UB
7910 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
7911 variable. Use defined names instead of magic constants for REX SSE
7912 registers.
6b5629db 7913
14e5b285
RG
79142009-03-01 Richard Guenther <rguenther@suse.de>
7915
7916 PR tree-optimization/39331
7917 * omp-low.c (lower_send_shared_vars): Do not receive new
7918 values for the reference of DECL_BY_REFERENCE parms or results.
7919
526d73ab
JH
79202009-03-01 Jan Hubicka <jh@suse.cz>
7921
7922 PR debug/39267
7923 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
7924 BLOCK_NONLOCALIZED_VAR): New macros.
7925 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
7926 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
7927 gen_decl_die): Add origin argument. Allow generation of die with
7928 origin at hand only.
526d73ab 7929 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
7930 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
7931 of gen_*.
526d73ab
JH
7932 (gen_block_die): Fix checking for unused blocks.
7933 (process_scope_var): Break out from .... ; work with origins only.
7934 (decls_for_scope) ... here; process nonlocalized list.
7935 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
7936 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
7937 vars.
526d73ab
JH
7938 (dump_scope_block): Dump them.
7939 * tree-inline.c (remap_decls): Handle nonlocalized vars.
7940 (remap_block): Likewise.
7941 (can_be_nonlocal): New predicate.
7942 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
7943
7a9d3fe8
RW
79442009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7945
7946 * configure: Regenerate.
7947
b3cdf3cb
RW
79482009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7949
a16d1645 7950 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 7951 Reuse help texts for duplicate options which do not have any.
a16d1645 7952
1156c176
RW
7953 * gcc.c (display_help): Document --version.
7954
033505fc
RW
7955 * gcc.c (main): If print_help_list and verbose_flag, ensure
7956 driver output comes before subprocess output.
7957
4d077054
RW
7958 * optc-gen.awk: Assign all remaining fields to help string,
7959 space-separated, for multi-line help in *.opt.
7960
a072f1cf
RW
7961 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
7962 -Wno-pedantic-ms-format is for MinGW targets only.
7963
b3cdf3cb
RW
7964 * doc/options.texi (Option file format): Fix bad indentation,
7965 restoring dropped sentence.
7966
a3aadcc5
JH
79672009-02-28 Jan Hubicka <jh@suse.cz>
7968
7969 * tree-inline.c (tree_function_versioning): Output debug info.
7970
1cf5abb3
JH
79712009-02-28 Jan Hubicka <jh@suse.cz>
7972
7973 PR debug/39267
7974 * tree-inline.c (setup_one_parameter): Do not copy propagate
7975 arguments when not optimizing.
7976
c4d3f42f
L
79772009-02-28 H.J. Lu <hongjiu.lu@intel.com>
7978
7979 PR target/39327
7980 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7981 (avx_addsubv4df3): Likewise.
7982 (*avx_addsubv4sf3): Likewise.
7983 (sse3_addsubv4sf3): Likewise.
7984 (*avx_addsubv2df3): Likewise.
7985 (sse3_addsubv2df3): Likewise.
7986 (avx_unpckhps256): Correct item selectors.
7987 (avx_unpcklps256): Likewise.
7988 (avx_unpckhpd256): Likewise.
7989 (avx_unpcklpd256): Likewise.
7990
eb50f5f4
JH
79912009-02-28 Jan Hubicka <jh@suse.cz>
7992
7993 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
7994 static vars.
7995 (copy_arguments_for_versioning): If var is declared don't declare it.
7996 (tree_function_versioning): First setup substitutions and then copy
7997 args.
7998
26140130
JH
79992009-02-27 Jan Hubicka <jh@suse.cz>
8000
8001 PR debug/39267
8002 * cgraph.h (varpool_output_debug_info): Remove.
8003 * cgraphunit.c (varpool_output_debug_info): Remove.
8004 * dwarf2out.c (deferred_locations_struct): New struct
8005 (deferred_locations): New type.
8006 (deferred_locations_list): New static var.
8007 (deffer_location): New function.
8008 (gen_variable_die): Use it.
8009 (decls_for_scope): Output info on local static vars.
8010 (dwarf2out_finish): Process deferred locations.
8011 * varpool.c (varpool_output_debug_info): Remove.
8012
cff7525f
JH
80132009-02-27 Jan Hubicka <jh@suse.cz>
8014
8015 PR debug/39267
8016 * tree.h (TREE_PROTECTED): Fix comment.
8017 (BLOCK_HANDLER_BLOCK): Remove.
8018 (struct tree_block): Remove handler_block add body_block.
8019 (inlined_function_outer_scope_p): New.
8020 (is_body_block): Remove.
8021 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
8022 * dwarf2out.c (is_inlined_entry_point): Remove.
8023 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
8024 (gen_block_die): Use is_inlined_entry_point check. Remove body block
8025 code.
cff7525f
JH
8026 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
8027 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
8028 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
8029 block with multiple subblocks.
cff7525f
JH
8030 (dump_scope_block): Prettier output; dump more flags and info.
8031 (dump_scope_blocks): New.
8032 (remove_unused_locals): Use dump_scope_blocks.
8033 * tree-flow.h (dump_scope_blocks): Declare.
8034 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
8035 * stmt.c (is_body_block): Remove.
8036 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
8037 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
8038
c20993b9
SP
80392009-02-27 Sebastian Pop <sebastian.pop@amd.com>
8040
8041 PR middle-end/39308
2ba9daa7 8042 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
8043 number_of_iterations_exit from a gcc_assert.
8044
e3cba5e5
AK
80452009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8046
60839f5d 8047 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
8048 jumps if COND is NULL.
8049 (find_cond_jump): New function.
8050 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 8051 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 8052
9dadeeb8
UB
80532009-02-26 Uros Bizjak <ubizjak@gmail.com>
8054
8055 * config/alpha/alpha.h (alpha_expand_mov): Return false if
8056 force_const_mem returns NULL_RTX.
8057
625d3251
EB
80582009-02-26 Jan Hubicka <jh@suse.cz>
8059
8060 PR debug/39267
8061 * cgraph.h (varpool_output_debug_info): Remove.
8062 * cgraphunit.c (varpool_output_debug_info): Remove.
8063 * dwarf2out.c (deferred_locations_struct): New struct
8064 (deferred_locations): New type.
8065 (deferred_locations_list): New static var.
8066 (deffer_location): New function.
8067 (gen_variable_die): Use it.
8068 (decls_for_scope): Output info on local static vars.
8069 (dwarf2out_finish): Process deferred locations.
8070 * varpool.c (varpool_output_debug_info): Remove.
8071
38432148 80722009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
8073
8074 PR rtl-optimization/39241
8075 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
8076 to subreg_offset_representable_p.
8077
62d049cf
PB
80782009-02-25 Paolo Bonzini <bonzini@gnu.org>
8079
8080 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
8081 execute function prototype. Get f and nregs from max_reg_num
8082 and get_insns. Remove the first backward pass as it's dead,
8083 guard the forward pass by flag_expensive_optimizations.
8084 (rest_of_handle_regmove): Delete.
8085 (pass_regmove): Replace it with regmove_optimize.
8086
f618d33e
MJ
80872009-02-25 Martin Jambor <mjambor@suse.cz>
8088
8089 PR tree-optimization/39259
8090 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 8091 calls_alloca function flags.
f618d33e
MJ
8092 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
8093 calls are detected.
8094
c8a05f7c
PB
80952009-02-25 Paolo Bonzini <bonzini@gnu.org>
8096
8097 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
8098 flags_set_1_rtx, flags_set_1_set): Delete.
8099 (regmove_optimize): Do not call mark_flags_life_zones.
8100
6d2538f5
JB
81012009-02-24 Julian Brown <julian@codesourcery.com>
8102
8103 PR target/35965
8104 * config/arm/arm.c (require_pic_register): Only set
8105 cfun->machine->pic_reg once per function.
8106
a2fa6772
SL
81072009-02-24 Sandra Loosemore <sandra@codesourcery.com>
8108
8109 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 8110 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 8111
5472de36
SE
81122009-02-24 Steve Ellcey <sje@cup.hp.com>
8113
8114 PR target/33785
8115 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
8116
844216f3
RG
81172009-02-24 Richard Guenther <rguenther@suse.de>
8118
8119 PR debug/39285
8120 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
8121
71adbef3 81222009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 8123 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
8124
8125 PR tree-optimization/39233
8126 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
8127 from converting them to a generic type.
8128
f1a558e0
SP
81292009-02-23 Sebastian Pop <sebastian.pop@amd.com>
8130
8131 PR tree-optimization/39260
8132 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
8133 contains a condition with a real type.
8134 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
8135
d8028f2c
JM
81362009-02-23 Jason Merrill <jason@redhat.com>
8137
8138 PR c++/38880
8139 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
8140 narrowing_initializer_constant_valid_p.
2ba9daa7 8141 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
8142 null_pointer_node for adding a pointer to itself.
8143
9283b513
JH
81442009-02-23 Jan Hubicka <jh@suse.cz>
8145
8146 PR c/12245
9dadeeb8
UB
8147 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
8148 resizing.
9283b513 8149
61e04322
JH
81502009-02-23 Jan Hubicka <jh@suse.cz>
8151
9dadeeb8
UB
8152 PR tree-optimization/37709
8153 * tree.c (block_ultimate_origin): Move here from dwarf2out.
8154 * tree.h (block_ultimate_origin): Declare.
8155 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
8156 * tree-ssa-live.c (remove_unused_scope_block_p):
8157 Eliminate blocks containig no instructions nor live variables nor
8158 nested blocks.
8159 (dump_scope_block): New function.
8160 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 8161 enable dumping at TDF_DETAILS.
61e04322 8162
38432148 81632009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
8164
8165 * config/i386/i386.c (classify_argument): Don't allow COImode
8166 and OImode.
8167 (function_arg_advance_32): Don't allow OImode.
8168 (function_arg_32): Likewise.
8169 (function_value_32): Likewise.
8170 (return_in_memory_32): Likewise.
8171 (function_arg_64): Remove OImode comment.
8172
38432148 81732009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
8174
8175 PR target/39261
8176 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
8177 ix86_expand_vector_set for V4DImode in 64bit mode only.
8178 (ix86_expand_vector_init_one_var): Likewise.
8179
dcd739a6
SP
81802009-02-21 Sebastian Pop <sebastian.pop@amd.com>
8181
8182 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
8183
6c3b938d
RS
81842009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
8185
8e361f23 8186 PR bootstrap/39257
6c3b938d
RS
8187 * loop-iv.c: Revert last change.
8188 * emit-rtl.c: Likewise.
8189
38432148 81902009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
8191
8192 PR target/39256
8193 * config/i386/i386.c (type_natural_mode): Remove an extra
8194 space in the warning message.
8195 (function_value_32): Handle 32-byte vector modes.
8196 (return_in_memory_32): Likewise.
8197
2ec62529
RS
81982009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
8199
8200 * loop-iv.c (truncate_value): New function.
8201 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
8202 of lowpart_subreg.
8203 (lowpart_subreg): Move to...
8204 * emit-rtl.c: ...here.
8205
ecb8c3cc 82062009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 8207
ecb8c3cc
DS
8208 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
8209 accidental and undocumented change at revision 140860.
8210
ae46a823
JM
82112009-02-21 Joseph Myers <joseph@codesourcery.com>
8212
8213 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
8214 take gimple_seq * arguments.
8215 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
8216 types_compatible_p langhook.
8217
07d8efe3 82182009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 8219 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
8220
8221 * config/arm/arm.c (arm_builtin_va_list): New function.
8222 (arm_expand_builtin_va_start): Likewise.
8223 (arm_gimplify_va_arg_expr): Likewise.
8224 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
8225 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
8226 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
8227 (va_list_type): New variable.
8228 (arm_mangle_type): Mangle va_list_type appropriately.
8229
b1fb9f56
JJ
82302009-02-20 Jakub Jelinek <jakub@redhat.com>
8231
8232 PR middle-end/39157
8233 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
8234 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
8235 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
8236 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
8237 parameter to 1000 for -O1 by default.
8238 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
8239 parameter.
8240 * loop-invariant.c: Include params.h.
8241 (move_loop_invariants): Don't call move_single_loop_invariants on
8242 very large loops.
8243
5bc0807c
JM
82442009-02-20 Jaka Mocnik <jaka@xlab.si>
8245
8246 * calls.c (emit_library_call_value_1): Use slot_offset instead of
8247 offset when calculating bounds for indexing stack_usage_map. Fixes
8248 a buffer overflow with certain target setups.
8249
c69cd1f5
JJ
82502009-02-20 Jakub Jelinek <jakub@redhat.com>
8251
8252 PR target/39240
8253 * calls.c (expand_call): Clear try_tail_call if caller and callee
8254 disagree in promotion of function return value.
8255
09812622
JJ
82562009-02-19 Jakub Jelinek <jakub@redhat.com>
8257
8258 PR target/39175
8259 * c-common.c (c_determine_visibility): If visibility changed and
8260 DECL_RTL has been already set, call make_decl_rtl to update symbol
8261 flags.
8262
68017cb4
L
82632009-02-19 H.J. Lu <hongjiu.lu@intel.com>
8264
8265 PR c++/39188
8266 * varasm.c (assemble_variable): Don't check DECL_NAME when
8267 globalizing a variable.
8268
ab4194da
JM
82692009-02-19 Joseph Myers <joseph@codesourcery.com>
8270
8271 PR c/38483
8272 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
8273 expression before any __builtin_trap call.
8274 * c-typeck.c (build_function_call): Convert and check function
8275 arguments before generating a call to a trap. Evaluate the
8276 function arguments before the trap.
8277
6b67572e
UB
82782009-02-19 Uros Bizjak <ubizjak@gmail.com>
8279
8280 PR target/39228
8281 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
8282 (UNSPEC_FXAM_MEM): New unspec.
8283 (fxam<mode>2_i387_with_temp): New insn and split pattern.
8284 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
8285 memory using fxam<mode>2_i387_with_temp to remove excess precision.
8286
9e39dba6
RG
82872009-02-19 Richard Guenther <rguenther@suse.de>
8288
8289 PR tree-optimization/39207
8290 PR tree-optimization/39074
8291 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
8292 storedanything_tree): New.
8293 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 8294 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
8295 (build_succ_graph): Add edges from STOREDANYTHING to all
8296 non-direct nodes.
8297 (init_base_vars): Initialize STOREDANYTHING.
8298 (compute_points_to_sets): Free substitution info after
8299 building the succ graph.
8300 (ipa_pta_execute): Likewise.
8301
8302 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
8303 field.
8304 (do_ds_constraint): Do not add to special var or non-pointer
8305 field solutions.
8306 (type_could_have_pointers): Split out from ...
8307 (could_have_pointers): ... here. For arrays use the element type.
8308 (create_variable_info_for): Initialize may_have_pointers.
8309 (new_var_info): Likewise.
8310 (handle_lhs_call): Make the HEAP variable unknown-sized.
8311 (intra_create_variable_infos): Use a type with pointers for
8312 PARM_NOALIAS, make it unknown-sized.
8313
fd7b2603
L
83142009-02-18 H.J. Lu <hongjiu.lu@intel.com>
8315
8316 PR target/39224
6b67572e 8317 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 8318
98b80692
JM
83192009-02-18 Jason Merrill <jason@redhat.com>
8320
8321 PR target/39179
8322 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
8323 value if DECL_EXTERNAL.
8324 * tree-sra.c (sra_walk_gimple_assign): Likewise.
8325 * target.h (gcc_target::binds_local_p): Clarify "module".
8326 * tree.h (TREE_PUBLIC): Clarify "module".
8327
0705d3f4
L
83282009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
8329
8330 PR target/38891
8331 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
8332 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
8333
bce08d50
L
83342009-02-17 H.J. Lu <hongjiu.lu@intel.com>
8335
8336 PR target/39082
8337 * c.opt (Wabi): Support C and ObjC.
8338 (Wpsabi): New.
8339
8340 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
8341
8342 * config/i386/i386.c (classify_argument): Warn once about the ABI
8343 change when passing union with long double.
8344
8345 * doc/invoke.texi: Update -Wabi for warning psABI changes.
8346
5600f233
JM
83472009-02-18 Joseph Myers <joseph@codesourcery.com>
8348
8349 PR c/35447
8350 * c-parser.c (c_parser_compound_statement): Always enter and leave
8351 a scope.
8352
8cd01fe6
JDA
83532009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8354
8355 PR target/34587
8356 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
8357
418df9d7
JJ
83582009-02-18 Jakub Jelinek <jakub@redhat.com>
8359
8360 PR tree-optimization/36922
8361 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
8362 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
8363 Likewise.
8364
082d2ebb
RS
83652009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
8366
8367 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
8368 to 0 for EABI64.
8369
17de576c
RS
83702009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
8371
8372 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
8373
6d8d5435
RS
83742009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
8375
8376 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
8377 tree sharing.
8378
e69ff910
RB
83792009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
8380 Richard Sandiford <rdsandiford@googlemail.com>
8381
8382 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
8383 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
8384 (loongson_biadd): ...this.
8385
6b24ee26
RG
83862009-02-17 Richard Guenther <rguenther@suse.de>
8387
8388 PR tree-optimization/39202
8389 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
8390 a var make sure to follow existing collapses.
8391
91ab2c86
RG
83922009-02-17 Richard Guenther <rguenther@suse.de>
8393
8394 PR middle-end/39214
8395 * langhooks.c (lhd_print_error_function): Check for NULL block.
8396
73a63870
RG
83972009-02-17 Richard Guenther <rguenther@suse.de>
8398
8399 PR tree-optimization/39204
8400 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
8401 of the PHI arg.
8402
0e08f686
UB
84032009-02-17 Uros Bizjak <ubizjak@gmail.com>
8404
8405 * config/soft-fp/double.h: Update from glibc CVS.
8406
a60b7ddb
RG
84072009-02-17 Richard Guenther <rguenther@suse.de>
8408
8409 PR tree-optimization/39207
8410 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
8411 strict-aliasing warnings for pointers pointing to NULL.
8412
a47e20fd
JM
84132009-02-16 Joseph Myers <joseph@codesourcery.com>
8414
8415 PR c/35446
8416 * c-parser.c (c_parser_braced_init): Call pop_init_level when
8417 skipping until next close brace.
8418
50aab7dc
L
84192009-02-16 H.J. Lu <hongjiu.lu@intel.com>
8420
8421 PR target/37049
8422 * config/i386/i386.c (ix86_expand_push): Set memory alignment
8423 to function argument boundary.
8424
68e53db0
HS
84252009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
8426
8427 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
8428 in the lea_add. Reload eventually constraints it properly.
0d50d55a 8429 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
8430 "b", since it is not needed anymore.
8431
09e361bb
JJ
84322009-02-16 Jakub Jelinek <jakub@redhat.com>
8433
8434 * gthr-dce.h: Uglify function parameter and local variable names.
8435 * gthr-gnat.h: Likewise.
8436 * gthr-mipssde.h: Likewise.
8437 * gthr-nks.h: Likewise.
8438 * gthr-posix95.h: Likewise.
8439 * gthr-posix.h: Likewise.
8440 * gthr-rtems.h: Likewise.
8441 * gthr-single.h: Likewise.
8442 * gthr-solaris.h: Likewise.
8443 * gthr-tpf.h: Likewise.
8444 * gthr-vxworks.h: Likewise.
8445 * gthr-win32.h: Likewise.
8446
47f5a48f
L
84472009-02-15 H.J. Lu <hongjiu.lu@intel.com>
8448
8449 PR target/39196
8450 * config/i386/i386.md: Restrict the new peephole2 to move
8451 between MMX/SSE registers.
8452
68c9ab45
RG
84532009-02-15 Richard Guenther <rguenther@suse.de>
8454
8455 Revert
8456 2009-02-13 Richard Guenther <rguenther@suse.de>
8457
8458 * configure.ac: Enable LFS.
8459 * configure: Re-generate.
8460 * config.in: Likewise.
8461
d7815554
UW
84622009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8463
8464 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
8465 spu_srqwbyte, spu_srqwbytebc): Define.
8466 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
8467 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
8468 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
8469 "shrqby_<mode>"): New insn-and-split patterns.
8470 * config/spu/spu.c (expand_builtin_args): Determine and return
8471 number of operands using spu_builtin_description data.
8472 (spu_expand_builtin_1): Use it.
8473
c208436c
SE
84742009-02-13 Steve Ellcey <sje@cup.hp.com>
8475
8476 PR target/38056
8477 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
8478 TARGET_CONST_GP.
8479
c2e7ba7e
L
84802009-02-13 H.J. Lu <hongjiu.lu@intel.com>
8481
8482 PR target/39149
8483 * config/i386/i386.c (override_options): Correct warning
6c6094f1 8484 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 8485
72f4e3a7
L
84862009-02-13 H.J. Lu <hongjiu.lu@intel.com>
8487
8488 PR target/39152
8489 * config/i386/i386.md: Restrict the new peephole2 to move
8490 between the general purpose registers.
8491
53f648e2
L
84922009-02-13 H.J. Lu <hongjiu.lu@intel.com>
8493
8494 PR target/39162
8495 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 8496 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
8497 (function_arg_advance): Updated.
8498 (function_arg): Likewise.
8499 (ix86_function_value): Likewise.
8500 (ix86_return_in_memory): Likewise.
8501 (ix86_sol10_return_in_memory): Likewise.
8502 (ix86_gimplify_va_arg): Likewise.
8503 (function_arg_32): Don't warn ABX ABI change here.
8504 (function_arg_64): Likewise.
8505
38432148 85062009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
8507
8508 * loop-iv.c (implies_p): In the final case, test that operands 0
8509 of the two comparisons match.
8510
dd2139e7
BS
8511 * config/bfin/bfin.c (find_prev_insn_start): New function.
8512 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
8513 (find_next_insn_start): Move.
8514
601b3e1a
RG
85152009-02-13 Richard Guenther <rguenther@suse.de>
8516
8517 * configure.ac: Enable LFS.
8518 * configure: Re-generate.
8519 * config.in: Likewise.
8520
f007042e
JM
85212009-02-13 Joseph Myers <joseph@codesourcery.com>
8522
8523 PR c/35444
8524 * c-parser.c (c_parser_parms_list_declarator): Discard pending
8525 sizes on syntax error after some arguments have been parsed.
8526
3f238e8b
JJ
85272009-02-12 Jakub Jelinek <jakub@redhat.com>
8528
8529 * doc/invoke.texi (-fira): Remove.
8530
328e13b7
L
85312009-02-12 H.J. Lu <hongjiu.lu@intel.com>
8532
8533 * caller-save.c: Replace regclass.c with reginfo.c in comments.
8534 * recog.c: Likewise.
8535 * rtl.h: Likewise.
8536
c252db20
L
85372009-02-12 Uros Bizjak <ubizjak@gmail.com>
8538
8539 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
8540 (umul_ppmm): Likewise.
8541 (count_leading_zeros): Likewise.
8542 (count_trailing_zeros): Likewise.
8543 (UMUL_TIME): Likewise.
8544
85452009-02-12 H.J. Lu <hongjiu.lu@intel.com>
8546
ba181049
UB
8547 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
8548 soft-fp/t-softfp to tmake_file.
c252db20
L
8549
8550 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
8551 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
8552 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
8553 IA64_BUILTIN_INFQ]: New.
c252db20
L
8554 (ia64_init_builtins): Initialize __builtin_infq,
8555 __builtin_fabsq and __builtin_copysignq if not HPUX.
8556 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
8557 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
8558
8559 * config/ia64/lib1funcs.asm (__divtf3): Define only if
8560 SHARED is defined.
8561 (__fixtfti): Likewise.
8562 (__fixunstfti): Likewise.
8563 (__floattitf): Likewise.
8564
8565 * config/ia64/libgcc-glibc.ver: New.
8566 * config/ia64/t-fprules-softfp: Likewise.
8567 * config/ia64/sfp-machine.h: Likewise.
8568
8569 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
8570 (LIBGCC2_TF_CEXT): Likewise.
8571 (TF_SIZE): Likewise.
8572 (TARGET_INIT_LIBFUNCS): Likewise.
8573
ba181049 8574 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 8575 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 8576
f13eae6a
L
85772009-02-12 H.J. Lu <hongjiu.lu@intel.com>
8578
8579 * config/i386/i386.c (construct_container): Rewrite processing
8580 BLKmode with X86_64_SSE_CLASS.
8581
12019aec
L
85822009-02-12 Paolo Bonzini <bonzini@gnu.org>
8583
8584 PR target/39152
8585 * config/i386/i386.md: Replace simplify_replace_rtx with
8586 replace_rtx in the new peephole2.
8587
28c11eb3
NS
85882009-02-12 Nathan Sidwell <nathan@codesourcery.com>
8589
8590 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
8591 loop unrolling do not happen at -O2.
8592
c7b94907
MM
85932009-02-12 Michael Matz <matz@suse.de>
8594
8595 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
8596
61e98967
JJ
85972009-02-12 Jakub Jelinek <jakub@redhat.com>
8598
8599 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
8600 for -g3.
8601
a2a237b5
BE
86022009-02-12 Ben Elliston <bje@au.ibm.com>
8603
8604 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
8605 patterns when updating the back chain. Missed in the 2009-02-10
8606 change.
8607
853eda8d
JJ
86082009-02-11 Janis Johnson <janis187@us.ibm.com>
8609
8610 * doc/extend.texi (Decimal Floating Types): Update identifier of
8611 draft TR and list of missing support.
8612
3ad6b266
JJ
86132009-02-11 Jakub Jelinek <jakub@redhat.com>
8614
8615 PR middle-end/39154
8616 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
8617 bit to variable length decl's flags, add it also to its
8618 pointer replacement variable.
8619
b058b753
UB
86202009-02-11 Uros Bizjak <ubizjak@gmail.com>
8621 Jakub Jelinek <jakub@redhat.com>
8622
8623 PR target/39118
8624 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
8625 (memory_blockage): New expander.
8626 (*memory_blockage): New insn pattern.
8627 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
8628 instead of general blockage at the end of function prologue when
8629 frame pointer is used to access red zone area. Do not emit blockage
8630 when profiling, it is emitted in generic code.
8631 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
8632 function epilogue when frame pointer is used to access red zone area.
8633
bab64f23
PB
86342009-02-11 Paolo Bonzini <bonzini@gnu.org>
8635
0ce6dcfa 8636 PR target/38824
bab64f23
PB
8637 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
8638 by arithmetic with memory operands.
8639 * config/i386/predicates.md (commutative_operator): New.
8640
8fd94bda
JJ
86412009-02-10 Janis Johnson <janis187@us.ibm.com>
8642
8643 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
8644 bulleted lists.
8645
794511d2
EB
86462009-02-10 Eric Botcazou <ebotcazou@adacore.com>
8647
8648 * alias.h (record_alias_subset): Declare.
8649 * alias.c (record_alias_subset): Make global.
8650
6da7fc87
NC
86512009-02-10 Nick Clifton <nickc@redhat.com>
8652
8653 * tree-parloops.c: Change license to GPLv3.
8654 * ipa-struct-reorg.c: Change license to GPLv3.
8655 * ipa-struct-reorg.h: Change license to GPLv3.
8656
a03813c8
SE
86572009-02-10 Steve Ellcey <sje@cup.hp.com>
8658
8659 PR c/39084
8660 * c-decl.c (start_struct): Return NULL on error.
8661
fc3103e7
JJ
86622009-02-10 Jakub Jelinek <jakub@redhat.com>
8663
9b43d37b
JJ
8664 PR middle-end/39124
8665 * cfgloopmanip.c (remove_path): Call remove_bbs after
8666 cancel_loop_tree, not before it.
8667
fc3103e7 8668 PR target/39139
b058b753 8669 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
8670 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
8671 VAR_DECLs were seen.
8672 * tree-ssa-live.c (remove_unused_locals): Recompute
8673 cfun->has_local_explicit_reg_vars.
8674 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
8675 copies or clearings if cfun->has_local_explicit_reg_vars.
8676
dbf9ee15
UB
86772009-02-10 Uros Bizjak <ubizjak@gmail.com>
8678
8679 PR target/39118
8680 * config/i386/i386.c (expand_prologue): Emit blockage at the end
8681 of function prologue when frame pointer is used to access
8682 red zone area.
8683
bdec4dc7
RG
86842009-02-10 Richard Guenther <rguenther@suse.de>
8685
8686 PR middle-end/39127
8687 * gimplify.c (gimple_regimplify_operands): Always look if
8688 we need to create a temporary.
8689
7cae94fc
RG
86902009-02-10 Richard Guenther <rguenther@suse.de>
8691
8692 PR tree-optimization/39132
8693 * tree-loop-distribution.c (todo): New global var.
8694 (generate_memset_zero): Trigger TODO_rebuild_alias.
8695 (tree_loop_distribution): Return todo.
8696
a8800687
L
86972009-02-10 H.J. Lu <hongjiu.lu@intel.com>
8698
8699 PR target/39119
8700 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
8701 (x86_64_reg_class_name): Removed.
8702 (classify_argument): Return 0 if bytes > 32. Return 0 if the
8703 first one isn't X86_64_SSE_CLASS or any other ones aren't
8704 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
8705 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
8706 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
8707 and 3 X86_64_SSEUP_CLASS.
8708 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
8709 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
8710
d4bacef0
BE
87112009-02-10 Ben Elliston <bje@au.ibm.com>
8712
8713 * config/rs6000/rs6000.md (allocate_stack): Always use an update
8714 form instruction to update the stack back chain word, even if the
8715 user has disabled the generation of update instructions.
8716 (movdi_<mode>_update_stack): New.
8717 (movsi_update_stack): Likewise.
8718 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
8719 always use an update form instruction to update the stack back
8720 chain word.
8721
01d7d2f3
SP
87222009-02-09 Sebastian Pop <sebastian.pop@amd.com>
8723
8724 PR middle-end/38953
b058b753
UB
8725 * graphite.c (if_region_set_false_region): After moving a region in
8726 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
8727 (gloog): Remove wrong fix for PR38953.
8728
e41e2ab4
UW
87292009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8730
8731 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
8732 generation due to implicit sign extension.
8733
4bb07c5d
EB
87342009-02-09 Eric Botcazou <ebotcazou@adacore.com>
8735
8736 PR middle-end/38981
8737 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
8738 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
8739
f060a261
RG
87402009-02-09 Richard Guenther <rguenther@suse.de>
8741
8742 PR middle-end/35202
8743 * convert.c (convert_to_real): Disable (float)fn((double)x)
8744 to fnf(x) conversion if errno differences may occur and
8745 -fmath-errno is set.
8746
5a7e237c
AS
87472009-02-07 Anatoly Sokolov <aesok@post.ru>
8748
8749 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
8750 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8751 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8752
feab5a67
JM
87532009-02-06 Joseph Myers <joseph@codesourcery.com>
8754
8755 PR c/35434
8756 * c-common.c (handle_alias_attribute): Disallow attribute for
8757 anything not a FUNCTION_DECL or VAR_DECL.
8758
90ef2296
JJ
87592009-02-06 Janis Johnson <janis187@us.ibm.com>
8760
8761 PR c/39035
8762 * real.c (do_compare): Special-case compare of zero against
8763 decimal float value.
8764
1de2c900
JM
87652009-02-06 Joseph Myers <joseph@codesourcery.com>
8766
8767 PR c/36432
8768 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
8769 as indicating flexible array members unless the field itself is
8770 being declarared as the incomplete array.
8771
e901811a
JH
87722009-02-06 Jan Hubicka <jh@suse.cz>
8773
8774 PR tree-optimization/38844
8775 * ipa-inline.c (try_inline): Stop inlining recursion when edge
8776 is already inlined.
8777
3cfa762b
RG
87782009-02-06 Richard Guenther <rguenther@suse.de>
8779
8780 PR middle-end/38977
8781 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
8782 fork because we may expand it as __gcov_fork.
8783
8506528c
NC
87842009-02-06 Nick Clifton <nickc@redhat.com>
8785
dbf9ee15 8786 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 8787
85169114
PB
87882009-02-06 Paolo Bonzini <bonzini@gnu.org>
8789
8790 PR tree-optimization/35659
8791 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
8792 vn_phi_eq): Shortcut if hashcode does not match.
8793 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
8794 NULL operands.
8795 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
8796 and avoid iterative_hash_expr.
8797 (FOR_EACH_VALUE_ID_IN_SET): New.
8798 (value_id_compare): Remove.
8799 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
8800 sort expressions by value id.
8801
6d39673d
KK
88022009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
8803
8804 PR target/38991
8805 * config/sh/predicates.md (general_movsrc_operand): Don't check
8806 the subreg of system registers here.
8807
e6e1c050
JJ
88082009-02-05 Jakub Jelinek <jakub@redhat.com>
8809
8810 PR c++/39106
8811 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
8812 on the copied decl.
8813
65a74b5d
PB
88142009-02-05 Paolo Bonzini <bonzini@gnu.org>
8815
8816 PR rtl-optimization/39110
8817 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
8818 addresses, not aligned ones.
8819
08e14b2a
DB
88202009-02-05 Daniel Berlin <dberlin@dberlin.org>
8821 Richard Guenther <rguenther@suse.de>
8822
8823 PR tree-optimization/39100
8824 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
8825 comment says and add edges.
8826
5006381c
JM
88272009-02-05 Joseph Myers <joseph@codesourcery.com>
8828
8829 PR c/35435
8830 * c-common.c (handle_tls_model_attribute): Ignore attribute for
8831 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
8832
2ba9daa7 88332009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
8834
8835 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
8836 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
8837 register_bb_in_sese, new_sese, free_sese): Moved.
8838 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
8839 outermost_loop_in_scop, build_scop_iteration_domain,
8840 expand_scalar_variables_ssa_name, get_vdef_before_scop,
8841 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
8842 Use loop_in_sese_p instead of loop_in_scop_p.
8843 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
8844 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
8845 (scopdet_basic_block_info): Fix bug in scop detection.
8846 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
8847 eq_loop_to_cloog_loop): Remove.
8848 (nb_loops_around_loop_in_scop, nb_loop
8849 ref_nb_loops): Moved here...
8850 * graphite.h (ref_nb_loops): ... from here.
8851 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
8852 (loop_domain_dim, loop_iteration_vector_dim): Remove.
8853 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
8854 * testsuite/gcc.dg/graphite/scop-19.c: New
8855
48e8382e
PB
88562009-02-04 Paolo Bonzini <bonzini@gnu.org>
8857 Hans-Peter Nilsson <hp@axis.com>
8858
8859 PR rtl-optimization/37889
8860 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
8861 Move offset handling from PLUS to before the switch. Use new
8862 arguments when considering SYMBOL_REFs too.
8863 (rtx_addr_can_trap_p): Pass dummy offset and size.
8864 (enum may_trap_p_flags): Remove.
8865 (may_trap_p_1): Pass size from MEM_SIZE.
8866
8867 PR rtl-optimization/38921
8868 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
8869 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
8870 * rtlanal.c (may_trap_after_code_motion_p): Delete.
8871 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
8872
69349ea5
L
88732009-02-04 H.J. Lu <hongjiu.lu@intel.com>
8874
8875 AVX Programming Reference (January, 2009)
8876 * config/i386/sse.md (*vpclmulqdq): New.
8877
b545e411
JJ
88782009-02-04 Jakub Jelinek <jakub@redhat.com>
8879
8880 PR tree-optimization/38977
8881 PR gcov-profile/38292
bf9b2cc9 8882 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 8883
5b43bf05
HS
88842009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
8885
8886 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
8887 non-indexable addresses even before reload.
8888
062c4bb3
JM
88892009-02-03 Joseph Myers <joseph@codesourcery.com>
8890
8891 PR c/29129
8892 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
8893 as having variable size. Do not give an error for unnamed
8894 parameters with [*] declarators. Give a warning for type names
8895 with [*] declarators and mark them as variable size.
8896 * c-parser.c (c_parser_sizeof_expression): Do not give an error
8897 for sizeof applied to [*] type names.
8898
6175f578
AP
88992009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
8900
8901 PR C++/36607
8902 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
8903
d4f4bc84
JJ
89042009-02-03 Jakub Jelinek <jakub@redhat.com>
8905
8906 * gcc.c (process_command): Update copyright notice dates.
8907 * gcov.c (print_version): Likewise.
8908 * gcov-dump.c (print_version): Likewise.
8909 * mips-tfile.c (main): Likewise.
8910 * mips-tdump.c (main): Likewise.
8911
f6294de7
JM
89122009-02-03 Joseph Myers <joseph@codesourcery.com>
8913
8914 PR c/35433
8915 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
8916 for composite type involving a zero-length array type.
8917
754ccf7c
JJ
89182009-02-03 Jakub Jelinek <jakub@redhat.com>
8919
70f16287
JJ
8920 PR target/35318
8921 * function.c (match_asm_constraints_1): Skip over
8922 initial optional % in the constraint.
8923
754ccf7c
JJ
8924 PR inline-asm/39059
8925 * c-parser.c (c_parser_postfix_expression): If fixed point is not
8926 supported, don't accept FIXED_CSTs.
8927 * c-decl.c (finish_declspecs): Error if fixed point is not supported
8928 and _Sat is used without _Fract/_Accum. Set specs->type to
8929 integer_type_node for cts_fract/cts_accum if fixed point is not
8930 supported.
8931
965fdadf
CM
89322009-02-02 Catherine Moore <clm@codesourcery.com>
8933
dbf9ee15 8934 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 8935
2e8a796f
RS
89362009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
8937
8938 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
8939 (ABI_HAS_64BIT_SYMBOLS): Use it.
8940 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
8941
e0079468
PB
89422009-02-02 Paul Brook <paul@codesourcery.com>
8943
8944 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
8945
eca72963
JJ
89462009-02-02 Jakub Jelinek <jakub@redhat.com>
8947
8948 PR inline-asm/39058
8949 * recog.h (asm_operand_ok): Add constraints argument.
8950 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
8951 recurse on matching constraint.
8952 (check_asm_operands): Pass constraints as 3rd argument to
8953 asm_operand_ok. Don't look up matching constraint here.
8954 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
8955 to asm_operand_ok.
8956
b5bde9ff
BE
89572009-02-02 Ben Elliston <bje@au.ibm.com>
8958
8959 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
8960 TARGET_NARROW_VOLATILE_BITFIELD macro names.
8961
30f3e427
JDA
89622009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8963
be7659ba
JDA
8964 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
8965 information. Remove some obsolete information. Reorganize.
8966
30f3e427
JDA
8967 * config/pa/fptr.c: Revert license to GPL 2.
8968 * config/pa/milli64.S: Likewise.
8969
3cbfaf98
DK
89702009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
8971
8972 PR target/38904
8973 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
8974 LIBRARY name in, instead of hard-coding it.
8975 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
8976 extra target make frag to tmake_files according to EH model.
8977 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
8978 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
8979 frags that define makefile variable EH_MODEL appropriately.
8980 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
8981 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
8982 to "-sjlj" according to type of EH configured.
8983 (LIBGCC_SONAME): Concatenate it to shared library base name.
8984 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
8985 to "_sjlj" according to type of EH configured.
8986 (LIBGCC_SONAME): Concatenate it to shared library base name.
8987 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
8988 (SHLIB_LINK): Add missing semicolon to if-else construct.
8989 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
8990 string value of "pe_dll" command-line option.
8991 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
8992 (SHLIB_SONAME): Use it when overriding t-cygming default.
8993 (SHLIB_IMPLIB): Override t-cygming default.
8994 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
8995 string value of "pe_dll" command-line option.
8996
8d0b6068
DK
89972009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
8998
8999 PR target/38952
9000 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 9001 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 9002
14c28276
RG
90032009-01-31 Richard Guenther <rguenther@suse.de>
9004
9005 PR tree-optimization/38937
9006 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
9007 computing the transitive closure.
9008
5f4d82c2
RG
90092009-01-30 Richard Guenther <rguenther@suse.de>
9010
9011 PR tree-optimization/39041
9012 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
9013 Propagate variable indices only if the types match for this stmt.
9014
d0728ae0
JJ
90152009-01-30 Jakub Jelinek <jakub@redhat.com>
9016
9017 PR target/39013
9018 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
9019 inline but never defined.
9020
6b67572e 90212009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
9022
9023 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
9024 (*insv_h_di_reg_extimm): New insn.
9025 (*insv_l<mode>_reg_extimm): New insn.
9026
90272009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
9028
9029 * config/picochip/picochip.c (flag_conserve_stack): set
9030 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
9031 fconserve-stack. Reduce call-overhead used by inliner.
9032
9fec758d 90332009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
9034
9035 PR/38157
9036 * common.opt (flag_conserve_stack): Initialised to zero.
9037
7f1c539c
KT
90382009-01-30 Kai Tietz <kai.tietz@onevision.com>
9039
9040 PR/39002
9041 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
9042 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
9043 method.
9044
3631be48
L
90452009-01-29 H.J. Lu <hongjiu.lu@intel.com>
9046
9047 * ira-color.c (allocno_reload_assign): Update comments.
9048 * regmove.c (regmove_optimize): Likewise.
9049
9050 * ra.h: Removed.
9051
416ac4d4
RM
90522009-01-29 Robert Millan <rmh@aybabtu.com>
9053
60839f5d
EB
9054 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
9055 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 9056 `MD_UNWIND_SUPPORT'.
60839f5d 9057 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 9058
d5e54bc1
KH
90592009-01-29 Kazu Hirata <kazu@codesourcery.com>
9060
9061 PR tree-optimization/39007
9062 * tree-loop-distribution.c (generate_builtin): Use
9063 recompute_dominator to compute the immediate dominator of the
9064 basic block just after the loop.
9065
38432148 90662009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
9067
9068 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
9069 (ASM_OUTPUT_DWARF_PCREL): Define.
9070
38432148 90712009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
9072
9073 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
9074 * doc/passes.texi: Remove entries about regclass, local-alloc, and
9075 global. Modify entries about regmove and IRA.
9076
9077 * ra-conflict.c: Remove the file.
9078
9079 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
9080
9081 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
9082 (pass_regclass_init): Rename to pass_reginfo_init.
9083
9084 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
9085
9086 * toplev.h (flag_ira): Remove.
9087
9088 * caller-save.c (setup_save_areas): Remove flag_ira.
9089
bf9b2cc9 9090 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
9091
9092 * global.c: Remove the file.
9093
ba20e309 9094 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
9095
9096 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
9097
9098 * regmove.c: Modify file description.
9099 (find_use_as_address, try_auto_increment): Define them only if
9100 AUTO_INC_DEC is defined.
9101 (replacement_quality, replace_in_call_usage, fixup_match_1,
9102 stable_and_no_regs_but_for_p): Remove.
9103 (reg_set_in_bb): Make it static.
9104 (regmove_optimize): Remove flag_ira and code which worked for
9105 !flag_ira.
9106
9107 * local-alloc.c: Remove the file.
9108
9109 * common.opt (fira): Remove.
9110
9111 * ira.c: Include except.h.
9112 (eliminable_regset): Move from global.c.
9113 (mark_elimination): Ditto. Remove flag_ira.
9114 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
9115 equiv_mem_modified, validate_equiv_mem_from_store,
9116 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
9117 contains_replace_regs, memref_referenced_p, memref_used_between_p,
9118 no_equiv, recorded_label_ref): Move from local-alloc.c.
9119 (update_equiv_regs): Ditto. Make it static.
9120 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 9121 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
9122 (build_insn_chain): Ditto. Make it static.
9123 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
9124 Rename to init_live_subregs.
9125 (gate_ira): Remove flag_ira.
9126
9127 * regclass.c: Rename reginfo.c. Change file description.
9128 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 9129 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
9130 (init_reg_sets_1): Remove code for evaluation of
9131 reg_class_superclasses and losing_caller_save_reg_set.
9132 (init_regs): Remove init_reg_autoinc.
9133 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
9134 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 9135 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
9136 (pass_regclass_init): Rename to pass_reginfo_init. Modify
9137 corresponding entries.
9138 (dump_regclass, record_operand_costs, scan_one_insn,
9139 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
9140 record_address_regs, auto_inc_dec_reg_p): Remove.
9141 (gt-regclass.h): Rename to gt-reginfo.h.
9142
9143 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 9144 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
9145
9146 * Makefile.in (RA_H): Remove.
9147 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
9148 Rename regclass.o to reginfo.o.
9149 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
9150 gt-reginfo.h.
9151 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
9152 (GTFILES): Rename regclass.c to reginfo.c.
9153
9154 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 9155 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
9156
9157 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
9158 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
9159 Remove flag_ira.
6b67572e 9160 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 9161
c95b2534 91622009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
9163
9164 PR middle-end/35854
9165 * doc/invoke.texi (rtl debug options): Complete rewrite.
9166 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
9167 to auto_inc_dec".
9168 * mode-switching.c (pass_mode_switching): Rename pass from
9169 "mode-sw" to "mode_sw".
9170 * except.c (pass_convert_to_eh_ranges): Rename pass from
9171 "eh-ranges" to "eh_ranges".
9172 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
9173 to "subreg1".
2ba9daa7
AS
9174
9175
72a54528
AM
91762009-01-29 Andrey Belevantsev <abel@ispras.ru>
9177 Alexander Monakov <amonakov@ispras.ru>
9178
9179 PR middle-end/38857
9180 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
9181 register.
9182 (move_exprs_to_boundary): Change return type and pass through
9183 should_move from move_op. Relax assert. Update usage ...
9184 (schedule_expr_on_boundary): ... here. Use should_move instead of
9185 cant_move.
9186 (move_op_orig_expr_found): Indicate that insn was disconnected from
9187 stream.
9188 (code_motion_process_successors): Do not call after_merge_succs
9189 callback if original expression was not found when traversing any of
9190 the branches.
9191 (code_motion_path_driver): Change return type. Update prototype.
9192 (move_op): Update comment. Add a new parameter (should_move). Update
9193 prototype. Set *should_move based on indication provided by
9194 move_op_orig_expr_found.
9195
001b9eb6
PH
91962009-01-28 Pat Haugen <pthaugen@us.ibm.com>
9197
9198 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
9199 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
9200 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
9201 * config/rs6000/rs6000.c (rs6000_override_options): Default
9202 avoid-indexed-addresses on for Power6, off for everything else.
9203 (avoiding_indexed_address_p): New function.
9204 (rs6000_legitimize_address): Use it.
9205 (rs6000_legitimate_address): Likewise.
9206 * config/rs6000/rs6000.md (movXX_updateX): Likewise
9207
59dc4898
KH
92082009-01-28 Kazu Hirata <kazu@codesourcery.com>
9209
9210 PR tree-optimization/38997
9211 * tree-loop-distribution.c (generate_memset_zero): Use
9212 POINTER_PLUS_EXPR for a pointer addition.
9213
07da44ab
AK
92142009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
9215
9216 * config/s390/s390.md (bswap<mode>2): New pattern added.
9217
cdc15d23
WG
92182009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
9219
9220 * config/s390/s390.md (*tls_load_31): Added type attribute.
9221
d46f24b6
WG
92222009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
9223
9224 * config/s390/s390.md: Fix a few comments.
9225
729e750f
WG
92262009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
9227
9228 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
9229 (*tm<mode>_full): Fixed z10prop attribute.
9230 (*tst<mode>_extimm): Fixed z10prop attribute.
9231 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
9232 (*tstqiCCT_cconly): Fixed z10prop attribute.
9233 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
9234 (*movsi_larl): Fixed z10prop attribute.
9235 (*movsi_zarch): Fixed z10prop attribute.
9236 (*movsi_eas): Fixed z10prop attribute.
9237 (*movhi): Fixed z10prop attribute.
9238 (*movqi): Fixed z10prop attribute.
9239 (*movstrictqi): Fixed z10prop attribute.
9240 (*mov<mode>): Fixed z10prop attribute.
9241 (*movcc): Fixed z10prop attribute.
9242 (*sethighpartdi_64): Fixed z10prop attribute.
9243 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
9244 (*negdi2_sign_cc): Fixed z10prop attribute.
9245 (*negdi2_sign): Fixed z10prop attribute.
9246 (*absdi2_sign_cc): Fixed z10prop attribute.
9247 (*absdi2_sign): Fixed z10prop attribute.
9248 (*negabsdi2_sign_cc): Fixed z10prop attribute.
9249 (*negabsdi2_sign): Fixed z10prop attribute.
9250 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
9251 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
9252 (doloop_si64): Fixed z10prop attribute.
9253 (doloop_si31): Fixed z10prop attribute.
9254 (doloop_long): Fixed z10prop attribute.
9255 (indirect_jump): Fixed z10prop attribute.
9256 (nop): Fixed z10prop attribute.
9257 (main_base_64): Fixed z10prop attribute.
9258 (reload_base_64): Fixed z10prop attribute.
9259
c7789bfb
JJ
92602009-01-28 Jakub Jelinek <jakub@redhat.com>
9261
9262 PR rtl-optimization/38740
6b67572e
UB
9263 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
9264 if !optimize.
c7789bfb
JJ
9265 * config/mips/mips.c (mips_reorg): Likewise.
9266
de081cfd
RG
92672009-01-28 Richard Guenther <rguenther@suse.de>
9268
9269 PR tree-optimization/38926
9270 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
9271 with the correct value id to a value.
9272 (do_regular_insertion): Use the value number of edoubleprime
9273 for the value number of the expr.
9274
9275 Revert
9276 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 9277
d748c406
UB
9278 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
9279 a PHI ask VN if it is already available.
9280 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
9281 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 9282
a9d386a1
JJ
92832009-01-28 Jakub Jelinek <jakub@redhat.com>
9284
9285 PR middle-end/38934
9286 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
9287 set to varying whenever max has TREE_OVERFLOW set, similarly
9288 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
9289
97a170cd
RG
92902009-01-28 Richard Guenther <rguenther@suse.de>
9291
9292 PR middle-end/38908
9293 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
9294 uninitialized aggregate uses in call arguments.
9295
89ebafc6
PB
92962009-01-28 Paolo Bonzini <bonzini@gnu.org>
9297
9298 PR tree-optimization/38984
9299 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
9300 the nothing_id variable if -fno-delete-null-pointer-checks.
9301
bef3c57b
UB
93022009-01-28 Uros Bizjak <ubizjak@gmail.com>
9303
9304 PR target/38988
9305 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
9306 (set_got_offset_rex64): Ditto.
9307
0c6390fa
L
93082009-01-27 H.J. Lu <hongjiu.lu@intel.com>
9309
9310 PR target/38941
9311 * doc/extend.texi: Improve local variable with asm reg.
9312
bee6fa6d
AN
93132009-01-27 Adam Nemet <anemet@caviumnetworks.com>
9314
9315 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
9316 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
9317 was not supplied then set warn_packed_bitfield_compat to the
9318 default value of 1.
9319 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
9320 against 1.
9321
b5c3dfbb
RG
93222009-01-27 Richard Guenther <rguenther@suse.de>
9323
9324 PR tree-optimization/38503
9325 * cfgexpand.c (expand_gimple_basic_block): Ignore
9326 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
9327 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
9328 variables that cannot have TBAA applied.
9329 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
9330 statements.
9331
d748c406 93322009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
9333
9334 PR middle-end/38969
9335 * calls.c (initialize_argument_information): Do not wrap complex
9336 arguments in SAVE_EXPR.
9337
9112bb38
AT
93382009-01-26 Andreas Tobler <a.tobler@schweiz.org>
9339
9340 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 9341 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 9342
4757704f
RG
93432009-01-26 Richard Guenther <rguenther@suse.de>
9344
9345 PR tree-optimization/38745
9346 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
9347 from special handling.
9348
e3e6cff4
RG
93492009-01-26 Richard Guenther <rguenther@suse.de>
9350
9351 PR tree-optimization/38745
9352 * tree-ssa.c (execute_update_addresses_taken): Do not include
9353 variables that cannot possibly be a register in not_reg_needs.
9354 Do not clear TREE_ADDRESSABLE on vars that may not become
9355 registers.
9356 * tree-ssa.c (update_alias_info_1): Include those in the set
9357 of addressable vars.
9358
dc874b53
RG
93592009-01-26 Richard Guenther <rguenther@suse.de>
9360
9361 PR middle-end/38851
9362 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
9363 * tree-ssa-dse.c: Include langhooks.h
9364 (execute_simple_dse): Remove stores with zero size.
9365
849421a3
JJ
93662009-01-24 Jakub Jelinek <jakub@redhat.com>
9367
9368 PR c/38957
9369 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
9370 as PLUS_EXPR.
9371
82f70421
JB
93722009-01-24 Julian Brown <julian@codesourcery.com>
9373
9374 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
9375 config/arm/linux-atomic.c.
9376 * config/arm/linux-atomic.c: New.
9377
863412d6
EB
93782009-01-24 Eric Botcazou <ebotcazou@adacore.com>
9379
9380 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
9381 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
9382 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
9383
8c684300
L
93842009-01-24 H.J. Lu <hongjiu.lu@intel.com>
9385
9386 PR c/38938
93f1527a 9387 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
9388 properly.
9389
b840fb02
SP
93902009-01-24 Sebastian Pop <sebastian.pop@amd.com>
9391
9392 PR tree-optimization/38953
9393 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
9394 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
9395 (gloog): Split the exit of the scop when the scop exit is a loop exit.
9396 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
9397 changed the CFG.
9398
ecee559f
PB
93992009-01-24 Paul Brook <paul@codesourcery.com>
9400
9401 * config/arm/neon.md (neon_type): Move to arm.md.
9402 (neon_mov<VSTRUCT>): Add neon_type attribute.
9403 * config/arm/arm.md (neon_type): Move to here.
9404 (conds): Add "unconditioal" and use as default for NEON insns.
9405
61ad0914
BE
94062009-01-24 Ben Elliston <bje@au.ibm.com>
9407
9408 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
9409 void *' warning from -Wc++-compat.
9410 * Makefile.in (dominance.o-warn): Remove.
9411
38432148 94122009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
9413
9414 PR tree-optimization/38932
9415 * fold-const.c (fold_unary_ignore_overflow): New.
9416 * tree.h (fold_unary_ignore_overflow): Declare.
9417 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
9418 * tree-ssa-sccvn.c (visit_reference_op_load,
9419 simplify_unary_expression): Likewise.
9420
2cd36c22
AN
94212009-01-22 Adam Nemet <anemet@caviumnetworks.com>
9422
9423 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
9424 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
9425 regardless of their type.
9426 * c-common.c (handle_packed_attribute): Don't ignore packed on
9427 bitfields.
9428 * c.opt (Wpacked-bitfield-compat): New warning option.
9429 * stor-layout.c (place_field): Warn if offset of a field changed.
9430 * doc/extend.texi (packed): Mention the ABI change.
9431 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
9432 (Warning Options): Add it to the list.
9433
e4e624ab
L
94342009-01-22 H.J. Lu <hongjiu.lu@intel.com>
9435
9436 * c-opts.c (c_common_post_options): Fix a typo in comments.
9437
d0ea0759
SE
94382009-01-22 Steve Ellcey <sje@cup.hp.com>
9439
9440 PR middle-end/38615
9441 * gimplify.c (gimplify_init_constructor): Fix promotion of const
9442 variables to static.
9443 * doc/invoke.texi (-fmerge-all-constants): Update description.
9444
87673f84
UB
94452009-01-22 Uros Bizjak <ubizjak@gmail.com>
9446
9447 PR target/38931
9448 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
9449 (*movdi_1_rex64): Use type "mmx" for alternative 5.
9450
96339268
RE
94512009-01-22 Richard Earnshaw <rearnsha@arm.com>
9452
9453 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
9454 a word boundary.
9455 (LOCAL_ALIGNMENT): Similarly.
9456
442dc742 94572009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 9458 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
9459
9460 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
9461 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
9462 * config/arm/arm-tune.md: Regenerate.
9463 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
9464 -march=iwmmxt2.
9465
9b34732e
MS
94662009-01-22 Mark Shinwell <shinwell@codesourcery.com>
9467
9468 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
9469 version number to five.
9470
03c2a308
DS
94712009-01-22 Dodji Seketeli <dodji@redhat.com>
9472
9473 PR c++/38930
ba20e309 9474 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
9475 * c-common.c (set_underlying_type): Likewise.
9476 (is_typedef_decl ): Likewise
9477 * tree.h: Likewise
9478 (set_underlying_type): Likewise.
9479 (is_typedef_type): Likewise.
9480
1240d76e
VM
94812009-01-21 Vladimir Makarov <vmakarov@redhat.com>
9482
9483 PR middle-end/38587
9484 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
9485 crossing setjmps.
9486
b8a1087d
DK
94872009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
9488
9489 PR bootstrap/37660
9490 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
9491 (LIBGCC_SPEC): Don't define.
9492 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
9493
435da628
UB
94942009-01-21 Uros Bizjak <ubizjak@gmail.com>
9495
9496 PR rtl-optimization/38879
9497 * alias.c (base_alias_check): Unaligned access via AND address can
9498 alias all surrounding object types except those with sizes equal
9499 or wider than the size of unaligned access.
9500
d597b3ce
DS
95012009-01-21 Dodji Seketeli <dodji@redhat.com>
9502
9503 PR c++/26693
ba20e309 9504 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 9505 * c-common.c (set_underlying_type): ... here.
435da628 9506 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
9507 the newly created typedef variant type.
9508 (is_typedef_decl ): New entry point.
9509 * tree.h: Added a new member member_types_needing_access_check to
9510 struct tree_decl_non_common.
9511 (set_underlying_type): New entry point.
9512 (is_typedef_type): Likewise.
9513
71a6fe66
BM
95142009-01-21 Bingfeng Mei <bmei@broadcom.com>
9515
9516 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
9517 Check whether two instructions have memory references that
9518 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
9519 are helper functions for traversing.
9520 * alias.h (insn_alias_sets_confilict_p): New prototypes.
9521 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
9522 not to draw dependency edge for instructions with non-conflicting
9523 alias sets.
9524
5a248274
JM
95252009-01-20 Joseph Myers <joseph@codesourcery.com>
9526
9527 PR other/38758
6b67572e
UB
9528 * longlong.h: Update copyright years. Use soft-fp license notice.
9529 Sync __clz_tab declaration with glibc.
5a248274 9530
4b84f3de
SE
95312009-01-20 Steve Ellcey <sje@cup.hp.com>
9532
9533 PR target/30687
9534 * doc/extend.texi (syscall_linkage): New.
9535 (version_id): Modify.
9536
37348bf1 95372009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 9538 Richard Guenther <rguenther@suse.de>
37348bf1
AP
9539
9540 PR tree-optimization/38747
9541 PR tree-optimization/38748
9542 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
9543 conversion if the base address is an indirect reference and the
9544 aliasing sets could cause issues.
9545
d0a58904
SP
95462009-01-20 Sebastian Pop <sebastian.pop@amd.com>
9547
2ba9daa7 9548 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
9549 explaining why these options are not documented.
9550
71e7afb2
SP
95512009-01-20 Sebastian Pop <sebastian.pop@amd.com>
9552
9553 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
9554 gimple_call_lhs is NULL.
9555
38432148 95562009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
9557
9558 PR target/38868
9559 * emit-rtl.c (adjust_address_1): Make sure memref is never
9560 overwritten.
9561
cbb8dee3
BE
95622009-01-20 Ben Elliston <bje@au.ibm.com>
9563
9564 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 9565 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
9566 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9567 const qualifier from arg 2.
9568
72c66596
IS
95692009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9570
435da628 9571 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 9572
f68211cd
VM
95732009-01-19 Vladimir Makarov <vmakarov@redhat.com>
9574
9575 PR c/38869
9576 * rtl.h (reinit_regs): New prototype.
9577 * regclass.c: Include ira.h.
9578 (reinit_regs): New.
9579 * Makefile.in (regclass.o): Add ira.h.
9580 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
9581
6e4f1168
L
95822009-01-18 H.J. Lu <hongjiu.lu@intel.com>
9583
9584 PR target/38736
9585 * c-common.c (handle_aligned_attribute): Use
9586 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
9587 default alignment value.
9588
9589 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
9590
9591 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
9592 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
9593
9594 * doc/extend.texi: Update __attribute__ ((aligned)). Document
9595 __BIGGEST_ALIGNMENT__.
9596
9597 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
9598
890065bf
RG
95992009-01-18 Richard Guenther <rguenther@suse.de>
9600
9601 PR tree-optimization/38819
9602 * tree-flow.h (operation_could_trap_helper_p): Declare.
9603 * tree-eh.c (operation_could_trap_helper_p): Export.
9604 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
9605 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
9606 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
9607 are about to insert a possibly trapping instruction and fail
9608 in this case.
9609
a729d731
AS
96102009-01-18 Andreas Schwab <schwab@suse.de>
9611
9612 * doc/install.texi (Configuration): Remove obsolete paragraph
9613 about use of --with-gnu-ld with --with-gnu-as.
9614
a640c13b
KH
96152009-01-18 Kazu Hirata <kazu@codesourcery.com>
9616
9617 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
9618 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
9619 Follow spelling conventions.
9620
dba2cc0c
BE
96212009-01-18 Ben Elliston <bje@au.ibm.com>
9622
9623 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
9624 C++ warning about implicit conversion from void * to struct
9625 bitmap_head_def *.
9626 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 9627 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 9628
2207a498
DK
96292009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
9630
9631 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
9632
8137e465
SP
96332009-01-17 Sebastian Pop <sebastian.pop@amd.com>
9634 Tobias Grosser <tobi.grosser@amd.com>
9635
9636 * graphite.c (graphite_trans_scop_block): Do not block single
9637 nested loops.
9638
5be1c58c
AO
96392009-01-16 Alexandre Oliva <aoliva@redhat.com>
9640
9641 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
9642 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
9643 test with assertion.
9644
786ce82d
RG
96452009-01-16 Richard Guenther <rguenther@suse.de>
9646
9647 PR tree-optimization/38835
9648 PR middle-end/36227
9649 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
9650 and INT + PTR -> (INT)(PTR p+ INT) folding.
9651 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
9652
c1cb09ad
AN
96532009-01-16 Adam Nemet <anemet@caviumnetworks.com>
9654
9655 PR target/38554
9656 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
9657 the subreg from a lowpart subreg if it is also casting the value.
9658
bcab4e19
SP
96592009-01-16 Sebastian Pop <sebastian.pop@amd.com>
9660 Tobias Grosser <tobi.grosser@amd.com>
9661
9662 * graphite.c (compare_prefix_loops): New.
9663 (build_scop_canonical_schedules): Rewritten.
9664 (graphite_transform_loops): Move build_scop_canonical_schedules
9665 after build_scop_iteration_domain.
9666
0b040072
SP
96672009-01-16 Sebastian Pop <sebastian.pop@amd.com>
9668 Tobias Grosser <tobi.grosser@amd.com>
9669
2ba9daa7 9670 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
9671 the dimension of the iteration domain. Do copy the domain
9672 only when it exists.
9673 (build_scop_conditions_1): Do not call add_conditions_to_domain.
9674 (add_conditions_to_constraints): New.
9675 (can_generate_code_stmt, can_generate_code): Removed.
9676 (gloog): Do not call can_generate_code.
9677 (graphite_transform_loops): Call add_conditions_to_constraints
9678 after building the iteration domain.
9679
56c6a499
JJ
96802009-01-16 Jakub Jelinek <jakub@redhat.com>
9681
9682 PR tree-optimization/38789
9683 * tree-ssa-threadedge.c
9684 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
9685 __builtin_constant_p.
9686
c95b2534 96872009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
9688
9689 * dce.c (delete_unmarked_insns): Reversed the order that insns are
9690 examined before deleting them.
2ba9daa7 9691
c433cb14
RE
96922009-01-16 Richard Earnshaw <rearnsha@arm.com>
9693
9694 * function.c (aggregate_value_p): Correctly extract the function
9695 type from CALL_EXPR_FN lookup.
9696
c95b2534 96972009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
9698
9699 * config/picochip/picochip.c (picochip_override_options): Revert
9700 CFI asm flag disable commited previously.
9701
c77bb78f
SP
97022009-01-15 Sebastian Pop <sebastian.pop@amd.com>
9703 Tobias Grosser <tobi.grosser@amd.com>
9704 Jan Sjodin <jan.sjodin@amd.com>
9705
9706 * graphite.c (scan_tree_for_params): On substractions negate
9707 all the coefficients of the term.
9708 (clast_to_gcc_expression_red): New. Handle reduction expressions
9709 of more than two operands.
9710 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
9711 (get_vdef_before_scop): Handle also the case of default definitions.
9712
574af2d6
RS
97132009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
9714
9715 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
9716 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
9717 Also use them when walking CALL_INSN_FUNCTION_USAGE.
9718
e939805b
L
97192009-01-15 H.J. Lu <hongjiu.lu@intel.com>
9720 Joey Ye <joey.ye@intel.com>
9721
9722 PR middle-end/37843
9723 * cfgexpand.c (expand_stack_alignment): Don't update stack
9724 boundary nor check incoming stack boundary here.
9725 (gimple_expand_cfg): Update stack boundary and check incoming
9726 stack boundary here.
9727
c95b2534 97282009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 9729
435da628 9730 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 9731
0196c95e
JJ
97322009-01-14 Jakub Jelinek <jakub@redhat.com>
9733
9734 PR rtl-optimization/38245
9735 * calls.c (expand_call): Add stack arguments to
9736 CALL_INSN_FUNCTION_USAGE even for pure calls (when
9737 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
9738 in regs and partially in memory or BLKmode arguments.
9739 (emit_library_call_value_1): Add stack arguments to
9740 CALL_INSN_FUNCTION_USAGE even for pure calls (when
9741 ACCUMULATE_OUTGOING_ARGS).
9742 * dce.c: Include tm_p.h.
9743 (find_call_stack_args): New function.
9744 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
9745 argument.
9746 (mark_insn): Call find_call_stack_args for CALL_Ps.
9747 (prescan_insns_for_dce): Walk insns backwards in bb rather than
9748 forwards. Allocate and free arg_stores bitmap if needed, pass it
9749 down to deletable_insn_p, don't mark stores set in arg_stores
9750 bitmap, clear the bitmap at the beginning of each bb.
9751 * Makefile.in (dce.o): Depend on $(TM_P_H).
9752
6df6bcfa
MM
97532009-01-14 Michael Meissner <gnu@the-meissners.org>
9754
9755 PR target/22599
435da628
UB
9756 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
9757 to make sure the insn is a conditional test (bug 22599). Reformat a
9758 few long lines.
6df6bcfa 9759
765ec70c
SP
97602009-01-14 Sebastian Pop <sebastian.pop@amd.com>
9761
9762 PR middle-end/38431
9763 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
9764 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
9765 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 9766 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
9767 scops have been code generated.
9768
7de2b688
BS
97692009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
9770 * doc/gty.texi (Invoking the garbage collector): Added new node
9771 and section documenting ggc_collect.
9772
10bd6c5c
RG
97732009-01-14 Richard Guenther <rguenther@suse.de>
9774
9775 PR tree-optimization/38826
9776 PR middle-end/38477
9777 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
9778 initialization notes only if we actually emitted a warning.
9779 (intra_create_variable_infos): Add constraints for a result decl
9780 that is passed by hidden reference.
9781 (build_pred_graph): Mark all related variables non-direct on
9782 address-taking.
9783
9c7c70ee
NC
97842009-01-14 Nick Clifton <nickc@redhat.com>
9785
9786 * ira-conflicts.c: Include addresses.h for the definition of
9787 base_reg_class.
435da628
UB
9788 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
9789 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 9790
cf0c2a60
VM
97912009-01-13 Vladimir Makarov <vmakarov@redhat.com>
9792
9793 PR target/38811
9794 * Makefile.in (ira-lives.o): Add except.h.
9795
9796 * ira-lives.c: Include except.h.
9797 (process_bb_node_lives): Process can_throw_internal.
9798
d3302fd3
JJ
97992009-01-13 Jakub Jelinek <jakub@redhat.com>
9800
9801 PR rtl-optimization/38774
9802 * combine.c (simplify_set): When undoing cc_use change, don't do
9803 PUT_CODE on the newly created comparison, but instead put back the
9804 old comparison.
9805
7ab23fd0
JM
98062009-01-13 Joseph Myers <joseph@codesourcery.com>
9807
9808 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
9809 values. Remove duplicate arm8 entry.
9810
f9344488
SP
98112009-01-13 Sebastian Pop <sebastian.pop@amd.com>
9812
9813 PR tree-optimization/38786
9814 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
9815 the SSA_NAME case of expand_scalar_variables_expr.
9816 Set the type of an expression to the type of its assign statement.
9817 (expand_scalar_variables_expr): Also gather the scalar computation
9818 used to index the memory access. Do not pass loop_p.
9819 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
9820 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
9821 the gimple_stmt_iterator where it inserts new code.
9822 Do not pass loop_p.
f9344488
SP
9823 (copy_bb_and_scalar_dependences): Do not pass loop_p.
9824 (translate_clast): Update call to copy_bb_and_scalar_dependences.
9825
2d8bb84d
SP
98262009-01-13 Sebastian Pop <sebastian.pop@amd.com>
9827
9828 * graphite.h (debug_value): Removed.
9829 * graphite.c (debug_value): Removed.
9830
ff128632
RE
98312009-01-13 Richard Earnshaw <rearnsha@arm.com>
9832
435da628
UB
9833 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
9834 ldrd/strd with two 32-bit instructions.
ff128632 9835
d5a0a47b
RE
98362009-01-13 Richard Earnshaw <rearnsha@arm.com>
9837
435da628
UB
9838 * config/arm/arm.c (struct processors): Pass for speed down into
9839 cost helper functions.
d5a0a47b
RE
9840 (const_ok_for_op): Handle COMPARE and inequality nodes.
9841 (arm_rtx_costs_1): Rewrite.
9842 (arm_size_rtx_costs): Update prototype.
9843 (arm_rtx_costs): Pass speed down to helper functions.
9844 (arm_slowmul_rtx_costs): Rework cost calculations.
9845 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
9846 (arm_9e_rtx_costs): Likewise.
9847
26d5bf5b
UB
98482009-01-13 Uros Bizjak <ubizjak@gmail.com>
9849
9850 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 9851 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
9852 (alpha_legitimize_address): Do not split local symbols wider than
9853 UNITS_PER_WORD into HIGH/LO_SUM parts.
9854
5d14e3d5
DS
98552009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
9856
9857 PR bootstrap/38580
9858 * gcc.c (process_command): Replace call to execvp with calls
9859 to pex_one and exit.
9860
33faafca
AS
98612009-01-03 Anatoly Sokolov <aesok@post.ru>
9862
9863 PR target/29141
9864 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
9865 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
9866 variant for devices with 3-byte PC.
ba20e309 9867 (__tablejump_elpm__): New.
33faafca 9868
634b5df5
JJ
98692009-01-12 Jakub Jelinek <jakub@redhat.com>
9870
9871 PR c/32041
9872 * c-parser.c (c_parser_postfix_expression): Allow `->' in
9873 offsetof member-designator, handle it as `[0].'.
9874
2842bb86
JDA
98752009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9876
9877 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
9878 function when not using named sections on targets with named sections
9879 if branch distance is less than 262132.
9880
76ee70f6
RE
98812009-01-12 Richard Earnshaw <rearnsha@arm.com>
9882
9883 * combine.c (combine_instructions): Recompute
9884 optimize_this_for_speed_p for each BB in the main combine loop.
9885
f56e675d
TB
98862009-01-12 Tomas Bily <tbily@suse.cz>
9887
9888 PR middlend/38385
26d5bf5b
UB
9889 * tree-loop-distribution.c (prop_phis): New function.
9890 (generate_builtin): Call prop_phis.
9891 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 9892
c2152239
JJ
98932009-01-12 Jakub Jelinek <jakub@redhat.com>
9894
9895 PR tree-optimization/38807
9896 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
9897 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
9898
0e510b3e
AN
98992009-01-11 Adam Nemet <anemet@caviumnetworks.com>
9900
9901 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
9902 subreg of op0 to the original op0.
9903
c95b2534 99042009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
9905
9906 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 9907
53a7ff9a
MS
99082009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
9909
9910 PR debug/7055
60839f5d 9911 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
9912 starting with digits.
9913
b3a796bc
JJ
99142009-01-10 Jakub Jelinek <jakub@redhat.com>
9915
9916 PR target/38695
9917 * config/arm/arm.c (arm_is_long_call_p): Don't call
9918 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
9919
b21b850e
SB
99202009-01-09 Steven Bosscher <steven@gcc.gnu.org>
9921
9922 * regrename.c (regrename_optimize): Fix dumping.
9923 (find_oldest_value_reg): Preserve REG_POINTER.
9924 (copy_hardreg_forward_1): Likewise.
9925
e0e10d3a
DN
99262009-01-09 Diego Novillo <dnovillo@google.com>
9927
bf9b2cc9 9928 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
9929 the restrictions on its use.
9930 (gimple_uid): Tidy.
9931 (gimple_set_uid): Tidy.
9932
c9da2ae8
JJ
99332009-01-09 Jakub Jelinek <jakub@redhat.com>
9934
9935 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
9936 zero guard even if align_bytes != 0 and count is smaller than
9937 size_needed.
9938
38432148 99392009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
9940
9941 PR rtl-optimization/38495
26d5bf5b 9942 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
9943 (add_range_and_copies_from_move_list): Print all added ranges.
9944 Add ranges to memory optimized destination.
9945
260fda3d
JJ
99462009-01-09 Jakub Jelinek <jakub@redhat.com>
9947
6f6278ad
JJ
9948 PR target/38686
9949 PR target/38708
9950 * config/i386/i386.c (override_options): Reject
9951 -mstringop-strategy=rep_8byte with -m32.
9952 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
9953 to 1. Do count comparison against epilogue_size_needed at compile
9954 time even when count_exp was constant forced into register. For
9955 size_needed don't jump to epilogue, instead just avoid aligning
9956 and invoke the body algorithm. If need_zero_guard, add zero guard
9957 even if count is non-zero, but smaller than size_needed + number of
9958 bytes that could be stored for alignment.
9959 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
9960 to 1. If need_zero_guard, add zero guard even if count is non-zero,
9961 but smaller than size_needed + number of bytes that could be stored
9962 for alignment. Compare size_needed with epilogue_size_needed instead
9963 of desired_align - align, don't adjust size_needed, pass
9964 epilogue_size_needed to the epilogue expanders.
9965
260fda3d 9966 PR c/35742
26d5bf5b 9967 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 9968
67b846fa
JDA
99692009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9970
9971 * pa.c (last_address): Change to unsigned.
9972 (update_total_code_bytes): Change argument to unsigned. Don't
9973 check if insn addresses are set.
9974 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
9975 addresses are not set.
9976 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
9977
91c82473
NC
99782009-01-09 Nick Clifton <nickc@redhat.com>
9979
9980 * config/sh/symbian.c: Replace uses of DECL_INLINE with
9981 DECL_DECLARED_INLINE_P.
9982
4017e262
JJ
99832009-01-09 Jakub Jelinek <jakub@redhat.com>
9984
0a49e5c2
JJ
9985 PR middle-end/38347
9986 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
9987 GET_MODE (op0) in operand_subword_force calls.
9988
4017e262
JJ
9989 PR middle-end/38771
9990 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
9991 fold_convert arg0 operands to TREE_TYPE (op0) first.
9992
7cd06356
VM
99932009-01-08 Vladimir Makarov <vmakarov@redhat.com>
9994
9995 * params.def (ira-max-conflict-table-size): Decrease default value
9996 to 1000.
9997
96867bbd
JJ
99982009-01-08 Jakub Jelinek <jakub@redhat.com>
9999
10000 PR tree-optimization/37031
10001 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
10002 on parameter_set.
10003 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
10004 allocate it using gc instead of heap, use VEC_quick_push instead of
10005 VEC_safe_push.
10006 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
10007 instead of heap, use VEC_quick_push instead of VEC_safe_push.
10008 * tree-data-ref.h (struct access_matrix): Change matrix to gc
10009 allocated vector from heap allocated.
10010 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
10011 * tree-loop-linear.c (linear_transform_loops): Allocate nest
10012 vector only after perfect_loop_nest_depth call.
10013
68f61c3d
SP
100142009-01-08 Sebastian Pop <sebastian.pop@amd.com>
10015 Jan Sjodin <jan.sjodin@amd.com>
10016
10017 PR tree-optimization/38559
10018 * graphite.c (debug_value, copy_constraint,
10019 swap_constraint_variables, scale_constraint_variable, ): New.
10020 (get_lower_bound, get_upper_bound): Removed.
10021 (graphite_trans_bb_strip_mine): Clean up this code that works
10022 only for constant number of iterations. Fully copy upper and
10023 lower bound constraints, not only the constant part of them.
10024 * graphite.h (debug_value): Declared.
10025
82567e33
IR
100262009-01-08 Ira Rosen <irar@il.ibm.com>
10027
10028 PR tree-optimization/37194
10029 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 10030 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
10031 outside cost in case of known number of iterations.
10032
7da13f1d
NF
100332009-01-07 Nathan Froyd <froydnj@codesourcery.com>
10034 Alan Modra <amodra@bigpond.net.au>
10035
10036 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
10037 non-word-aligned REG+CONST addressing.
10038
c0f64575
UB
100392009-01-07 Uros Bizjak <ubizjak@gmail.com>
10040
10041 PR target/38706
10042 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
10043 free_after_compilation when outputting a thunk.
10044 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
10045 Do not call free_after_compilation here.
10046
301b6a4e
UB
100472009-01-07 Uros Bizjak <ubizjak@gmail.com>
10048
10049 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
10050 (ix86_valid_target_attribute_inner_p): Ditto.
10051
6a114766
JS
100522009-01-07 Jan Sjodin <jan.sjodin@amd.com>
10053
10054 PR tree-optimization/38492
10055 PR tree-optimization/38498
10056 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
10057 * tree-chrec.h (scev_is_linear_expression): Declared.
10058 * graphite.c (graphite_cannot_represent_loop_niter): New.
10059 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
10060 (graphite_loop_normal_form): Use gcc_assert.
10061 (scan_tree_for_params): Use CASE_CONVERT.
10062 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
10063 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
10064 Use gcc_assert. Discard scops that contain unhandled cases.
10065 (build_scop_conditions): Return a boolean status for unhandled cases.
10066 (strip_mine_profitable_p): Print the loop number, not its depth.
10067 (is_interchange_valid): Pass the depth of the loop nest, don't
10068 recompute it wrongly.
10069 (graphite_trans_bb_block): Same.
10070 (graphite_trans_bb_block): Print tentative of loop blocking.
10071 (graphite_trans_scop_block): Do not print that the loop has been
10072 blocked.
10073 (graphite_transform_loops): Do not handle scops that contain condition
10074 scalar phi nodes.
10075
65b82caa
L
100762009-01-07 H.J. Lu <hongjiu.lu@intel.com>
10077
10078 AVX Programming Reference (December, 2008)
10079 * config/i386/avxintrin.h (_mm256_stream_si256): New.
10080 (_mm256_stream_pd): Likewise.
10081 (_mm256_stream_ps): Likewise.
10082
10083 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
10084 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
10085 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
10086 (bdesc_special_args): Add __builtin_ia32_movntdq256,
10087 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
10088 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
10089 (ix86_expand_special_args_builtin): Likewise.
10090
10091 * config/i386/sse.md (AVXMODEDI): New.
10092 (avx_movnt<mode>): Likewise.
10093 (avx_movnt<mode>): Likewise.
10094 (<sse>_movnt<mode>): Remove AVX support.
10095 (sse2_movntv2di): Likewise.
10096
cef158f9
RG
100972009-01-07 Richard Guenther <rguenther@suse.de>
10098
10099 PR middle-end/38751
10100 * fold-const.c (extract_muldiv): Remove obsolete comment.
10101 (fold_plusminus_mult_expr): Undo MINUS_EXPR
10102 to PLUS_EXPR canonicalization for the canonicalization.
10103
246cb5be
GP
101042009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
10105
10106 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
10107 hosted cross-compilers generating less efficient code.
10108
84b9b872
RS
101092009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
10110
10111 * function.h (rtl_data): Add a dbr_scheduled_p field.
10112 * reorg.c (dbr_schedule): Set it.
10113 (gate_handle_delay_slots): Check it.
10114 * config/mips/mips.c (mips_base_delayed_branch): Delete.
10115 (mips_reorg): Check flag_delayed_branch instead of
10116 mips_base_delayed_branch.
10117 (mips_override_options): Don't set mips_base_delayed_branch
10118 or flag_delayed_branch.
10119
ace984c8
RS
101202009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
10121
10122 PR rtl-optimization/38426.
10123 * ira.c (ira): Set current_function_is_leaf earlier.
10124
7ad7809b
JJ
101252009-01-06 Jakub Jelinek <jakub@redhat.com>
10126
10127 PR rtl-optimization/38722
10128 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
10129 too early, only set a flag and modify after last possible
10130 undo_all point.
10131
c52ec948
JJ
101322009-01-06 Janis Johnson <janis187@us.ibm.com>
10133
10134 PR c/34252
10135 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
10136 * real.c (decimal_single_format): Correct values of emin and emax.
10137 (decimal_double_format): Ditto.
10138 (decimal_quad_format): Ditto.
10139 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
10140 computation of DECnn_MIN and DECnn_MAX for corrected values of
10141 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
10142 __DECnn_MIN__, and adjust its computation for the corrected value
10143 of emin.
10144
300240e1
JH
101452009-01-06 Jan Hubicka <jh@suse.cz>
10146
10147 PR target/38744
435da628 10148 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 10149
271c069e
GP
101502009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
10151
10152 * doc/contrib.texi (Contributors): Slightly adjust the end note.
10153 Add Robert Clark to the list of testers.
10154
64e4c301 101552009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 10156 Kai Tietz <kai.tietz@onevision.com>
64e4c301 10157
435da628
UB
10158 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
10159 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 10160
7650b83e 101612009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 10162 Kai Tietz <kai.tietz@onevision.com>
7650b83e 10163
435da628
UB
10164 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
10165 for w64 ABI.
10166 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
10167 (ix86_nsaved_regs): Count only general purpose regs.
10168 (ix86_nsaved_sseregs): New.
10169 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
10170 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
10171 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
10172 general purpose regs.
7650b83e
JH
10173 (ix86_emit_save_sse_regs_using_mov): New.
10174 (ix86_expand_prologue): Save SSE regs if needed.
10175 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
10176 (ix86_emit_restore_sse_regs_using_mov): New.
10177 (ix86_expand_epilogue): Save SSE regs if needed.
10178
9aa5c1b2 101792009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 10180 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 10181
435da628
UB
10182 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
10183 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
10184 functions when accumulate outgoing args is off.
9aa5c1b2 10185
f7556aae
L
101862009-01-06 H.J. Lu <hongjiu.lu@intel.com>
10187
10188 PR bootstrap/38742
10189 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
10190 before using pseudos_have_intersected_live_ranges_p.
10191
10192 * ira-int.h (ira_assert): Always define.
10193
e47b7d04
L
101942009-01-06 H.J. Lu <hongjiu.lu@intel.com>
10195
10196 AVX Programming Reference (December, 2008)
10197 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
10198 (_mm256_permute2_pd): Likewise.
10199 (_mm_permute2_ps): Likewise.
10200 (_mm256_permute2_ps): Likewise.
10201 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
10202 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
10203
10204 * config/i386/i386.c (ix86_builtins): Remove
10205 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
10206 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
10207 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
10208 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
10209 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
10210 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
10211 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
10212 __builtin_ia32_vpermil2ps256.
10213 (ix86_init_mmx_sse_builtins): Updated.
10214 (ix86_expand_args_builtin): Likewise.
10215
44b86471
JDA
102162009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10217
e47b7d04
L
10218 * pa.c (output_call): Relocate non-jump insns in the delay slot of
10219 long absolute calls when generating PA 2.0 code.
44b86471 10220
311aab06
VM
102212009-01-05 Vladimir Makarov <vmakarov@redhat.com>
10222
10223 PR rtl-optimization/38583
10224 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
10225
10226 * params.def (ira-max-conflict-table-size): New.
10227
10228 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 10229
311aab06 10230 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 10231
311aab06
VM
10232 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
10233 table. Report this. Return result of building.
10234 (ira_build_conflicts): Use ira_conflicts_p. Check result of
10235 building conflict table.
10236
301b6a4e 10237 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 10238 (ira_color): Use ira_conflicts_p.
2ba9daa7 10239
311aab06
VM
10240 * global.c: Include ira.h.
10241 (pseudo_for_reload_consideration_p, build_insn_chain): Use
10242 ira_conflicts_p.
10243
10244 * Makefile.in (global.o): Add ira.h.
2ba9daa7 10245
311aab06
VM
10246 * ira-build.c (mark_all_loops_for_removal,
10247 propagate_some_info_from_allocno): New.
10248 (remove_unnecessary_allocnos): Call
10249 propagate_some_info_from_allocno.
10250 (remove_low_level_allocnos): New.
10251 (remove_unnecessary_regions): Add parameter. Call
10252 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
10253 parameter to remove_unnecessary_regions.
10254 (ira_build): Remove all regions but root if the conflict table was
10255 not built. Update conflict hard regs for allocnos crossing calls.
10256
10257 * ira.c (ira_conflicts_p): New global.
10258 (ira): Define and use ira_conflicts_p.
10259
10260 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10261 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 10262 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 10263
5641785f
BE
102642009-01-06 Ben Elliston <bje@au.ibm.com>
10265
10266 * gengtype-lex.l (YY_NO_INPUT): Define.
10267
e4e5261f
AP
102682009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
10269
10270 PR c/34911
5641785f
BE
10271 * c-common.c (handle_vector_size_attribute): Also reject
10272 BOOLEAN_TYPE types.
e4e5261f 10273
7b10257f
SP
102742009-01-05 Sebastian Pop <sebastian.pop@amd.com>
10275
10276 PR tree-optimization/38492
10277 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
10278 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
10279 rename_map_elt_info, eq_rename_map_elts,
10280 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
10281 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
10282 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
10283 (sese_build_livein_liveouts): New.
10284 (new_sese, free_sese): New.
10285 (new_scop): Call new_sese.
10286 (free_scop): Call free_sese.
10287 (rename_variables_from_edge, rename_phis_end_scop): Removed.
10288 (register_old_new_names): Renamed register_old_and_new_names.
10289 (register_scop_liveout_renames, add_loop_exit_phis,
10290 insert_loop_close_phis, struct igp,
10291 default_liveout_before_guard, add_guard_exit_phis,
10292 insert_guard_phis, copy_renames): New.
10293 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
10294 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
10295 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
10296 (scop_adjust_phis_for_liveouts): New.
10297 (gloog): Call scop_adjust_phis_for_liveouts.
10298
10299 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 10300 num_ver and livein.
7b10257f
SP
10301 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
10302 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
10303 (struct scop): Added field liveout_renames.
10304 (SCOP_LIVEOUT_RENAMES): New.
10305
9761fcc7
HJ
103062009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
10307
10308 PR tree-optimization/38510
10309 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
10310 (translate_clast): Call recompute_all_dominators before
10311 graphite_verify.
10312 (gloog): Call recompute_all_dominators before graphite_verify.
10313
103142009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 10315 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
10316
10317 PR tree-optimization/38500
10318 * graphite.c (create_sese_edges): Call fix_loop_structure after
10319 splitting blocks.
10320
c95b2534 103212009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
10322
10323 * config.gcc: Add m32r*-*-rtems*.
10324 * config/m32r/rtems.h: New file.
10325
fc0cd180
BE
103262009-01-05 Ben Elliston <bje@au.ibm.com>
10327
10328 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
10329 (.po.pox): Likewise.
10330 (po/gcc.pot): Likewise.
10331
3106d8e5
DM
103322009-01-04 David S. Miller <davem@davemloft.net>
10333
10334 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
10335 (STARTING_FRAME_OFFSET): Always set to zero.
10336
0009b473
RS
103372009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
10338
10339 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
10340 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
10341 fixed-point types, and vectors of the same.
10342
4f24c6d6
RS
103432009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
10344
10345 * config/mips/sync.md (*mb_barrier): Rename to...
10346 (*memory_barrier): ...this.
10347
1df48f5c
JW
103482009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
10349
10350 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 10351 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
10352 and put in alphabetical order. Fix 'target' name and put in order.
10353 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
10354 typos.
10355
1a8c13b3
UB
103562009-01-04 Uros Bizjak <ubizjak@gmail.com>
10357
10358 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
10359 (memory_barrier): Expand as unspec instead of unspec_volatile.
10360 Remove mem:BLK from insn operands. Use Pmode scratch register.
10361 (*memory_barrier): Define as unspec instead of unspec_volatile.
10362 Use (match_dup 0) as input operand.
10363
10364 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
10365 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
10366 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
10367 scratch register. Remove operand 1.
10368 (*stbar): Define as unspec instead of unspec_volatile.
10369 Use (match_dup 0) as input operand, remove (const_int 8).
10370 (*membar): Define as unspec instead of unspec_volatile.
10371 Use (match_dup 0) as input operand, remove input operand 2.
10372
10373 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
10374 (memory_barrier): Expand as unspec instead of unspec_volatile.
10375 Remove mem:BLK from insn operands. Use Pmode scratch register.
10376 (*memory_barrier): Define as unspec instead of unspec_volatile.
10377 Use (match_dup 0) as input operand.
10378
10379 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
10380 Remove mem:BLK from insn operands. Use Pmode scratch register.
10381 Set volatile flag on operand 0.
10382 (*memory_barrier): New insn pattern.
10383
10384 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
10385 insn operands.
10386 (*memory_barrier): Use (match_dup 0) as input operand.
10387
10388 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
10389 Remove mem:BLK from insn operands. Use Pmode scratch register.
10390 Set volatile flag on operand 0.
301b6a4e 10391 (*mb_internal): New insn pattern.
1a8c13b3
UB
10392
10393 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
10394
fb0703f7
SB
103952009-01-04 Steven Bosscher <steven@gcc.gnu.org>
10396
10397 PR middle-end/38586
10398 * function.c (struct temp_slot): Move to the section of the file
10399 that deals with temp slots. Remove field 'address'.
10400 (temp_slot_address_table): New hash table of address -> temp slot.
10401 (struct temp_slot_address_entry): New struct, items for the table.
10402 (temp_slot_address_compute_hash, temp_slot_address_hash,
10403 temp_slot_address_eq, insert_temp_slot_address): Support functions
10404 for the new table.
10405 (find_temp_slot_from_address): Rewrite to use the new hash table.
10406 (remove_unused_temp_slot_addresses): Remove addresses of temp
10407 slots that have been made available.
10408 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
10409 worker function for remove_unused_temp_slot_addresses.
10410 (assign_stack_temp_for_type): Don't clear the temp slot address list.
10411 Add the temp slot address to the address -> temp slot map.
10412 (update_temp_slot_address): Update via insert_temp_slot_address.
10413 (free_temp_slots): Call remove_unused_temp_slot_addresses.
10414 (pop_temp_slots): Likewise.
10415 (init_temp_slots): Allocate the address -> temp slot map, or empty
10416 the map if it is already allocated.
10417 (prepare_function_start): Initialize temp slot processing.
10418
b5a430f3
SB
104192009-01-04 Steven Bosscher <steven@gcc.gnu.org>
10420
10421 PR middle-end/38584
10422 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
10423 Calculate the size of all stack vars assuming no packing of stack
10424 vars will happen, replacing a quadratic algorithm with a linear one.
10425
5d560619
JJ
104262009-01-03 Jakub Jelinek <jakub@redhat.com>
10427
10428 PR target/38707
10429 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
10430 can't be used.
10431
953a7caa
DN
104322009-01-03 Diego Novillo <dnovillo@google.com>
10433
10434 * doc/contrib.texi: Update contributions.
10435
5f26a230
JJ
104362009-01-03 Jakub Jelinek <jakub@redhat.com>
10437
493aa551
JJ
10438 PR c++/38705
10439 * builtins.c (fold_builtin_memory_op): Give up if either operand
10440 is volatile. Set srctype or desttype to non-qualified version
10441 of the other type.
10442
5f26a230
JJ
10443 PR c/38700
10444 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
10445 and FUNCTION_DECLs.
10446
c95b2534 104472009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
10448
10449 PR rtl-optimization/35805
10450 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
10451 problem if fast dce is able to remove any instructions.
10452 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 10453
0b355794
MM
104542009-01-02 Mark Mitchell <mark@codesourcery.com>
10455
10456 PR 33649
10457 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
10458
0cf0d02b
JJ
104592009-01-02 Jakub Jelinek <jakub@redhat.com>
10460
10461 PR middle-end/38690
10462 * tree-flow.h (op_code_prio, op_prio): New prototypes.
10463 * tree-pretty-print.c (op_code_prio): New function.
10464 (op_prio): No longer static. Use op_code_prio.
10465 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
10466 Use op_prio and op_code_prio to determine if () should be
10467 printed around operand(s) or not.
10468
10469 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
10470 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
10471 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
10472 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
10473 pp_character instead of pp_string for single letter printing.
10474
e3606f3b
RS
104752009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
10476
10477 * doc/extend.texi: Fix '#pragma GCC option' typo.
10478
c95b2534 104792009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 10480
a5f061dc
RG
10481 * doc/install.texi (--enable-checking): Mention different
10482 default for stage1.
10483 (--enable-stage1-checking): Document.
00f39bd5 10484
26de0bcb
AP
104852009-01-01 Andrew Pinski <pinskia@gmail.com>
10486
10487 PR middle-end/30142
10488 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
10489 case to be an error.
10490
7a7d8fab
BE
104912009-01-02 Ben Elliston <bje@au.ibm.com>
10492
10493 * config/fp-bit.h (pack_d): Constify argument.
10494 * config/fp-bit.c (makenan): Constify return type. Remove casts.
10495 (isnan): Constify argument.
10496 (isinf): Likewise.
10497 (iszero): Likewise.
10498 (pack_d): Likewise.
10499 (_fpadd_parts): Constify return type.
10500 (_fpmul_parts): Likewise.
10501 (_fpdiv_parts): Likewise.
10502
b295aee2
JJ
105032009-01-01 Jakub Jelinek <jakub@redhat.com>
10504
10505 PR c/36489
10506 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
10507 warn about overwriting initializer with side-effects or
10508 -Woverride-init if !IMPLICIT.
10509 (output_init_element): Likewise. Pass IMPLICIT down to
10510 add_pending_init.
10511 (process_init_element): Add IMPLICIT argument. Pass it down
10512 to output_init_element.
10513 (push_init_element, pop_init_level, set_designator): Adjust
10514 process_init_element callers.
10515 (set_nonincremental_init, set_nonincremental_init_from_string):
10516 Adjust add_pending_init callers.
10517 (output_pending_init_elements): Adjust output_init_element callers.
10518 * c-tree.h (process_init_element): Adjust prototype.
10519 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
10520 process_init_element callers.
ad41bd84
JM
10521
10522\f
10523Copyright (C) 2009 Free Software Foundation, Inc.
10524
10525Copying and distribution of this file, with or without modification,
10526are permitted in any medium without royalty provided the copyright
10527notice and this notice are preserved.